Page tree
Skip to end of metadata
Go to start of metadata

На маршрутизаторах ESR реализован функционал Zone-Based-Firewall который по умолчанию работает в StateFull-режиме.

Что означает Zone-Based?

1. На маршрутизаторе необходимо создать зоны безопасности:


esr# configure 
esr(config)# security zone trusted
esr(config-zone)# exit
esr(config)# security zone untrusted
esr(config-zone)# exit
esr(config)# 

2. На все интерфейсы маршрутизатора, на которых назначен ip-адрес, назначается зона безопасности к которой будет относится весь трафик поступающий/отправляемый в назначенную зону:


esr(config)# interface gigabitethernet 1/0/1
esr(config-if-gi)# mode routerport 
esr(config-if-gi)# ip address 192.0.2.1/30
esr(config-if-gi)# security-zone untrusted 
esr(config-if-gi)# exit
esr(config)# bridge 1
esr(config-bridge)# vlan 1
esr(config-bridge)# security-zone trusted
esr(config-bridge)# ip address 192.168.1.1/24
esr(config-bridge)# enable
esr(config-bridge)# exit
esr(config)# bridge 10
esr(config-bridge)# vlan 10
esr(config-bridge)# security-zone trusted
esr(config-bridge)# ip address 192.168.10.1/24
esr(config-bridge)# enable
esr(config-bridge)# exit

3. Для разрешения прохождения транзитного трафика из широковещательного домена, ограниченного ip-интерфейсом маршрутизатора в одной зоне безопасности, в широковещательный домен, относящегося к другой зоне безопасности, создаются наборы правил межзонного взаимодействия. Для примера, правило разрешающее устанавливать любые сессии из зоны trusted в зону untrusted:

esr(config)# security zone-pair trusted untrusted
esr(config-zone-pair)# rule 1
esr(config-zone-pair-rule)# action permit
esr(config-zone-pair-rule)# enable
esr(config-zone-pair-rule)# exit
esr(config-zone-pair)# exit

4. При том, что зона безопасности конфигурируется на ip-интерфейсе маршрутизатора, сам ip-интерфейс не относится к сконфигурированной на нём зоне. Все ip-интерфейсы маршрутизатора всегда относятся к зоне безопасности "self". Зона безопасности "self" создана по умолчанию и не отображается в конфигурации.
При этом, если необходимо разрешить работу каких либо протоколов с самим маршрутизатором, необходимо создать соответствующие правила межзонного взаимодействия из необходимой зоны безопасности в зону безопасности "self".
Для примера, разрешить из зоны trusted узлам с ip-адресами 192.168.1.15, 192.168.1.37 и 192.168.1.142 подключаться к маршрутизатору по протоколу ssh:

esr(config)# object-group service SSH
esr(config-object-group-service)# port-range 22
esr(config-object-group-service)# exit

esr(config)# object-group network SSH_TRUSTED_PERMIT
esr(config-object-group-network)# ip address-range 192.168.1.15
esr(config-object-group-network)# ip address-range 192.168.1.37
esr(config-object-group-network)# ip address-range 192.168.1.142
esr(config-object-group-network)# exit

esr(config)# security zone-pair trusted self
esr(config-zone-pair)# rule 10
esr(config-zone-pair-rule)# action permit
esr(config-zone-pair-rule)# match protocol tcp
esr(config-zone-pair-rule)# match destination-port SSH 
esr(config-zone-pair-rule)# match source-address SSH_TRUSTED_PERMIT 
esr(config-zone-pair-rule)# enable
esr(config-zone-pair-rule)# exit
esr(config-zone-pair)# exit

Второй наглядный пример, разрешить узлу с ip-адресом 192.51.100.6esr-10(config)# object-group network GRE_UNTRUSTED_PERMIT из зоны untrusted устанавливать gre-сессию на текущий маршрутизатор:

esr(config-object-group-network)# ip address-range 192.51.100.6
esr(config-object-group-network)# exit
esr(config)# security zone-pair untrusted self 
esr(config-zone-pair)# rule 100
esr(config-zone-pair-rule)# action permit 
esr(config-zone-pair-rule)# match protocol gre
esr(config-zone-pair-rule)# match source-address GRE_UNTRUSTED_PERMIT 
esr(config-zone-pair-rule)# enable 
esr(config-zone-pair-rule)# exit
esr(config-zone-pair)# exit

