Zone based firewall cisco настройка
Zone Based Firewall (здесь и далее ZFW) – новое направление на маршрутизаторах под управлением операционной системы Cisco IOS для конфигурирования правил доступа между сетями. До появления этой технологии трафик фильтровался с помощью списков доступа ACL и динамической инспекции трафика (CBAC). И ACL и правила CBAC’а применялись непосредственно на физические интерфейсы, что во многих случаях не способствует масштабируемости и гибкости решения.
В ZFW появляется новое ключевое понятия – зона, которая состоит из набора различных интерфейсов, которые должны иметь одинаковую политику сетевой безопасности (или, иначе говоря, одинаковый уровень доверия). На рисунке, вы можете увидеть три зоны безопасности, назначенные на различные интерфейсы маршрутизатора:
Разрешения для прохождения того или иного трафика делаются между зонами, не между интерфейсами. По умолчанию, трафик разрешен между интерфейсами одной зоны безопасности и запрещен между разными зонами. Трафик между интерфейсом, который относится к какой-либо зоне, и интерфейсом, который не относится ни к одной зоне, запрещен. В дополнение ко всему, вы не можете применять классические правила фаирволла (CBAC, ACL) к интерфейсу, который принадлежит какой-либо зоне безопасности.
Существует одна зона, которая есть на всех маршрутизаторах и создана по-умолчанию и известна как self-зона. К этой зоне относятся все IP-адреса маршрутизатора. Трафик между self-зоной и любой другой по-умолчанию разрешен. Однако, вы можете применить политику между self-зоной и любой другой чтобы контролировать трафик, который генерируется маршрутизатором. Если вы примените политику от любой зоны к self-зоне, то трафик от self-зоны в обратном направлении будет все равно разрешен (пока вы явно это не запретите).
Когда вы хотите применить политики к трафику, который проходит между зонами, необходимо помнить одно важное правило: политики применяются к зоновой паре (zone pair). При этом, пара зон это не тоже самое, что . Первая зона в паре называется зоной-источником (source zone), вторая зоной назначения (destination zone). Когда вы применяете политику фаирволла к зоновой паре, она применяется к трафику который «бежит» от зоны-источника к зоне назначения.
Для применения политик ограничения/разрешения трафика, ZFW использует новый язык конфигурации, называемый Cisco Policy Language (CPL). Синтаксис CPL был полностью позаимствован от широко-известного MQC (Modular QoS CLI). Ниже представлен краткий обзор шагов конфигурации ZFW:
Определение классов трафика
Классовые карты инспекции могут быть двух типов: match-all и match-any, точно также, как и обычные карты в MQC. В первом случае, все условия match, которые заданы внутри карты, должны быть выполнены; во втором случае должно совпасть хотя бы одно условие.
В дополнение к спискам доступа, вы можете выделять протоколы, которые поддерживаются модулем инспекции маршрутизатора (inspection engine). Список поддерживаемых протоколов такой же как у технологии CBAC. Однако, в противовес классическим классовым картам, когда вы вводите команду match protocol (для просмотра всех протоколов, которые поддерживаются для команды match, можно использовать команду show ip port-map), вы не включаете процесс NBAR’а – скорее протокол для инспекции будет выбран когда карта политики будет применена к зоновой паре. Довольно часто комбинируют «отлов» трафика по спискам доступа и протоколам, например:
Применение политик
Существует три основных действия, которые применимы для инспектирующих карт политик: “inspect”, “drop” и “pass”. Первое действие (inspect) аналогично правилу CBAC-инспекции. Оно включает динамическую инспекцию для трафика, который бежит от зоны источника к зоне назначения и автоматически разрешает обратный трафик даже для сложны протоколов, таких как H323. Действие “drop” просто отбрасывает трафик, а “pass” пропускает не включая инспекцию протокола (аналогично строчке “permit” в списке доступа). Пример команды:
Изменение портов для инспектирования протоколов
Self-зона маршрутизатора
Рассмотрим пример: нам требуется разрешить только SSH-трафик на машрутизатор. Сделать это можно следующим образом:
Прим.: после примененной выше конфигурации, весь трафик кроме SSH будет отброшен. Если вы используете, например, протоколы маршрутизации OSPF, EIGRP, то они должны быть явно разрешены – т.к. инспекция этих протоколов не поддерживается.
CISCO: настройка Zone-Based Policy Firewall
--------------------------------------------------------------------------------------
3. Настройка class-map, указание трафика, который будет применяться к политике
(По сути связь интересующих протоколов с зонами)
ssh и telnet к OUT_TO_DMZ:
class-map type inspect match-any ACCESS_PROTOCOLS
match protocol ssh
match protocol telnet
class-map type inspect match-all OUT_TO_DMZ_ACCESS_PROTOCOLS
match class-map ACCESS_PROTOCOLS
match access-group name OUT_TO_DMZ
--------------------------------------------------------------------------------------
4. Настройка policy-map, для указания применения действий к трафику из class-map
(По сути желаемые действия над связями протоколов с зонами из предыдущего шага)
Инспектировать трафик из class-map OUT_TO_DMZ_ACCESS_PROTOCOLS:
policy-map type inspect OUT_TO_DMZ_ACCESS_PROTOCOLS_POLICY
class type inspect OUT_TO_DMZ_ACCESS_PROTOCOLS
inspect
--------------------------------------------------------------------------------------
5. Применение policy-map к парам зон
(По сути назначение направлений источник-зона к назначение-зона из шага 1 к действиям из policy-map шага 4 )
Из зоны OUT в зону DMZ для policy-map OUT_TO_IN_ACCESS_PROTOCOLS_POLICY
zone-pair security OUT_IN_ACCESS_PAIR source OUT destination DMZ
service-policy type inspect OUT_TO_IN_ACCESS_PROTOCOLS_POLICY
interface FastEthernet0/0
zone-member security OUT
interface FastEthernet1/0
zone-member security DMZ
Пример c списком доступа (инспектировать все из зоны local со связью списка доступа 110 в зону external):
!
access-list 110 permit ip 192.168.110.0 0.0.0.255 any
!
zone security local
zone security external
!
class-map type inspect match-all local_external_class_map
match access-group 110
!
policy-map type inspect local_external_policy_map
class type inspect local_external_class_map
inspect
class class-default
!
zone-pair security local_external_zone_pair source local destination external
service-policy type inspect local_external_policy_map
!
interface FastEthernet0/0
zone-member security external
interface FastEthernet1/0
zone-member security local
!
interface FastEthernet1/0
zone-member security local
!
Просмотр настроек:
show zone security
Просмотр пар зон:
show zone-pair security
ПРосмотр class-map:
show class-map type inspect
Просмотр policy-map:
show policy-map type inspect local_external_policy_map
show policy-map type inspect zone-pair
show policy-map type inspect local_external_policy_map sessions
show policy-map type inspect zone-pair sessions
Потребовалось настроить доступ в интернет через маршрутизатор Cisco 2901.
Было арендовано несколько IP адресов. В локальной сети были организованы отдельные VLAN сети для серверной подсети, пользовательской сети и так далее.
Для настройки межсетевого экрана на маршрутизаторе было решено применить Zone Based Firewall.
Пример настройки на основе доступа из LAN в Internet
На маршрутизаторе использовалось два интерфейса:
interface GigabitEthernet0/1 используется для доступа в интернет и подключён напрямую к оборудованию провайдера.
interface GigabitEthernet0/0 был поделён на под-интерфейсы и для LAN сети был создан interface GigabitEthernet0/0.129.
Настройка ZBF.
Создаём зоны безопасности.
Определим две зоны безопасности.
zone security LAN
zone security INTERNET
Определение интерфейсов в необходимые зоны.
Интерфейсу GigabitEthernet0/1 указана зона безопасности INTERNET
zone-member security INTERNET
Интерфейсу GigabitEthernet0/0.129 указана зона безопасности LAN
zone-member security LAN
Создаём пары зон взаимодействия
Зона для пропуска трафика из LAN в INTERNET
zone-pair security LAN_to_INTERNET source LAN destination INTERNET
Зона пропуск трафика из INTERNET в LAN
zone-pair security INTERNET-to-LAN source INTERNET destination LAN
Определяем класс трафика разрешённого для прохода межу зонами
Таких классов можно создавать несколько и применять к разным политикам, назначенные на разные зоны безопасности.
Для доступа из интернета в локальную сеть будем использовать Access List
ip access-list extended INTERNET_INCOMING
permit tcp any host 192.168.131.139 eq 443
permit tcp any host 192.168.131.140 eq smtp
permit tcp any host 192.168.131.138 eq 3389
permit tcp any host 192.168.131.138 eq 443
permit tcp any host 192.168.131.145 eq 443
Применим созданный Access List к классу трафика
class-map type inspect match-all INTERNET_to_LAN
match access-group name INTERNET_INCOMING
Определяем политики доступа
Политика доступа из LAN в INTERNET
policy-map type inspect LAN_to_INTERNET
class type inspect LAN_to_INTERNET
inspect
class class-default
drop
Политика доступа из INTERNET в LAN
policy-map type inspect INTERNET_to_LAN
class type inspect INTERNET_to_LAN
inspect
class class-default
drop
Применяем политики к парам зон
Пара LAN в INTERNET
zone-pair security LAN_to_INTERNET source LAN destination INTERNET
service-policy type inspect LAN_to_INTERNET
Пара INTERNET в LAN
zone-pair security INTERNET_to_LAN source INTERNET destination LAN
service-policy type inspect INTERNET_to_LAN
Дополнительные команды
Создание своих портов
Если вам необходимо открыть свой порт, который не прописан по умолчанию в IOS, то вы его можете создать сами. Для этого вводим:
Cisco IOS это довольно многофункциональна платформа, а не только ОС для роутера, на ней можно развернуть и IP -телефонию и полноценный Firewall . Первое я уже где-то описывал, а со вторым не сталкивался, но этот момент не заставил себя ждать. Итак, есть такая интересная незатронутая тема, как Zone - based firewall ( ZBF ).
В основе всей этой концепции лежит разбиение сети на отдельные участки или зоны. Самый яркий пример, это когда у нас в сети есть обычные пользователи, есть общедоступные сервера и, разумеется, выход в интернет. Само собою понятно, что извне не должно быть доступа к хостам пользователей, но должен быть доступ к серверам ну и имеется еще ряд нюансов. Это все можно сделать с помощью списков доступа ( ACL ), но как-то это все будет слишком уж коряво выглядеть и так же работать.
Таким образом, чтобы реализовать ZBF , надо первым делом разделить сеть на зоны, в нашем случае это:
- внутренняя, где расположены пользователи ( inside )
- внешняя, непосредственно Интернет ( outside )
- демилитаризованная зона, где расположены наши сервера ( dmz )
Это общие стандартные названия, называть зоны можно как угодно и создавать их сколько угодно.
- policy - map определяет действие, которое будет произведено с отфильтрованным с помощью class - map трафиком. Действия могут быть следующие: инспектировать (разрешать, при этом контролировать поток), разрешать, запрещать, записывать в лог.
В одном policy - map может быть указано несколько class - map и к каждой из них может применяться отдельное действие. Если class map -ов указано несколько то сравнение будет проходить от первого до последнего правила последовательно до первого совпадения. Если трафик не попадает ни под одно правило, то он запрещается.
- service policies через него мы привязываем policy - map к определенной паре зон в одном направлении.
Для двух зон можно применить только одну service policy в одном направлении и, соответственно, одну в обратном направлении. Если действие с трафиком определено как inspect , то запросы будут контролироваться таким образом, что в обратную сторону будут разрешены ответы на эти запросы. Если действие определено как пропускать трафик, то контролироваться ничего не будет и ответы на этот трафик проходить не будут (если это не разрешено политикой между зонами в обратную сторону).
Итак, с зонами мы определились. Теперь попробуем настроить трафик между зонами inside и outside
Тут все более-менее просто и понятно, создаем список доступа ACL
Теперь создадим class - map , где определим трафик как попадающий под наш список доступа. Как видно именно тут ключевым словом match - any указывается необходимо ли попадание под все критерии описанные в class - map ( match - all ) или под любой из них.
Читайте также: