KT공유기 포트포워딩, 리버스 프록시, DHCP 고정IP 설정하기

KT공유기 포트포워딩, 리버스 프록시, DHCP 고정IP 설정하기

1. KT공유기 접속 방법

cmd에 ipconfig로 내부IP확인

172.30.1.254로 접속하면 공유기 로그인 페이지로 이동
kt 기가 공유기 기준 초기 계정정보
아이디 : ktuser
비밀번호 : homehub

접속 후 유무선 단말정보에서 현재 공유기에 접속중인 기기들의 IP주소를 확인 가능하다.
내 컴퓨터의 내부IP는 172.30.1.36이고 서버 역할을 할 기기의 IP주소는 172.30.1.70이다.

2. KT 공유기 포트포워딩 설정

상태설정 > 접속 단말 정보

장치설정 > 트래픽관리 > 포트 포워딩 설정

  • 소스IP 주소 : 외부에서 공유기에 접근하는 IP를 설정하는 부분이다. 이곳에 역방향 프록시 설정을 위한 외부서버 IP주소를 입력하면 된다.
  • 소스포트 : 소스IP에 대한 포트번호를 지정하는 영역으로 일반적으로 공란으로 둔다.
    (클라이언트가 요청할 때 랜덤한 포트를 사용하여 서버에 요청하기 때문)
  • 외부포트 : 공인IP주소 또는 도메인 주소를 통해 접속할 때의 포트번호를 지정한다.
    SSL인증서가 없다면 80으로 설정, SSL인증서를 사용한다면 443 설정
  • 내부 IP 주소 : 서버가 될 기기의 IP주소를 입력
  • 내부 포트 : 서버가 될 기기의 실행중인 nginx, apache, tomcat등 각 프로그램의 포트에 맞게 작성

3. KT공유기 DHCP설정 내부IP고정

장치설정 > 네트워크 관리 > LAN 연결 설정

수동 IP할당 설정 영역에서 현재 접속된 PC 체크박스를 클릭하면 공유기에 연결된 기기 리스트가 나온다

여기서 구성하고자 하는 서버를 선택 후 추가하면 기기의 MAC주소를 기반으로
서버가 항상 고정된 IP를 할당 받을 수 있게된다.

4. KT 공유기 공인IP 확인

공유기 설정페이지 공인IP주소 확인

로그인시 나오는 메인페이지에서 IP주소 부분이 공인IP이다.

네이버에서 공인IP 확인

통신사에서 제공받은 공인IP의 경우 공유기의 전원을 끄고 일정시간이 지난 후 다시 키면 새로운 공인IP를 받게되는데 보통 공유기는 종료하는 일이 없으니 변경될일이 없다. 만약 공인IP가 자주 변경되는 상황이라면 DDNS를 등록해서 사용해야한다.

5. 역방향 프록시 설정

위에서 소스IP 영역에 외부에 존재하는 프록시 서버를 두면 끝이다.
해당 프록시 서버에는 proxy_pass설정이 되어있어야 한다.

아래는 역방향 프록시 설정을 위한 nginx 설정파일의 server블록 부분이다.
도커 컨테이너로 실행중인 nginx 기준 설정파일의 경로는 /etc/nginx/nginx.conf이고
내용중에 include /etc/nginx/conf.d/*.conf;로 사용자 정의 설정파일을 불러온다.
/etc/nginx/conf.d/ 경로로 들어가보면 default.conf라는 파일이 하나 존재하고
해당 파일의 server블록을 아래 내용으로 교체 후 저장.
nginx -s reload 명령어를 사용하면 설정파일이 nginx에 반영된다.

server {
  listen 80;
    location / {
        proxy_pass http://도메인 OR 공인IP 주소;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

6. 마무리

프록시 서버는 요청을 전달만 해주기 때문에 높은 성능을 필요로 하지 않는다.
인터넷 속도가 중요하다.

나는 오라클 클라우드의 무료 인스턴스 VM.Standard.E2.1.Micro 서버로 구성했다.
https설정에 대해 다루진 않았지만 역방향 프록시 서버가 홈환경이 아닌 외부에 존재하기 때문에 SSL설치는 필수라고 본다.

역방향 프록시 장점

  • 홈서버의 공인IP주소를 은닉하여 외부에 노출되지 않도록 한다.
  • DDoS공격이나 봇의 타겟이 되는것을 피할 수 있다.
  • 홈서버의 공인IP가 노출되어 공격을 받는다면 공인IP를 변경해야한다. 프록시 서버가 공격을 받는다면 프록시 서버만 종료하여 홈서버를 지킬 수 있다.

역방향 프록시 단점

  • 외부 서버의 경우 무료가 아니라면 추가 비용이 발생한다.(서버 비용 OR 트래픽)
  • 통신과정에서 프록시를 거쳐 다시 홈서버로 요청을 전달하기 때문에 네트워크 지연시간이 조금 늘어난다. (거의 느끼지못함)

홈서버의 사양이 좋을수록 지킬 게 많을 것이니 DDoS 방어가 가능한 cloudflare 같은 클라우드 환경에서 역방향 프록시를 구축하자