Неотображаемым правилом по умолчанию в каждом наборе правил межзонного взаимодействия является запреяющее правило.

esr(config)# security zone-pair untrusted self 
esr(config-zone-pair)# rule 
esr(config-zone-pair-rule)# action deny
esr(config-zone-pair-rule)# enable 
esr(config-zone-pair-rule)# exit
esr(config-zone-pair)# exit


Таким образом пакет не попавший ни под одно разрешающее правило будет отброшен.

Как работает firewall в режиме StateFull?

1. При поступлении пакета на маршрутизатор, в первую очередь проверяется наличие уже зарегистрированной сессии под которую подпадает данный пакет.
Список сессий, которые в данный момент зарегистрированы на маршрутизаторе можно посмотреть при помощи команды:

esrvf# show ip firewall sessions 
 Codes: E - expected, U - unreplied,
        A - assured, C - confirmed

Prot    Inside source           Inside destination      Outside source          Outside destination     Pkts         Bytes        Status   
-----   ---------------------   ---------------------   ---------------------   ---------------------   ----------   ----------   ------   
tcp     192.168.1.15:54366      192.168.1.1:22          192.168.1.15:54366      192.168.1.1:22          --           --           AC       


Если в списке зарегистрированных сессий есть под которую подпадает данный пакет, он маршрутизируется без дополнительных проверок.
2. Если в таблице зарегистрированных сессий нет подходящей сессии, проводится проверка по правилам межзонного взаимодействия:
2.1. По таблице маршрутизации определяется, в какой интерфейс должен будет отправится обрабатываемый в данный момент пакет.
2.2. В качестве source-zone принимается зона безопасности, сконфигурированная на интерфейсе через который пакет поступил маршрутизатор
2.3. В качестве destination-zone принимается зона безопасности, сконфигурированная на интерфейсе определенном в п.2.1
2.4. Просматривается набор правил "security zone-pair <source-zone> <destination-zone>" начиная с правила с меньшим номером. 
Неактивированные правила (в которых нет команды "enable") не просматриваются.
Если пакет подпадает под все условия прописанные в правиле ("match") выполняется действие прописанное в правиле ("action") и дальнейший просмотр правил прекращается
2.5. Если в п.2.4. пакет попал под правило с "action permit" кроме маршрутизации пакета в таблицу зарегистрированных сессий добавляется информация о сессии, в рамках которой был смаршрутизирован проверенный пакет.

Таким образом все последующие пакеты ранее разрешенной сессии будут маршрутизироваться без просмотра по правилам межзонного взаимодействия. Причём данное утверждение относится как к прямым пакетам (из source-zone в destination-zone) так и к обратным пакетам сессии (из destination-zone в source-zone).
Как следствие, в режиме StateFull для firewall нет необходимости создавать отдельные разрешающие правила для "обратного" трафика. Достаточно чётко разрешить какие пользователи могут устанавливать сессии узлами в других зонах безопасности с указанием протоколов и портов (при наличии).

Если одна зона безопасности сконфигурирована на нескольких ip-интерфейсах, это не означает, что трафик маршрутизируемый между интерфейсами одной зоны безопасности не проверяется Firewall'ом.
Как следствие, подобный трафик тоже необходимо разрешать в соответствующем наборе правил.
Для примера - разрешение любого трафика между широковещательными доменами отнесенными к зоне trusted:

esr(config)# security zone-pair trusted trusted
esr(config-zone-pair)# rule 1
esr(config-zone-pair-rule)# action permit
esr(config-zone-pair-rule)# enable
esr(config-zone-pair-rule)# exit
esr(config-zone-pair)# exit

Для отслеживания активности работы Zone-Based-Firewall при создании правил, есть возможность включить логирование их срабатывания используя ключ "log" при указании "action"
Для примера, добавление запрещающего правила с логированием:

esr(config)# security zone-pair untrusted self 
esr(config-zone-pair)# rule 10000
esr(config-zone-pair-rule)# action deny log 
esr(config-zone-pair-rule)# enable 
esr(config-zone-pair-rule)# exit
esr(config-zone-pair)# exit


После применения данной конфигурации в syslog маршрутизатора (локальный или удаленный) будут поступать сообщения о попытках установить запрещенную сессию.

