Атрибут ExtendedAction задает дополнительные условия для срабатывания правила и/или дополнительные действия, которые должны быть применены при выполнении условий срабатывания правила.
Условия (действия) задаются в виде синтаксической конструкции "процедура". То есть указывается имя и именованные параметры в угловых скобках.
Синтаксис |
ExtendedAction = inspect_tcp <…> ExtendedAction = inspect_ftp <…> ExtendedAction = tcp_flags <…> ExtendedAction = classify_mark <...> ExtendedAction = ipsec <...> ExtendedAction = bit_check <…> ExtendedAction = app_fw <…> |
||||||||||||||||||||||||
Значение • inspect_tcp – отслеживает состояние TCP-соединения, делает некоторые проверки на корректность заголовка, меняет время жизни записи о соединении в соответствии с текущим состоянием соединения. Для пропуска пакетов в обе стороны, добавляются дополнительные правила фильтрации во входящую и исходящую цепочки правил интерфейса, на котором сработала процедура tcp. Дополнительные правила удаляются вместе с записью о соединении. Для совместимости с IOS CBAC на остальные интерфейсы, где присутствуют цепочки фильтрации, добавляются правила для пропуска пакетов по данному соединению. При этом обновление записи происходит только при обработке пакета на том интерфейсе, где создался контекст. • inspect_ftp – дополнительно отслеживает некоторые команды FTP, создает правила для пропуска соединения для данных FTP, определяет и блокирует некоторые подозрительные команды, которые могут являться атакой на FTP сервер. Параметры для inspect_tcp и inspect_ftp
|
|||||||||||||||||||||||||
• tcp_flags – дополнительная фильтрация пакетов по флагам TCP-заголовка, без сохранения какой-либо информации о соединении. Правило, в котором присутствует tcp_flags, считается подходящим, только если протокол TCP и флаги TCP-заголовка пакета соответствуют заданным параметрам. Параметры для inspect_tcp и inspect_ftp
|
|||||||||||||||||||||||||
• classify_mark – проверяет и/или выставляет TOS-байт в IP-пакетах. Параметры для classify_mark
|
• ipsec – указывает, что пакет должен быть обработан с помощью IPsec. Параметры для ipsec
|
• bit_check – задает дополнительную фильтрацию по любым значимым полям IP-заголовка пакета и полям данных. Поля задаются в виде диапазона битов. Параметры для bit_check
|
|||||||||||||||||||||||||
• app_fw – задает дополнительную фильтрацию содержимого пакетов в Smart Firewall на уровне приложений. Не имеет параметров.
Примечание: Очень сильно замедляется обработка пакетов, попавших под этот фильтр.
Настройка Smart Firewall выполняется в конфигурационном файле /opt/VPNagent/etc/smartfw.ini (для С-Терра Клиент файл расположен в каталоге с установленным Продуктом).
Smart Firewall (SmartFW)умеет обрабатывать следующие типы пакетов (L4): • UDP – фильтрация и блокирование пакета по заданным в smartfw.ini сигнатурам (последовательностям байтов). • TCP – фильтрация и блокирование потока в следующих случаях: • Нахождение в потоке заданных в smartfw.ini сигнатур. • Нахождение в потоке попыток загрузки исполняемых файлов с удалённых серверов по HTTP. • Нахождение в потоке заблокированных в smartfw.ini HTTP-методов. Остальные типы пакетов проходят без фильтрации.
Описание smartfw.ini Файл конфигурации состоит из секций:
Секция [Filtration] Используется для описания правил фильтрации пакетов. Имеет в себе следующие поля: • http_application_filter – включает или выключает фильтрацию загрузок исполняемых файлов по HTTP. Значения: yes | no.
Не имеет значения по умолчанию. Требуется явно определить. При неуказании значения Smart Firewall не сможет запуститься. • tcp_signature_filter – задаёт сигнатуры, при наличии которых TCP-поток будет блокироваться. Состоит из бинарных сигнатур, записанных в шестнадцатеричном формате, разделённых запятыми. Бинарная сигнатура являет из себя набор байт, записываемых в формате \xAB, где AB – шестнадцатеричное значение байта. Большие и маленькие буквы не различаются. Пробелы пропускаются.
• udp_signature_filter – задаёт сигнатуры, при наличии которых UDP-пакет будет блокироваться Состоит из бинарных сигнатур, записанных в шестнадцатеричном формате, разделённых запятыми. Бинарная сигнатура являет из себя набор байт, записываемых в формате \xAB, где AB – шестнадцатеричное значение байта. Большие и маленькие буквы не различаются. Пробелы пропускаются. • blocked_http_methods – задаёт заблокированные HTTP-методы. Представляет из себя битовую маску операции ИЛИ из кодов заблокированных методов. Список допустимых методов и их кодов: • GET – 1 • HEAD – 2 • POST – 4 • PUT – 8 • DELETE – 16 • CONNECT – 32 • OPTIONS – 64 • TRACE – 128 • PATCH – 256.
Секция [Logging] Используется для описания параметров логирования в syslog. Имеет поле: • loglevel – определяет уровень логирования. Значения: EMERG|ALERT|CRIT|ERR|WARNING|NOTICE|INFO|DEBUG
Секция [System] Используется для описания параметров взаимодействия со средой выполнения. Имеет поле: • disable – отвечает за отключение от драйвера. Используется по причине единственности интерфейса взаимодействия между драйвером и smartfw/proxy Значения: yes заставляет сервис не использовать драйвер для получения пакетов.
Smart Firewall может посылать следующие сообщения в syslog (на консоль):
Blocked udp-packet %IP1(%PORT1) -> %IP2(%PORT2) len: %LEN reason: UDP-filter #%FN
udp-пакет с данными параметрами был заблокирован по причине наличия в нем сигнатуры №%FN.
Описание параметров: • %IP1, %PORT1, %IP2, %PORT2 – ip-адреса и порты источника и назначения udp-пакета. • %LEN – длина udp-пакета. • %FN – номер сигнатуры, приведшей к блокировке пакета. Уровень лога: WARNING
Blocked TCP-stream %IP1(%PORT1) -> %IP2(%PORT2) reason: TCP-filter #%FN TCP-поток с данными параметрами был заблокирован по причине наличия в нем сигнатуры №%FN.
Описание параметров: • %IP1, %PORT1, %IP2, %PORT2 – ip-адреса и порты источника и назначения TCP-потока. • %FN – номер сигнатуры, приведшей к блокировке TCP-потока. Уровень лога: WARNING
Blocked TCP-stream %IP1(%PORT1) -> %IP2(%PORT2) reason: found application in stream TCP-поток с данными параметрами был заблокирован по причине наличия в нём мобильного кода.
Описание параметров: • %IP1, %PORT1, %IP2, %PORT2 – ip-адреса и порты источника и назначения TCP-потока. • %FN – номер сигнатуры, приведшей к блокировке TCP-потока. Уровень лога: WARNING
Blocked TCP-stream %IP1(%PORT1) -> %IP2(%PORT2) reason: found blocked http-method %METHOD TCP-поток с данными параметрами был заблокирован по причине наличия в нем заблокированного HTTP-метода.
Описание параметров: • %IP1, %PORT1, %IP2, %PORT2 – ip-адреса и порты источника и назначения TCP-потока • % METHOD – имя метода, приведшего к блокировке TCP-потока Уровень лога: WARNING |
|||||||||||||||||||||||||
Значение по умолчанию |
отсутствуют специальные действия над пакетом. |
||||||||||||||||||||||||
Примечание |
Если ExtendedAction не соответствует применению FilterChain, выдается ошибка разбора конфигурации. |
Допустимые значения ExtendedAction для разных применений FilterChain приведены в нижеследующей таблице.
|
inspect_tcp inspect_ftp |
tcp_flags |
classify_mark |
bit_check |
ipsec |
app_fw |
NetworkInterface.InputFilter NetworkInterface.OutputFilter |
+ |
+ |
+ |
+ |
– |
+ |
IPsecAction.InputFilter IPsecAction.OutputFilter |
– |
+ |
+ |
+ |
– |
– |
NetworkInterface.InputClassification NetworkInterface.OutputClassification |
– |
+ |
+ |
+ |
– |
– |
NetworkInterface.IPsecPolicy |
– |
– |
– |
– |
+ |
– |