📚 네트워크 · 패킷 분석 › 06. 방화벽 · IDS 기초 — 267편
이전 글: 266. Deny Policy · 다음 글: 268. Firewall NAT

1. 개념

Default Deny(기본 차단) 는 "명시적으로 허용한 것 외에는 모두 차단한다"는 방화벽 정책의 기본 원칙입니다. 반대 개념인 Default Allow는 "명시적으로 차단한 것 외에는 모두 허용한다"입니다.

비교Default Deny (허용 목록형)Default Allow (차단 목록형)
기본 동작목록에 없으면 차단목록에 없으면 허용
새로운 위협허용 목록에 없으면 자동 차단차단 목록에 추가될 때까지 통과
새로운 정상 서비스허용 규칙 추가 전까지 장애바로 동작
관리 부담허용 요청 처리위협 목록 유지
보안 수준높음낮음

Default Deny는 새 서비스가 생길 때 장애가 먼저 나는 불편함이 있지만, 그 불편함이 곧 "모르는 통신은 통과하지 않는다"는 보안 효과입니다.


2. 동작 원리

기본 차단은 정책 테이블 끝에서 적용됩니다. 구현 방식은 두 가지입니다.

[허용 규칙 1] → [허용 규칙 2] → … → [허용 규칙 N]
   ↓ 어느 규칙과도 일치하지 않음
   ├─ 암묵적 기본 차단: 장비·체인의 기본 정책(policy)이 처리
   │     → 제품에 따라 로그 없음
   └─ 명시적 기본 차단: 마지막 규칙 "any → any deny + log"
         → 규칙 이름·적중 수·로그가 남음

많은 운영 환경이 두 가지를 함께 씁니다. 체인의 기본 정책을 drop으로 두어 실수로 규칙이 빠져도 안전하게 만들고, 그 위에 로그를 남기는 명시적 차단 규칙을 두어 흔적을 확보합니다.

Linux 도구별 기본 정책 표현은 다음과 같습니다.

도구기본 정책 표현확인 방법
iptables체인 정책 -P INPUT DROPiptables -S 첫 줄의 -P
nftableschain의 policy drop;nft list ruleset
ufw (Ubuntu)default deny incomingufw status verbose의 Default 줄
firewalld (Rocky)zone의 target (default, DROP, REJECT)firewall-cmd --list-all의 target

firewalld의 target이 default이면, 허용되지 않은 수신 트래픽은 거부(reject) 방식으로 처리됩니다.


3. 주요 특징

  • Inbound와 Outbound 모두에 적용해야 효과가 완성됩니다. 많은 환경이 Inbound만 Default Deny이고 Outbound는 Default Allow인데, 이 경우 침해 후 외부 통신은 자유롭습니다(264. Outbound Policy).
  • 원격 관리 중 적용은 주의해야 합니다. 원격 SSH 세션에서 기본 정책을 drop으로 바꾼 뒤 허용 규칙이 없으면 접속이 끊길 수 있습니다. 허용 규칙을 먼저 넣고, 기본 정책은 마지막에 바꿉니다.
  • iptables의 규칙 삭제(-F)는 기본 정책을 바꾸지 않습니다. 기본 정책이 DROP인 상태에서 규칙만 모두 지우면 모든 트래픽이 차단됩니다.
  • 기본 차단 규칙의 로그는 "정책이 모르는 통신"의 목록입니다. 이것이 관제 관점의 핵심 가치입니다.

4. 예시

기본 정책을 확인하고, 기본 차단 로그를 요약하는 실습 예시입니다(값은 환경마다 다름).

# 공통 (iptables): 체인별 기본 정책 확인
sudo iptables -S | grep '^-P'

# Ubuntu (ufw): 기본 정책 확인
sudo ufw status verbose | grep Default

# Rocky (firewalld): 활성 zone의 target 확인
sudo firewall-cmd --zone=public --get-target --permanent

# 명시적 기본 차단 로그(접두어 FW-DEFAULT-DROP)를 목적지 포트별로 집계
sudo journalctl -k --since "1 hour ago" | grep 'FW-DEFAULT-DROP' \
  | grep -o 'DPT=[0-9]*' | sort | uniq -c | sort -rn | head
# 집계 결과 형식 예시
    412 DPT=23
    288 DPT=445
     97 DPT=3389
      6 DPT=8443   ← 평소에 없던 포트

분석 방법 — 23·445·3389 같은 상위 포트는 인터넷 자동 스캔의 전형적인 대상입니다. 평소 기준선에 없던 포트가 새로 나타나면, 신규 서비스 요청(허용 규칙 누락)인지 새로운 탐색 경향인지 확인합니다.


5. 보안 관점

  • Default Deny는 최소 권한 원칙의 네트워크 버전이며 보안 정책의 출발점입니다.
  • 명시적 기본 차단 규칙이 정책 중간에 잘못 위치하면 그 아래 허용 규칙이 모두 무력화됩니다. 반대로 기본 차단 위에 any → any allow가 있으면 Default Deny는 이름뿐입니다.
  • Default Deny 환경에서도 허용 규칙이 넓으면 효과가 줄어듭니다. 기본 정책과 허용 규칙 품질은 함께 관리해야 합니다.
  • 장애 대응 중 "일단 전체 허용"으로 바꾼 뒤 되돌리지 않는 것이 흔한 사고 원인입니다.

6. SOC 관점

관제자가 확인할 질문

  • 이 장비의 기본 차단은 로그를 남기는 명시적 규칙인가, 로그 없는 암묵적 정책인가?
  • 기본 차단 로그에서 내부 출발지가 차지하는 비율은? 내부 호스트가 정책에 없는 통신을 시도하는 것은 외부 스캔보다 조사 가치가 높습니다.
  • 기본 차단 로그의 포트·출발지 분포가 평소 기준선과 달라졌는가?
기본 차단 로그 변화가능한 원인
외부 출발지, 특정 포트 급증새 취약점 관련 대규모 스캔
내부 출발지, 특정 서버로 급증허용 규칙 누락, 설정 변경
내부 출발지, 다양한 외부 포트악성코드 통신 시도
전체 로그가 갑자기 0로그 전송 장애, 정책 변경

오탐 주의: 로그가 사라진 것은 좋은 소식이 아닐 수 있습니다. 기본 차단 로그가 갑자기 끊기면 규칙 순서 변경이나 로그 수집 장애를 먼저 의심합니다. 로그 설정은 271. Firewall Logging에서 다룹니다.


7. 핵심 정리

  • Default Deny는 명시적으로 허용한 통신 외에는 모두 차단하는 원칙입니다.
  • 체인 기본 정책(암묵적)과 로그를 남기는 마지막 차단 규칙(명시적)을 함께 쓰는 것이 일반적입니다.
  • Inbound와 Outbound 모두에 적용해야 침해 후 외부 통신까지 제한할 수 있습니다.
  • 기본 차단 로그는 "정책이 모르는 통신"의 목록이며, 기준선과 비교해 변화를 찾습니다.
  • 기본 차단 로그의 급증뿐 아니라 갑작스러운 소멸도 확인 대상입니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글