Skip to Content
05. Security24. Zone Based Firewall Configuration Example

Zone Based Firewall 구성 예제

Zone Based Firewall(ZBF) 는 Cisco IOS 라우터에서 사용 가능한 가장 고급 stateful 방화벽 방법입니다. ZBF의 기본 아이디어는 인터페이스에 access-list를 할당하지 않고, 다른 영역(zone) 을 만든다는 것입니다. 인터페이스는 다른 영역에 할당되며, 보안 정책은 영역 사이의 트래픽에 할당됩니다. ZBF가 왜 유용한지 보여드리기 위해 그림을 보여드리겠습니다.

17_Zone Based Firewall Configuration Example_img_p02_01

위에서 LAN, DMZ, 두 ISP가 있는 WAN을 가진 작은 네트워크를 볼 수 있습니다. 보안 정책이 다음과 같다고 가정해 봅시다.

  • LAN의 트래픽은 WAN으로 허용되지만, HTTP와 HTTPS 서버에만 허용됩니다.
  • LAN의 트래픽은 DMZ로 제한 없이 허용됩니다.
  • DMZ의 트래픽은 LAN으로 허용되지 않습니다.
  • DMZ의 트래픽은 WAN으로 허용되지만, DNS와 HTTP 서버에만 허용됩니다.
  • WAN의 트래픽은 LAN으로 허용되지만, FTP 서버에만 허용됩니다.

access-list로 이를 달성하려면, 여러 access-list를 만들고 다른 인터페이스에 인바운드 및/또는 아웃바운드로 연결해야 합니다. 적게 말해도, 이를 하는 것은 관리상 고통이 됩니다. 가능하지만 짜증납니다.

zone-based firewall로는 보안 정책을 인터페이스가 아니라 보안 영역에 적용합니다. 인터페이스는 다른 영역의 멤버가 됩니다.

17_Zone Based Firewall Configuration Example_img_p03_01

위에서 LAN, WAN, DMZ 세 영역을 볼 수 있습니다. 인터페이스는 적절한 영역에 할당되며, 이제 영역 사이의 트래픽에 보안 정책을 적용할 수 있습니다. 예를 들어:

  • LAN to WAN
  • LAN to DMZ
  • WAN to LAN
  • WAN to DMZ
  • DMZ to WAN
  • DMZ to LAN

영역 사이의 트래픽에 대한 보안 정책을 만들기 위해 영역 페어(zone pair) 를 만들어야 합니다. 영역 페어를 구성하고 그것에 보안 정책을 적용해 한 영역에서 다른 영역으로 어떤 트래픽이 허용되는지 결정합니다. 모든 보안 정책은 영역 페어에 연결됩니다.

참고: Zone Based Firewall은 멀티캐스트 트래픽을 지원하지 않습니다. 이런 종류의 트래픽은 검사되지 않습니다. 운영 환경에서 사용하려면 염두에 두어야 할 점입니다.


1. 구성

다음 토폴로지를 사용합니다.

17_Zone Based Firewall Configuration Example_img_p04_01

위에서 라우터 세 개와 LAN과 WAN이라는 두 영역을 볼 수 있습니다. R2에 ZBF를 구성하겠습니다. 연결성을 위해, R1과 R3에서 R2를 가리키는 정적 라우트를 만듭니다.

R1(config)# ip route 0.0.0.0 0.0.0.0 192.168.12.2 R3(config)# ip route 0.0.0.0 0.0.0.0 192.168.23.2

이제 방화벽을 구성할 수 있습니다.


2. 영역 구성

먼저 두 영역을 만듭니다.

R2(config)# zone security LAN R2(config)# zone security WAN

둘째, 인터페이스를 적절한 영역에 할당합니다.

R2(config)# interface fastEthernet 0/0 R2(config-if)# zone-member security LAN R2(config)# interface fastEthernet 0/1 R2(config-if)# zone-member security WAN

