AAA (Authentication, Authorization, Accounting) – используется для описания процесса предоставления доступа и контроля над ним.
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Указать local в качестве метода аутентификации. | esr(config)# aaa authentication login { default | <NAME> } <METHOD 1> | <NAME> – имя списка, задаётся строкой до 31 символа. Способы аутентификации:
|
2 | Указать enable в качестве способа аутентификации повышения привилегий пользователей. | esr(config)# aaa authentication enable <NAME><METHOD 1> [ <METHOD 2> ] | <NAME> – имя списка, задаётся строкой до 31 символа. Способы аутентификации:
|
3 | Указать способ перебора методов аутентификации в случае отказа (необязательно). | esr(config)# aaa authentication mode <MODE> | <MODE> – способы перебора методов:
Значение по умолчанию: chain. |
4 | Указать количество неудачных попыток аутентификации для блокировки логина пользователя и время блокировки (необязательно). | esr(config)# aaa authentication attempts max-fail <COUNT> <TIME> | <COUNT> – количество неудачных попыток аутентификации, после которых произойдет блокировка пользователя, принимает значения [1..65535]; <TIME> – интервал времени в минутах, на который будет заблокирован пользователь, принимает значения [1..65535]. Значение по умолчанию: |
5 | Включить запрос на смену пароля по умолчанию для пользователя admin (необязательно). | esr(config)# security passwords default-expired | |
6 | Включить режим запрета на использование ранее установленных паролей локальных пользователей (необязательно). | esr(config)# security passwords history <COUNT> | <COUNT> – количество паролей, сохраняемых в памяти маршрутизатора. Принимает значение в диапазоне [1..15]. Значение по умолчанию: 0. |
7 | Установить время действия пароля локального пользователя (необязательно). | esr(config)# security passwords lifetime <TIME> | <TIME> – интервал времени действия пароля в днях. Принимает значение в диапазоне [1..365]. По умолчанию: время действия пароля локального пользователя не ограничено. |
8 | Установить ограничение на минимальную длину пароля локального пользователя и ENABLE-пароля (необязательно). | esr(config)# security passwords min-length <NUM> | <NUM> – минимальное количество символов в пароле. Принимает значение в диапазоне [8..128]. Значение по умолчанию: 0. |
9 | Установить ограничение на максимальную длину пароля локального пользователя и ENABLE-пароля (необязательно). | esr(config)# security passwords max-length <NUM> | <NUM> – максимальное количество символов в пароле. Принимает значение в диапазоне [8..128]. Значение по умолчанию: не ограничено. |
10 | Установить минимальное количество типов символов, которые должны присутствовать в пароле локального пользователя и ENABLE-пароле (необязательно). | esr(config)# security passwords symbol-types <COUNT> | <COUNT> – минимальное количество типов символов в пароле. Принимает значение в диапазоне [1..4]. Значение по умолчанию: 1. |
11 | Установить минимальное количество строчных букв в пароле локального пользователя и ENABLE-пароле (необязательно). | esr(config)# security passwords lower-case <COUNT> | <COUNT> – минимальное количество строчных букв в пароле локального пользователя и ENABLE-пароле. Принимает значение в диапазоне [0..128]. Значение по умолчанию: 0. |
12 | Установить минимальное количество прописных (заглавных) букв в пароле локального пользователя и ENABLE-пароле (необязательно). | esr(config)# security passwords upper-case <COUNT> | <COUNT> – минимальное количество прописных (заглавных) букв в пароле. Принимает значение в диапазоне [0..128]. Значение по умолчанию: 0. |
13 | Установить минимальное количество цифр в пароле локального пользователя и ENABLE-пароле (необязательно). | esr(config)# security passwords numeric-count <COUNT> | <COUNT> – минимальное количество цифр в пароле. Принимает значение в диапазоне [0..128]. Значение по умолчанию: 0. |
14 | Установить минимальное количество специальных символов в пароле локального пользователя и ENABLE-пароле (необязательно). | esr(config)# security passwords special-case <COUNT> | <COUNT> – минимальное количество специальных символов в пароле. Принимает значение в диапазоне [0..128]. Значение по умолчанию: 0. |
15 | Добавить пользователя в локальную базу и перейти в режим настройки параметров пользователя. | esr(config)# username <NAME> | <NAME> – имя пользователя, задаётся строкой до 31 символа. |
16 | Установить пароль пользователя. | esr(config-user)# password { <CLEAR-TEXT> | encrypted <HASH_SHA512> } | <CLEAR-TEXT> – пароль, задаётся строкой [8 .. 32] символов, принимает значения [0-9a-fA-F]; <HASH_SHA512> – хеш пароля по алгоритму sha512, задаётся строкой из 110 символов. |
17 | Установить уровень привилегий пользователя. | esr(config-user)# privilege <PRIV> | <PRIV> – необходимый уровень привилегий. Принимает значение [1..15]. |
18 | Указать метод аутентификации SSH-сессий для пользователя (необязательно). | esr(config-user)# ssh authentication method <METHOD> | <METHOD> – метод аутентификации SSH-сессий. Может принимать значения:
|
19 | Указать имя файла публичного ключа, который будет использован при аутентификации SSH-сессии пользователя (необязательно). | esr(config-user)# ssh pubkey <NAME> | <NAME> – имя файла публичного ключа, расположенного в разделе crypto:public-key, задаётся строкой до 31 символа. |
20 | Перейти в режим конфигурирования соответствующего терминала. | esr(config)# line console или esr(config)# line telnet или esr(config)# line ssh | |
21 | Активировать список аутентификации входа пользователей в систему. | esr(config-line-ssh)# login authentication <NAME> | <NAME> – имя списка, задаётся строкой до 31 символа. |
22 | Активировать список аутентификации повышения привилегий пользователей. | esr(config-line-ssh)# enable authentication <NAME> | <NAME> – имя списка, задаётся строкой до 31 символа. |
23 | Задать интервал, по истечении которого будет разрываться бездействующая сессия. | esr(config-line-ssh)# exec-timeout <SEC> | <SEC> – период времени в минутах, принимает значения [1..65535]. |
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Задать глобальное значение кода DSCP для использования в IP-заголовках исходящих пакетов RADIUS-сервера (необязательно). | esr(config)# radius-server dscp <DSCP> | <DSCP> – значение кода DSCP, принимает значения в диапазоне [0..63]. Значение по умолчанию: 63. |
2 | Задать глобальное значение количества перезапросов к последнему активному RADIUS-серверу (необязательно). | esr(config)# radius-server retransmit <COUNT> | <COUNT> – количество перезапросов к RADIUS-серверу, принимает значения [1..10]. Значение по умолчанию: 1. |
3 | Задать глобальное значение интервала, по истечении которого маршрутизатор считает, что RADIUS-сервер недоступен (необязательно). | esr(config)# radius-server timeout <SEC> | <SEC> – период времени в секундах, принимает значения [1..30]. Значение по умолчанию: 3 секунды. |
4 | Добавить RADIUS-сервер в список используемых серверов и перейти в режим его конфигурирования. | esr(config)# radius-server host | <IP-ADDR> – IP-адрес RADIUS-сервера, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-ADDR> – IPv6-адрес RADIUS-сервера, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF] <VRF> – имя экземпляра VRF, задается строкой до 31 символа. |
| 5 | Задать описание конфигурируемого RADIUS-сервера (необязательно). | esr(config-radius-server)# description <description> | <description> – описание RADIUS-сервера, задается строкой до 255 символов. |
6 | Указать количество неудачных попыток аутентификации для блокировки логина пользователя и времени блокировки (необязательно). | esr(config-radius-server)# aaa authentication attempts max-fail <COUNT> <TIME> | <COUNT> – количество неудачных попыток аутентификации, после которых произойдет блокировка пользователя, принимает значения [1..65535]; <TIME> – интервал времени в секундах, на который будет заблокирован пользователь, принимает значения [1..65535]. Значение по умолчанию: <COUNT> – 5; <TIME> – 300. |
7 | Задать пароль для аутентификации на удаленном RADIUS-сервере. | esr(config-radius-server)# key ascii-text | <TEXT> – строка [8..16] ASCII-символов; <ENCRYPTED-TEXT> – зашифрованный пароль, размером [8..16] байт, задаётся строкой [16..32] символов. |
8 | Задать приоритет использования удаленного RADIUS-сервера (необязательно). | esr(config-radius-server)# priority <PRIORITY> | <PRIORITY> – приоритет использования удаленного сервера, принимает значения [1..65535]. Чем ниже значение, тем приоритетнее сервер. Значение по умолчанию: 1. |
9 | Задать интервал, по истечении которого маршрутизатор считает, что данный RADIUS-сервер недоступен (необязательно). | esr(config-radius-server)# timeout <SEC> | <SEC> – период времени в секундах, принимает значения [1..30]. Значение по умолчанию: используется значение глобального таймера. |
10 | Задать IPv4/IPv6-адрес, который будет использоваться в качестве IPv4/IPv6-адреса источника в отправляемых RADIUS-пакетах. | esr(config-radius-server)# source-address { <ADDR> | object-group <NETWORK_OBJ_GROUP_NAME> } | <ADDR> – IP-адрес источника, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <NETWORK_OBJ_GROUP_NAME> – список адресов, которые будут использоваться в качестве source address. |
| 11 | Задать интерфейс или туннель маршрутизатора, IPv4/IPv6-адрес которого будет использоваться в качестве IPv4/IPv6-адреса источника в отправляемых RADIUS-пакетах. | esr(config-radius-server)# source-interface { <IF> | <TUN> } | <IF> – имя интерфейса устройства, задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора; <TUN> – имя туннеля устройства, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора. |
12 | Указать radius в качестве метода аутентификации. | esr(config)# aaa authentication login { default | <NAME> } <METHOD 1> | <NAME> – имя списка, задаётся строкой до 31 символа. Способы аутентификации:
|
13 | Указать radius в качестве способа аутентификации повышения привилегий пользователей. | esr(config)# aaa authentication enable <NAME><METHOD 1> | <NAME> – имя списка строка до 31 символа;
<METHOD> – способы аутентификации:
|
14 | Указать способ перебора методов аутентификации в случае отказа (необязательно). | esr(config)# aaa authentication mode <MODE> | <MODE> – способы перебора методов:
Значение по умолчанию: chain. |
15 | Сконфигурировать radius в списке способов учета сессий пользователей (необязательно). | esr(config)# aaa accounting login start-stop <METHOD 1> | <METHOD> – способы учета:
|
16 | Перейти в режим конфигурирования соответствующего терминала. | esr(config)# line <TYPE> | <TYPE> – тип консоли:
|
17 | Активировать список аутентификации входа пользователей в систему. | esr(config-line-console)# login authentication <NAME> | <NAME> – имя списка, задаётся строкой до 31 символа. Создано на шаге 8. |
18 | Активировать список аутентификации повышения привилегий пользователей. | esr(config-line-console)# enable authentication <NAME> | <NAME> – имя списка, задаётся строкой до 31 символа. Создано на шаге 9. |
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Задать глобальное значение кода DSCP для использования в IP-заголовках исходящих пакетов TACACS-сервера (необязательно). | esr(config)# tacacs-server dscp <DSCP> | <DSCP> – значение кода DSCP, принимает значения в диапазоне [0..63]. Значение по умолчанию: 63. |
| 2 | Задать глобальное значение интервала, по истечении которого маршрутизатор считает, что TACACS-сервер недоступен (необязательно). | esr(config)# tacacs-server timeout <SEC> | <SEC> – период времени в секундах, принимает значения [1..30]. Значение по умолчанию: 3 секунды. |
| 3 | Добавить TACACS-сервер в список используемых серверов и перейти в режим его конфигурирования. | esr(config)# tacacs -server host
| <IP-ADDR> – IP-адрес TACACS-сервера, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255] <IPV6-ADDR> – IPv6-адрес TACACS -сервера, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF] <VRF> – имя экземпляра VRF, задается строкой до 31 символа. |
| 4 | Задать описание конфигурируемого TACACS-сервера (необязательно). | esr(config-tacacs-server)# description <description> | <description> – описание TACACS-сервера, задается строкой до 255 символов. |
| 5 | Указать количество неудачных попыток аутентификации для блокировки логина пользователя и время блокировки (необязательно) | esr(config-tacacs-server)# aaa authentication attempts max-fail <COUNT> <TIME> | <COUNT> – количество неудачных попыток аутентификации, после которых произойдет блокировка пользователя, принимает значения [1..65535]; <TIME> – интервал времени в минутах, на который будет заблокирован пользователь, принимает значения [1..65535]. Значение по умолчанию: <COUNT> – 5; <TIME> – 300. |
| 6 | Задать пароль для аутентификации на удаленном TACACS-сервере | esr(config-tacacs-server)# key ascii-text { <TEXT> | encrypted <ENCRYPTED-TEXT> } | <TEXT> – строка [8..16] ASCII-символов; <ENCRYPTED-TEXT> – зашифрованный пароль, размером [8..16] байт, задаётся строкой [16..32] символов. |
| 7 | Задать номер порта для обмена данными c удаленным TACACS-сервером (необязательно). | esr(config-tacacs-server)# port <PORT> | <PORT> – номер TCP-порта для обмена данными c удаленным сервером, принимает значения [1..65535]. Значение по умолчанию: 49 для TACACS-сервера. |
8 | Задать приоритет использования удаленного TACACS сервера (необязательно). | esr(config-tacacs-server)# priority <PRIORITY> | <PRIORITY> – приоритет использования удаленного сервера, принимает значения [1..65535]. Чем ниже значение, тем приоритетнее сервер. Значение по умолчанию: 1. |
9 | Задать IPv4/IPv6-адрес, который будет использоваться в качестве IP/IPv6-адреса источника в отправляемых TACACS-пакетах. | esr(config-tacacs-server)# source-address { <ADDR> | object-group <NETWORK_OBJ_GROUP_NAME> } | <ADDR> – IP-адрес источника, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <NETWORK_OBJ_GROUP_NAME> – список адресов, которые будут использоваться в качестве source address. |
| 10 | Задать интерфейс или туннель маршрутизатора, IPv4/IPv6-адрес которого будет использоваться в качестве IPv4/IPv6-адреса источника в отправляемых TACACS-пакетах. | esr(config-tacacs-server)# source-interface { <IF> | <TUN> } | <IF> – имя интерфейса устройства, задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора; <TUN> – имя туннеля устройства, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора. |
11 | Указать TACACS в качестве способа аутентификации повышения привилегий пользователей. | esr(config)# aaa authentication enable <NAME><METHOD 1> | <NAME> – имя списка строка до 31 символа;
<METHOD> – способы аутентификации:
|
12 | Указать способ перебора методов аутентификации в случае отказа (необязательно). | esr(config)# aaa authentication mode <MODE> | <MODE> – способы перебора методов:
Значение по умолчанию: chain. |
13 | Сконфигурировать список способов учета команд, введённых в CLI (необязательно). | esr(config)# aaa accounting commands stop-only tacacs | |
14 | Сконфигурировать tacacs в списке способов учета сессий пользователей (необязательно). | esr(config)# aaa accounting login start-stop <METHOD 1> | <METHOD> – способы учета:
|
15 | Перейти в режим конфигурирования соответствующего терминала. | esr(config)# line <TYPE> | <TYPE> – тип консоли:
|
16 | Активировать список аутентификации входа пользователей в систему. | esr(config-line-console)# login authentication <NAME> | <NAME> – имя списка, задаётся строкой до 31 символа. Создано на шаге 7. |
17 | Активировать список аутентификации повышения привилегий пользователей. | esr(config-line-console)# enable authentication <NAME> | <NAME> – имя списка, задаётся строкой до 31 символа. Создано на шаге 8. |
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Задать базовый DN (Distinguished name), который будет использоваться при поиске пользователей. | esr(config)# ldap-server base-dn <NAME> | <NAME> – базовый DN, задается строкой до 255 символов. |
2 | Задать интервал, по истечении которого устройство считает, что LDAP-сервер недоступен (необязательно). | esr(config)# ldap-server bind timeout <SEC> | <SEC> – период времени в секундах, принимает значения [1..30]. Значение по умолчанию: 3 секунды. |
3 | Задать DN (Distinguished name) пользователя с правами администратора, под которым будет происходить авторизация на LDAP-сервере при поиске пользователей. | esr(config)# ldap-server bind authenticate root-dn <NAME> | <NAME> – DN пользователя с правами администратора, задается строкой до 255 символов. |
4 | Задать пароль пользователя с правами администратора, под которым будет происходить авторизация на LDAP-сервере при поиске пользователей. | esr(config)# ldap-server bind authenticate root-password ascii-text | <TEXT> – строка [8..16] ASCII-символов; <ENCRYPTED-TEXT> – зашифрованный пароль, размером [8..16] байт, задаётся строкой [16..32] символов. |
5 | Задать имя класса объектов, среди которых необходимо выполнять поиск пользователей на LDAP-сервере (необязательно). | esr(config)# ldap-server search filter user-object-class <NAME> | <NAME> – имя класса объектов, задаётся строкой до 127 символов. Значение по умолчанию: posixAccount. |
6 | Задать область поиска пользователей в дереве LDAP-сервера (необязательно). | esr(config)# ldap-server search scope <SCOPE> | <SCOPE> – область поиска пользователей на LDAP-сервере, принимает следующие значения:
Значение по умолчанию: subtree. |
7 | Задать интервал, по истечении которого устройство считает, что LDAP-сервер не нашел записей пользователей, подходящих под условие поиска (необязательно). | esr(config)# ldap-server search timeout <SEC> | <SEC> – период времени в секундах, принимает значения [0..30] Значение по умолчанию: 0 – устройство ожидает завершения поиска и получения ответа от LDAP-сервера. |
8 | Задать имя атрибута объекта, со значением которого идет сравнение имени искомого пользователя на LDAP-сервере (необязательно). | esr(config)# ldap-server naming-attribute <NAME> | <NAME> – имя атрибута объекта, задаётся строкой до 127 символов. Значение по умолчанию: uid. |
9 | Задать имя атрибута объекта, значение которого будет определять начальные привилегии пользователя на устройстве (необязательно). | esr(config)# ldap-server privilege-level-attribute <NAME> | <NAME> – имя атрибута объекта, задаётся строкой до 127 символов. Значение по умолчанию: priv-lvl. |
10 | Задать глобальное значение кода DSCP для использования в IP-заголовках исходящих пакетов LDAP-сервера (необязательно). | esr(config)# ldap-server dscp <DSCP> | <DSCP> – значение кода DSCP, принимает значения в диапазоне [0..63]. Значение по умолчанию: 63. |
11 | Добавить LDAP-сервер в список используемых серверов и перейти в режим его конфигурирования. | esr(config)# ldap-server host { <IP-ADDR> | <IPV6-ADDR> }
| <IP-ADDR> – IP-адрес LDAP-сервера, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255] <IPV6-ADDR> – IPv6-адрес LDAP-сервера, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF] <VRF> – имя экземпляра VRF, задается строкой до 31 символа. |
| 12 | Задать описание конфигурируемого LDAP-сервера (необязательно). | esr(config-ldap-server)# description <description> | <description> – описание LDAP-сервера, задается строкой до 255 символов. |
12 | Указать количество неудачных попыток аутентификации для блокировки логина пользователя и время блокировки (необязательно). | esr(config-ldap-server)# aaa authentication attempts max-fail <COUNT> <TIME> | <COUNT> – количество неудачных попыток аутентификации, после которых произойдет блокировка пользователя, принимает значения [1..65535]; <TIME> – интервал времени в минутах, на который будет заблокирован пользователь, принимает значения [1..65535]. Значение по умолчанию: <COUNT> – 5; <TIME> – 300. |
13 | Задать номер порта для обмена данными c удаленным LDAP-сервером (необязательно). | esr(config-ldap-server)# port <PORT> | <PORT> – номер TCP-порта для обмена данными c удаленным сервером, принимает значения [1..65535]. Значение по умолчанию: 389 для LDAP-сервера. |
14 | Задать приоритет использования удаленного LDAP-сервера (необязательно). | esr(config-ldap-server)# priority <PRIORITY> | <PRIORITY> – приоритет использования удаленного сервера, принимает значения [1..65535]. Чем ниже значение, тем приоритетнее сервер. Значение по умолчанию: 1. |
15 | Задать IPv4/IPv6-адрес, который будет использоваться в качестве IP/IPv6-адреса источника в отправляемых LDAP-пакетах. | esr(config-ldap-server)# source-address { <ADDR> | object-group <NETWORK_OBJ_GROUP_NAME> } | <ADDR> – IP-адрес источника, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <NETWORK_OBJ_GROUP_NAME> – список адресов, которые будут использоваться в качестве source address. |
| 16 | Задать интерфейс или туннель маршрутизатора, IPv4/IPv6-адрес которого будет использоваться в качестве IPv4/IPv6-адреса источника в отправляемых LDAP-пакетах. | esr(config-ldap-server)# source-interface { <IF> | <TUN> } | <IF> – имя интерфейса устройства, задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора; <TUN> – имя туннеля устройства, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора. |
17 | Указать LDAP в качестве метода аутентификации. | esr(config)# aaa authentication login { default | <NAME> } | <NAME> – имя списка, задаётся строкой до 31 символа. Способы аутентификации:
|
18 | Указать LDAP в качестве способа аутентификации повышения привилегий пользователей. | esr(config)# aaa authentication enable <NAME> | <NAME> – имя списка строка до 31 символа;
<METHOD> – способы аутентификации:
|
19 | Указать способ перебора методов аутентификации в случае отказа. | esr(config)# aaa authentication mode <MODE> | <MODE> – способы перебора методов:
Значение по умолчанию: chain. |
20 | Перейти в режим конфигурирования соответствующего терминала. | esr(config)# line <TYPE> | <TYPE> – тип консоли:
|
21 | Активировать список аутентификации входа пользователей в систему. | esr(config-line-console)# login authentication <NAME> | <NAME> – имя списка, задаётся строкой до 31 символа. Создано на шаге 14. |
22 | Активировать список аутентификации повышения привилегий пользователей. | esr(config-line-console)# enable authentication <NAME> | <NAME> – имя списка, задаётся строкой до 31 символа. Создано на шаге 15. |
Настроить аутентификацию пользователей, подключающихся по Telnet, через RADIUS (192.168.16.1/24).
Настроим подключение к RADIUS-серверу и укажем ключ (password):
esr# configure esr(config)# radius-server host 192.168.16.1 esr(config-radius-server)# key ascii-text encrypted 8CB5107EA7005AFF esr(config-radius-server)# exit |
Создадим профиль аутентификации:
esr(config)# aaa authentication login log radius |
Укажем режим аутентификации, используемый при подключении по Telnet-протоколу:
esr(config)# line telnet esr(config-line-telnet)# login authentication log esr(config-line-telnet)# exit esr(config)# exit |
Просмотреть информацию по настройкам подключения к RADIUS-серверу можно командой:
esr# show aaa radius-servers |
Посмотреть профили аутентификации можно командой:
esr# show aaa authentication |
Настройка привилегий команд является гибким инструментом, который позволяет назначить набору команд минимально необходимый уровень пользовательских привилегий (1-15). В дальнейшем при создании пользователя можно задать уровень привилегий, определяя ему доступный набор команд.
Для изменения минимального уровня привилегий необходимого для выполнения команды CLI используется команда:
esr(config)# privilege <COMMAND-MODE> level <PRIV><COMMAND> |
<COMMAND-MODE> – командный режим;
<PRIV> – необходимый уровень привилегий поддерева команд, принимает значение [1..15];
<COMMAND> – поддерево команд, задается строкой до 255 символов.
Перевести все команды просмотра информации об интерфейсах на уровень привилегий 10, кроме команды «show interfaces bridges». Команду «show interfaces bridges» перевести на уровень привилегий 3.
В режиме конфигурирования определим команды, разрешенные на использование с уровнем привилегий 10 и уровнем привилегий 3:
esr(config)# privilege root level 3 "show interfaces bridge" esr(config)# privilege root level 10 "show interfaces" |
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Включить защиту от ICMP flood-атак. | esr(config)# ip firewall screen dos-defense | <NUM> – количество ICMP-пакетов в секунду, задается в диапазоне [1..10000]. |
2 | Включить защиту от land-атак. | esr(config)# firewall screen dos-defense land | |
3 | Включить ограничение числа пакетов, отправляемых за одну секунду на один адрес назначения | esr(config)# ip firewall screen dos-defense | <NUM> – ограничение числа IP-пакетов в секунду, задается в диапазоне [1..10000]. |
4 | Включить ограничение числа пакетов, отправляемых за одну секунду с единого адреса источника | esr(config)# ip firewall screen dos-defense | <NUM> – ограничение числа IP-пакетов в секунду, задается в диапазоне [1..10000]. |
5 | Включить защиту от SYN flood-атак. | esr(config)# ip firewall screen dos-defense | <NUM> – максимальное количество TCP-пакетов с установленным флагом SYN в секунду, задается в диапазоне [1..10000]. src-dst – ограничение количества TCP-пакетов с установленным флагом SYN на основании адреса источника и адреса назначения. |
6 | Включить защиту от UDP flood-атак. | esr(config)# ip firewall screen dos-defense | <NUM> – максимальное количество UDP-пакетов в секунду, задается в диапазоне [1..10000]. |
7 | Включить защиту от winnuke-атак. | esr(config)# ip firewall screen dos-defense winnuke | |
8 | Включить блокировку TCP-пакетов с установленным флагом FIN и не установленным флагом ACK. | esr(config)# ip firewall screen spy-blocking fin-no-ack | |
9 | Включить блокировку ICMP-пакетов различных типов. | esr(config)# ip firewall screen spy-blocking icmp-type | <TYPE> – тип ICMP, может принимать значения:
|
10 | Включить защиту от IP sweep-атак. | esr(config)# ip firewall screen spy-blocking ip-sweep { <NUM> } | <NUM> – интервал выявления ip sweep атаки, задается в миллисекундах [1..1000000]. |
11 | Включить защиту от port scan-атак. | esr(config)# ip firewall screen spy-blocking port-scan | <threshold> – интервал в секундах, в течение которого будет фиксироваться port scan-атака [1..10000]. <TIME> – время блокировки в миллисекундах [1..1000000]. |
12 | Включить защиту от IP spoofing-атак. | esr(config)# ip firewall screen spy-blocking spoofing | |
| 13 | Исключить из защиты от IP-spoofing атак указанную Object Group. | esr(config)# ip firewall screen spy-blocking spoofing exclude <object-group> | <object-group> - список разрешённых для spoofing подсетей. |
14 | Включить блокировку TCP-пакетов, с установленными флагами SYN и FIN. | esr(config)# ip firewall screen spy-blocking syn-fin | |
15 | Включить блокировку TCP-пакетов, со всеми флагами или с набором флагов: FIN, PSH, URG. Данной командой обеспечивается защита от атаки XMAS. | esr(config)# ip firewall screen spy-blocking tcp-all-flag | |
16 | Включить блокировку TCP-пакетов, с нулевым полем flags. | esr(config)# ip firewall screen spy-blocking tcp-no-flag | |
17 | Включить блокировку фрагментированных | esr(config)# ip firewall screen suspicious-packets icmp-fragment | |
18 | Включить блокировку фрагментированных IP-пакетов. | esr(config)# ip firewall screen suspicious-packets ip-fragment | |
19 | Включить блокировку ICMP-пакетов длиной более 1024 байт. | esr(config)# ip firewall screen suspicious-packets icmp-fragment | |
20 | Включить блокировку фрагментированных TCP-пакетов, с флагом SYN. | esr(config)# ip firewall screen suspicious-packets syn-fragment | |
21 | Включить блокировку фрагментированных UDP-пакетов. | esr(config)# ip firewall screen suspicious-packets udp-fragment | |
22 | Включить блокировку пакетов, с ID протокола в заголовке IP равном 137 и более. | esr(config)# ip firewall screen suspicious-packets unknown-protocols | |
23 | Установить частоту оповещения (по SNMP, syslog и в CLI) об обнаруженных и отраженных сетевых атаках. | esr(config)# ip firewall logging interval <NUM> | <NUM> – интервал времени в секундах [30 .. 2147483647]. |
24 | Включить механизм обнаружения и логирования DoS-атак через CLI, Syslog и по SNMP. | esr(config)# logging firewall screen dos-defense <ATACK_TYPE> | <ATACK_TYPE> – тип DoS-атаки, принимает значения: icmp-threshold, land, limit-session-destination, limit-session-source, syn-flood, udp-threshold, winnuke. |
25 | Включить механизм обнаружения и логирования шпионской активности через CLI, Syslog и по SNMP. | esr(config)# logging firewall screen spy-blocking | <ATACK_TYPE> – тип шпионской активности, принимает значения: fin-no-ack, ip-sweep, port-scan, spoofing, syn-fin, tcp-all-flag, tcp-no-flag. <ICMP_TYPE> – тип ICMP, принимает значения: destination-unreachable, echo-request, reserved, source-quench, time-exceeded. |
26 | Включить механизм обнаружения нестандартных пакетов и логирования через CLI, Syslog и по SNMP. | esr(config)# logging firewall screen suspicious-packets <PACKET_TYPE> | <PACKET_TYPE> – тип нестандартных пакетов, принимает значения: icmp-fragment, ip-fragment, large-icmp, syn-fragment, udp-fragment, unknown-protocols. |
| Команда | Описание |
|---|---|
| ip firewall screen dos-defense icmp-threshold | Данная команда включает защиту от ICMP flood-атак. При включенной защите ограничивается количество ICMP-пакетов всех типов в секунду для одного source-адреса. Атака приводит к перегрузке хоста и выводу его из строя из-за необходимости обрабатывать каждый запрос и отвечать на него. |
| firewall screen dos-defense land | Данная команда включает защиту от land-атак. При включенной защите блокируются пакеты с одинаковыми source и destination IP-адресами и флагом SYN в заголовке TCP. Атака приводит к перегрузке хоста и выводу его из строя из-за необходимости обрабатывать каждый TCP SYN пакет и попыток хоста установить TCP-сессию с самим собой. |
| ip firewall screen dos-defense limit-session-destination | Когда таблица IP-сессий хоста переполняется, он больше не в состоянии организовывать новые сессии и отбрасывает запросы (такое может происходить при различных DoS-атаках: SYN flood, UDP flood, ICMP flood, и т.д.). Команда включает ограничение числа пакетов, передаваемых за секунду на один адреса назначения, которое смягчает DoS-атаки. |
| ip firewall screen dos-defense limit-session-source | Когда таблица IP-сессий хоста переполняется, он больше не в состоянии организовывать новые сессии и отбрасывает запросы (такое может происходить при различных DoS-атаках: SYN flood, UDP flood, ICMP flood, и т.д.). Команда включает ограничение числа пакетов, передаваемых за секунду с одного адреса источника, которое смягчает DoS-атаки. |
| ip firewall screen dos-defense syn-flood | Данная команда включает защиту от SYN flood-атак. При включенной защите ограничивается количество TCP-пакетов с установленным флагом SYN в секунду для одного адреса назначения. Атака приводит к перегрузке хоста и выводу его из строя из-за необходимости обрабатывать каждый TCP SYN пакет и попыток установить TCP-сессии. |
| ip firewall screen dos-defense udp-threshold | Данная команда включает защиту от UDP flood-атак. При включенной защите ограничивается количество UDP-пакетов в секунду для одного адреса назначения. Атака приводит к перегрузке хоста и выводу его из строя из-за массивного UDP-трафика. |
| ip firewall screen dos-defense winnuke | Данная команда включает защиту от winnuke-атак. При включенной защите блокируются TCP-пакеты с установленным флагом URG и 139 портом назначения. Атака приводит к выходу из строя старых версий Windows (до 95 версии). |
| ip firewall screen spy-blocking fin-no-ack | Данная команда включает блокировку TCP-пакетов с установленным флагом FIN и не установленным флагом ACK. Такие пакеты являются нестандартными, и по ответу можно определить операционную систему жертвы. |
| ip firewall screen spy-blocking icmp-type destination-unreachable | Данная команда включает блокировку всех ICMP-пакетов 3 типа (destination-unreachable), включая пакеты, сгенерированные самим маршрутизатором. Защита не дает злоумышленнику узнать о топологии сети и доступности хостов. |
| ip firewall screen spy-blocking icmp-type echo-request | Данная команда включает блокировку всех ICMP-пакетов 8 типа (echo-request), включая пакеты, сгенерированные самим маршрутизатором. Защита не дает злоумышленнику узнать о топологии сети и доступности хостов. |
| ip firewall screen spy-blocking icmp-type reserved | Данная команда включает блокировку всех ICMP-пакетов 2 и 7 типов (reserved), включая пакеты, сгенерированные самим маршрутизатором. Защита не дает злоумышленнику узнать о топологии сети и доступности хостов. |
| ip firewall screen spy-blocking icmp-type source-quench | Данная команда включает блокировку всех ICMP-пакетов 4 типа (source quench), включая пакеты, сгенерированные самим маршрутизатором. Защита не дает злоумышленнику узнать о топологии сети и доступности хостов. |
| ip firewall screen spy-blocking icmp-type time-exceeded | Данная команда включает блокировку всех ICMP-пакетов 11 типа (time exceeded), включая пакеты, сгенерированные самим маршрутизатором. Защита не дает злоумышленнику узнать о топологии сети и доступности хостов. |
| ip firewall screen spy-blocking ip-sweep | Данная команда включает защиту от IP sweep-атак. При включенной защите, если в течение заданного в параметрах интервала приходит более 10 ICMP-запросов от одного источника, первые 10 запросов пропускаются маршрутизатором, а 11 и последующие отбрасываются на оставшееся время интервала. Защита не дает злоумышленнику узнать о топологии сети и доступности хостов. |
ip firewall screen spy-blocking port-scan | Данная команда включает защиту от port scan-атак. Если в течение первого заданного интервала времени (<threshold>) на один источник приходит более 10 TCP-пакетов с флагом SYN на разные TCP-порты или более 10 UDP-пакетов на разные UDP-порты, то такое поведение фиксируется как port scan-атака, и все последующие пакеты такого рода от источника блокируются на второй заданный интервал времени (<TIME>). Злоумышленник не сможет быстро просканировать открытые порты на устройстве. |
ip firewall screen spy-blocking spoofing | Данная команда включает защиту от ip spoofing-атак. При включенной защите маршрутизатор проверяет пакеты на соответствие адреса источника и записей в таблице маршрутизации, и в случае несоответствия пакет отбрасывается. Например, если пакет с адресом источника 10.0.0.1/24 приходит на интерфейс Gi1/0/1, а в таблице маршрутизации данная подсеть располагается за интерфейсом Gi1/0/2, то считается, что адрес источника был подменен. Защищает от вторжений в сеть с подмененными source IP-адресами. |
| ip firewall screen spy-blocking spoofing exclude <object-group> | Данная команда исключает из защиты от IP-spoofing атак указанную Object Group. В Object Group помещается список из допустимых адресов, которые будут игнорироваться. Команда используется вместе с основной ip firewall screen spy-blocking spoofing, которая включает защиту, иначе она не будет иметь эффекта. В случае, если на маршрутизатор приходит spoofing от разрешённых подсетей (например, частый опрос устройств в сети), пакеты пропускаются. |
ip firewall screen spy-blocking syn-fin | Данная команда включает блокировку TCP-пакетов с установленными флагами SYN и FIN. Такие пакеты являются нестандартными, и по ответу можно определить операционную систему жертвы. |
ip firewall screen spy-blocking tcp-all-flag | Данная команда включает блокировку TCP-пакетов со всеми флагами или с набором флагов: FIN, PSH, URG. Обеспечивается защита от атаки XMAS. |
ip firewall screen spy-blocking tcp-no-flag | Данная команда включает блокировку TCP-пакетов с нулевым полем flags. Такие пакеты являются нестандартными, и по ответу можно определить операционную систему жертвы. |
ip firewall screen suspicious-packets icmp-fragment | Данная команда включает блокировку фрагментированных ICMP-пакетов. ICMP-пакеты обычно небольшого размера и необходимости в их фрагментировании нет. |
ip firewall screen suspicious-packets ip-fragment | Данная команда включает блокировку фрагментированных пакетов. |
ip firewall screen suspicious-packets large-icmp | Данная команда включает блокировку ICMP-пакетов длиной более 1024 байт. |
ip firewall screen suspicious-packets syn-fragment | Данная команда включает блокировку фрагментированных TCP-пакетов с флагом SYN. TCP-пакеты с SYN-флагом обычно небольшого размера и необходимости в их фрагментировании нет. Защита предотвращает накопление фрагментированных пакетов в буфере. |
ip firewall screen suspicious-packets udp-fragment | Данная команда включает блокировку фрагментированных UDP-пакетов. |
ip firewall screen suspicious-packets unknown-protocols | Данная команда включает блокировку пакетов, с ID протокола в заголовке IP равном 137 и более. |
Необходимо защитить LAN-сеть и маршрутизатор ESR от сетевых атак land, syn-flood, ICMP flood и настроить оповещение об атаках по SNMP на SNMP-сервер 192.168.0.10.

