network 보안/firewall

ZFW (Zone-based Firewall)

byeong07 2016. 8. 7. 12:44

안녕하세요.

오늘은 ZFW(Zone-based Firewall)에 대해 알아보겠습니다.

 

- Cisco IOS 방화벽 중 하나이다.

- CBAC의 경우 기존의 Interface 기반 Packet filtering 방식에 추가적으로 SPI (Stateful Packet Inspection) 기능을 추가한 것이다.

 다수의 Interface를 사용할 경우 Interface 각각 CBAC를 설정해야 한다는 불편함이 있다.

- ZFW의 경우는 CBAC와 다르게 Interface 기반이 아니라  Zone 기반으로 동작을 수행하고 각 Interface를 특정 Zone에 포함시키게 되면 서로 동일한 Zone에 포함된 Interface 사이에서만 통신이 가능하다.

 서로 다른 Zone에 포함된 Interface는 기본적으로
 통신이 불가능하고 관리자가 설정을 해야만 통신이 가능하다.

- ZFW의 특징은 다음과 같다.
  1) SPI (Stateful Packet Inspection)
  2) DoS 공격 완화 기법
  3) Throughput Limit(QoS)
  4) URL Filter
  5) Application inspection 및 Control

 - ZFW의 설정 순서는 다음과 같다.
   1) Zone 생성 및 Interface 할당
   2) CPL(Cisco Policy Language)을 사용하여 정책을 설정
       -> 필요한 경우 Access-list를 사용하여 특정 대역 정의
       -> class-map을 생성하여 트래픽을 분류
       -> policy-map으로 분류한 class-map에 대한 정책을 정의
           (CoPP와 비슷)
   3) zone-pair를 생성한 후 위에서 설정한 policy-map을 적용

   zone-pair
   : 특정 zone에서 특정 zone으로 이동하는 것을 말한다.
      DNS,Web으로 갈 수있는 zone-pair
      Inside에서 Outside로 갈 수 있는 zone-pair를 생성
      단방향이지만 3세대라 SPI 자동으로 돌아오는 것이 허용된다.

   해당 zone 영역으로 interface를 구분

   f/w 방화벽  interface 구분
                    zone based 구분

 

 

<IOS_FW>
conf t
zone security Inside -> Inside라는 zone 생성
exit
zone security DMZ  -> DMZ란 zone 생성
exit
zone security Outside -> Outside란 zone 생성
exit

int fa 0/0
zone-member security Inside
: interface를 zone에 할당

int fa 1/0
zone-member security DMZ

int fa 0/1
zone-member security Outside


 

 

- verify
show zone security
: zone based firewall 설정된 것을 확인

 

 

 

 

 

- Access-Rule
[1. Inside -> Outside]
 -> 모든 트래픽 허용

[2. Inside -> DMZ]
 -> DNS, HTTP, HTPPs, SMTP, POP3, IMAP, FTP 허용

[3. DMZ -> Inside]
 -> 모든 트래픽 차단

[4. DMZ -> Outside]
 -> DNS, SMTP

[5. Outside -> Inside]
 -> 모든 트래픽 차단

[6. Outside -> DMZ]
 -> DNS, HTTP, HTTPs, SMTP, POP3, IMAP

<IOS_FW>

 

 

 

conf t
access-list 100 permit ip any any
: 모든 ip 대역을 허용한다.


 

 

 

 

 

class-map type inspect IN->OUT_C -> class-map을 만든다.
match access-group 100
exit

 

 


 

policy-map type inspect IN->OUT_P
class type inspect IN->OUT_C - 위에 class-map 불러오는 것
inspect - 내보냈다가 응답을 받아온 것

 

 

zone-pair security IN->OUT source Inside destination Outside
:Inside에서 Outside로 가는 것을 IN->OUT라 한다.
service-policy type inspect IN->OUT_P
exit


show policy-map type inspect zone-pair
zone-pair : IN->OUT
service-policy


설정 후 admin_admin에서 8.8.8.8 -t로 통신가능


admin_a에서 ping 100.1.2.2

 

 admin_a에서 zone based firewall 설정 후 외부로 통신이 안된 것 확인

 

 

nslookup www.itbank.com

 

 

 

 

<IOS_FW>


 

 

 

conf t
class-map type inspect (match-all) DNS_C
: match-all이란 옵션은 기본적으로 설정되어 있다.
match  protocol dns

 

 

 

 

 

class-map type inspect match-any WWW

match protocol http
match protocol https
: match any란 옵션은 http나 https일 때 적용한다.

access-list 101 permit ip any host 100.1.2.1

 

access-list 102 permit ip any host 100.1.2.2

 

 

 

 