영역 구성을 검증해 봅시다.

R2# show zone security zone self Description: System defined zone zone LAN Member Interfaces: FastEthernet0/0 zone WAN Member Interfaces: FastEthernet0/1

영역이 활성화되었고 인터페이스가 할당되었습니다. 이제 영역 페어를 만들 수 있습니다.


3. 영역 페어 구성

R2(config)# zone-pair security LAN-TO-WAN source LAN destination WAN R2(config-sec-zone-pair)# description LAN-TO-WAN TRAFFIC R2(config)# zone-pair security WAN-TO-LAN source WAN destination LAN R2(config-sec-zone-pair)# description WAN-TO-LAN TRAFFIC

위에서 영역 페어 두 개를 만듭니다. 하나는 LAN에서 WAN으로 가는 트래픽용이고, 다른 하나는 WAN에서 LAN으로 가는 트래픽용입니다. 설명은 선택사항이지만 영역이 많을 때 권장됩니다. 구성을 검증해 봅시다.

R2# show zone-pair security Zone-pair name LAN-TO-WAN Description: LAN-TO-WAN TRAFFIC Source-Zone LAN Destination-Zone WAN service-policy not configured Zone-pair name WAN-TO-LAN Description: WAN-TO-LAN TRAFFIC Source-Zone WAN Destination-Zone LAN service-policy not configured

이제 영역, 영역 페어, 영역에 할당된 인터페이스가 있습니다. 기본적으로 모든 트래픽은 차단됩니다. 이것이 사실인지 확인해 봅시다.

R1# ping 192.168.23.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.23.3, timeout is 2 seconds: ..... Success rate is 0 percent (0/5)

영역에 인터페이스만 넣어둔 상태에서는 “영역 페어는 있지만 service-policy가 없다 = 모두 드롭”이 기본 동작이기 때문에 LAN↔WAN 간 핑이 실패합니다.


4. 보안 정책

이제 “LAN에서 WAN으로 나가는 트래픽은 허용(검사)” 하는 실제 정책을 만들어 봅시다. ZBF는 MQC와 똑같이 class-map → policy-map → service-policy 구조를 따릅니다. 차이는 inspect 타입을 쓰고, 적용 지점이 영역 페어라는 점입니다.

먼저 어떤 트래픽을 검사할지 class-map으로 정의합니다. 여기서는 ICMP, HTTP, HTTPS를 LAN→WAN으로 허용하겠습니다.

R2(config)# class-map type inspect match-any LAN-TO-WAN-CLASS R2(config-cmap)# match protocol icmp R2(config-cmap)# match protocol http R2(config-cmap)# match protocol https

다음으로 policy-map을 만들어 위 트래픽을 inspect(stateful 허용) 시킵니다.

R2(config)# policy-map type inspect LAN-TO-WAN-POLICY R2(config-pmap)# class type inspect LAN-TO-WAN-CLASS R2(config-pmap-c)# inspect R2(config-pmap-c)# exit R2(config-pmap)# class class-default R2(config-pmap-c)# drop

마지막으로 이 policy-map을 LAN→WAN 영역 페어에 연결합니다.

R2(config)# zone-pair security LAN-TO-WAN source LAN destination WAN R2(config-sec-zone-pair)# service-policy type inspect LAN-TO-WAN-POLICY

이제 동일한 핑을 다시 시도하면 정상적으로 동작합니다.

R1# ping 192.168.23.3 !!!!! Success rate is 100 percent (5/5)

WAN→LAN 방향에는 service-policy를 걸지 않았으므로 외부에서 LAN으로 들어오는 트래픽은 계속 거부됩니다. 다만 ZBF는 stateful이기 때문에, LAN→WAN으로 나간 트래픽의 리턴 트래픽은 자동으로 허용됩니다. 별도의 “리턴용 ACL”을 만들 필요가 없다는 점이 access-list 기반 방식 대비 가장 큰 장점입니다.

