Настройка рефлексивных списков доступа (Reflexive ACL) на Cisco IOS
- Невозможность открыть сессии UDP и ICMP из локальной сети наружу при использовании классических stateless ACL.
- Сложность управления статическими портами для клиентских приложений.
- Угроза безопасности из-за необходимости открывать широкие диапазоны входящих портов (1024-65535).
- Ответный транзитный трафик блокируется внешним списком доступа на входящем интерфейсе.
1. Принцип функционирования Reflexive ACL
Reflexive ACL реализуют механизм динамической фильтрации с отслеживанием сессий (Session Filtering). При инициализации исходящего соединения из защищенной сети маршрутизатор динамически генерирует временное временное правило во входящем списке доступа с обратными адресами и портами (reflect), которое автоматически удаляется после завершения сессии.
2. Создание исходящего ACL с генерацией правил (Reflect)
ip access-list extended OUTBOUND_TRAFFIC
remark === Reflect Outbound TCP, UDP and ICMP ===
permit tcp 192.168.10.0 0.0.0.255 any reflect FLOW_STATE_TABLE
permit udp 192.168.10.0 0.0.0.255 any reflect FLOW_STATE_TABLE
permit icmp 192.168.10.0 0.0.0.255 any reflect FLOW_STATE_TABLE
permit ip any any3. Создание входящего ACL с вычислением таблицы состояний (Evaluate)
ip access-list extended INBOUND_TRAFFIC
remark === Evaluate Dynamically Generated Reflexive Rules ===
evaluate FLOW_STATE_TABLE
remark === Allow Necessary Inbound Public Services ===
permit tcp any host 203.0.113.10 eq 443
permit icmp any any unreachable
remark === Explicit Deny All Other Unsolicited Inbound ===
deny ip any any log4. Применение списков к интерфейсу WAN
interface GigabitEthernet0/0/0
description WAN_Interface
ip access-group OUTBOUND_TRAFFIC out
ip access-group INBOUND_TRAFFIC in5. Тюнинг таймаутов неактивности и диагностика
# Глобальная настройка времени жизни временных правил для UDP/ICMP
ip reflexive-list timeout 60
# Просмотр динамически созданных временных правил в реальном времени
show ip access-list
show ip access-list FLOW_STATE_TABLE Частые вопросы (FAQ)
Чем Reflexive ACL отличается от обычного правила permit tcp any any established?
Опция established работает только для протокола TCP (проверяет флаги ACK/RST). Reflexive ACL полноценно отслеживает не только TCP, но также протоколы UDP и ICMP, создавая временные парные сокеты.
Как быстро удаляется динамическое правило после закрытия TCP-сессии?
Для TCP правило удаляется сразу после обнаружения последовательности флагов FIN-ACK или RST. Если завершение сессии не было корректно зафиксировано, правило удаляется по истечении ip reflexive-list timeout.
Поддерживают ли Reflexive ACL протоколы с динамическими портами (FTP, SIP, H.323)?
Нет. Reflexive ACL не анализируют полезную нагрузку L7 (Application Layer Gateway). Для сложных протоколов с вторичными сокетами (например, Active FTP) требуется использовать Cisco ZBFW (Zone-Based Firewall).
Можно ли применять Reflexive ACL на интерфейсах с NAT?
Да, но порядок обработки пакетов критичен: исходящий ACL должен отрабатывать до или после NAT в зависимости от того, внутренние или транслированные адреса указаны в правилах.