FIREWALL · NAT방화벽의 역할과 동작 원리
방화벽은 서로 다른 보안 영역 사이에서 어떤 통신을 허용하고 차단할지 결정하는 장비입니다. 일반적인 Stateful 방화벽은 L3의 IP, L4의 프로토콜·포트와 세션 상태를 기본으로 판단하며, 차세대 방화벽은 애플리케이션·사용자·URL 같은 L7 정보까지 정책 조건으로 사용할 수 있습니다.
실제 네트워크에서는 인터넷, DMZ, 내부 업무망, 서버망, 관리망처럼 신뢰 수준이 다른 망 사이에 방화벽을 배치합니다. 단순히 ‘외부를 막는 장비’가 아니라 망 사이의 통신 목적을 최소 권한으로 정의하고 그 기록을 남기는 통제 지점입니다.
→그림 해설 · 인터넷 공개 서비스는 DMZ에 두고, DMZ와 내부망 사이도 별도 최소 권한 정책으로 통제합니다.
01보안 영역과 DMZ는 왜 필요한가
DMZ는 인터넷에 공개해야 하는 웹·메일·DNS 같은 서비스를 내부 업무망과 분리하는 중간 보안 영역입니다. 공개 서버가 침해되더라도 공격자가 곧바로 내부 사용자망이나 핵심 DB망으로 이동하지 못하도록 경계를 하나 더 둡니다.
- 인터넷→DMZ는 공개 서비스에 필요한 포트만 허용합니다.
- DMZ→내부는 업무상 꼭 필요한 백엔드 연결만 별도 정책으로 허용합니다.
- 내부→DMZ와 관리망→장비도 목적과 담당자를 구분해 기록합니다.
02정책은 위에서 아래로 첫 일치
대부분의 방화벽은 출발지·목적지·서비스·사용자·시간 조건을 위에서 아래로 비교하고 첫 번째 일치 정책을 적용합니다. 넓은 허용 정책이 위에 있으면 아래의 세밀한 차단 정책은 실행되지 않습니다.
- 구체적인 예외와 차단을 위쪽에, 넓은 범위 정책을 아래쪽에 배치합니다.
- 정책 이름에는 업무·요청자·대상 서비스가 드러나게 작성합니다.
- Hit count와 로그를 통해 실제 사용 여부를 확인한 뒤 미사용 정책을 정리합니다.
03왜 any-any 허용이 위험한가
any-any 허용은 출발지와 목적지, 서비스 범위를 제한하지 않기 때문에 의도하지 않은 신규 서버와 관리 포트까지 자동으로 열 수 있습니다. 침해가 발생하면 내부 횡적 이동과 데이터 유출 경로가 넓어지고 어떤 업무 때문에 허용했는지 설명하기도 어렵습니다.
- 긴급 임시조치라면 만료 시각·승인자·모니터링 조건을 함께 기록합니다.
- 주소·서비스 그룹을 사용하되 그룹 구성원 변경도 정책 변경으로 관리합니다.
- 차단 문제를 해결하기 위해 무조건 any-any를 추가하지 말고 첫 불일치 단계부터 확인합니다.
04세션·NAT·라우팅까지 함께 보는 이유
Stateful 방화벽은 최초 패킷이 정책을 통과하면 5-Tuple과 TCP 상태를 세션 테이블에 기록합니다. NAT는 주소를 바꾸고 라우팅은 다음 홉을 결정하므로 정책만 ALLOW여도 변환이나 리턴 경로가 틀리면 서비스는 실패합니다. 요청과 응답이 같은 방화벽을 지나는 대칭 라우팅은 세션 추적이 쉽지만, 서로 다른 장비를 지나는 비대칭 라우팅은 응답 장비에 세션이 없어 차단될 수 있습니다.
- 정책이 NAT 전 주소를 보는지 NAT 후 주소를 보는지는 제품의 packet flow로 확인합니다.
- DNAT는 공개 주소를 내부 서비스로, SNAT는 내부 출발지를 외부용 주소로 변환합니다.
- ECMP·PBR·HA 절체가 리턴 경로를 바꾸는지 확인하고, 비대칭이 불가피하면 장비 구성과 양방향 정책을 명확히 검증합니다.
- HA에서는 설정·정책·NAT·세션·VIP 인계를 각각 따로 검증합니다.