세션 상태는 다음 명령으로 확인할 수 있습니다.

R2# show policy-map type inspect zone-pair sessions

각 영역 페어별로 활성 세션과 바이트 카운터가 표시되어, 어떤 트래픽이 실제로 통과하고 있는지 바로 보입니다.


5. Zone Self

show zone security를 보면 만든 적도 없는 self 라는 영역이 기본으로 존재합니다. 이 영역은 “라우터 자기 자신”을 의미합니다. 즉 R2로 들어오거나(R2가 목적지인 트래픽), R2에서 나가는(R2가 출발지인 트래픽) 관리 트래픽이 속하는 가상 영역입니다.

기본 규칙은 다음과 같습니다.

  • self에서 다른 영역, 또는 다른 영역에서 self로 가는 트래픽은 기본적으로 허용 됩니다. 이 덕분에 ZBF를 켜도 R2에 대한 SSH/관리 세션이 끊기지 않습니다.
  • 만약 이 트래픽도 제한하고 싶다면, self를 소스 또는 목적지로 하는 영역 페어를 만들고 검사 정책을 걸면 됩니다.

예를 들어 “WAN에서 R2로 들어올 수 있는 것은 SSH만” 으로 묶으려면 다음과 같이 구성합니다.

R2(config)# class-map type inspect match-any MGMT-CLASS R2(config-cmap)# match protocol ssh ! R2(config)# policy-map type inspect TO-SELF-POLICY R2(config-pmap)# class type inspect MGMT-CLASS R2(config-pmap-c)# inspect R2(config-pmap-c)# class class-default R2(config-pmap-c)# drop ! R2(config)# zone-pair security WAN-TO-SELF source WAN destination self R2(config-sec-zone-pair)# service-policy type inspect TO-SELF-POLICY

이제 WAN 측에서 R2로 들어올 수 있는 것은 SSH뿐이고, 나머지는 모두 드롭됩니다.

참고: ZBF는 멀티캐스트/브로드캐스트 트래픽과 일부 컨트롤 플레인 트래픽을 검사하지 못합니다. OSPF, EIGRP, HSRP처럼 라우터 자신을 출발/목적지로 하는 프로토콜은 대부분 self 영역으로 분류되어 기본 허용되지만, 그 외의 멀티캐스트 애플리케이션을 통과시켜야 한다면 pass 액션을 사용한 별도 정책을 고려해야 합니다.


6. 결론

  • Zone Based Firewall은 Cisco IOS 라우터에서 사용할 수 있는 가장 정교한 stateful 방화벽 이며, 인터페이스 기준이 아닌 영역(zone) + 영역 페어(zone-pair) + 검사 정책(type inspect policy-map) 구조로 트래픽을 제어합니다.
  • 구성 순서는 ① zone security 로 영역 생성 → ② 인터페이스를 zone-member로 할당 → ③ zone-pair 로 방향 정의 → ④ class-map/policy-map type inspect 로 정책 작성 → ⑤ service-policy type inspect 로 영역 페어에 연결 입니다.
  • 같은 영역 내부의 트래픽은 별도의 영역 페어를 만들지 않는 한 자동 허용, 다른 영역 사이의 트래픽은 서비스 정책이 없는 한 자동 거부가 기본입니다.
  • self 영역은 라우터 자신을 가리키는 시스템 예약 영역으로, 관리 트래픽까지 포함해 방화벽 정책에 넣을 수 있습니다.
  • 별도의 전용 방화벽을 두기 힘들고 트래픽 양이 많지 않은 브랜치급 ISR에서 특히 유용하며, 기존 access-list로는 관리하기 어려웠던 “다수 인터페이스 × 양방향 ACL” 구조를 훨씬 깔끔하게 대체할 수 있습니다.

출처: networklessons.com - Zone Based Firewall Configuration Example

태그: Firewall, Security