class-map type inspect match-all DNS_SER

 match access-group 101
 match class-map DNS_C
: DNS_SER라는 class-map에서 밑에 조건을 모두 만족하는 
  match-all 옵션 설정

class-map type inspect match-all WEB_SER
match access-group 102

match class-map WWW


 

 

 

-> 밑에 조건 중 하나가 만족하면 적용하는 match-any 옵션 설정  

 

 

 

 

 

 

 -> policy-map 정책을 불러오는 설정

 

 

policy-map type inspect IN->DMZ_P
 class type inspect DNS_SER
 inspect
 exit
 class type inspect WEB_SER
  inspect
 exit
 class type inspect MAIL
  inspect
 exit
 class type inspect FTP_C
 inspect
 exit
exit

zone-pair security IN->DMZ source Inside destination DMZ  : inside에서 dms로 갈 떄 in->dmz로 만든 것이다

service-policy type inspect IN->DMZ_P
: policy-map을 만든 정책을 불러온다.
exit


 

[4. DMZ -> Outside]
dns, smtp

class-map type inspect SMTP_C
 match protocol smtp

policy-map type inspect DMZ->OUT_P
 class type inspect DNS_C
 inspect
 exit

class type inspect SMTP_C
 inspect
 exit
exit

zone-pair security DMZ->OUT source DMZ destination Outside
service-policy type inspect DMZ->OUT_P

[6. Outside -> DMZ]
 -> DNS, HTTP, HTTPs, SMTP, POP3, IMAP

policy-map type inspect OUT->DMZ_P
 class type inspect DNS_SER
 inspect
exit
class type inspect WEB_SER
 inspect
exit
class type inspect MAIL
 inspect
exit
exit

zone-pair security OUT->DMZ source Outside destination DMZ
 service-policy type inspect OUT->DMZ_P

일반적으로 match-any를 사용
하나로 묶어서 사용할 떄 match-any

match-all

 

 

 

 

admin_a에서 nslookup을 하면 inspect 되어 응답이 된다.

 

 

web에서도 itbank.com으로 접속하면 잘 나온다.

 

 

 

-> ping 100.1.2.2를 하면 icmp 허용이 안되서 request time out이라 나온다.

 

 

class-map 사용
모든 트래픽을 허용할 때 사용

프로토콜 뿐 아니라 특정 ip 대역을 정의할 때 사용

 
- URL Filter

- ZFW의 경우는 Regex를 사용하여 특정 URL을 차단하는 것이
  가능하다.

ex. Inside에서 Outside로 나가는 HTTP 중 [naver.com]에 해당되는
     URL은 차단하시오

<IOS_FW>

 

conf t

 

parameter-map type urlfilter DENY_URL -> 이름 설정

 

exclusive-domain deny .naver.com
 -> naver.com이란 domain을 deny

 

exclusive-domain permit .* ->any (regex)
 -> 그 외 나머지는 허용

 

allow-mode on

 

exit

 

 

class-map type inspect HTTP_C
: class-map 생성
 

 

match protocol http
 : http 프로토콜만 match

 

 

 

 

-> admin_a에서 www.naver.com으로 접속
    URL filter 설정으로 naver.com으로 접속이 거부된 것을 알 수 있다.
     HTTP 403 사용 권한 없음이라 나온다.


 

- DoS Attack Mitigation

- 외부에서 특정 서버로 접근하려는 세션의 숫자를 제한하여
  DoS 공격을 방어할 수 있다.

- Outside에서 DMZ Web 서버로 접근하는 세션의 숫자를 4개로
  제한

 

<IOS_FW>

 

 

conf t

 

parameter-map type inspect OUT->DMZ_WEB - 검사

 

session maximum 4  -> session 최대 4로 설정
exit

 

policy-map type inspect OUT->DMZ_P
class type inspect WEB_SER
inspect OUT->DMZ_WEB

-> 기존에 생성되어 있던 Policy-map에 추가적인
     parameter-map 옵션을 적용시킨 것이다.
     때문에 별도의 적용 과정은 필요하지 않다.
    (이미 zone-pair에 적용되어 있다.)

 


 

-> Test는 Outside zone에 XP2를 연결해서 확인해보자
    'www.itbank.com' 사이트는 연결 하나 당 기본적으로
    세션을 2개 사용하기 때문에 3번째 브라우저로 접근을 시도하면
    페이지가 정상적으로 열리지 않는 것을 확인할 수 있다.

-> 위와 같이 특정 zone에서 서버의 session을 모두 차지하는 것을
     방지할 수 있다.

 

'network 보안 > firewall' 카테고리의 다른 글

Cisco ASA Firewall  (0) 2016.09.04
Throughput Limit  (0) 2016.08.09