Network/Security

IOS Firewall (3) ZFW

billy0529 2014. 7. 25. 23:41
728x90

<>ZFW



Zone-based Policy Firewall



IOS에서 구현하는 가장 상위 단계의 방화벽으로써 사실상 ASA/PIX 방화벽에 필적하는 기능들을 제공한다.

존 기반으로 방화벽을 구현하며, 각각의 인터페이스에 존을 할당하고 존과존을 묶어 존페어를 만들어 트래픽의 흐름,

응용계층을 포함한 프로토콜 제어, 폴리싱, 파라메터 맵을 이용한 세세한 필터링 기능을 제공한다.



 

   위의 예제에서,


   (1) HOST 에서 SMTP, DNS, FTP 세개의 서버로 각각 서버가 운용하는 프로토콜과 텔넷세션이 가능하도록 설정

   (2) HOST 에서 INTERNET으로 HTTP, ICMP, TELNET 을 허용 그리고 대역폭을 10Mbps 로 제한

   (3) INTERNET 에서 SMTP, DNS, FTP 서버들로 HTTP만 허용




   인터페이스 Zone 할당과 Zone-pair 설정


   (1)(2)(3) 인터페이스에 할당할 Zone의 이름을 생성한다. VLAN 이름생성과 같은 형식으로 보면 됨

   (4) 명령어가 길어서 짤렸는데

   

   zone-pair security host-internet source host destination internet

   zone-pair security host-server source host destination server

   zone-pair security internet-server source internet destination server


   zone-pair를 구성하고 이름을 지어준후 source와 destination을 지정함으로써 존페어의 트래픽 방향을 설정하게 된다.

   일례로 위의 host-internet이라 명명된 zone-pair 는 source가 host,  destination이 internet으로써 host 내부에서 internet 

   외부로 나가는 트래픽에 대한 정책을 맡게 된다는걸 알수 있다.


   (5)(6)(7) 생성한 zone을 인터페이스에 할당한다. 


   

   Host-Server 설정


   (1) 각각 허용될 프로토콜이 다르기 때문에 호스트 주소별로 분류하도록 ACL을 만든다.

   (2) 예제 조건에서 telnet은 모두 허용이므로 telnet을 프로토콜 추가하고 서버별로 사용하는 프로토콜을 각각 추가하여

        클래스맵을 만든다.

   (3) 각각의 ACL과 매칭할 프로토콜들(텔넷과 서버 프로토콜)을 묶은 클래스맵을 같이 다시 한번 묶는 클래스맵을 생성한

        다. 이렇게 이중으로 클래스맵을 복잡하게 만드는 이유는 match 조건에 따른 것인데, (2)의 클래스맵에서는 두개의 프

        로토콜중 match-any 명령으로 하나만 일치해도 되도록 설정해야하지만,  (3)의 클래스맵에서는 (2)의 클래스맵과 각

        서버의 ACL이 모두 매칭(match-all) 하도록 만들어야 하기 때문이다.

   (4) 폴리시 맵을 생성하여, 각각 (3)의 클래스맵을 불러온후 inspect 설정해준다.

        여기서 inspect 명령은 패킷을 통과시키고 돌아오는 패킷에 대해서도 허용하는 리플렉시브 ACL과 동일하게 동작하며  

        그 외에 drop은 폐기, pass는 패킷을 통과시키나 리턴되는 패킷은 허용하지 않는다. 

   (5) host-server 로 명명한 zone-pair 에 (4) 폴리시맵을 적용한다.



    

   Host-internet 설정


   (1) host 에서 internet으로 나가는 패킷에 대해 http, icmp, telnet을 허용하는 조건이므로 이를 설정하였다.

   (2) 10Mbps(10,000 bps)로 폴리싱 하도록 설정하였다.

   (3) host-internet 으로 명명한 zone-pair에 폴리시맵을 설정하였다.




   Internet-server 설정


   (1) 서버의 호스트 IP를 ACL에 지정하였다. 사실상 이미 서버와 연결된 인터페이스에 server 존이 명시되어있으므로 

        이 예제에서 ACL은 생성하지 않아도 된다.

   (2) 위에서 생성한 ACL 에 대해 HTTP 프로토콜을 허용하도록 클래스맵 생성

   (3) 폴리시맵에 클래스맵을 설정한후 inspect 명령어를 넣었다.

        여기서 생략되었지만 다른 zone-pair 와 같이 여기에서도 폴리시맵을 zone-pair에 설정해주어야 한다.



   허용한 프로토콜이 제대로 연결되는지 확인하고, 허용하지 않은 프로토콜이 정확히 필터링 되는지도 확인한다.

   show policy-map type inspect zone-pair sessions 명령으로 허용된 세션에 대해 패킷수를 확인하고 어떤 세션이 

   허용되었는지도 확인한다.  


   

'Network > Security' 카테고리의 다른 글

NAT (2) Static, Dynamic NAT  (0) 2014.08.03
NAT (1)  (0) 2014.08.03
IOS Firewall (2) URL Filtering  (0) 2014.07.25
IOS Firewall (1) CBAC  (0) 2014.07.25
ACL (6) DACL  (0) 2014.07.25