Zone-Based Policy Firewall
Материал из Xgu.ru
Zone-Based Policy Firewall — новый подход Cisco к настройке правил межсетевого экрана на маршрутизаторе.
В его основе лежит распределение интерфейсов маршрутизатора по зонам безопасности.
После этого все правила настраиваются для взаимодействий между зонами.
Такой подход облегчает настройки правил межсетевого экрана. Кроме того в Zone-Based Policy Firewall используется Cisco Policy Language (CPL), которая позволяет более гибко, чем в предыдущих версиях межсетевого экрана, настраивать правила фильтрации трафика.
Zone-Based Policy Firewall появился начиная с IOS 12.4(6)T.
Содержание |
[править] Основные понятия
- Правила настраиваются не на интерфейсах, а между зонами
- Использует C3PL (Cisco Common Classification Policy Language)
- По умолчанию всё запрещено
- Зона может состоять из одного интерфейса или нескольких интерфейсов
- В пределах зоны по умолчанию разрешен весь трафик
- Между зонами по умолчанию политика – deny any any
- Трафик предназначенный маршрутизатору или сгенерированный им разрешен по умолчанию
- Политика применяется к парам зон с указанием направления. То есть IN_OUT и OUT_IN это две разных политики
- Если один из интерфейсов принадлежит к какой-либо зоне, другой нет - трафик запрещен
- CBAC и ZBFW можно использовать одновременно, но только на разных интерфейсах
[править] Базовая настройка ZBFW
Порядок настройки ZBFW:
- Создать зоны
- Создать пары зон
- Настроить class-map с указанием трафика к которому будет применяться политика
- Настроить policy-map, которая указывает какие действия будут применяться к трафику в class-map
- Применить policy-map к паре зон
- Добавить интерфейсы в зону
[править] Создание зон и пар зон
Создать зоны:
zone security IN zone security OUT zone security DMZ
Создать пары зон:
zone-pair security IN_OUT source IN destination OUT zone-pair security OUT_IN source OUT destination IN zone-pair security OUT_DMZ source OUT destination DMZ
[править] C3PL
C3PL (Cisco Common Classification Policy Language):
- class-map — описание трафика
- policy-map — назначение действий
- service-policy — применение к паре зон
[править] class-map
Примеры class-map:
class-map type inspect match-any OUT_protocols match protocol http match protocol ssh match protocol telnet class-map type inspect match-all IN_to_DMZ_SSH match access-group name IN_TO_DMZ match protocol ssh class-map type inspect OSPF match access-group name OSPF class-map type inspect match-all IN_OUT match class-map OUT_protocols match access-group name IN_to_remote_OUT
[править] policy-map
Примеры policy-map:
policy-map type inspect IN_OUT_policy class type inspect IN_OUT inspect policy-map type inspect OUT_to_DMZ_policy class OUT_to_DMZ inspect policy-map type inspect IN_to_SELF_policy class OSPF pass class IN_to_SELF inspect class class-default drop log
[править] service-policy. Применение policy-map к паре зон
zone-pair security IN_OUT source IN destination OUT service-policy type inspect IN_OUT_policy zone-pair security IN_DMZ source IN destination DMZ service-policy type inspect IN_to_DMZ_policy
[править] Добавление интерфейсов в зону
interface FastEthernet2/0 zone-member security DMZ interface FastEthernet1/0 zone-member security OUT interface FastEthernet0/0 zone-member security IN
[править] Пример настроек
class-map type inspect match-all all-private match access-group 101 ! policy-map type inspect priv-pub-pmap class type inspect all-private inspect class class-default ! zone security private zone security public ! zone-pair security priv-pub source private destination public service-policy type inspect priv-pub-pmap ! interface FastEthernet4 ip address 172.16.108.44 255.255.255.0 zone-member security public ! interface FastEthernet5 ip address 192.168.108.1 255.255.255.0 zone-member security private ! access-list 101 permit ip 192.168.108.0 0.0.0.255 any
[править] Дополнительные возможности
[править] parameter-map type inspect
parameter-map type inspect DoS_PARAM_MAP max-incomplete high 200 one-minute high 1000 tcp max-incomplete host 100 block-time 0 policy-map type inspect ZONE1-ZONE2-PMAP class type inspect MY_CMAP inspect DoS_PARAM_MAP
[править] Инспектирование на уровне приложений
class-map type inspect http LONG_URLS match request uri length gt 500 policy-map type inspect http HTTP_POLICY class type inspect http LONG_URLS reset class-map type inspect match-all HTTP_TRAFFIC match protocol http match access-group 101 policy-map type inspect MYPOLICY class type inspect HTTP_TRAFFIC inspect service-policy http HTTP_POLICY
Пример:
class-map type inspect http match-any HTTP-L7-CMAP match req-resp protocol-violation match request port-misuse any policy-map type inspect http HTTP-L7-PMAP class type inspect http HTTP-L7-CMAP reset log class-map type inspect match-any HTTP-L4-CMAP match protocol http policy-map type inspect L4-PMAP class type inspect HTTP-L4-CMAP inspect service-policy http HTTP-L7-PMAP zone security Private zone security Public interface GigabitEthernet0/1 zone-member security Private interface Serial0/0 zone-member security Public zone-pair security Priv-to-Pub sour Private dest Public service-policy type inspect L4-PMAP
[править] Просмотр настроек
Зоны и назначенные интерфейсы:
dyn1#show zone security
zone self
Description: System defined zone
zone IN
Member Interfaces:
FastEthernet0/0
zone OUT
Member Interfaces:
FastEthernet1/0
zone DMZ
Member Interfaces:
FastEthernet2/0
Пары зон:
dyn1#sh zone-pair security
Zone-pair name IN_OUT
Source-Zone IN Destination-Zone OUT
service-policy IN_OUT_policy
Zone-pair name IN_DMZ
Source-Zone IN Destination-Zone DMZ
service-policy not configured
Zone-pair name OUT_DMZ
Source-Zone OUT Destination-Zone DMZ
service-policy not configured
dyn1#sh class-map type inspect Class Map type inspect match-all IN_to_DMZ_HTTP (id 12) Match access-group name IN_TO_DMZ Match protocol http Class Map type inspect match-all IN_OUT (id 2) Match class-map OUT_protocols Match access-group name IN_to_remote_OUT Class Map type inspect match-all IN_to_DMZ_SSH (id 13) Match access-group name IN_TO_DMZ Match protocol ssh Class Map type inspect match-any OUT_protocols (id 1) Match protocol http Match protocol ssh Match protocol telnet
dyn1#sh policy-map type inspect IN_to_DMZ_policy
Policy Map type inspect IN_to_DMZ_policy
Class IN_to_DMZ_HTTP
Inspect
Class IN_to_DMZ_SSH
Inspect
Class class-default
Drop
dyn1#sh policy-map type inspect zone-pair
policy exists on zp IN_OUT
Zone-pair: IN_OUT
Service-policy inspect : IN_OUT_policy
Class-map: IN_OUT (match-all)
Match: class-map match-any OUT_protocols
Match: protocol http
0 packets, 0 bytes
30 second rate 0 bps
Match: protocol ssh
0 packets, 0 bytes
30 second rate 0 bps
Match: protocol telnet
0 packets, 0 bytes
30 second rate 0 bps
Match: access-group name IN_to_remote_OUT
Inspect
Session creations since subsystem startup or last reset 0
Current session counts (estab/half-open/terminating) [0:0:0]
Maxever session counts (estab/half-open/terminating) [0:0:0]
Last session created never
Last statistic reset never
Last session creation rate 0
Maxever session creation rate 0
Last half-open session total 0
TCP reassembly statistics
received 0 packets out-of-order; dropped 0
peak memory usage 0 KB; current usage: 0 KB
peak queue length 0
Class-map: class-default (match-any)
Match: any
Drop
0 packets, 0 bytes
dyn1#sh policy-map type inspect zone-pair sessions
policy exists on zp IN_OUT
Zone-pair: IN_OUT
Service-policy inspect : IN_OUT_policy
Class-map: IN_OUT (match-all)
Match: class-map match-any OUT_protocols
Match: protocol http
0 packets, 0 bytes
30 second rate 0 bps
Match: protocol ssh
0 packets, 0 bytes
30 second rate 0 bps
Match: protocol telnet
0 packets, 0 bytes
30 second rate 0 bps
Match: access-group name IN_to_remote_OUT
Inspect
Class-map: class-default (match-any)
Match: any
Drop
0 packets, 0 bytes
dyn1#sh policy-map type inspect zone-pair OUT_DMZ se
policy exists on zp OUT_DMZ
Zone-pair: OUT_DMZ
Service-policy inspect : OUT_to_DMZ_policy
Class-map: OUT_to_DMZ (match-all)
Match: access-group name OUt_TO_DMZ
Match: class-map match-any DMZ_prot
Match: protocol ssh
0 packets, 0 bytes
30 second rate 0 bps
Match: protocol http
0 packets, 0 bytes
30 second rate 0 bps
Inspect
Number of Established Sessions = 1
Established Sessions
Session 67A20D80 (192.168.6.2:51083)=>(172.16.1.8:22) ssh:tcp SIS_OPEN
Created 00:00:54, Last heard 00:00:40
Bytes sent (initiator:responder) [1151:1651]
Class-map: class-default (match-any)
Match: any
Drop
4 packets, 96 bytes
[править] Взаимодействие с другими функциями
[править] Дополнительная информация
- Conceptual Difference Between Cisco IOS Classic and Zone-Based Firewalls
- PPTP Connection Through Zone Based Firewall Router with NAT Configuration Example
- Zone-Based Policy Firewall Design and Application Guide
- Using VPN with Zone-Based Policy Firewall