Предварительно необходимо настроить интерфейсы и firewall (настройка firewall или ее отсутствие не повлияют на работу защиты от сетевых атак):
esr(config)# security zone LAN esr(config-security-zone)# exit esr(config)# security zone WAN esr(config-security-zone)# exit esr(config)# security zone-pair LAN WAN esr(config-security-zone-pair)# rule 100 esr(config-security-zone-pair-rule)# action permit esr(config-security-zone-pair-rule)# enable esr(config-security-zone-pair-rule)# exit esr(config-security-zone-pair)# exit esr(config)# security zone-pair WAN LAN esr(config-security-zone-pair)# rule 100 esr(config-security-zone-pair-rule)# action permit esr(config-security-zone-pair-rule)# enable esr(config-security-zone-pair-rule)# exit esr(config-security-zone-pair)# exit esr(config)# exit esr(config)# interface gigabitethernet 1/0/1 esr(config-if-gi)# security-zone LAN esr(config-if-gi)# ip address 192.168.0.1/24 esr(config-if-gi)# exit esr(config)# interface gigabitethernet 1/0/2 esr(config-if-gi)# security-zone WAN esr(config-if-gi)# ip address 10.0.0.1/24 esr(config-if-gi)# exit |
Настроим защиту от land, syn-flood, ICMP flood-атак:
esr(config)# ip firewall screen dos-defense land esr(config)# ip firewall screen dos-defense syn-flood 100 src-dst esr(config)# ip firewall screen dos-defense icmp-threshold 100 |
Настроим логирование обнаруженных атак:
esr(config)# logging firewall screen dos-defense land esr(config)# logging firewall screen dos-defense syn-flood esr(config)# logging firewall screen dos-defense icmp-threshold |
Настроим SNMP-сервер, на который будут отправляться трапы:
esr(config)# snmp-server esr(config)# snmp-server host 192.168.0.10 esr(config)# snmp-server enable traps screen land esr(config)# snmp-server enable traps screen syn-flood esr(config)# snmp-server enable traps screen icmp-threshold |
Посмотреть статистику по зафиксированным сетевым атакам можно командой:
esr# show ip firewall screen counters |
Firewall – комплекс аппаратных или программных средств, осуществляющий контроль и фильтрацию проходящих через него сетевых пакетов в соответствии с заданными правилами.
| Шаг | Описание | Команда | Ключи | |
|---|---|---|---|---|
| 1 | Создать зоны безопасности. | esr(config)# security zone <zone-name1> esr(config)# security zone <zone-name2> | <zone-name> – до 12 символов. Имена all, any и self зарезервированы. | |
| 2 | Задать описание зоны безопасности. | esr(config-security-zone)# description <description> | <description> – до 255 символов. | |
| 3 | Указать экземпляр VRF, в котором будет работать данная зона безопасности (необязательно). | esr(config- security-zone)# ip vrf forwarding <VRF> | <VRF> – имя VRF, задается строкой до 31 символа. | |
| 4 | Включить счетчики сессий для NAT и Firewall (необязательно, снижает производительность). | esr(config)# ip firewall sessions counters | ||
| 5 | Отключить фильтрацию пакетов, для которых не удалось определить принадлежность к какому-либо известному соединению и которые не являются началом нового соединения (необязательно, снижает производительность). | esr(config)# ip firewall sessions allow-unknown | ||
6 | Выбрать режим работы межсетевого экрана (необязательно). В режиме stateful проверяется только первый пакет сессии, и если «прямой» трафик разрешён, «ответный» трафик разрешается автоматически. В режиме stateless происходит проверка каждого пакета. «Прямой» и «ответный» трафики требуется разрешать в соответствующих zone-pair (см. шаг 29). Работа межсетевого экрана по списку приложений возможна только в режиме stateless. | esr(config)# ip firewall mode <MODE> | <MODE> – режим работы межсетевого экрана, может принимать значения: stateful, stateless. Значение по умолчанию: stateful. | |
7 | Определить время жизни сессии для неподдерживаемых протоколов (необязательно). | esr(config)# ip firewall sessions generic-timeout <TIME> | <TIME> – время жизни сессии для неподдерживаемых протоколов, принимает значения в секундах [1..8553600]. По умолчанию: 60 секунд. | |
8 | Определить время жизни ICMP-сессии, по истечении которого она считается устаревшей (необязательно). | esr(config)# ip firewall sessions icmp-timeout <TIME> | <TIME> – время жизни ICMP-сессии, принимает значения в секундах [1..8553600]. По умолчанию: 30 секунд. | |
9 | Определить время жизни ICMPv6-сессии, по истечении которого она считается устаревшей (необязательно). | esr(config)# ip firewall sessions icmpv6-timeout <TIME> | <TIME> – время жизни ICMP-сессии, принимает значения в секундах [1..8553600]. По умолчанию: 30 секунд. | |
10 | Определить размер таблицы сессий, ожидающих обработки (необязательно). | esr(config)# ip firewall sessions max-expect <COUNT> | <COUNT> – размер таблицы, принимает значения [1..8553600]. По умолчанию: 256. | |
11 | Определить размер таблицы отслеживаемых сессий (необязательно). | esr(config)# ip firewall sessions max-tracking <COUNT> | <COUNT> – размер таблицы, принимает значения [1..8553600]. | |
12 | Определить время жизни TCP-сессии в состоянии «соединение устанавливается», по истечении которого она считается устаревшей (необязательно). | esr(config)# ip firewall sessions tcp-connect-timeout <TIME> | <TIME> – время жизни TCP-сессии в состоянии «соединение устанавливается», принимает значения в секундах [1..8553600]. По умолчанию: 60 секунд. | |
13 | Определить время жизни TCP-сессии в состоянии «соединение закрывается», по истечении которого она считается устаревшей (необязательно). | esr(config)# ip firewall sessions tcp-disconnect-timeout <TIME> | <TIME> – время жизни TCP-сессии в состоянии «соединение закрывается» принимает значения в секундах [1..8553600]. | |
14 | Определить время жизни TCP-сессии в состоянии «соединение установлено», по истечении которого она считается устаревшей (необязательно). | esr(config)# ip firewall sessions tcp-established-timeout <TIME> | <TIME> – время жизни TCP-сессии в состоянии «соединение установлено», принимает значения в секундах [1..8553600]. По умолчанию: 120 секунд. | |
15 | Определить время ожидания, по истечении которого происходит фактическое удаление закрытой TCP-сессии из таблицы отслеживаемых сессий (необязательно). | esr(config)# ip firewall sessions tcp-latecome-timeout <TIME> | <TIME> – время ожидания, принимает значения в секундах [1..8553600]. По умолчанию: 120 секунд. | |
16 | Включить функцию отслеживания сессий уровня приложений для отдельных протоколов (необязательно). | esr(config)# ip firewall sessions tracking | <PROTOCOL> – протокол уровня приложений [ftp, h323, pptp, netbios-ns, tftp], сессии которого должны отслеживаться. <OBJECT-GROUP-SERVICE> – имя профиля TCP/UDP-портов sip-сессии, задаётся строкой до 31 символа. Если группа не указана, то отслеживание сессий sip будет осуществляться для порта 5060. Вместо имени отдельного протокола можно использовать ключ «all», который включает функцию отслеживания сессий уровня приложений для всех доступных протоколов. По умолчанию – отключено для всех протоколов. | |
17 | Определить время жизни UDP-сессии в состоянии «соединение подтверждено», по истечении которого она считается устаревшей (необязательно). | esr(config)# ip firewall sessions udp-assured-timeout <TIME> | <TIME> – время жизни UDP-сессии в состоянии «соединение подтверждено», принимает значения в секундах [1..8553600]. По умолчанию: 180 секунд. | |
18 | Определить время жизни UDP-сессии в состоянии «соединение не подтверждено», по истечении которого она считается устаревшей. | esr(config)# ip firewall sessions udp-wait-timeout <TIME> | <TIME> – время жизни UDP-сессии в состоянии «соединение не подтверждено», принимает значения в секундах [1..8553600]. По умолчанию: 30 секунд. | |
| 19 | Создать списки MAC-адресов, которые будут использоваться при фильтрации. | esr(config)# object-group mac <obj-group-name> | <obj-group-name> – до 31 символа. | |
| 20 | Задать описание списка MAC-адресов (необязательно). | esr(config-object-group-mac)# description <description> | <description> – описание профиля, задается строкой до 255 символов. | |
| 21 | Внести необходимые MAC-адреса в список. | esr(config-object-group-mac)# mac address <ADDR> <WILDCARD> | <ADDR> – МАС-адрес, задаётся в виде XX:XX:XX:XX:XX:XX, где каждая часть принимает значения [00..FF]. <WILDCARD> – маска МАС-адреса, задаётся в виде XX:XX:XX:XX:XX:XX, где каждая часть принимает значения [00..FF]. Биты маски, установленные в 0, задают биты MAC-адреса, исключаемые из сравнения при поиске. | |
22 | Создать списки IP-адресов, которые будут использоваться при фильтрации. | esr(config)# object-group network <obj-group-name> | <obj-group-name> – до 31 символа. | |
23 | Задать описание списка IP-адресов (необязательно). | esr(config-object-group-network)# description <description> | <description> – описание профиля, задается строкой до 255 символов. | |
24 | Внести необходимые IPv4/IPv6-адреса в список. | esr(config-object-group-network)# ip prefix <ADDR/LEN> [ unit <ID> ] | <ADDR/LEN> – подсеть, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32]. <ID> – номер юнита, принимает значения [1..2]. | |
esr(config-object-group-network)# ip address-range | <FROM-ADDR> – начальный IP-адрес диапазона адресов; <TO-ADDR> – конечный IP-адрес диапазона адресов, опциональный параметр. Если параметр не указан, то командой задаётся одиночный IP-адрес. Адреса задаются в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. <ID> – номер юнита, принимает значения [1..2]. | |||
esr(config-object-group-network)# ipv6 prefix <IPV6-ADDR/LEN> [ unit <ID> ] | <IPV6-ADDR/LEN> – IP-адрес и маска подсети, задаётся в виде X:X:X:X::X/EE, где каждая часть X принимает значения в шестнадцатеричном формате [0..FFFF] и EE принимает значения [1..128]. <ID> – номер юнита, принимает значения [1..2]. | |||
esr(config-object-group-network)# ipv6 address-range | <FROM-ADDR> – начальный IPv6-адрес диапазона адресов; <TO-ADDR> – конечный IPv6-адрес диапазона адресов, опциональный параметр. Если параметр не указан, то командой задаётся одиночный IPv6-адрес. Адреса задаются в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]. <ID> – номер юнита, принимает значения [1..2]. | |||
25 | Создать списки сервисов, которые будут использоваться при фильтрации. | esr(config)# object-group service <obj-group-name> | <obj-group-name> – имя профиля сервисов, задается строкой до 31 символа. | |
26 | Задать описание списка сервисов (необязательно). | esr(config-object-group-service)# description <description> | <description> – описание профиля, задается строкой до 255 символов. | |
27 | Внести необходимые сервисы (tcp/udp-порты) в список. | esr(config-object-group-service)# port-range <port> | <port> – принимает значение [1..65535]. Можно указать несколько портов перечислением через запятую «,» либо указать диапазон портов через «-». | |
28 | Создать списки приложений, которые будут использоваться в механизме DPI. | esr(config)# object-group application <NAME> | <NAME> – имя профиля приложений, задается строкой до 31 символа. | |
29 | Задать описание списка приложений (необязательно). | esr(config-object-group-application)# description <description> | <description> – описание профиля, задается строкой до 255 символов. | |
30 | Внести необходимые приложения в списки. | esr(config-object-group-application)# application < APPLICATION > | <APPLICATION> – указывает приложение, попадающее под действие данного профиля. | |
31 | Создать список доменных имен, которые будут использоваться при фильтрации. | esr(config)# object-group domain-name <NAME> | <NAME> – имя профиля доменных имен, задается строкой до 31 символа. | |
32 | Задать описание списка доменных имен (необязательно). | esr(config-object-group-domain-name)# description <description> | <description> – описание профиля, задается строкой до 255 символов. | |
33 | Внести необходимые доменные имена в списки. | esr(config-object-group-domain-name)# domain <DOMAIN> | <DOMAIN> – доменное имя, строка длинной от 1 до 253 символов. | |
34 | Включить интерфейсы (физические, логические, E1/Multilink и подключаемые), сервер удаленного доступа (l2tp, openvpn, pptp) или туннели (gre, ip4ip4, l2tp, lt, pppoe, pptp) в зоны безопасности (если необходимо). | esr(config-if-gi)# security-zone <zone-name> | <zone-name> – до 12 символов. | |
Отключить функции Firewall на сетевом интерфейсе (физические, логические, E1/Multilink и подключаемые), сервере удаленного доступа (l2tp, openvpn, pptp) или туннели (gre, ip4ip4, l2tp, lt, pppoe, pptp) (если необходимо). | esr(config-if-gi)# ip firewall disable | |||
Отключить функции Firewall глобально на всех сетевых сущностях (если необходимо). | esr(config)# ip firewall disable | |||
35 | Создать набор правил межзонового взаимодействия. На маршрутизаторе всегда существует зона безопасности с именем «self». Если в качестве получателя трафика выступает сам маршрутизатор, то есть трафик не является транзитным, то в качестве параметра указывается зона «self». Очерёдность обработки трафика для разных zone-pair описана в примечании. | esr(config)# security zone-pair <src-zone-name1> <dst-zone-name2> | <src-zone-name> – до 12 символов. <dst-zone-name> – до 12 символов. | |
36 | Создать правило межзонового взаимодействия. | esr(config-security-zone-pair)# rule <rule-number> | <rule-number> – 1..10000. | |
37 | Задать описание правила (необязательно). | esr(config-security-zone-pair)# description <description> | <description> – до 255 символов. | |
38 | Указать действие данного правила. | esr(config-security-zone-pair-rule)# action <action> [ log ] | <action> – permit/deny/reject/netflow-sample/sflow-sample/rate-limit/session-limit
log – ключ для активации логирования сессий, устанавливающимися согласно данному правилу. | |
39 | Установить имя или номер IP-протокола, для которого должно срабатывать правило (необязательно). | esr(config-security-zone-pair-rule)# match [not] protocol <protocol-type> | <protocol-type> – тип протокола, принимает значения: esp, icmp, ah, eigrp, ospf, igmp, ipip, tcp, pim, udp, vrrp, rdp, l2tp, gre. При указании значения «any» правило будет срабатывать для любых протоколов. | |
esr(config-security-zone-pair-rule)# match [not] protocol-id <protocol-id> | <protocol-id> – идентификационный номер IP-протокола, принимает значения [0x00-0xFF]. | |||
40 | Установить IP-адрес отправителя, для которых должно срабатывать правило (необязательно). | esr(config-security-zone-pair-rule)# match [not] source-address { address-range { <ADDR>[-<ADDR>] | <IPV6-ADDR>[-<IPV6-ADDR>] } | prefix { <ADDR/LEN> | <IPv6-ADDR/LEN> } |
| address-range <ADDR>[-<ADDR>] – диапазон IP-адресов для правил firewall. Если не указывать IP-адрес конца диапазона, то в качестве IP-адреса для срабатывания правила используется только IP-адрес начала диапазона. prefix <ADDR/LEN> – IP-подсеть, используемая для срабатывания правила фильтрации firewall. Параметр задаётся в виде A.B.C.D/E, где каждая часть A – D принимает значения [0..255] и E принимает значения [1..32]; <IPv6-ADDR/LEN> – IPv6-адрес, задаётся в виде X:X:X:X::X/E, где каждая часть X принимает значения в шестнадцатеричном формате [0..FFFF] и E принимает значения [1..128]; object-group network <OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, задаётся строкой до 31 символа; object-group domain-name <OBJ-GROUP-DOMAIN-NAME> – имя профиля доменных имен, задаётся строкой до 31 символа. При указании значения any правило будет срабатывать для любого IP-адреса получателя. | |
41 | Установить IP-адрес получателя, для которых должно срабатывать правило (необязательно). | esr(config-security-zone-pair-rule)# match [not] destination-address { address-range { <ADDR>[-<ADDR>] | <IPV6-ADDR>[-<IPV6-ADDR>] } | prefix { <ADDR/LEN> | <IPv6-ADDR/LEN> } | | ||
42 | Установить MAC-адрес отправителя, для которого должно срабатывать правило (необязательно). | esr(config-security-zone-pair-rule)# match [not] source-mac {<mac-addr> | <OBJ-GROUP-NAME>} | <mac-addr> – задаётся в виде XX:XX:XX:XX:XX:XX, где каждая часть принимает значения [00..FF]. <OBJ-GROUP-NAME> – имя профиля MAC-адресов, задаётся строкой до 31 символа. | |
43 | Установить MAC-адрес получателя, для которого должно срабатывать правило (необязательно). | esr(config-security-zone-pair-rule)# match [not] destination-mac {<mac-addr> | <OBJ-GROUP-NAME>} | ||
44 | Установить TCP/UDP-порт отправителя, для которого должно срабатывать правило (если указан протокол). | esr(config-security-zone-pair-rule)# match [not] source-port <TYPE> {<PORT-SET-NAME> | <FROM-PORT> - <TO-PORT>} | <TYPE> – тип аргумента, устанавливаемый в качестве порта:
<PORT-SET-NAME> – задаётся строкой до 31 символа; <FROM-PORT> – начальный порт диапазона; <TO-PORT> – конечный порт диапазона. | |
45 | Установить TCP/UDP-порт получателя, для которого должно срабатывать правило (если указан протокол). | esr(config-security-zone-pair-rule)# match [not] destination-port <TYPE> {<PORT-SET-NAME> | <FROM-PORT> - <TO-PORT>} | ||
| 46 | Установить профиль приложений, который будет использоваться в механизме DPI. | esr(config-security-zone-pair-rule)# match [not] application <OBJ-GROUP-NAME> | <OBJ-GROUP-NAME> – имя профиля приложений, задаётся строкой до 31 символа. | |
47 | Установить тип и код сообщений протокола ICMP, для которых должно срабатывать правило (если в качестве протокола выбран ICMP) (необязательно). | esr(config-security-zone-pair-rule)# match [not] icmp <ICMP_TYPE> <ICMP_CODE> | <ICMP_TYPE> – тип сообщения протокола ICMP, принимает значения [0..255]; <ICMP_CODE> – код сообщения протокола ICMP, принимает значения [0..255]. При указании значения «any» правило будет срабатывать для любого кода сообщения протокола ICMP. | |
48 | Установить тип и код сообщений протокола ICMPv6, для которых должно срабатывать правило (если в качестве протокола выбран ICMP) (необязательно). | esr(config-security-zone-pair-rule)# match [not] icmpv6 <ICMP_TYPE> <ICMP_CODE> | <ICMP_TYPE> – тип сообщения протокола ICMPv6, принимает значения [0..255]; <ICMP_CODE> – код сообщения протокола ICMPv6, принимает значения [0..255]. При указании значения «any» правило будет срабатывать для любого кода сообщения протокола ICMP. | |
49 | Установить ограничение, при котором правило будет срабатывать только для трафика, измененного сервисом трансляции IP-адресов и портов получателя. | esr(config-security-zone-pair-rule)# match [not] destination-nat | ||
50 | Установить фильтрацию только для фрагментированных IP-пакетов (необязательно, доступно только для zone-pair any self и zone-pair <zone-name> any). | esr(config-security-zone-pair-rule)# match [not] fragment | ||
51 | Установить фильтрацию для IP-пакетов, содержащих ip-option (необязательно, доступно только для zone-pair any self и zone-pair <zone-name> any). | esr(config-security-zone-pair-rule)# match [not] ip-option | ||
52 | Включить правило межзонового взаимодействия. | esr(config-security-zone-pair-rule)# enable | ||
53 | Активировать фильтрацию и режим отслеживания сессий при прохождении пакетов между участниками одной Bridge-группы (необязательно). | esr(config-bridge)# ports firewall enable |
Порядок обработки транзитного трафика правилами firewall
Порядок обработки трафика, терминируемого на маршрутизаторе
Каждая команда «match» может содержать ключ «not». При использовании данного ключа под правило будут подпадать пакеты, не удовлетворяющие заданному критерию.
Более подробная информация о командах для настройки межсетевого экрана содержится в справочнике команд CLI.
Разрешить обмен сообщениями по протоколу ICMP между устройствами R1, R2 и маршрутизатором ESR.

