Зачем совмещать маршрутизацию и фильтрацию? Основы безопасности на сетевом уровне
Маршрутизатор, как шлюз между сетевыми сегментами, становится идеальной точкой принуждения политик безопасности. Совмещение функций маршрутизации и фильтрации на одном устройстве позволяет контролировать трафик на границе сети без необходимости в отдельном межсетевом экране. Это экономит бюджет, упрощает архитектуру и снижает задержки. Типичные сценарии включают разделение офисных и гостевых сетей Wi-Fi, защиту серверного сегмента от пользовательского и ограничение доступа в интернет для определенных групп.
Ключевой принцип - понимание порядка обработки пакетов. На большинстве платформ политики безопасности применяются либо до, либо после поиска маршрута, что напрямую влияет на логику правил и их взаимодействие с протоколами маршрутизации, такими как OSPF или BGP. Ошибка в порядке может полностью заблокировать связность, даже если таблица маршрутизации корректна.
Как пакет проходит через маршрутизатор: порядок обработки ACL и маршрутов
Путь пакета через маршрутизатор Cisco IOS (версии 15.x и выше) строго регламентирован. Для трафика, входящего на интерфейс, последовательность следующая:
- Входной ACL (Access Control List): Пакет проверяется по спискам контроля доступа, примененным к интерфейсу с ключевым словом
in. Если правилоdenyсовпадает, пакет отбрасывается. - Маршрутизация: На основе IP-адреса назначения определяется исходящий интерфейс и next-hop, консультируясь с таблицей маршрутизации (FIB).
- Выходной ACL: Пакет проверяется по ACL, примененному к исходящему интерфейсу с ключевым словом
out. - Исходящий интерфейс: Пакет передается на физический или виртуальный интерфейс для отправки.
На MikroTik RouterOS (версии 7.x) логика реализована через цепочки фильтров в /ip firewall filter. Основные цепочки для маршрутизируемого трафика - forward. Однако для полного контроля важно понимать цепочки prerouting (до маршрутизации) и postrouting (после маршрутизации).
Для диагностики потерь пакетов на Cisco используйте команду debug ip packet [detail] <access-list-number> с крайней осторожностью и только в тестовой среде, так как она генерирует высокую нагрузку на CPU. Альтернатива - анализ счетчиков срабатываний правил ACL командой show access-lists.
Классические списки контроля доступа (ACL): настройка на Cisco, Huawei и MikroTik
Списки контроля доступа - это фундаментальный статический (stateless) механизм фильтрации. На Cisco IOS синтаксис разделен на стандартные ACL (номер 1-99, 1300-1999), фильтрующие только по исходному IP-адресу, и расширенные (номер 100-199, 2000-2699), которые работают с протоколом, исходным/целевым адресом и портами.
Пример создания расширенного именованного ACL, который запрещает доступ из сети пользователей 192.168.10.0/24 к серверному сегменту 10.0.0.0/24, но разрешает весь остальной трафик:
ip access-list extended PROTECT-SERVERS
deny ip 192.168.10.0 0.0.0.255 10.0.0.0 0.0.0.255
permit ip any any
После создания ACL применяется к интерфейсу:
interface GigabitEthernet0/1
ip access-group PROTECT-SERVERS in
Важно помнить о неявном правиле deny any any в конце каждого ACL. Если его не переопределить явным permit, весь трафик, не совпавший с предыдущими правилами, будет заблокирован.
Практический пример: ACL для изоляции гостевой Wi-Fi сети на Cisco IOS
Рассмотрим типовой сценарий: гостевой Wi-Fi в подсети 172.16.30.0/24, основная корпоративная сеть - 192.168.1.0/24, интернет доступен через интерфейс GigabitEthernet0/0.
Цель: разрешить гостям доступ только в интернет по HTTP, HTTPS и DNS, полностью запретив доступ к корпоративной сети.
! Создаем ACL для гостевого трафика
ip access-list extended GUEST-POLICY
! Разрешаем DNS (UDP/TCP порт 53) на внешние серверы
permit udp 172.16.30.0 0.0.0.255 any eq 53
permit tcp 172.16.30.0 0.0.0.255 any eq 53
! Разрешаем HTTP и HTTPS
permit tcp 172.16.30.0 0.0.0.255 any eq 80
permit tcp 172.16.30.0 0.0.0.255 any eq 443
! Явно запрещаем доступ к корпоративной сети
deny ip 172.16.30.0 0.0.0.255 192.168.1.0 0.0.0.255
! Разрешаем установленные соединения (ответный трафик из интернета)
permit tcp any 172.16.30.0 0.0.0.255 established
! Неявный deny any any блокирует все остальное
! Применяем ACL на интерфейс, смотрящий в гостевую сеть
interface Vlan30
description Guest-WiFi
ip address 172.16.30.1 255.255.255.0
ip access-group GUEST-POLICY in
Правило established разрешает только TCP-пакеты с установленным флагом ACK, что позволяет ответам из интернета возвращаться гостям, но блокирует новые входящие соединения извне.
Особенности настройки ACL на MikroTik RouterOS и Huawei VRP
Хотя концепция фильтрации по адресам и портам едина, синтаксис и реализация различаются.
| Платформа | Концепция | Пример: Запрет SSH (порт 22) из сети 10.1.1.0/24 |
|---|---|---|
| Cisco IOS | Нумерованные или именованные списки, применяемые к интерфейсу. | access-list 101 deny tcp 10.1.1.0 0.0.0.255 any eq 22 |
| MikroTik RouterOS 7.x | Правила фильтрации в цепочках (input, forward, output). | /ip firewall filter add chain=forward src-address=10.1.1.0/24 protocol=tcp dst-port=22 action=drop |
| Huawei VRP (v5.xx) | ACL, схожие с Cisco, с применением в inbound/outbound-направлении. | [Huawei] acl 3000 |
В MikroTik порядок правил в цепочке критически важен - обработка идет сверху вниз. Для блокировки нежелательного трафика правило с действием drop должно находиться выше общих разрешающих правил. Подробнее о методологии аудита и анализе существующих правил на разных платформах читайте в полном руководстве по аудиту сетевого периметра.
Zone-Based Firewall (ZBF) на Cisco IOS: современный подход к безопасности
Zone-Based Firewall (ZBF) - это более гибкая и мощная stateful-модель безопасности по сравнению с классическими ACL. Вместо привязки политик к интерфейсам, ZBF работает с концепцией зон (Zones). Интерфейсы назначаются зонам, а политики безопасности определяются для трафика, перемещающегося между парами зон (zone-pair).
Основные преимущества ZBF:
- Stateful инспекция: Отслеживание состояния соединений (как в полноценном межсетевом экране).
- Централизованное управление: Политики определяются между зонами, а не на каждом интерфейсе.
- Гибкость: Легко добавлять новые интерфейсы в существующие зоны без изменения политик.
Базовая модель включает зоны: Inside (доверенная внутренняя сеть), Outside (ненадежная сеть, например, интернет) и DMZ (демилитаризованная зона для публичных серверов).
Пошаговая настройка Zone-Based Firewall для малого офиса
Сценарий: офисная сеть (Inside) имеет доступ в интернет (Outside) и к веб-серверу в DMZ. Интернет-пользователи могут обращаться только к веб-серверу в DMZ.
- Создание зон безопасности:
zone security INSIDE zone security OUTSIDE zone security DMZ - Назначение интерфейсов зонам:
interface GigabitEthernet0/1 zone-member security INSIDE interface GigabitEthernet0/0 zone-member security OUTSIDE interface GigabitEthernet0/2 zone-member security DMZ - Создание class-map для идентификации трафика:
! Трафик от Inside к Outside (веб-серфинг) class-map type inspect match-any INSIDE-TO-OUTSIDE-CLASS match protocol http match protocol https match protocol dns ! Трафик от Outside к DMZ (доступ к веб-серверу) class-map type inspect match-any OUTSIDE-TO-DMZ-CLASS match protocol http match protocol https - Создание policy-map с действиями:
Действие! Политика для трафика из Inside в Outside policy-map type inspect INSIDE-TO-OUTSIDE-POLICY class type inspect INSIDE-TO-OUTSIDE-CLASS inspect class class-default drop ! Политика для трафика из Outside в DMZ policy-map type inspect OUTSIDE-TO-DMZ-POLICY class type inspect OUTSIDE-TO-DMZ-CLASS inspect class class-default dropinspectвключает stateful проверку, разрешая ответный трафик. - Создание пар зон и применение политик:
zone-pair security INSIDE-TO-OUTSIDE source INSIDE destination OUTSIDE service-policy type inspect INSIDE-TO-OUTSIDE-POLICY zone-pair security OUTSIDE-TO-DMZ source OUTSIDE destination DMZ service-policy type inspect OUTSIDE-TO-DMZ-POLICY - Проверка конфигурации:
Используйте команды
show zone security,show zone-pair securityиshow policy-map type inspect zone-pair sessionsдля проверки состояния сессий.
Сравнение механизмов безопасности: Cisco ZBF vs. MikroTik Filter vs. Huawei ACL
Выбор инструмента зависит от задачи, требуемого уровня безопасности и доступной платформы.
| Платформа / Механизм | Тип (Stateful/Stateless) | Сложность настройки | Гибкость | Типичный use-case |
|---|---|---|---|---|
| Cisco IOS: Классические ACL | Stateless | Низкая | Ограниченная (адреса, порты, протоколы) | Быстрая фильтрация на границе, ограничение доступа к сервисам. |
| Cisco IOS: Zone-Based Firewall | Stateful | Высокая | Очень высокая (политики между зонами, глубокий анализ) | Комплексная защита периметра, разделение сетей с разным уровнем доверия. |
| MikroTik RouterOS: Firewall Filter | В основном Stateless, но есть элементы stateful (connection tracking) | Средняя | Высокая (богатые условия отбора, цепочки, mangle) | Универсальная фильтрация в SMB-сегменте, QoS, маркировка трафика. |
| Huawei VRP: ACL | Stateless | Низкая | Средняя (схоже с Cisco ACL) | Базовая фильтрация трафика на корпоративных маршрутизаторах. |
Выводы: Для простых задач «разрешить/запретить» по адресу и порту достаточно классических ACL на Cisco или Huawei. Если требуется отслеживание состояний соединений и более четкое разделение сетевых зон, выбирайте Cisco ZBF. MikroTik предлагает компромисс - мощный и гибкий инструментарий фильтрации, который, при правильной настройке connection tracking, может выполнять многие функции stateful-фаервола, что делает его популярным решением для малого и среднего бизнеса. Для защиты критически важных сервисов, таких как игровые или веб-серверы, часто требуется комбинация подходов. Пример комплексной настройки для защиты инфраструктуры можно найти в руководстве по защите CS2 серверов от DDoS-атак.
Готовые шаблоны правил для распространённых угроз и задач
Ниже представлены проверенные шаблоны правил для разных платформ. Порядок правил внутри ACL или цепочки имеет решающее значение - от более конкретных к общим.
1. Защита от IP-спуфинга (на внешнем интерфейсе):
Запрещаем входящий трафик из приватных (RFC 1918) и зарезервированных адресных пространств, который не должен приходить из интернета.
! Cisco IOS (применить на внешнем интерфейсе 'in')
ip access-list extended ANTI-SPOOFING
deny ip 10.0.0.0 0.255.255.255 any
deny ip 172.16.0.0 0.15.255.255 any
deny ip 192.168.0.0 0.0.255.255 any
deny ip 127.0.0.0 0.255.255.255 any
deny ip 224.0.0.0 15.255.255.255 any
permit ip any any
2. Ограничение доступа к административным интерфейсам (SSH, Telnet, Web):
Разрешаем доступ только с доверенной управляющей подсети 192.168.100.0/24.
! MikroTik RouterOS
/ip firewall filter add chain=input protocol=tcp dst-port=22,23,8291 src-address=192.168.100.0/24 action=accept comment="Allow Admin Access"
/ip firewall filter add chain=input protocol=tcp dst-port=22,23,8291 action=drop comment="Drop All Other Admin Traffic"
Аналогичный подход применяется для защиты веб-интерфейсов любых устройств. Детальный гайд по настройке доступен в статье Безопасность веб-интерфейсов.
3. Базовые правила для VoIP (SIP и RTP):
! Huawei VRP
acl number 3100
rule 5 permit udp source any destination any destination-port eq 5060 # SIP
rule 10 permit udp source any destination any destination-port range 10000 20000 # RTP порты
4. Правило для логирования всего запрещенного трафика:
Это правило помогает в аудите и отладке. Размещается в конце ACL перед неявным deny.
! Cisco IOS
ip access-list extended LOGGING-ACL
... ваши основные правила ...
deny ip any any log ! Логирует каждый отброшенный пакет
Логи с высокой частотой могут перегрузить CPU или syslog-сервер. Используйте это правило временно для диагностики или с осторожностью в рабочих средах.
Отладка и проверка: убеждаемся, что правила работают как задумано
После настройки политик необходимо убедиться в их корректной работе. Методика тестирования: от общего к частному. Сначала проверьте базовую связность (ping), затем доступ к конкретным сервисам (telnet, curl).
Ключевые команды для проверки:
- Cisco IOS:
show access-lists- отображает все ACL и счетчики срабатываний (hits) для каждого правила. Нулевые счетчики могут указывать на неверный порядок правил или путь трафика. - Cisco IOS (ZBF):
show policy-map type inspect zone-pair sessions- показывает активные сессии, отслеживаемые Zone-Based Firewall. - MikroTik RouterOS:
/ip firewall filter print stats-only- выводит статистику по каждому правилу фильтрации (packets, bytes). - Huawei VRP:
display acl allилиdisplay acl <number>- показывает конфигурацию и счетчики правил ACL.
Простейший план теста для ACL, разделяющего сети:
- С хоста в сети A выполните ping до адреса в сети B. Ожидаемый результат: «Request timed out».
- Выполните
show access-listsна маршрутизаторе. Убедитесь, что счетчик у правилаdenyувеличился. - Проверьте доступ к разрешенному ресурсу, например, DNS-серверу. Счетчик у соответствующего правила
permitтакже должен увеличиться.
Что делать, если политика безопасности нарушила маршрутизацию?
Типичные ошибки, которые приводят к нарушению связности:
- Применение ACL на неправильном интерфейсе или направлении (in/out). ACL
inфильтрует трафик, входящий на интерфейс,out- исходящий. Неверное направление заблокирует трафик до или после маршрутизации. - Забытое правило permit для служебных протоколов. Если на интерфейсе, где работает OSPF или BGP, применен ACL, необходимо добавить правило, разрешающее multicast-адреса 224.0.0.5/224.0.0.6 (OSPF) или TCP-порт 179 (BGP).
- Блокировка ответного трафика из-за stateless-природы ACL. Классические ACL не отслеживают состояние сессии. Если вы разрешили исходящий HTTP-запрос, нужно также явно разрешить входящий TCP-трафик с установленным флагом ACK (используя ключевое слово
establishedна Cisco) или настроить stateful-механизм.
Алгоритм диагностики:
- Проверьте счетчики ACL. Команда
show access-listsпокажет, срабатывают ли ваши правила. Если счетчики не растут, трафик идет другим путем или не достигает интерфейса с ACL. - Временно добавьте логгирование. В конце ACL перед неявным deny добавьте правило
deny ip any any log(на Cisco) или используйте действиеlogв MikroTik. Это поможет увидеть, какой трафик отбрасывается. - Проверьте таблицу маршрутизации. Убедитесь, что для целевой сети существует корректный маршрут (
show ip routeна Cisco). - Поэтапно откатывайте изменения. Если проблема сложная, последовательно удаляйте или комментируйте последние внесенные изменения, проверяя восстановление связности после каждого шага.
Для защиты от более сложных угроз, таких как распределенные атаки на уровне приложений (L7), часто требуется специализированная настройка. В этом случае может помочь интеграция с сервисами, агрегирующими возможности различных AI-моделей для анализа и фильтрации трафика, подобно тому, как AiTunnel агрегирует доступ к API нейросетей. Однако основой всегда остается корректно настроенный базовый сетевой экран на маршрутизаторе.