📚 네트워크 · 패킷 분석 › 06. 방화벽 · IDS 기초 — 261편
이전 글: 260. Source Port 정책 · 다음 글: 262. Protocol 정책
Destination Port 정책은 패킷의 목적지 포트를 조건으로 삼는 규칙입니다. 목적지 포트는 서버가 서비스를 열어 둔 번호이므로, 방화벽 정책에서 "어떤 서비스에 접근을 허용하는가" 를 표현하는 핵심 조건입니다. 포트 번호 체계와 서비스별 포트는 02 영역 57. Destination Port, 위험 포트 목록은 88. 위험 Port에서 다뤘습니다.
방화벽에서는 포트를 보통 프로토콜과 묶은 서비스 객체로 다룹니다.
| 서비스 객체 예 | 프로토콜 / 포트 | 정책 설계 시 주의 |
|---|---|---|
| HTTPS | TCP 443 (HTTP/3는 UDP 443) | UDP 443 허용 여부를 별도로 결정 |
| DNS | UDP 53, TCP 53 | 큰 응답·영역 전송에 TCP 사용 |
| SSH | TCP 22 | 관리망 출발지 제한과 함께 |
| RDP | TCP 3389 (UDP 3389 병행 가능) | 외부 직접 공개 금지 |
| SMB | TCP 445 | 경계에서 차단, 내부 간에도 제한 |
목적지 포트 정책은 "서버에 열린 포트" 와 "방화벽이 허용한 포트" 의 교집합만 실제로 접근 가능하게 만듭니다.
서버에서 LISTEN 중인 포트: 22, 80, 443, 3306, 8080
방화벽 Inbound 허용 포트: 443
↓
외부에서 실제 접근 가능: 443
↓
나머지(22, 80, 3306, 8080) → 방화벽 차단 로그로만 흔적
이 구조 때문에 두 가지 점검이 필요합니다.
| 목적지 포트 설계 원칙 | 이유 |
|---|---|
| 서비스 단위로 포트를 명시 | any 포트 허용은 모든 서비스 노출 |
| 관리 포트는 별도 규칙으로 분리 | 출발지 제한을 따로 걸기 위해 |
| 비표준 포트 서비스는 설명에 명시 | 로그 해석 시 오해 방지 |
| 사용하지 않는 서비스 객체 정리 | 적중 0 규칙이 쌓이는 것 방지 |
서버의 열린 포트와 방화벽 허용 포트를 대조하는 실습 예시입니다(값은 환경마다 다름).
# 공통: 서버에서 LISTEN 중인 TCP/UDP 포트와 프로세스 확인
sudo ss -tulnp
# Rocky (firewalld): 허용된 서비스와 포트 확인
sudo firewall-cmd --list-services
sudo firewall-cmd --list-ports
# Ubuntu (ufw): 허용 규칙 확인
sudo ufw status numbered
# 대조 결과 정리 형식 예시
포트 LISTEN 방화벽 허용 판단
22/tcp 예 관리망만 정상
443/tcp 예 any 공개 서비스
3306/tcp 예 아니오 외부 차단, 내부 접근 범위 별도 확인 필요
8080/tcp 예 아니오 용도 확인 필요 (개발용 서비스 잔존 가능성)
firewalld의 --list-services는 서비스 이름(예: ssh, https)으로 표시되므로 실제 포트는 firewall-cmd --info-service=https로 확인합니다.
목적지 포트는 로그에서 공격 의도를 가장 빠르게 보여 주는 필드입니다. 포트 필드 해석은 02 영역 95. Firewall Log의 Port에서 자세히 다뤘습니다.
| 목적지 포트 패턴 | 의심 방향 |
|---|---|
| 한 출발지 → 한 목적지 IP의 다수 포트 | 수직 포트 스캔 |
| 한 출발지 → 다수 IP의 같은 포트 | 수평 스캔, 특정 취약점 탐색 |
| 내부 PC → 외부 비표준 포트 반복 허용 | C2·터널 가능성 |
| 내부 PC → 다른 PC 445·3389 다수 | 내부 전파 가능성 |
관제자가 확인할 질문
오탐 주의: 보안 점검 도구, 자산 관리 솔루션, 모니터링 서버도 다수 포트에 접근합니다. 출발지가 등록된 운영 도구인지 먼저 확인합니다.