Для каждой сети ESR создадим свою зону безопасности:
esr# configure esr(config)# security zone LAN esr(config-security-zone)# exit esr(config)# security zone WAN esr(config-security-zone)# exit |
Настроим сетевые интерфейсы и определим их принадлежность к зонам безопасности:
esr(config)# interface gi1/0/2 esr(config-if-gi)# ip address 192.168.12.2/24 esr(config-if-gi)# security-zone LAN esr(config-if-gi)# exit esr(config)# interface gi1/0/3 esr(config-if-gi)# ip address 192.168.23.2/24 esr(config-if-gi)# security-zone WAN esr(config-if-gi)# exit |
Для настройки правил зон безопасности потребуется создать профиль адресов сети «LAN», включающий адреса, которым разрешен выход в сеть «WAN», и профиль адресов сети «WAN».
esr(config)# object-group network WAN esr(config-object-group-network)# ip address-range 192.168.23.2 esr(config-object-group-network)# exit esr(config)# object-group network LAN esr(config-object-group-network)# ip address-range 192.168.12.2 esr(config-object-group-network)# exit esr(config)# object-group network LAN_GATEWAY esr(config-object-group-network)# ip address-range 192.168.12.1 esr(config-object-group-network)# exit esr(config)# object-group network WAN_GATEWAY esr(config-object-group-network)# ip address-range 192.168.23.3 esr(config-object-group-network)# exit |
Для пропуска трафика из зоны «LAN» в зону «WAN» создадим пару зон и добавим правило, разрешающее проходить ICMP-трафику от R1 к R2. Действие правил разрешается командой enable:
esr(config)# security zone-pair LAN WAN esr(config-security-zone-pair)# rule 1 esr(config-security-zone-pair-rule)# action permit esr(config-security-zone-pair-rule)# match protocol icmp esr(config-security-zone-pair-rule)# match destination-address object-group WAN_GATEWAY esr(config-security-zone-pair-rule)# match source-address object-group LAN_GATEWAY esr(config-security-zone-pair-rule)# enable esr(config-security-zone-pair-rule)# exit esr(config-security-zone-pair)# exit |
Для пропуска трафика из зоны «WAN» в зону «LAN» создадим пару зон и добавим правило, разрешающее проходить ICMP-трафику от R2 к R1. Действие правил разрешается командой enable:
esr(config)# security zone-pair WAN LAN esr(config-security-zone-pair)# rule 1 esr(config-security-zone-pair-rule)# action permit esr(config-security-zone-pair-rule)# match protocol icmp esr(config-security-zone-pair-rule)# match destination-address object-group LAN_GATEWAY esr(config-security-zone-pair-rule)# match source-address object-group WAN_GATEWAY esr(config-security-zone-pair-rule)# enable esr(config-security-zone-pair-rule)# exit esr(config-security-zone-pair)# exit |
На маршрутизаторе всегда существует зона безопасности с именем «self». Если в качестве получателя трафика выступает сам маршрутизатор, то есть трафик не является транзитным, то в качестве параметра указывается зона «self». Создадим пару зон для трафика, идущего из зоны «WAN» в зону «self». Добавим правило, разрешающее проходить ICMP-трафику между R2 и маршрутизатором ESR, для того чтобы маршрутизатор начал отвечать на ICMP-запросы из зоны «WAN»:
esr(config)# security zone-pair WAN self esr(config-security-zone-pair)# rule 1 esr(config-security-zone-pair-rule)# action permit esr(config-security-zone-pair-rule)# match protocol icmp esr(config-security-zone-pair-rule)# match destination-address object-group WAN esr(config-security-zone-pair-rule)# match source-address object-group WAN_GATEWAY esr(config-security-zone-pair-rule)# enable esr(config-security-zone-pair-rule)# exit esr(config-security-zone-pair)# exit |
Создадим пару зон для трафика, идущего из зоны «LAN» в зону «self». Добавим правило, разрешающее проходить ICMP-трафику между R1 и ESR, для того чтобы маршрутизатор начал отвечать на ICMP-запросы из зоны «LAN»:
esr(config)# security zone-pair LAN self esr(config-security-zone-pair)# rule 1 esr(config-security-zone-pair-rule)# action permit esr(config-security-zone-pair-rule)# match protocol icmp esr(config-security-zone-pair-rule)# match destination-address object-group LAN esr(config-security-zone-pair-rule)# match source-address object-group LAN_GATEWAY esr(config-security-zone-pair-rule)# enable esr(config-security-zone-pair-rule)# exit esr(config-security-zone-pair)# exit esr(config)# exit |
Посмотреть членство портов в зонах можно с помощью команды:
esr# show security zone |
Посмотреть пары зон и их конфигурацию можно с помощью команд:
esr# show security zone-pair esr# show security zone-pair configuration |
Посмотреть активные сессии можно с помощью команд:
esr# show ip firewall sessions |
Фиксировать обращения на ресурсы компании Yandex из локальной сети в Syslog:

