📚 네트워크 · 패킷 분석 › 06. 방화벽 · IDS 기초 — 269편
이전 글: 268. Firewall NAT · 다음 글: 270. DMZ와 Firewall
Port Forwarding(포트 포워딩) 은 방화벽(또는 공유기)의 외부 주소·포트로 들어온 연결을 내부의 특정 호스트·포트로 전달하는 설정입니다. 기술적으로는 목적지 IP와 포트를 바꾸는 DNAT의 한 형태입니다(268. Firewall NAT).
포트 포워딩은 설정 한 줄로 내부 호스트를 인터넷에 직접 노출합니다. 그래서 관제 관점에서는 "NAT 설정"이 아니라 "공개 서비스 목록의 일부" 로 관리해야 합니다.
| 형태 | 예 | 특징 |
|---|---|---|
| 같은 포트 전달 | 203.0.113.10:443 → 10.30.0.10:443 | 가장 일반적 |
| 포트 변환 전달 | 203.0.113.10:8443 → 10.30.0.20:443 | 외부 포트와 내부 포트가 다름 |
| 여러 서버를 포트로 구분 | :2201 → 서버A:22, :2202 → 서버B:22 | 공인 IP 하나로 여러 내부 서버 공개 |
| 자동 포워딩(UPnP IGD) | 내부 프로그램이 공유기에 요청 | 관리자가 모르는 공개가 생길 수 있음 |
포트 변환 포워딩에서 패킷의 목적지는 다음과 같이 바뀝니다.
외부 198.51.100.23:50110 → 203.0.113.10:8443 (방화벽 외부 주소)
↓ [DNAT: 8443 → 10.30.0.20:443]
↓ [필터: 변환 후 목적지 10.30.0.20:443 허용 규칙 확인]
198.51.100.23:50110 → 10.30.0.20:443 (내부 서버 도착)
↓ 응답은 세션 기록으로 역변환
10.30.0.20:443 → 198.51.100.23:50110 ⇒ 203.0.113.10:8443 → 198.51.100.23:50110
이 흐름에서 로그 해석의 함정이 생깁니다.
같은 연결이 장비마다 다른 포트로 기록되므로, 연결할 때는 출발지 IP·포트와 시각을 기준으로 맞춥니다.
포트 포워딩이 보안 사고로 이어지는 전형적인 경로입니다.
| 위험 | 설명 | 점검 방법 |
|---|---|---|
| 잊힌 포워딩 | 테스트·유지보수용 포워딩이 작업 후 남음 | 포워딩 목록과 공개 서비스 목록 대조 |
| 내부망 직접 전달 | DMZ가 아닌 사용자·서버망으로 전달 | 포워딩 대상 IP의 소속 대역 확인 |
| 관리 서비스 공개 | 22, 3389, DB 포트 포워딩 | 목적지 포트 기준 검색 |
| UPnP 자동 포워딩 | 내부 프로그램이 스스로 포트를 엶 | 경계 장비에서 UPnP 비활성화 |
| 비표준 포트로 숨기기 | 3389 → 외부 33890 | 스캐너는 전체 포트를 탐색하므로 효과 제한 |
현재 설정된 포트 포워딩을 확인하는 실습 예시입니다(값은 환경마다 다름). 설정 방법은 04 영역 186. Firewall NAT 정책을 참고합니다.
# Rocky (firewalld): zone별 포트 포워딩 목록
sudo firewall-cmd --zone=external --list-forward-ports
# 공통 (iptables nat 테이블): DNAT 규칙과 적중 수
sudo iptables -t nat -L PREROUTING -n -v --line-numbers
# 공통 (nftables): dnat 문이 들어간 규칙 검색
sudo nft list ruleset | grep -n dnat
# firewalld 출력 형식 예시 (값은 환경마다 다름)
port=8443:proto=tcp:toport=443:toaddr=10.30.0.20
port=33890:proto=tcp:toport=3389:toaddr=192.168.10.41 ← 사용자망 PC로 RDP 전달
분석 방법 — 두 번째 줄은 사용자망 PC의 RDP를 외부에 공개하는 포워딩입니다. 공개 서비스 목록에 없다면 즉시 확인 대상이며, 해당 PC의 Windows 로그온 이벤트(원격 로그온 성공·실패)와 방화벽 허용 로그의 출발지를 함께 확인합니다.
관제자가 확인할 질문
| 흔적 | 의심 방향 |
|---|---|
| 포워딩 포트로 다수 출발지의 반복 연결 | 무차별 대입(292. Brute Force 탐지) |
| 포워딩 대상 호스트의 신규 Outbound | 침해 후 후속 행위 |
| 방화벽 로그 포트와 서버 로그 포트 불일치 | 포트 변환 포워딩(정상), 매핑 확인 |
오탐 주의: 포트 변환 포워딩 때문에 방화벽 로그는 8443, 서버 로그는 443처럼 서로 다른 포트가 기록되는 것은 정상입니다. 포트 불일치만으로 로그 위조나 우회로 판단하지 않습니다.