2022-11-21T12:27:31+00:00 %FIREWALL-I-LOG: zone-pair 'untrusted self' rule 10000 denied tcp 192.168.1.15:40900 (gi1/0/1 60:e3:27:00:ee:e9) -> 192.168.1.1:23 dscp 4, 1 packets

Если указать ключ "log" на разрешающее действие, например сконфигурированное ранее:

esr(config)# security zone-pair trusted self
esr(config-zone-pair)# rule 10
esr(config-zone-pair-rule)# action permit log
esr(config-zone-pair-rule)# match protocol tcp
esr(config-zone-pair-rule)# match destination-port SSH 
esr(config-zone-pair-rule)# match source-address SSH_TRUSTED_PERMIT 
esr(config-zone-pair-rule)# enable
esr(config-zone-pair-rule)# exit
esr(config-zone-pair)# exit


То в syslog также будут попадать сообщение о срабатывании разрешающего правила. Например:

2022-11-21T12:28:25+00:00 %FIREWALL-I-LOG: zone-pair 'untrusted self' rule 100 permitted tcp 192.168.1.15:43596 (gi1/0/1 60:e3:27:00:ee:e9) -> 192.168.1.1:22 dscp 0, 1 packets

Кроме/вместо логирования срабатывания правил можно включить подсчёт пакетов передаваемых в рамках установленных сессий при помощи команды:

esr(config)# ip firewall sessions counters 

После применения данной команды в конфигурации, в выводе информации о зарегистрированных сессиях будет отображаться количество пакетов и байт переданных в рамках данной сессии:

esrf# show ip firewall sessions 
 Codes: E - expected, U - unreplied,
        A - assured, C - confirmed

Prot    Inside source           Inside destination      Outside source          Outside destination     Pkts         Bytes        Status   
-----   ---------------------   ---------------------   ---------------------   ---------------------   ----------   ----------   ------   
tcp     192.168.1.15:43552      192.168.1.1:22          192.168.1.15:43552      192.168.1.1:22          28           4081         AC       

esr# show ip firewall sessions 
 Codes: E - expected, U - unreplied,
        A - assured, C - confirmed

Prot    Inside source           Inside destination      Outside source          Outside destination     Pkts         Bytes        Status   
-----   ---------------------   ---------------------   ---------------------   ---------------------   ----------   ----------   ------   
tcp     192.168.1.15:43552      192.168.1.1:22          192.168.1.15:43552       192.168.1.1:22          52           6049         AC       
Включение логирования и счётчиков для firewall-сессий увеличивает нагрузку на CPU маршрутизатора и данный функционал рекомендуется активировать только для решения эксплуатационных проблем.

Можно ли отключить firewall?

В режиме конфигурирования интерфейсов/туннелей есть команда:

esr(config-if-gi)# ip firewall disable 

При применении данной команды, firewall не отключается полностью. Маршрутизатор продолжает регистрировать маршрутизируемые сессии.
Но при применении данной команды перестаёт просматриваться соответствующий набор правил межзонного взаимодействия даже если одновременно с "ip firewall disable" на интерфейсе указана зона безопасности.
При применении команды "ip firewall disable" на интерфейсе, все пакеты поступающие через данный интерфейс считаются разрешенными.

Что если на интерфейсе не настроена security-zone и не отключен Firewall?

В таком случае будет блокироваться весь входящий трафик, поскольку нет набора разрешающих правил для его обработки. 

Что если на входящем интерфейсе настроена security-zone, а на исходящем интерфейсе security-zone не определена и отключен firewall?

В этом случае пакеты любых сессий, поступившие через входящий интерфес, на котором определена security-zone, будут отброшены, т.к. невозможно создать набор разрешающих правил ("security zone-pair <source-zone> <destination-zone>"),
поскольку security-zone на исходящем интерфейсе не определена. Чтобы трафик отправлялся через исходящий интерфейс, необходимо сконфигурировать на нём security-zone и определить набор разрешающих правил взаимодействия этих пары зон (security zone-pair).
После этого трафик из входящего интерфейса, определённого к security-zone с включенным firewall, будет отправляться через исходящий интерфейс с определённым на нём security-zone и обрабатываться согласно набору правил взаимодействия зон security zone-pair.



  • No labels