Создадим зоны безопасности для локальной сети и uplink-интерфейса в сторону интернет-провайдера:
esr# configure esr(config)# security zone LAN esr(config-security-zone)# exit esr(config)# security zone WAN esr(config-security-zone)# exit |
Настроим сетевые интерфейсы и определим их принадлежность к зонам безопасности:
esr(config)# interface gi1/0/1 esr(config-if-gi)# ip address 10.0.0.1/24 esr(config-if-gi)# security-zone WAN esr(config-if-gi)# exit esr(config)# interface gi1/0/2 esr(config-if-te)# ip address 192.168.0.1/24 esr(config-if-te)# security-zone LAN esr(config-if-te)# exit |
Настроим маршрут по умолчанию в сторону интернет-провайдера:
Настроим простую конфигурацию Source-NAT для любого транзитного через ESR трафика:
Создадим профиль доменных имен, включающий в себя популярные домены компании "Яндекс":
ESR также позволяет работать с интернационализованными доменными именами (домены, использующие символы национальных алфавитов). Для их использования интернационализованного доменного имени в конфигурации ESR его нужно преобразовать к виду ASCII-compatible encoding при помощи любого Punycode-преобразователя. Т.е. получим: |
esr(config)# object-group domain-name YANDEX esr(config-object-group-domain-name)# domain ya.ru esr(config-object-group-domain-name)# domain yandex.ru esr(config-object-group-domain-name)# domain dzen.ru esr(config-object-group-domain-name)# domain xn--d1acpjx3f.xn--p1ai esr(config-object-group-domain-name)# exit |
Для установки правил прохождения трафика из зоны «WAN» в зону «LAN» создадим пару зон и добавим правило, запрещающее проходить трафику приложений, и правило, разрешающее проходить остальному трафику. Действие правил разрешается командой enable:
esr(config)# security zone-pair WAN LAN esr(config-security-zone-pair)# rule 1 esr(config-security-zone-pair-rule)# action deny esr(config-security-zone-pair-rule)# match application BLACKLIST esr(config-security-zone-pair-rule)# enable esr(config-security-zone-pair-rule)# exit esr(config-security-zone-pair)# rule 2 esr(config-security-zone-pair-rule)# action permit esr(config-security-zone-pair-rule)# enable esr(config-security-zone-pair-rule)# exit esr(config-security-zone-pair)# exit |
Для установки правил прохождения трафика из зоны «LAN» в зону «WAN» создадим пару зон и добавим правило, запрещающее прохождение трафика приложений, и правило, разрешающее прохождение всего остального трафика. Действие правил разрешается командой enable:
esr(config)# security zone-pair LAN WAN esr(config-security-zone-pair)# rule 1 esr(config-security-zone-pair-rule)# action deny esr(config-security-zone-pair-rule)# match application BLACKLIST esr(config-security-zone-pair-rule)# enable esr(config-security-zone-pair-rule)# exit esr(config-security-zone-pair)# rule 2 esr(config-security-zone-pair-rule)# action permit esr(config-security-zone-pair-rule)# enable esr(config-security-zone-pair-rule)# exit esr(config-security-zone-pair)# exit |
Посмотреть членство портов в зонах можно с помощью команды:
esr# show security zone |
Посмотреть пары зон и их конфигурацию можно с помощью команд:
esr# show security zone-pair esr# show security zone-pair configuration |
Посмотреть активные сессии можно с помощью команд:
esr# show ip firewall sessions |
Использование механизма фильтрации приложений многократно снижает производительность маршрутизатора из-за необходимости проверки определенного объема пакетов в каждой сессии. Производительность снижается с ростом количества выбранных приложений для фильтрации. Механизм фильтрации приложений работает только для транзитных пакетов и только в режиме черного списка (запрет прохождения трафика для указанных приложений). |
Блокировать доступ пользователей в локальной сети к Telegram, Facebook Messenger и Skype.

