포트 포워딩
앞 절에서 NAT가 집 안 컴퓨터들을 외부로부터 가려준다는 것을 배웠습니다. 그런데 때로는 외부에서 집 안 서버에 접속해야 하는 상황이 있습니다. 라즈베리 파이에 웹 서버를 올리고 밖에서 접속하거나, 집에서 게임 서버를 운영할 때가 그렇습니다. 이때 필요한 설정이 포트 포워딩입니다.
외부에서 내부로 들어오지 못하는 이유
NAT 테이블은 내부에서 먼저 패킷을 보낼 때 항목이 생깁니다. 외부에서 먼저 연결을 시도하면 공유기가 이 패킷을 어느 내부 장치에 전달해야 할지 알 수 없습니다. 테이블에 해당 항목이 없으니 그냥 버려버립니다. 집 문에 우편함은 있지만 받는 사람이 누구인지 표시가 없는 것과 비슷합니다.
포트 포워딩의 원리
포트 포워딩은 공유기 설정 화면에서 '이 포트로 들어오는 요청은 내부 이 주소로 보내라'라고 규칙을 미리 등록하는 것입니다.
예를 들어 내부 서버의 주소가 192.168.1.50이고 웹 서버가 포트 8080에서 실행 중이라면, 공유기에 다음 규칙을 추가합니다.
외부 포트 8080 → 내부 192.168.1.50 : 8080
이제 외부에서 공인 IP 211.100.200.50:8080으로 접속하면 공유기가 이 패킷을 192.168.1.50:8080으로 전달합니다. 공유기는 우편함 역할을 하되, 특정 번호의 편지는 특정 방으로 배달하도록 미리 안내문을 붙여둔 셈입니다.
설정 시 주의할 점
포트 포워딩을 설정할 때 몇 가지를 확인해야 합니다.
내부 서버 IP가 바뀌지 않도록 고정 IP를 할당하거나 공유기의 DHCP 예약 기능을 씁니다. DHCP로 동적 할당을 받으면 재부팅 후 IP가 바뀌어 포워딩 규칙이 엉뚱한 장치를 가리킬 수 있습니다.
외부에 포트를 열면 그만큼 공격 대상이 늘어납니다. 꼭 필요한 포트만 열고, 기본 포트(예: SSH 22, RDP 3389)는 다른 번호로 바꾸는 것이 좋습니다.
공유기에 따라 설정 메뉴 이름이 가상 서버, NAT 포워딩, 포트 매핑 등으로 다를 수 있지만 원리는 동일합니다. 포트 포워딩을 이해하면 클라우드의 보안 그룹 인바운드 규칙도 같은 개념임을 금방 알 수 있습니다. 다음 절에서는 NAT로 버텨온 IPv4 주소 부족 문제와 그 근본적인 해결책인 IPv6를 살펴봅니다.