Имеется задача запретить инициировать TCP-сессии из сети, при этом оставить возможность отвечать на запрошенные соединения.
На интерфейсе имеется создан следующий ACL:
permit tcp 192.168.50.0 0.0.0.255 any any 1024-65535 ace-priority 20
Требуется внести изменения и разрешить только ответный TCP-трафик Данное правило запрещает открывать сессии хостам из сети 192.168.50.0/24, не открывая весь диапазон (1024-65535) зарегистрированных и динамических портов (т.к. номер на инициаторе сессии заранее неизвестен) для большинства административных сетевых служб, использующих общеизвестные (well-known) порты (Telnet, SSH, TACACS). В то же время, ответить на запрос такого соединения хосты из данной сети могут (диапазон зарегистрированных и динамических портов разрешён). Однако далеко не все службы используют диапазон общеизвестных портов для установки соединения, таким образом в полном объеме поставленная задача не выполняется.
Существует другой способ разрешить прохождение только ответного (с точки зрения хоста из сети 192.168.50.0/24) трафика - использовать флаги (flags) в правиле ACL в качестве условия соответствия.
На Cisco это можно решить с помощью следующего правила:
permit tcp 192.168.50.0 0.0.0.255 any established
Согласно документации, функционал данной опции аналогичен условию соответствия флагов ack и rst:established —Enter to match an established connection. This has the same function as matching on the ack or rst flag.
В этом случае, правила на MES будут выглядеть следующим образом:
permit tcp 192.168.50.0 0.0.0.255 any any any match-all +rst ace-priority 20
permit tcp 192.168.50.0 0.0.0.255 any any any match-all +ack ace-priority 40
Таким образом, прохождение TCP-пакеты, содержащие пакетов от хостов 192.168.50.0/24, содержащих флаги ACK или RST будут пропущеныбудет разрешено, а установка новых сессий (в сегменте только флаг SYN) - запрещена.