Для каждой сети ESR создадим свою зону безопасности:
esr# configure esr(config)# security zone LAN esr(config-security-zone)# exit esr(config)# security zone WAN esr(config-security-zone)# exit |
Настроим сетевые интерфейсы и определим их принадлежность к зонам безопасности:
esr(config)# interface gi1/0/1 esr(config-if-gi)# ip address 10.0.0.1/24 esr(config-if-gi)# security-zone WAN esr(config-if-gi)# exit esr(config)# interface gi1/0/2 esr(config-if-te)# ip address 192.168.0.1/24 esr(config-if-te)# security-zone LAN esr(config-if-te)# exit |
Для настройки правил зон безопасности потребуется создать профиль приложений, которые необходимо будет блокировать.
esr(config)# object-group application BLACKLIST esr(config-object-group-application)# application telegram esr(config-object-group-application)# application facebook-messenger esr(config-object-group-application)# application skype-teams esr(config-object-group-application)# exit |
Для установки правил прохождения трафика из зоны «WAN» в зону «LAN» создадим пару зон и добавим правило, запрещающее проходить трафику приложений, и правило, разрешающее проходить остальному трафику. Действие правил разрешается командой enable:
esr(config)# security zone-pair WAN LAN esr(config-security-zone-pair)# rule 1 esr(config-security-zone-pair-rule)# action deny esr(config-security-zone-pair-rule)# match application BLACKLIST esr(config-security-zone-pair-rule)# enable esr(config-security-zone-pair-rule)# exit esr(config-security-zone-pair)# rule 2 esr(config-security-zone-pair-rule)# action permit esr(config-security-zone-pair-rule)# enable esr(config-security-zone-pair-rule)# exit esr(config-security-zone-pair)# exit |
Для установки правил прохождения трафика из зоны «LAN» в зону «WAN» создадим пару зон и добавим правило, запрещающее прохождение трафика приложений, и правило, разрешающее прохождение всего остального трафика. Действие правил разрешается командой enable:
esr(config)# security zone-pair LAN WAN esr(config-security-zone-pair)# rule 1 esr(config-security-zone-pair-rule)# action deny esr(config-security-zone-pair-rule)# match application BLACKLIST esr(config-security-zone-pair-rule)# enable esr(config-security-zone-pair-rule)# exit esr(config-security-zone-pair)# rule 2 esr(config-security-zone-pair-rule)# action permit esr(config-security-zone-pair-rule)# enable esr(config-security-zone-pair-rule)# exit esr(config-security-zone-pair)# exit |
Посмотреть членство портов в зонах можно с помощью команды:
esr# show security zone |
Посмотреть пары зон и их конфигурацию можно с помощью команд:
esr# show security zone-pair esr# show security zone-pair configuration |
Посмотреть активные сессии можно с помощью команд:
esr# show ip firewall sessions |
Access Control List или ACL — список контроля доступа, содержит правила, определяющие прохождение трафика через интерфейс.
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Создать список контроля доступа и перейти в режим его конфигурирования. | esr(config)# ip access-list extended <NAME> | <NAME> – имя создаваемого списка контроля доступа, задаётся строкой до 31 символа. |
| 2 | Указать описание конфигурируемого списка контроля доступа (необязательно). | esr(config-acl)# description <DESCRIPTION> | <DESCRIPTION> – описание списка контроля доступа, задаётся строкой до 255 символов. |
| 3 | Создать правило и перейти в режим его конфигурирования. Правила обрабатываются маршрутизатором в порядке возрастания их номеров. | esr(config-acl)# rule <ORDER> | <ORDER> – номер правила, принимает значения [1...4094]. |
| 4 | Указать действие, которое должно быть применено для трафика, удовлетворяющего заданным критериям. | esr(config-acl-rule)# action <ACT> | <ACT> – назначаемое действие:
|
| 5 | Установить имя/номер протокола, для которого должно срабатывать правило (необязательно). | esr(config-acl-rule)# match protocol <TYPE> | <TYPE> – тип протокола, принимает значения: esp, icmp, ah, eigrp, ospf, igmp, ipip, tcp, pim, udp, vrrp, rdp, l2tp, gre. При указании значения «any» правило будет срабатывать для любых протоколов. |
esr(config-acl-rule)# match protocol-id <ID> | <ID> – идентификационный номер IP-протокола, принимает значения [0x00-0xFF]. | ||
6 | Установить IP-адреса отправителя, для которых должно срабатывать правило (необязательно). | esr(config-acl-rule)# match source-address { <ADDR> <MASK> | any } | <ADDR> – IP-адрес отправителя, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <MASK> – маска IP-адреса, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. Биты маски, установленные в 0, задают биты IP-адреса, исключаемые из сравнения при поиске. При указании значения «any» правило будет срабатывать для любого IP-адреса отправителя/получателя. |
7 | Установить IP-адреса получателя, для которых должно срабатывать правило (необязательно). | esr(config-acl-rule)# match destination-address { <ADDR> <MASK> | any } | |
8 | Установить MAC-адреса отправителя, для которых должно срабатывать правило (необязательно). | esr(config-acl-rule)# match source-mac <ADDR><WILDCARD> | <ADDR> – МАС-адрес отправителя, задаётся в виде XX:XX:XX:XX:XX:XX, где каждая часть принимает значения [00..FF]; <WILDCARD> – маска МАС-адреса, задаётся в виде XX:XX:XX:XX:XX:XX, где каждая часть принимает значения [00..FF]. Биты маски, установленные в 0, задают биты MAC-адреса, исключаемые из сравнения при поиске. |
9 | Установить MAC-адреса получателя, для которых должно срабатывать правило (необязательно). | esr(config-acl-rule)# match destination-mac <ADDR><WILDCARD> | |
10 | Установить номер TCP/UDP-порта отправителя, для которого должно срабатывать правило (если указан протокол). | esr(config-acl-rule)# match source-port <TYPE> {<FROM-PORT> - <TO-PORT> | <PORT>} | <TYPE> – тип аргумента, устанавливаемый в качестве порта:
<FROM-PORT> – начальный порт диапазона; <TO-PORT> – конечный порт диапазона; <PORT> - Указание единичного порта |
11 | Установить номер TCP/UDP-порта получателя, для которого должно срабатывать правило (если указан протокол). | esr(config-acl-rule)# match destination-port <TYPE> {<FROM-PORT> - <TO-PORT> | <PORT>} | |
12 | Установить значение 802.1p приоритета, для которого должно срабатывать правило (необязательно). | esr(config-acl-rule)# match сos <COS> | <COS> – значение 802.1p приоритета, принимает значения [0..7]. |
13 | Установить значение кода DSCP, для которого должно срабатывать правило (необязательно). Невозможно использовать совместно с IP Precedence. | esr(config-acl-rule)# match dscp <DSCP> | <DSCP> – значение кода DSCP, принимает значения [0..63]. |
14 | Установить значение кода IP Precedence, для которого должно срабатывать правило (необязательно). Невозможно использовать совместно с DSCP. | esr(config-acl-rule)# match ip-precedence <IPP> | <IPP> – значение кода IP Precedence, принимает значения [0..7]. |
15 | Установить значение идентификационного номера VLAN, для которого должно срабатывать правило (необязательно). | esr(config-acl-rule)# match vlan <VID> | <VID> – идентификационный номер VLAN, принимает значения [1..4094]. |
16 | Активировать правило. | esr(config-acl-rule)# enable | |
17 | Указать список контроля доступа к конфигурируемому интерфейсу для фильтрации входящего трафика. | esr(config-if-gi)# service-acl input <NAME> | <NAME> – имя списка контроля доступа, задаётся строкой до 31 символа. |
| 18 | Указать список контроля доступа к конфигурируемому интерфейсу для фильтрации исходящего трафика. | esr(config-if-gi)# service-acl output <NAME> | <NAME> – имя списка контроля доступа, задаётся строкой до 31 символа. |
Также списки доступа могут использоваться для организации политик QoS.
Разрешить прохождения трафика только из подсети 192.168.20.0/24.
Настроим список доступа для фильтрации по подсетям:
esr# configure esr(config)# ip access-list extended white esr(config-acl)# rule 1 esr(config-acl-rule)# action permit esr(config-acl-rule)# match source-address 192.168.20.0 255.255.255.0 esr(config-acl-rule)# enable esr(config-acl-rule)# exit esr(config-acl)# exit |
Применим список доступа на интерфейс Gi1/0/19 для входящего трафика:
esr(config)# interface gigabitethernet 1/0/19 esr(config-if-gi)# service-acl input white |
Просмотреть детальную информацию о списке доступа возможно через команду:
esr# show ip access-list white |
| Данная функция активируется только при наличии лицензии. |
IPS/IDS (Intrusion Prevention System/Intrusion Detection System) – система предотвращения вторжений – программная система сетевой и компьютерной безопасности, обнаруживающая вторжения или нарушения безопасности и автоматически защищающая от них.
Работа системы основана на сигнатурном анализе трафика. Сигнатуры для систем IPS/IDS принято называть правилами. Устройства ESR позволяют скачивать актуальные правила с открытых источников в сети Интернет или с корпоративного сервера. Также с помощью CLI можно создавать свои специфические правила.
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Создать политику безопасности IPS/IDS. | esr(config)# security ips policy <NAME> | <NAME> – имя политики безопасности, задаётся строкой до 32 символов. |
2 | Задать описание политики (необязательно). | esr(config-ips-policy)# description <DESCRIPTION> | <DESCRIPTION> – описание задаётся строкой до 255 символов. |
3 | Задать профиль IP-адресов, которые будет защищать IPS/IDS. | esr(config-ips-policy)# protect network-group <OBJ-GROUP-NETWORK_NAME> | <OBJ-GROUP-NETWORK-NAME> – имя профиля защищаемых IP-адресов, задается строкой до 32 символов. |
4 | Задать профиль IP-адресов, внешних для IPS/IDS (необязательно). | esr(config-ips-policy)# external network-group <OBJ-GROUP-NETWORK_NAME> | <OBJ-GROUP-NETWORK-NAME> – имя профиля внешних IP-адресов, задается строкой до 32 символов. |
5 | Перейти в режим конфигурирования IPS/IDS. | esr(config)# security ips | |
6 | Назначить политику безопасности IPS/IDS. | esr(config-ips)# policy <NAME> | <NAME> – имя политики безопасности, задаётся строкой до 32 символов. |
7 | Использовать все ресурсы ESR для IPS/IDS (необязательно). | esr(config-ips)# perfomance max | По умолчанию для IPS/IDS отдается половина доступных ядер процессора. |
8 | Задать параметры удаленного сервера для отправки статистики работы сервиса IPS/IDS в формате EVE (elasticsearch) (необязательно). | esr(config-ips)# logging remote-server { <ADDR> | <IPV6-ADDR> } [ <TRANSPORT> ] [ <PORT> ] [ source-address { <SRC-ADDR> | <IPV6-SRC-ADDR> | object-group <NETWORK_OBJ_GROUP_NAME> } ] | <ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]; <TRANSPORT> – протокол передачи данных, по умолчанию – UDP, принимает значения:
<PORT> – номер TCP/UDP-порта, опциональный параметр, принимает значения [1..65535], по умолчанию 514; <SRC-ADDR> – IPv4-адрес маршрутизатора, который будет использоваться в качестве IP-адреса источника в отправляемых syslog-пакетах, по умолчанию – IPv4-адрес интерфейса, с которого отправляются пакеты; <IPV6-SRC-ADDR> – IPv6-адрес маршрутизатора, который будет использоваться в качестве IPv6-адреса источника в отправляемых syslog-пакетах, по умолчанию – IPv6-адрес интерфейса, с которого отправляются пакеты; <NETWORK_OBJ_GROUP_NAME> – список адресов, которые будут использоваться в качестве source address. |
| 9 | Установить интервал отправки статистики работы сервиса IPS/IDS в формате EVE (elasticsearch) (необязательно). | esr(config-ips)# logging update-interval <INTERVAL> | <INTERVAL> – интервал отправки статистики работы сервиса IPS/IDS, задаётся в минутах. |
| 10 | Заблокировать передачу трафика при начальной загрузке до запуска сервиса IPS/IDS и загрузки хотя бы одного настроенного или существующего правила (необязательно). | esr(config-ips)# fail-close enable | |
| 11 | Установить размер виртуальных очередей (необязательно). | esr(config-ips)# queue-limit <QUEUE-LIMIT> | <QUEUE-LIMIT> – предельное количество пакетов в виртуальной очереди, принимает значения в диапазоне [32..4096] Размер очереди по умолчанию 1024 |
| 12 | Активировать сервис IPS. | esr(config-ips)# enable | |
13 | Активировать IPS/IDS на интерфейсе. | esr(config-if-gi)# service-ips { inline | monitor } | inline – этот режим устанавливается, когда ESR с сервисом IPS/IDS ставится в разрыв сети. monitor – этот режим устанавливается, когда ESR с сервисом IPS/IDS мониторит зеркалируемый трафик. |
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Задать имя внешнего хранилища скачиваемых правил (необязательно). | esr(config-ips)# storage-path { usb://<USB-NAME>:/ | mmc://<MMC-NAME>:/ } | <USB-NAME> – имя подключенного USB-носителя. Имя можно узнать в выводе команды show storage-devices usb; <MMC-NAME> – имя подключенного MMC-носителя. Имя можно узнать в выводе команды show storage-devices mmc. Для использования с системой IPS/IDS на внешнем носителе должен быть создан раздел файловой системы в формате exFAT. |
2 | Перейти в режим конфигурирования автообновлений. | esr(config-ips)# auto-upgrade | |
3 | Задать имя и перейти в режим конфигурирования пользовательского сервера обновлений. | esr(config-ips-auto-upgrade)# user-server <WORD> | <WORD> – имя сервера, задаётся строкой до 32 символов. |
4 | Задать описание пользовательского сервера обновлений (необязательно). | esr(config-ips-upgrade-user-server)# description <DESCRIPTION> | <DESCRIPTION> – описание задаётся строкой до 255 символов. |
5 | Задать URL. | esr(config-ips-upgrade-user-server)# url <URL> | <URL> – текстовое поле, содержащее URL-ссылку длиной от 8 до 255 символов. В качестве URL-ссылки может быть указан:
|
6 | Задать частоту проверки обновлений (необязательно). | esr(config-ips-upgrade-user-server)# upgrade interval <HOURS> | <HOURS> – интервал обновлений в часах, от 1 до 240. Значение по умолчанию: 24 часа. |
| 7 | Активизировать пользовательский сервер обновлений. | esr(config-ips-upgrade-user-server)# enable |
Для правил IPS/IDS, загружаемых из внешних источников, на маршрутизаторах ESR выделена отдельная область энергозависимой памяти. Размер этой области зависит от модели ESR:
Для всех остальных моделей – 100 МБ. Если настроить слишком много источников правил или загружать правила, превышающие указанные лимиты, то маршрутизатор будет выдавать сообщения об ошибке %STORAGE_IPS_MGR-I-ERR: There no free space in rules directory. |
Чёрный список SSL (SSLBL) — это проект abuse.ch, целью которого является обнаружение вредоносных SSL-соединений путём идентификации и внесения в чёрный список SSL-сертификатов, используемых серверами управления ботнетами.
https://sslbl.abuse.ch/blacklist/sslblacklist_tls_cert.rules
Вы можете использовать набор правил SSL-сертификатов от SSLBL для обнаружения и/или блокировки вредоносных SSL-соединений в вашей сети на основе отпечатка SSL-сертификата.
Набор правил SSL-сертификатов генерируется каждые 5 минут. Пожалуйста, не запрашивайте его чаще, чем раз в 5 минут.
https://sslbl.abuse.ch/blacklist/ja3_fingerprints.rules
Вы можете использовать набор правил JA3 FingerprintRuleset от SSLBL для обнаружения и/или блокировки вредоносных SSL-соединений в вашей сети на основе отпечатка JA3.
Набор правил для отпечатков пальцев Suricata JA3 генерируется каждые 5 минут. Пожалуйста, не запрашивайте его чаще, чем раз в 5 минут.
Отпечатки JA3, внесённые в чёрный список SSLBL, были собраны путём анализа более 25 000 000 PCAP-файлов, с образцами вредоносного ПО. Эти отпечатки ещё не были протестированы на известном безопасном трафике и могут привести к значительному количеству ложных срабатываний! |
Feodo Tracker — это проект abuse.ch, целью которого является обмен информацией о серверах управления ботнетами, связанными с Dridex, Emotet (также известным как Heodo), TrickBot, QakBot (также известным как QuakBot / Qbot) и BazarLoader (также известным как BazarBackdoor).
https://feodotracker.abuse.ch/downloads/feodotracker.rules
Вы можете использовать этот набор правил для обнаружения и/или блокировки сетевых подключений к хост-серверам (комбинация IP-адреса и порта).
Набор правил генерируется каждые 5 минут. Мы рекомендуем обновлять набор правил IDS не реже чем каждые 15 минут (а лучше — каждые 5 минут), чтобы обеспечить наилучшую защиту от Dridex, Emotet, TrickBot, QakBot и BazarLoader.
Поскольку IP-адреса перерабатываются и используются повторно, в этот список блокировки входят только C2-серверы ботнетов, которые либо активны, либо в последний раз использовались в течение последних 30 дней. Таким образом, процент ложных срабатываний в этом списке блокировки должен быть низким. |
https://feodotracker.abuse.ch/downloads/feodotracker_aggressive.rules
Если вы хотите получить полный список всех C2-серверов ботнетов, которые когда-либо видел Feodo Tracker, вы можете воспользоваться набором правил IDS, приведённым выше. Однако, поскольку IP-адреса повторно используются, количество ложных срабатываний в этом наборе данных намного выше.
Настоятельно не рекомендуется использовать агрессивную версию индикаторов компрометации ботнета C2 (IOC), так как она определённо вызовет ложные срабатывания. |
Набор правил для поиска угроз от специалиста по кибер безопасности Тревиса Грина
https://raw.githubusercontent.com/travisbgreen/hunting-rules/master/hunting.rules
Набор правил с "агрессивными" ip-адресами от центра кибер безопасности компании Etnetera Core
https://security.etnetera.cz/feeds/etn_aggressive.rules
Организовать защиту локальной сети с автообновлением правил из открытых источников.
192.168.1.0/24 – локальная сеть.
Создадим профиль адресов защищаемой локальной сети:
esr(config)# object-group network LAN esr(config-object-group-network)# ip prefix 192.168.1.0/24 esr(config-object-group-network)# exit |
Настроим на ESR DNS-клиента для разрешения имен источников обновления правил IPS/IDS:
esr(config)# domain lookup enable esr(config)# domain nameserver 8.8.8.8 |
Создадим политику безопасности IPS/IDS:
esr(config)# security ips policy OFFICE esr(config-ips-policy)# description "My Policy" esr(config-ips-policy)# protect network-group LAN |
Разрешим работу IPS/IDS на интерфейсе локальной сети bridge 1:
esr(config)# bridge 1 esr(config-bridge)# service-ips inline |
Настроим параметры IPS/IDS:
esr(config)# security ips esr(config-ips)# logging remote-server 192.168.10.1 esr(config-ips)# logging update-interval 15 esr(config-ips)# policy OFFICE esr(config-ips)# enable |
Устройство будет использоваться только как шлюз безопасности, по этому отдадим сервису IPS/IDS все доступные ресурсы:
esr(config-ips)# perfomance max |
Настроим автообновление правил с сайтов etnetera.cz и Abuse.ch:
esr(config-ips)# auto-upgrade esr(config-auto-upgrade)# user-server Aggressive esr(config-ips-upgrade-user-server)# description "Etnetera aggressive IP blacklist" esr(config-ips-upgrade-user-server)# url https://security.etnetera.cz/feeds/etn_aggressive.rules esr(config-ips-upgrade-user-server)# upgrade interval 4 esr(config-ips-upgrade-user-server)# enable esr(config-ips-upgrade-user-server)# exit esr(config-auto-upgrade)# user-server SSL-BlackList esr(config-ips-upgrade-user-server)# description "Abuse.ch SSL Blacklist" esr(config-ips-upgrade-user-server)# url https://sslbl.abuse.ch/blacklist/sslblacklist_tls_cert.rules esr(config-ips-upgrade-user-server)# upgrade interval 4 esr(config-ips-upgrade-user-server)# enable esr(config-ips-upgrade-user-server)# exit |
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Задать имя и перейти в режим конфигурирования набора пользовательских правил. | esr(config)# security ips-category user-defined <WORD> | <WORD> – имя набора пользовательских правил, задаётся строкой до 32 символов. |
2 | Задать описание набора пользовательских правил (не обязательно). | esr(config-ips-category)# description <DESCRIPTION> | <DESCRIPTION> – описание задаётся строкой до 255 символов. |
3 | Создать правило и перейти в режим конфигурирования правила. | esr(config-ips-category)# rule <ORDER> | <ORDER> – номер правила, принимает значения [1..512]. |
4 | Задать описание правила (необязательно). | esr(config-ips-category-rule)# description <DESCRIPTION> | <DESCRIPTION> – описание задаётся строкой до 255 символов. |
5 | Указать действие данного правила. | esr(config-ips-category-rule)# action { alert | reject | pass | drop } |
|
6 | Установить имя IP-протокола, для которого должно срабатывать правило. | esr(config-ips-category-rule)# protocol <PROTOCOL> | <PROTOCOL> – принимает значения any/ip/icmp/http/tcp/udp. При указании значения «any» правило будет срабатывать для любых протоколов. |
7 | Установить IP-адреса отправителя, для которых должно срабатывать правило. | esr(config-ips-category-rule)# source-address | <ADDR> – IP-адрес отправителя, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <ADDR/LEN> – IP-подсеть отправителя, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и LEN принимает значения [1..32]. < OBJ_GR_NAME> – имя профиля IP-адресов, который содержит IP-адреса отправителя, задаётся строкой до 31 символа.
При указании значения «any» правило будет срабатывать для любого IP-адреса отправителя. |
8 | Установить номера TCP/UDP-портов отправителя, для которых должно срабатывать правило. Для значения protocol icmp, значение source-port может быть только any. | esr(config-ips-category-rule)# source-port {any | <PORT> | object-group <OBJ-GR-NAME> } | <PORT> – номер TCP/UDP-порта отправителя, принимает значения [1..65535]. <OBJ_GR_NAME> – имя профиля TCP/UDP-портов отправителя, задаётся строкой до 31 символа. При указании значения «any» правило будет срабатывать для любого TCP/UDP-порта отправителя. |
9 | Установить IP-адреса получателя, для которых должно срабатывать правило. | esr(config-ips-category-rule)# destination-address | <ADDR> – IP-адрес получателя, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <ADDR/LEN> – IP-подсеть получателя, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и LEN принимает значения [1..32]; <OBJ_GR_NAME> – имя профиля IP-адресов, который содержит IP-адреса получателя, задаётся строкой до 31 символа.
При указании значения «any» правило будет срабатывать для любого IP-адреса получателя. |
10 | Установить номера TCP/UDP-портов получателя, для которых должно срабатывать правило. Для значения protocol icmp, значение destination-port может быть только any. | esr(config-ips-category-rule)# destination-port | <PORT> – номер TCP/UDP-порта получателя, принимает значения [1..65535]; <OBJ_GR_NAME> – имя профиля TCP/UDP-портов получателя, задаётся строкой до 31 символа. При указании значения «any» правило будет срабатывать для любого TCP/UDP-порта получателя. |
11 | Установить направление потока трафика, для которого должно срабатывать правило. | esr(config-ips-category-rule)# direction { one-way | round-trip } |
|
12 | Определить сообщение, которое IPS/IDS будет записывать в лог при срабатывании этого правила. | esr(config-ips-category-rule)# meta log-message <MESSAGE> | <MESSAGE> – текстовое сообщение, задаётся строкой до 129 символов. |
13 | Определить классификацию трафика, которая будет записывать в лог при срабатывании этого правила (необязательно). | esr(config-ips-category-rule)# meta classification-type |
|
14 | Установить значение кода DSCP, для которого должно срабатывать правило (необязательно). | esr(config-ips-category-rule)# ip dscp <DSCP> | <DSCP> – значение кода DSCP, принимает значения [0..63]. |
15 | Установить значение времени жизни пакета (TTL), для которого должно срабатывать правило (необязательно). | esr(config-ips-category-rule)# ip ttl <TTL> | <TTL> – значение TTL, принимает значения в диапазоне [1..255]. |
16 | Установить номер IP-протокола, для которого должно срабатывать правило (необязательно). Применимо только для значения protocol any. | esr(config-ips-category-rule)# ip protocol-id <ID> | <ID> – идентификационный номер IP-протокола, принимает значения [1..255]. |
17 | Установить значения ICMP CODE, для которого должно срабатывать правило (необязательно). Применимо только для значения protocol icmp. | esr(config-ips-category-rule)# ip icmp code <CODE> | <CODE> – значение CODE протокола ICMP, принимает значение в диапазоне [0..255]. |
esr(config-ips-category-rule)# ip icmp code comparison-operator | Оператор сравнения для значения ip icmp code:
| ||
18 | Установить значения ICMP ID, для которого должно срабатывать правило (необязательно). Применимо только для значения protocol icmp. | esr(config-ips-category-rule)# ip icmp id <ID> | <ID> – значение ID протокола ICMP, принимает значение в диапазоне [0.. 65535]. |
19 | Установить значения ICMP Sequence-ID, для которого должно срабатывать правило (необязательно). Применимо только для значения protocol icmp. | esr(config-ips-category-rule)# ip icmp sequence-id <SEQ-ID> | <SEQ-ID> – значение Sequence-ID протокола ICMP, принимает значение в диапазоне [0.. 4294967295]. |
20 | Установить значения ICMP TYPE, для которого должно срабатывать правило (необязательно). Применимо только для значения protocol icmp. | esr(config-ips-category-rule)# ip icmp type <TYPE> | <TYPE> – значение TYPE протокола ICMP, принимает значение в диапазоне [0..255]. |
esr(config-ips-category-rule)# ip icmp type comparison-operator | Оператор сравнения для значения ip icmp type:
| ||
21 | Установить значения TCP Acknowledgment-Number, для которого должно срабатывать правило (необязательно). Применимо только для значения protocol tcp. | esr(config-ips-category-rule)# ip tcp acknowledgment-number <ACK-NUM> | <ACK-NUM> – значение Acknowledgment-Number протокола TCP, принимает значение в диапазоне [0.. 4294967295]. |
22 | Установить значения TCP Sequence-ID, для которого должно срабатывать правило (необязательно). Применимо только для значения protocol tcp. | esr(config-ips-category-rule)# ip tcp sequence-id <SEQ-ID> | <SEQ-ID> – значение Sequence-ID протокола TCP, принимает значение в диапазоне [0.. 4294967295]. |
23 | Установить значения TCP Window-Size, для которого должно срабатывать правило (необязательно). Применимо только для значения protocol tcp. | esr(config-ips-category-rule)# ip tcp window-size <SIZE> | <SIZE> – значение Window-Size протокола TCP, принимает значение в диапазоне [0.. 65535]. |
24 | Установить ключевые слова протокола HTTP, для которых должно срабатывать правило (необязательно). Применимо только для значения protocol http. | esr(config-ips-category-rule)# ip http { accept | accept-enc | | Значение ключевых слов см. в документации Suricata 4.X. https://suricata.readthedocs.io/en/suricata-4.1.4/rules/http-keywords.html |
25 | Установить значение ключевого слова URI LEN протокола HTTP, для которых должно срабатывать правило (необязательно). Применимо только для значения protocol http. | esr(config-ips-category-rule)# ip http urilen <LEN> | <LEN> – принимает значение в диапазоне [0.. 65535]. |
esr(config-ips-category-rule)# ip http urilen comparison-operator | Оператор сравнения для значения ip http urilen:
| ||
26 | Установить значение содержимого пакетов (Payload content), для которых должно срабатывать правило (необязательно). | esr(config-ips-category-rule)# payload content <CONTENT> | <CONTENT> – текстовое сообщение, задаётся строкой до 1024 символов. |
27 | Не различать прописные и заглавные буквы в описании содержимого пакетов (необязательно). Применимо только совместно с командой payload content. | esr(config-ips-category-rule)# payload no-case | |
28 | Установить, сколько байтов с начала содержимого пакета будет проверено (необязательно). Применимо только совместно с командой payload content. | esr(config-ips-category-rule)# payload depth <DEPTH> | <DEPTH> – число байт с начала содержимого пакета, принимает значение в диапазоне [1.. 65535]. По умолчанию проверяется все содержимое пакета. |
29 | Установить число байт смещения от начала содержимого пакета для проверки (необязательно). Применимо только совместно с командой payload content. | esr(config-ips-category-rule)# payload offset <OFFSET> | <OFFSET> – число байт смещения от начала содержимого пакета, принимает значение в диапазоне [1.. 65535]. По умолчанию проверяется с начала содержимого. |
30 | Установить размер содержимого пакетов, для которых должно срабатывать правило (необязательно). | esr(config-ips-category-rule)# payload data-size <SIZE> | <SIZE> – размер содержимого пакетов, принимает значение в диапазоне [0.. 65535]. |
esr(config-ips-category-rule)# payload data-size | Оператор сравнения для значения payload data-size:
| ||
31 | Указать пороговое значение количества пакетов, при котором сработает правило (необязательно). | esr(config-ips-category-rule)# threshold count <COUNT> | <COUNT> – число пакетов, принимает значение в диапазоне [1.. 65535]. |
32 | Указать интервал времени, для которого считается пороговое количество пакетов. (Обязательно, если включен threshold count). | esr(config-ips-category-rule)# threshold second <SECOND> | <SECOND> – интервал времени в секундах, принимает значение в диапазоне [1.. 65535]. |
33 | Указать по адресу отправителя или получателя будут считаться пороги. (Обязательно, если включен threshold count). | esr(config-ips-category-rule)# threshold track |
|
34 | Указать метод обработки пороговых значений. | esr(config-ips-category-rule)# threshold type |
Сообщение будет генерироваться, если в течении интервала времени <SECOND> было <COUNT> или более пакетов подходящих под условия правила, и сообщение будет отправлено только один раз в течении интервала времени <SECOND>. |
| 35 | Активировать правило. | esr(config-ips-category-rule)# enable |
Написать правило для защиты сервера с IP 192.168.1.10 от DOS-атаки ICMP-пакетами большого размера.
Создадим набор пользовательских правил:
esr(config)# security ips-category user-defined USER |
Создадим правило для защиты от атаки:
esr(config-ips-category)# rule 10 esr(config-ips-category-rule)# description "Big ICMP DoS" |
Будем отбрасывать пакеты:
esr(config-ips-category-rule)# action drop |
Настроим сообщение об атаке:
esr(config-ips-category-rule)# meta log-message "Big ICMP DoS" esr(config-ips-category-rule)# meta classification-type successful-dos |
Укажем тип протокола для правила:
esr(config-ips-category-rule)# protocol icmp |
Так как был указан протокол icmp, то в качестве порта отправителя и получателя требуется указать any:
esr(config-ips-category-rule)# source-port any esr(config-ips-category-rule)# destination-port any |
В качестве адреса получателя укажем используемый сервер:
esr(config-ips-category-rule)# destination-address ip 192.168.1.10 |
Атакующий может отправлять пакеты с любого адреса:
esr(config-ips-category-rule)# source-address any |
Зададим направление трафика:
esr(config-ips-category-rule)# direction one-way |
Правило будет срабатывать на пакеты размером больше 1024 байт:
esr(config-ips-category-rule)# payload data-size 1024 esr(config-ips-category-rule)# payload data-size comparison-operator greate r-than |
Правило будет срабатывать, если нагрузка на сервер будет превышать 3 Мбит/с, при этом сообщение об атаке будет генерироваться не чаще одного раза в минуту:
3 Мб/с = 3145728 бит в сек Пакет размером 1Кбайт = 8192 бита 3145728 / 8192 = 384 пакета в сек 384 * 60 = 23040 пакетов в минуту |
esr(config-ips-category-rule)# threshold count 23040 esr(config-ips-category-rule)# threshold second 60 esr(config-ips-category-rule)# threshold track by-dst esr(config-ips-category-rule)# threshold type both |
Активизируем правило:
esr(config-ips-category-rule)# enable |
Шаг | Описание | Команда | Ключи | |
|---|---|---|---|---|
1 | Задать имя и перейти в режим конфигурирования набора пользовательских правил. | esr(config)# security ips-category user-defined <WORD> | <WORD> – имя набора пользовательских правил, задаётся строкой до 32 символов. | |
2 | Задать описание набора пользовательских правил (необязательно). | esr(config-ips-category)# description <DESCRIPTION> | <DESCRIPTION> – описание задаётся строкой до 255 символов. | |
3 | Создать расширенное правило и перейти в режим его конфигурирования. | esr(config-ips-category)# rule-advanced <SID> | <SID> – номер правила, принимает значения [1.. 4294967295]. | |
4 | Задать описание правила (необязательно). | esr(config-ips-category-rule-advanced)# description <DESCRIPTION> | <DESCRIPTION> – описание задаётся строкой до 255 символов. | |
5 | Указать действие данного правила. | esr(config-ips-category-rule-advanced)# rule-text <LINE> | <CONTENT> – текстовое сообщение в формате SNORT 2.X / Suricata 4.X, задаётся строкой до 1024 символов.
| |
| 6 | Активировать правило. | esr(config-ips-category-rule-advanced)# enable |
Написать правило, детектирующее атаку типа Slowloris.
Создадим набор пользовательских правил:
esr(config)# security ips-category user-defined ADV |
Создадим расширенное правило:
esr(config-ips-category)# rule-advanced 1 esr(config-ips-category-rule-advanced)# description "Slow Loris rule 1" esr(config-ips-category-rule-advanced)# rule-text 'alert tcp any any -> any 80 (msg:"Possible Slowloris Attack Detected"; flow:to_server,established; content:"X-a|3a|"; distance:0; pcre:"/\d\d\d\d/"; distance:0; content:"|0d 0a|"; sid:10000001;)' esr(config-ips-category-rule-advanced)# enable esr(config-ips-category-rule-advanced)# exit |
Создадим ещё одно расширенное правило, работающее по схожему алгоритму, чтобы определить, какое из правил будет эффективнее:
esr(config-ips-category)# rule-advanced 2 esr(config-ips-category-rule-advanced)# description "Slow Loris rule 2" esr(config-ips-category-rule-advanced)# rule-text 'alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (msg:"SlowLoris.py DoS attempt"; flow:established,to_server,no_stream; content:"X-a:"; dsize:<15; detection_filter:track by_dst, count 3, seconds 30; classtype:denial-of-service; sid: 10000002; rev:1; )' esr(config-ips-category-rule-advanced)# |
EDM (Eltex Distribution Manager) — сервис распространения лицензируемого контента на устройства по коммерческой подписке.
Благодаря использованию инфраструктуры безопасности «Лаборатории Касперского», в том числе облачного «коллективного разума» Kaspersky Security Network с поддержкой Kaspersky SafeStream II, сервисный маршрутизатор ESR способен обнаруживать вредоносное ПО во всех типах трафика (web, email, P2P, сервисы мгновенного обмена сообщениями и т.п.). В результате обеспечивается защита пользователей от самых опасных киберугроз, в том числе угроз нулевого дня, программ-шифровальщиков, заражённых сайтов и иных типов.
Система IPS на устройствах ESR может использовать следующие наборы правил, предоставляемых Kaspersky SafeStream II:
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Перейти в конфигурирование контент- провайдера. | esr (config)# content-provider | |
2 | Задать IP-адрес edm-сервера. | esr (config-content-provider)# host address <A.B.C.D | WORD | X:X:X:X::X> | <IP-ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]. WORD(1-31) – DNS-имя сервера. |
3 | Задать порт для подключения к edm-серверу. | esr (config-content-provider)# host port <PORT> | <PORT> – номер TCP/UDP-порта отправителя, принимает значения [1..65535]. |
4 | Задать тип и раздел внешнего устройства для создания крипто-хранилища. | esr (config-content-provider)# storage-path <DEVICE> | <DEVICE> – лейбл и имя раздела на внешнем носителе информации в формате usb://Partion_name:/ mmc://Partion_name:/. На внешнем носителе должна быть создана файловая система в формате exFAT. |
5 | Установить время перезагрузки устройства после получения сертификата. | esr (config-content-provider)# reboot immediately | [time <HH:MM:SS> | <WEEK_DAY>] | Перезагрузить устройство после получения сертификата. time <HH:MM:SS> – время, в которое ESR перезагрузится <Часы:минуты:секунды>. <WEEK_DAY> - день недели, принимает значения: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday. |
6 | Включить контент провайдер. | enable | |
7 | Установить интервал обращения к edm-серверу в часах. | esr (config-content-provider)# upgrade interval <1-240> | |
8 | Установить описание (необязательно). | esr (config-content-provider)# description < LINE > | LINE (1-255) String describing server |
| 9 | Задать текстовое имя устройства, которое передаётся на сервер EDM (необязательно). | esr (config-content-provider)# system-name < WORD > | <WORD> – имя, задаётся строкой до 255 символов. |
| 10 | Задать текстовое описание, которое передаётся на сервер EDM (необязательно). | esr (config-content-provider)# location < WORD > | <WORD> – описание, задаётся строкой до 255 символов. |
11 | Создать списки IP-адресов, которые будут использоваться при фильтрации. | esr (config)# object-group network <WORD> esr (config-object-group-network)# ip prefix <ADDR/LEN> [ unit <ID> ] | <WORD> – имя сервера, задаётся строкой до 32 символов. <ADDR/LEN> – подсеть, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32]. <ID> – номер юнита, принимает значения [1..2]. |
10 | На интерфейсе включить service-ips. | esr (config)# interface gigabitethernet 1/0/Xesr (config-if-gi)# service-ips enable | |
11 | Создать политику безопасности IPS/IDS. | esr (config)# security ips policy WORD(1-31) | WORD(1-31) |
12 | Задать профиль IP-адресов, которые будет защищать IPS/IDS. | esr(config-ips-policy)# protect network-group <OBJ-GROUP-NETWORK_NAME> | <OBJ-GROUP-NETWORK-NAME> – имя профиля защищаемых IP-адресов, задается строкой до 32 символов. |
13 | Войти в раздел конфигурирования вендора. | esr (config-ips-policy)# vendor kaspersky | |
14 | Подключить необходимую категорию. | esr (config-ips-vendor)# category WORD(1-64) | Категории, доступные по текущей подписке, можно посмотреть в контекстной подсказке или командой: show security ips content-provider rules-info |
15 | Задать тип правил. | esr (config-ips-vendor-category)# rules action <ACTION> | <ACTION> - drop | reject | alert | pass – действия, которые будут применяться к пакетам.
|
16 | Задать количество скачиваемых правил. | esr (config-ips-vendor-category)# rules { all | count <COUNT> | percent <PERCENT> | recomended } |
Максимальное число правил по категориям можно посмотреть в контекстной подсказке или командой: show security ips content-provider rules-info |
17 | Включить категорию. | enable | |
18 | Перейти в режим конфигурирования IPS/IDS. | esr (config)# security ips | |
19 | Назначить политику безопасности IPS/IDS. | esr(config-ips)# policy <NAME> | <NAME> – имя политики безопасности, задаётся строкой до 32 символов. |
20 | Использовать все ресурсы ESR для IPS/IDS (необязательно). | esr(config-ips)# perfomance max | |
21 | Задать параметры удаленного сервера для отправки статистики работы сервиса IPS/IDS в формате EVE (elasticsearch) (необязательно). | esr(config-ips)# logging remote-server { <ADDR> | <IPV6-ADDR> } [ <TRANSPORT> ] [ <PORT> ] [ source-address { <SRC-ADDR> | <IPV6-SRC-ADDR> } ] | <ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]; <TRANSPORT> – протокол передачи данных, по умолчанию – UDP, принимает значения:
<PORT> – номер TCP/UDP-порта, опциональный параметр, принимает значения [1..65535], по умолчанию 514; <SRC-ADDR> – IPv4-адрес маршрутизатора, который будет использоваться в качестве IP-адреса источника в отправляемых syslog-пакетах, по умолчанию – IPv4-адрес интерфейса, с которого отправляются пакеты; <IPV6-SRC-ADDR> – IPv6-адрес маршрутизатора, который будет использоваться в качестве IPv6-адреса источника в отправляемых syslog-пакетах, по умолчанию – IPv6-адрес интерфейса, с которого отправляются пакеты. |
| 22 | Установить интервал отправки статистики работы сервиса IPS/IDS в формате EVE (elasticsearch) (необязательно). | esr(config-ips)# logging update-interval <INTERVAL> | <INTERVAL> – интервал отправки статистики работы сервиса IPS/IDS, задаётся в минутах. |
23 | Активировать IPS/IDS. | esr(config- ips )# enable |
Задать параметры content-provider — это адрес сервера ELTEX. Между сервером content-provider и маршрутизатором должна быть сетевая доступность.
content-provider host address edm.eltex-co.ru host port 8098 upgrade interval 1 storage-path mmc://TEST:/ reboot immediately enable exit |
После перезагрузки устройства можно начинать настраивать сервис IPS.
Задать профиль IP-адресов, которые будет защищать IPS/IDS:
object-group network objectgroup0 ip prefix 192.168.30.0/24 exit |
На интерфейсе включить IPS:
interface gigabitethernet 1/0/1 service-ips enable exit |
Настроить политику безопасности:
security ips policy policy0
protect network-group objectgroup0
vendor kaspersky
category MaliciousURLsDF
rules action alert
rules all
enable
exit
category MobileBotnetCAndCDF
rules action alert
rules recomended
enable
exit
category BotnetCAndCURLsDF
rules action alert
rules percent 50
enable
exit
category IPReputationDF
rules action alert
rules recomended
enable
exit
category IoTURLsDF
rules action alert
rules percent 15
enable
exit
category MaliciousHashDF
rules action alert
rules count 1
enable
exit
category MobileMaliciousHashDF
rules action alert
rules count 1
enable
exit
category PSMSTrojanDF
rules action alert
rules count 1
enable
exit
category PhishingURLsDF
rules action alert
rules count 1000
enable
exit
category RansomwareURLsDF
rules action alert
rules count 1000
enable
exit
exit
exit |
Назначить сервису IPS-политику для работы и включить его:
security ips performance max policy policy0 enable exit |
Для просмотра информации о загруженном контенте для IPS/IDS можно использовать две следующие команды:
show security ips content-provider:
esr-20# show security ips content-provider
Server: content-provider
Last MD5 of received files: c60bd0f10716d3f48e18f24828337135
Next update: 30 October 2020 00:37:06
|
С помощью этой команды можно узнать, скачивал ли контент-провайдер правила с сервера EDM (по признаку присутствия контрольной суммы md5) и когда по времени устройства планируется следующее обновление.
show security ips counters:
esr-20# show security ips counters ---------------------------------------------- IPS general counters ---------------------------------------------- Packets decoded by ips engine: 83971 Invalid packets decoded by ips engine: 0 Packets accepted by ips engine: 83977 Packets blocked by ips engine: 0 Packets replaced by ips engine: 0 Alerts generated: 8 ---------------------------------------------- IPS Decoder engine ---------------------------------------------- Packets decoded by ips engine: 83971 Bytes decoded by ips engine: 125677543 Invalid packets decoded by ips engine: 0 IPv4 packets decoded by ips engine: 83971 IPv6 packets decoded by ips engine: 0 TCP packets decoded by ips engine: 75 UDP packets decoded by ips engine: 83891 SCTP packets decoded by ips engine: 0 ICMPv4 packets decoded by ips engine: 5 ICMPv6 packets decoded by ips engine: 0 PPP packets decoded by ips engine: 0 PPPoE packets decoded by ips engine: 0 GRE packets decoded by ips engine: 0 Teredo packets decoded by ips engine: 0 Average packets size decoded by ips engine: 1496 Maximum packets size decoded by ips engine: 1500 ---------------------------------------------- IPS Application Layer ---------------------------------------------- HTTP Flow decoded by ips engine: 0 FTP Flow decoded by ips engine: 0 FTP-DATA Flow decoded by ips engine: 0 SMTP Flow decoded by ips engine: 0 TLS Flow decoded by ips engine: 0 SSH Flow decoded by ips engine: 0 IMAP Flow decoded by ips engine: 0 SMB Flow decoded by ips engine: 0 DCE/RPC flow over TCP decoded by ips engine: 0 DCE/RPC flow over UDP decoded by ips engine: 0 DNS flow over TCP decoded by ips engine: 0 DNS flow over UDP decoded by ips engine: 0 ENIP flow over TCP decoded by ips engine: 0 ENIP flow over UDP decoded by ips engine: 0 ---------------------------------------------- IPS Flow engine ---------------------------------------------- TCP Flow decoded by ips engine: 1 UDP Flow decoded by ips engine: 1 ICMPv4 Flow decoded by ips engine: 1 ICMPv6 Flow decoded by ips engine: 0 Failed TCP Flow decoded by ips engine: 0 Failed UDP Flow decoded by ips engine: 1 ---------------------------------------------- IPS TCP engine ---------------------------------------------- TCP sessions decoded by ips engine: 1 TCP SYN packets decoded by ips engine: 1 TCP SYN-ACK packets decoded by ips engine: 0 TCP RST packets decoded by ips engine: 0 TCP packets with invalid checksum: 0 TCP packets with wrong thread: 0 Packets with TCP header length too small: 0 TCP packets with invalid options: 0 |
Показывает прошедший трафик через IPS/IDS и действия, которые применялись к трафику, а также число срабатываний правил IPS/IDS.
| Данная функция активируется только при наличии лицензии. |
Сервис контентной фильтрации предназначен для ограничения доступа к HTTP/HTTPS-сайтам на основании их содержимого. Для каждого сайта определяется принадлежность его к той или иной категории. В качестве базы категорий сайтов используется база Лаборатории Касперского. Для определения категории сайтов ESR отправляет HTTPS-запросы на сервер Лаборатории Касперского по адресу https://ksn-vt.kaspersky-labs.com.
Работа сервиса контентной фильтрации основана на системе предотвращения вторжений (IPS) и настраивается как пользовательские правила IPS.
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Определить IP-адрес DNS-сервера, используемого для разрешения DNS-имен. | esr(config)# domain nameserver <IP> | <IP> – IP-адрес используемого DNS-сервера, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
| 2 | Включить разрешение DNS-имен на устройстве. | esr(config)# domain lookup enable | |
3 | Создать политику безопасности IPS/IDS. | esr(config)# security ips policy <NAME> | <NAME> – имя политики безопасности, задаётся строкой до 31 символа. |
4 | Задать описание политики (необязательно). | esr(config-ips-policy)# description <DESCRIPTION> | <DESCRIPTION> – описание задаётся строкой до 255 символов. |
5 | Создать списки IP-адресов, которые будут использоваться при фильтрации. | esr (config)# object-group network <WORD> esr (config-object-group-network)# ip prefix <ADDR/LEN> [ unit <ID> ] | <WORD> – имя сервера, задаётся строкой до 31 символов. <ADDR/LEN> – подсеть, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32]. <ID> – номер юнита, принимает значения [1..2]. |
6 | Задать профиль IP-адресов, которые будет защищать IPS/IDS. | esr(config-ips-policy)# protect network-group <OBJ-GROUP-NETWORK_NAME> | <OBJ-GROUP-NETWORK-NAME> – имя профиля защищаемых IP-адресов, задается строкой до 31 символов. |
7 | Задать профиль IP-адресов, внешних для IPS/IDS (необязательно). | esr(config-ips-policy)# external network-group <OBJ-GROUP-NETWORK_NAME> | <OBJ-GROUP-NETWORK-NAME> – имя профиля внешних IP-адресов, задается строкой до 31 символов. |
| 8 | Создать профиль категорий контентной фильтрации. | esr(config)# object-group content-filter <NAME> | <NAME> – имя профиля контентной фильтрации, задается строкой до 31 символа. |
9 | Задать описание профиля категорий контентной фильтрации (необязательно). | esr(config-object-group-content-filter)# description <DESCRIPTION> | <DESCRIPTION> – описание задаётся строкой до 255 символов. |
| 10 | Задать поставщика категорий контентной фильтрации. | esr(config-object-group-content-filter)# vendor <CONTENT-FILTER-VENDOR> | <CONTENT-FILTER-VENDOR> – название поставщика категорий контентной фильтрации. В текущей версии ПО в качестве поставщика категорий контентной фильтрации может выступать только Лаборатория Касперского. |
| 11 | Задать необходимые категории контентной фильтрации. | esr(config-object-group-cf-kaspersky)# category <CATEGORY> | <CATEGORY> – имя категории. Описание доступных категорий приведено в справочнике команд. |
12 | Перейти в режим конфигурирования IPS/IDS. | esr(config)# security ips | |
13 | Назначить политику безопасности IPS/IDS. | esr(config-ips)# policy <NAME> | <NAME> – имя политики безопасности, задаётся строкой до 32 символов. |
14 | Использовать все ресурсы ESR для IPS/IDS (необязательно). | esr(config-ips)# perfomance max | По умолчанию для IPS/IDS отдается половина доступных ядер процессора. |
15 | Задать параметры удаленного сервера для отправки статистики работы сервиса IPS/IDS в формате EVE (elasticsearch) (необязательно). | esr(config-ips)# logging remote-server { <ADDR> | <IPV6-ADDR> } [ <TRANSPORT> ] [ <PORT> ] [ source-address { <SRC-ADDR> | <IPV6-SRC-ADDR> } ] | <ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF]; <TRANSPORT> – протокол передачи данных, по умолчанию – UDP, принимает значения:
<PORT> – номер TCP/UDP-порта, опциональный параметр, принимает значения [1..65535], по умолчанию 514; <SRC-ADDR> – IPv4-адрес маршрутизатора, который будет использоваться в качестве IP-адреса источника в отправляемых syslog-пакетах, по умолчанию – IPv4-адрес интерфейса, с которого отправляются пакеты; <IPV6-SRC-ADDR> – IPv6-адрес маршрутизатора, который будет использоваться в качестве IPv6-адреса источника в отправляемых syslog-пакетах, по умолчанию – IPv6-адрес интерфейса, с которого отправляются пакеты. |
| 16 | Установить интервал отправки статистики работы сервиса IPS/IDS в формате EVE (elasticsearch) (необязательно). | esr(config-ips)# logging update-interval <INTERVAL> | <INTERVAL> – интервал отправки статистики работы сервиса IPS/IDS, задаётся в минутах. |
| 17 | Настроить параметры кэширования сервиса контентной фильтрации. | esr(config-ips)# content-filter | |
| 18 | Установить количество хранящихся в кэше записей. | esr(config-ips-content-filter)# uri cache-size <NUMBER> | <NUMBER> – количество записей, хранящихся в кэше, принимает значения [1..32768]. |
| 19 | Установить среднее время, в течение которого запись URI будет действительной в кэше. | esr(config-ips-content-filter)# uri reachable-interval <DAYS> | <DAYS> – количество дней, в течение которых запись будет действительной, принимает значения [1..365]. |
| 20 | Активировать IPS/IDS. | esr(config-ips )# enable | |
| 21 | Активировать IPS/IDS на интерфейсе. | esr(config-if-gi)# service-ips enable | |
| 22 | Задать имя и перейти в режим конфигурирования набора пользовательских правил. | esr(config)# security ips-category user-defined <WORD> | <WORD> – имя набора пользовательских правил, задаётся строкой до 31 символов. |
| 23 | Задать описание набора пользовательских правил (необязательно). | esr(config-ips-category)# description <DESCRIPTION> | <DESCRIPTION> – описание задаётся строкой до 255 символов. |
| 24 | Создать правило и перейти в режим конфигурирования правила. | esr(config-ips-category)# rule <ORDER> | <ORDER> – номер правила, принимает значения [1..512]. |
| 25 | Задать описание правила (необязательно). | esr(config-ips-category-rule)# description <DESCRIPTION> | <DESCRIPTION> – описание задаётся строкой до 255 символов. |
| 26 | Указать действие данного правила. | esr(config-ips-category-rule)# action { alert | reject | pass | drop } |
|
| 27 | Установить в качестве протокола HTTP/HTTPS. | esr(config-ips-category-rule)# protocol { http | tls } |
|
| 28 | Установить IP-адреса отправителя, для которых должно срабатывать правило. | esr(config-ips-category-rule)# source-address | <ADDR> – IP-адрес отправителя, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <ADDR/LEN> – IP-подсеть отправителя, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и LEN принимает значения [1..32]. <OBJ_GR_NAME> – имя профиля IP-адресов, который содержит IP-адреса отправителя, задаётся строкой до 31 символа.
При указании значения «any» правило будет срабатывать для любого IP-адреса отправителя. |
| 29 | Установить номера TCP/UDP-портов отправителя, для которых должно срабатывать правило. | esr(config-ips-category-rule)# source-port {any | <PORT> | object-group <OBJ-GR-NAME> } | <PORT> – номер TCP/UDP-порта отправителя, принимает значения [1..65535]. <OBJ_GR_NAME> – имя профиля TCP/UDP портов отправителя, задаётся строкой до 31 символа. При указании значения «any» правило будет срабатывать для любого TCP/UDP-порта отправителя. |
| 30 | Установить IP-адреса получателя, для которых должно срабатывать правило. | esr(config-ips-category-rule)# destination-address | <<ADDR> – IP-адрес получателя, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]; <ADDR/LEN> – IP-подсеть получателя, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и LEN принимает значения [1..32]. < OBJ_GR_NAME> – имя профиля IP-адресов, который содержит IP-адреса получателя, задаётся строкой до 31 символа.
При указании значения «any» правило будет срабатывать для любого IP-адреса получателя. |
| 32 | Установить номера TCP/UDP-портов получателя, для которых должно срабатывать правило. Обычно для протокола http используется значение TCP-порт 80. В случаях когда когда используются web-сервера на нестандартных портах надо пописывать эти порты тоже. | esr(config-ips-category-rule)# destination-port {any | <PORT> | object-group <OBJ-GR-NAME> } | <PORT> – номер TCP/UDP-порта получателя, принимает значения [1..65535]. <OBJ_GR_NAME> – имя профиля TCP/UDP портов получателя, задаётся строкой до 31 символа. При указании значения «any» правило будет срабатывать для любого TCP/UDP-порта получателя. |
| 33 | Установить направление потока трафика, для которого должно срабатывать правило. | esr(config-ips-category-rule)# direction { one-way | round-trip } |
|
| 34 | Определить сообщение которое IPS/IDS будет записывать в лог, при срабатывании этого правила. | esr(config-ips-category-rule)# meta log-message <MESSAGE> | <MESSAGE> – текстовое сообщение, задаётся строкой до 128 символов. |
| 35 | Назначить профиль категорий контентной фильтрации. | esr(config-ips-category-rule)# ip { http | tls } content-filter <NAME> |
<NAME> – имя профиля контентной фильтрации задаётся строкой до 31 символа. any – правило будет срабатывать для HTTP/HTTPS-сайтов любой категории. |
| 36 | Активировать правило. | esr(config-ips-category-rule)# enable |
Запретить доступ к https-сайтам, относящимся к категориям addictive-substances, addictive-substances narcotics, scam, gambling casino из локальной сети 192.168.1.0/24.

