Reflexive ACL — настройка и пример работы зеркальных списков контроля доступа

Зеркальные (reflexive) ACL – это расширение технологии extended ACL, которое позволяет организовать пропуск трафика из интернета в локальную сеть только в ответ на предварительно сделанный запрос из локальной сети в интернет.

Рекомендуется начать знакомство с ACL c этой статьи, чтобы было понятно, о чём идёт речь.

Технология эта напоминает внешне использование ключевого слова established, но имеется рад серьёзных отличий как в реализации, так и по функционалу. Суть технологии вот в чём: на выход из сети ставится ACL, который выпускает трафик изнутри наружу. Одновременно с пропуском трафика, автоматически формируется встречный ACL, для пропуска трафика извне вовнутрь. Таким образом появляется возможность получать ответы на свои запросы из интернета.

Приведём пример: есть сеть 192.168.0.0/24 из неё надо организовать доступ в интернет по http, pop и smtp

Пример использования reflexive ACL

Пишется на выход следующие 2 ACL:

R1(config)#ip access-list extended IN-TO-OUT
R1(config-ext-nacl)#permit tcp 192.168.0.0 0.0.0.255 any eq www reflect BACK-WWW
R1(config-ext-nacl)#permit tcp 192.168.0.0 0.0.0.255 any eq pop3 reflect BACK-POP
R1(config-ext-nacl)#permit tcp 192.168.0.0 0.0.0.255 any eq smtp reflect BACK-SMTP
R1(config-ext-nacl)#exit
R1(config)#ip access-list extended OUT-TO-IN
R1(config-ext-nacl)#evaluate BACK-WWW
R1(config-ext-nacl)#evaluate BACK-POP
R1(config-ext-nacl)#evaluate BACK-SMTP

Применяем ACL

R1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#interface fa0/0
R1(config-if)#ip access-group IN-TO-OUT in
R1(config-if)#inter fa0/1
R1(config-if)#ip access-group OUT-TO-IN in
R1(config-if)#

IN-TO-OUT разрешает выход трафика изнутри наружу. Пропускается трафик на порты 25,80 и 110 параллельно формируются зеркальные ACL BACK-WWW, BACK-POP и BACK-SMTP, которые пропускают обратный трафик. Весь трафик извне фильтруется ACL OUT-TO-IN, который по умолчанию ничего не пропускает, но когда появляются зеркальные записи, то трафик начинает пропускаться.

Предположим, что человек обращается с адреса 192.168.0.100 к веб страничке на сервере 123.123.123.123 при обращении выбирается случайный порт отправителя (например, 1234), порт получателя используется стандартный – 80. Когда пакет проходит через маршрутизатор, он проверяется IN-TO-OUT. И по первой строчке проходит, одновременно в ACL BACK-WWW автоматически на время добавляется зеркальная запись:

permit tcp host 123.123.123.123 eq 80 host 192.168.0.100 eq 1234

То есть в настоящий момент весь трафик из интернета вовнутрь будет заблокирован, за исключением ответа от веб-сервера на наш запрос. Преимущество Reflexive ACL перед established заключается в том, что established пользуется только флагом в TCP сегменте, а Reflexive реально отслеживает соединения. Флаг можно подделать, в этом случае входящий трафик начнёт пропускаться. Конечно, его вряд ли кто-то примет, но можно устроить, например, DOS атаку. Но самое важное преимущество, с помощью established в принципе нельзя организовать пропуск протоколов, отличных от TCP. Например, протоколов, базирующихся на UDP, или ICMP трафик. Зеркальные же ACL справляются с этими задачами отлично.

Тэги: 

Комментарии

Здравствуйте, у меня в 7 Packet Tracer нету команды "reflect", что посоветуете сделать?

Аватар пользователя bacek
Вроде бы там и не было её. В последней версии курса кажется их тоже уже нет.

Reflexive и time-base ACL выбросили из курса CCNA. Поэтому попробуйте GNS3 или купите себе парочку роутеров. Эта фича вполне поддерживается на Cisco 26xx. Они дешевые, не разоритесь.

У вас номер порта не совпадает, лишняя четверка

Аватар пользователя bacek
Спасибо

Народ 19-й год на дворе, какой GNS? Как по мне так он помирает, EVE-NG намного удобнее.

Добавить комментарий