📚 네트워크 · 패킷 분석 › 06. 방화벽 · IDS 기초 — 259편
이전 글: 258. Source IP 정책 · 다음 글: 260. Source Port 정책
Destination IP 정책은 패킷의 목적지 IP 주소를 조건으로 삼는 규칙입니다. "어디로 가는 트래픽인가"를 기준으로, 어떤 자산을 누구에게 열어 줄지를 정합니다. 출발지 정책(258. Source IP 정책)이 "누가"를 통제한다면, 목적지 정책은 보호 대상 자산을 중심으로 통제합니다.
| 방향 | 목적지 정책의 역할 | 예 |
|---|---|---|
| Inbound | 외부에 공개할 서버만 지정 | 인터넷 → DMZ 웹 서버 10.30.0.10만 허용 |
| 내부 간 | 중요 자산 접근 범위 제한 | 사용자망 → DB 서버 대역 차단 |
| Outbound | 내부에서 나갈 수 있는 목적지 제한 | 서버 대역 → 업데이트 서버만 허용 |
목적지를 특정하지 않은 규칙(목적지 any)은 "해당 포트를 쓰는 모든 서버"를 허용하므로, 새 서버가 추가될 때마다 의도하지 않게 노출 범위가 넓어집니다.
목적지 IP를 판단할 때 가장 헷갈리는 부분은 NAT가 있을 때 어떤 주소를 기준으로 정책을 쓰는가입니다.
인터넷 클라이언트 → 공인 IP 203.0.113.10:443 (방화벽 외부 주소)
↓
[DNAT] 목적지 203.0.113.10 → 10.30.0.10 으로 변환
↓
[정책 평가] 목적지 조건을 203.0.113.10(변환 전)으로 쓰는가,
10.30.0.10(변환 후)으로 쓰는가? → 제품마다 다름
↓
DMZ 웹 서버 10.30.0.10 전달
목적지를 표현하는 방법에 따라 정책의 정확도와 관리 부담이 달라집니다.
| 표현 방식 | 장점 | 한계 |
|---|---|---|
| 단일 IP / 대역 | 명확, 로그와 직접 대조 가능 | 서버 IP 변경 시 규칙 수정 필요 |
| 주소 객체·그룹 | 여러 규칙에서 재사용 | 그룹 구성원 변경이 규칙 변경 기록에 안 보일 수 있음 |
| FQDN 객체 | 도메인 기준 허용 | 방화벽의 DNS 해석 결과와 실제 접속 IP가 다를 수 있음 |
| 동적 객체(클라우드 태그 등) | 자동 반영 | 특정 시점에 어떤 IP였는지 사후 확인이 어려움 |
서버 대역의 Outbound를 특정 목적지로 제한하는 실습 예시입니다(nftables, Rocky/Ubuntu 공통, 값은 환경마다 다름).
# 실습 예시 (inet fw 테이블 forward 체인 일부)
set srv_net { type ipv4_addr; flags interval; elements = { 10.20.0.0/24 } }
set update_mirror { type ipv4_addr; elements = { 192.0.2.50, 192.0.2.51 } }
ip saddr @srv_net ip daddr @update_mirror tcp dport 443 accept
ip saddr @srv_net ip daddr 10.20.0.53 udp dport 53 accept
ip saddr @srv_net counter log prefix "FW-SRV-EGRESS-DENY " drop
분석 방법 — 이 정책에서 FW-SRV-EGRESS-DENY 로그가 발생했다면 다음 순서로 봅니다.
관제자가 확인할 질문
| 목적지 패턴 | 의심 방향 |
|---|---|
| 서버 대역 → 처음 보는 외부 IP 허용 | C2, 유출, 정책 누락 |
| 사용자 PC → 다른 사용자 PC 대역 다수 | 내부 전파, 정찰 |
| 외부 → 비공개 서버 IP 허용 | 과도한 허용 규칙, 잘못된 NAT |
오탐 주의: 목적지가 클라우드·CDN IP라면 동일 IP에 수많은 정상 서비스가 있습니다. 목적지 IP 단독으로 판단하지 말고 도메인·SNI·통신량을 함께 봅니다. 목적지 분석 절차는 241. Destination IP 분석을 참고합니다.