На устройстве предварительно должны быть настроены интерфейсы и правила firewall.
Создадим профиль адресов защищаемой локальной сети:
esr(config)# object-group network LAN esr(config-object-group-network)# ip prefix 192.168.1.0/24 esr(config-object-group-network)# exit |
Настроим на ESR DNS-клиента для разрешения имен источников обновления правил IPS/IDS:
esr(config)# domain lookup enable esr(config)# domain nameserver 8.8.8.8 |
Создадим политику безопасности IPS/IDS:
esr(config)# security ips policy OFFICE esr(config-ips-policy)# description "My Policy" esr(config-ips-policy)# protect network-group LAN |
Разрешим работу IPS/IDS на интерфейсе локальной сети gigabitethernet 1/0/2:
esr(config)# interface gigabitethernet 1/0/2 esr(config-if-gi)# service-ips inline |
Настроим параметры IPS/IDS и параметры кэширования ответов с облака:
esr(config)# security ips esr(config-ips)# policy OFFICE esr(config-ips)# enable esr(config-ips)# content-filter esr(config-ips-content-filter)# uri cache-size 500 esr(config-ips-content-filter)# uri reachable-interval 3 |
Устройство будет использоваться только как шлюз безопасности, поэтому отдадим сервису IPS/IDS все доступные ресурсы:
esr(config-ips)# perfomance max |
Создадим профиль контентной фильтрации для выбранных категорий:
esr(config)# object-group content-filter Black esr(config-object-group-content-filter)# vendor kaspersky-lab esr(config-object-group-cf-kaspersky)# category addictive-substances esr(config-object-group-cf-kaspersky)# category addictive-substances narcotics esr(config-object-group-cf-kaspersky)# category scam esr(config-object-group-cf-kaspersky)# category gambling casino |
Создадим набор пользовательских правил:
esr(config)# security ips-category user-defined USER |
Создадим правило:
esr(config-ips-category)# rule 10 esr(config-ips-category-rule)# description "Content-Filter Block" |
Будем отбрасывать пакеты:
esr(config-ips-category-rule)# action drop |
Настроим сообщение об атаке:
esr(config-ips-category-rule)# meta log-message "Corporate policy violation" |
Укажем тип протокола для правила:
esr(config-ips-category-rule)# protocol tls |
При https-запросах в качестве TCP/UDP-порта отправителя операционная система использует случайное значение, поэтому требуется указать any:
esr(config-ips-category-rule)# source-port any |
В качестве TCP/UDP-порта назначения для протокола http обычно используется 80 порт, но интернет-сайты могут работать и на нестандартных портах, поэтому укажем any:
esr(config-ips-category-rule)# destination-port any |
В качестве адреса получателя может быть любой сайт в интернете:
esr(config-ips-category-rule)# destination-address any |
Запросы к сайтам отправляются из нашей локальной сети:
esr(config-ips-category-rule)# source-address policy-object-group protect |
Зададим направление трафика:
esr(config-ips-category-rule)# direction one-way |
Правило будет срабатывать на категории сайтов, перечисленные в профиле Black:
esr(config-ips-category-rule)# ip tls content-filter Black |
Активируем правило:
esr(config-ips-category-rule)# enable esr(config-ips-category-rule)# exit esr(config-ips-category-rule)# threshold type both |
Выведем записи, которые хранятся в кэше:
esr# show content-filter cache
URI Vendor Categories Time to live
(d,h:m:s)
-------------------------------- ---------------- -------------------------- ------------
rutube.ru kaspersky-lab downloadable-content, 06,23:28:32
hobbies-recreation,
media-content
ya.ru kaspersky-lab it-services, searchers 06,23:29:04
vtb.ru kaspersky-lab finance, human-life, 06,23:46:01
online-banks, payments,
transactions |
Команда для очистки кэша:
esr# clear content-filter cache |