Оглавление | ||
---|---|---|
|
Настройка ААА
AAA (Authentication, Authorization, Accounting) – используется для описания процесса предоставления доступа и контроля над ним.
- Authentication (аутентификация) – сопоставление персоны (запроса) существующей учётной записи в системе безопасности. Осуществляется по логину, паролю.
- Authorization (авторизация, проверка полномочий, проверка уровня доступа) – сопоставление учётной записи в системе и определённых полномочий.
- Accounting (учёт) – слежение за подключением пользователя или внесенным им изменениям.
Алгоритм настройки локальной аутентификации
...
Шаг
...
Описание
...
Команда
...
Ключи
...
1
...
Указать local в качестве метода аутентификации.
...
esr(config)# aaa authentication login { default | <NAME> } <METHOD 1>
[ <METHOD 2> ] [ <METHOD 3> ] [ <METHOD 4> ]
...
<NAME> – имя списка, задаётся строкой до 31 символа.
Способы аутентификации:
- local – аутентификация с помощью локальной базы пользователей;
- tacacs – аутентификация по списку TACACS-серверов;
- radius – аутентификация по списку RADIUS-серверов;
- ldap – аутентификация по списку LDAP-серверов.
...
2
...
Указать enable в качестве способа аутентификации повышения привилегий пользователей.
...
esr(config)# aaa authentication enable <NAME><METHOD 1> [ <METHOD 2> ]
[ <METHOD 3> ] [ <METHOD 4> ]
...
<NAME> – имя списка, задаётся строкой до 31 символа.
Способы аутентификации:
- local – аутентификация с помощью локальной базы пользователей;
- tacacs – аутентификация по списку TACACS-серверов;
- radius – аутентификация по списку RADIUS-серверов;
- ldap – аутентификация по списку LDAP-серверов.
...
3
...
Указать способ перебора методов аутентификации в случае отказа (не обязательно).
...
esr(config)# aaa authentication mode <MODE>
...
<MODE> – способы перебора методов:
- chain – если сервер вернул FAIL, перейти к следующему в цепочке методу аутентификации;
- break – если сервер вернул FAIL, прекратить попытки аутентификации. Если сервер недоступен, продолжить попытки аутентификации следующими в цепочке методами.
Значение по умолчанию: chain.
...
4
...
Указать количество неудачных попыток аутентификации для блокировки логина пользователя и время блокировки (не обязательно).
...
esr(config)# aaa authentication attempts max-fail <COUNT> <TIME>
...
<COUNT> – количество неудачных попыток аутентификации, после которых произойдет блокировка пользователя, принимает значения [1..65535];
<TIME> – интервал времени в минутах, на который будет заблокирован пользователь, принимает значения [1..65535].
Значение по умолчанию:
<COUNT> – 5; <TIME> – 300.
...
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
...
Перейти в режим конфигурирования соответствующего терминала.
...
esr(config)# line console
или
esr(config)# line telnet
или
esr(config)# line ssh
...
19
...
Активировать список аутентификации входа пользователей в систему.
...
esr(config-line-ssh)# login authentication <NAME>
...
<NAME> – имя списка, задаётся строкой до 31 символа.
...
20
...
Активировать список аутентификации повышения привилегий пользователей.
...
esr(config-line-ssh)# enable authentication <NAME>
...
<NAME> – имя списка, задаётся строкой до 31 символа.
...
21
...
Задать интервал, по истечении которого будет разрываться бездействующая сессия.
...
esr(config-line-ssh)# exec-timeout <SEC>
...
<SEC> – период времени в минутах, принимает значения [1..65535].
...
Алгоритм настройки AAA по протоколу RADIUS
...
Шаг
...
Описание
...
Команда
...
Ключи
...
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> | <IPV6-ADDR> } [ vrf <VRF> ]
esr(config-radius-server)#
...
<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
...
Указать количество неудачных попыток аутентификации для блокировки логина пользователя и времени блокировки (не обязательно).
...
aaa authentication attempts max-fail <COUNT> <TIME>
...
<COUNT> – количество неудачных попыток аутентификации, после которых произойдет блокировка пользователя, принимает значения [1..65535];
<TIME> – интервал времени в секундах, на который будет заблокирован пользователь, принимает значения [1..65535].
Значение по умолчанию:
<COUNT> – 5; <TIME> – 300.
...
6
...
Задать пароль для аутентификации на удаленном RADIUS-сервере.
...
esr(config-radius-server)# key ascii-text
{ <TEXT> | encrypted <ENCRYPTED-TEXT> }
...
<TEXT> – строка [8..16] ASCII-символов;
<ENCRYPTED-TEXT> – зашифрованный пароль, размером [8..16] байт, задаётся строкой [16..32] символов.
...
7
...
Задать приоритет использования удаленного RADIUS-сервера (не обязательно).
...
esr(config-radius-server)# priority <PRIORITY>
...
<PRIORITY> – приоритет использования удаленного сервера, принимает значения [1..65535].
Чем ниже значение, тем приоритетнее сервер.
Значение по умолчанию: 1.
...
8
...
Задать интервал, по истечении которого маршрутизатор считает, что данный RADIUS-сервер недоступен (не обязательно).
...
esr(config-radius-server)# timeout <SEC>
...
<SEC> – период времени в секундах, принимает значения [1..30].
Значение по умолчанию: используется значение глобального таймера.
...
9
...
Задать IPv4/IPv6-адрес, который будет использоваться в качестве IP/IPv6-адреса источника в отправляемых RADIUS-пакетах.
...
esr(config-radius-server)# source-address { <ADDR> | <IPV6-ADDR> }
...
<ADDR> – IP-адрес источника, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255];
<IPV6-ADDR> – IPv6-адрес источника, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF].
...
<IF> – имя интерфейса устройства, задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора;
<TUN> – имя туннеля устройства, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора.
...
11
...
Указать radius в качестве метода аутентификации.
...
esr(config)# aaa authentication login { default | <NAME> } <METHOD 1>
[ <METHOD 2> ] [ <METHOD 3> ] [ <METHOD 4> ]
...
<NAME> – имя списка, задаётся строкой до 31 символа.
Способы аутентификации:
- local – аутентификация с помощью локальной базы пользователей;
- tacacs – аутентификация по списку TACACS-серверов;
- radius – аутентификация по списку RADIUS-серверов;
- ldap – аутентификация по списку LDAP-серверов.
...
12
...
Указать radius в качестве способа аутентификации повышения привилегий пользователей.
...
esr(config)# aaa authentication enable <NAME><METHOD 1>
[ <METHOD 2> ] [ <METHOD 3> ] [ <METHOD 4> ]
...
<NAME> – имя списка строка до 31 символа;
- default – имя списка по умолчанию.
<METHOD> – способы аутентификации:
- enable – аутентификация с помощью enable-паролей;
- tacacs – аутентификация по протоколу TACACS;
- radius – аутентификация по протоколу RADIUS;
- ldap – аутентификация по протоколу LDAP.
...
13
...
Указать способ перебора методов аутентификации в случае отказа (не обязательно).
...
esr(config)# aaa authentication mode <MODE>
...
<MODE> – способы перебора методов:
- chain – если сервер вернул FAIL, переход к следующему в цепочке методу аутентификации;
- break – если сервер вернул FAIL, прекратить попытки аутентификации. Если сервер недоступен, продолжить попытки аутентификации следующими в цепочке методами.
Значение по умолчанию: chain.
...
14
...
Сконфигурировать radius в списке способов учета сессий пользователей (не обязательно).
...
esr(config)# aaa accounting login start-stop <METHOD 1>
[ <METHOD 2> ]
...
<METHOD> – способы учета:
- tacacs – учет сессий по протоколу TACACS;
- radius – учет сессий по протоколу RADIUS.
...
15
...
Перейти в режим конфигурирования соответствующего терминала.
...
esr(config)# line <TYPE>
...
<TYPE> – тип консоли:
- console – локальная консоль;
- ssh – защищенная удаленная консоль.
...
16
...
Активировать список аутентификации входа пользователей в систему.
...
esr(config-line-console)# login authentication <NAME>
...
<NAME> – имя списка, задаётся строкой до 31 символа. Создано на шаге 8.
...
17
...
Активировать список аутентификации повышения привилегий пользователей.
...
esr(config-line-console)# enable authentication <NAME>
...
<NAME> – имя списка, задаётся строкой до 31 символа. Создано на шаге 9.
Алгоритм настройки AAA по протоколу TACACS
...
esr(config)# tacacs-server dscp <DSCP>
...
<DSCP> – значение кода DSCP, принимает значения в диапазоне [0..63].
Значение по умолчанию: 63.
...
esr(config)# tacacs-server timeout <SEC>
...
<SEC> – период времени в секундах, принимает значения [1..30].
Значение по умолчанию: 3 секунды.
...
esr(config)# tacacs -server host
{ <IP-ADDR> | <IPV6-ADDR> } [ vrf <VRF> ]
esr(config-tacacs-server)#
...
<IP-ADDR> – IP-адрес TACACS-сервера, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255];
<IPV6-ADDR> – IPv6-адрес TACACS -сервера, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF];
<VRF> – имя экземпляра VRF, задается строкой до 31 символа.
...
aaa authentication attempts max-fail <COUNT> <TIME>
...
<COUNT> – количество неудачных попыток аутентификации, после которых произойдет блокировка пользователя, принимает значения [1..65535];
<TIME> – интервал времени в минутах, на который будет заблокирован пользователь, принимает значения [1..65535].
Значение по умолчанию:
<COUNT> – 5; <TIME> – 300.
...
esr(config-tacacs-server)# key ascii-text { <TEXT> | encrypted <ENCRYPTED-TEXT> }
...
<TEXT> – строка [8..16] ASCII-символов;
<ENCRYPTED-TEXT> – зашифрованный пароль, размером [8..16] байт, задаётся строкой [16..32] символов.
...
esr(config-tacacs-server)# port <PORT>
...
<PORT> – номер TCP-порта для обмена данными c удаленным сервером, принимает значения [1..65535].
Значение по умолчанию: 49 для TACACS-сервера.
...
7
...
Задать приоритет использования удаленного TACACS-сервера (не обязательно).
...
esr(config-tacacs-server)# priority <PRIORITY>
...
<PRIORITY> – приоритет использования удаленного сервера, принимает значения [1..65535].
Чем ниже значение, тем приоритетнее сервер.
Значение по умолчанию: 1.
...
8
...
Задать IPv4/IPv6-адрес, который будет использоваться в качестве IP/IPv6-адреса источника в отправляемых TACACS-пакетах.
...
esr(config-tacacs-server)# source-address { <ADDR> | <IPV6-ADDR> }
...
<ADDR> – IP-адрес источника, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255].
...
<IF> – имя интерфейса устройства, задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора;
<TUN> – имя туннеля устройства, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора.
...
10
...
Указать TACACS в качестве способа аутентификации повышения привилегий пользователей.
...
esr(config)# aaa authentication enable <NAME><METHOD 1>
[ <METHOD 2> ] [ <METHOD 3> ] [ <METHOD 4> ]
...
<NAME> – имя списка строка до 31 символа;
- default – имя списка по умолчанию.
<METHOD> – способы аутентификации:
- enable – аутентификация с помощью enable-паролей;
- tacacs – аутентификация по протоколу TACACS;
- radius – аутентификация по протоколу RADIUS;
- ldap – аутентификация по протоколу LDAP.
...
11
...
Указать способ перебора методов аутентификации в случае отказа (не обязательно).
...
esr(config)# aaa authentication mode <MODE>
...
<MODE> – способы перебора методов:
- chain – если сервер вернул FAIL, переход к следующему в цепочке методу аутентификации;
- break – если сервер вернул FAIL, прекратить попытки аутентификации. Если сервер недоступен, продолжить попытки аутентификации следующими в цепочке методами.
Значение по умолчанию: chain.
...
12
...
Сконфигуровать список способов учета команд, введённых в CLI (не обязательно).
...
esr(config)# aaa accounting commands stop-only tacacs
...
13
...
Сконфигурировать tacacs в списке способов учета сессий пользователей (не обязательно).
...
esr(config)# aaa accounting login start-stop <METHOD 1>
[ <METHOD 2> ]
...
<METHOD> – способы учета:
- tacacs – учет сессий по протоколу TACACS;
- radius – учет сессий по протоколу RADIUS.
...
14
...
Перейти в режим конфигурирования соответствующего терминала.
...
esr(config)# line <TYPE>
...
<TYPE> – тип консоли:
- console – локальная консоль;
- ssh – защищенная удаленная консоль.
...
15
...
Активировать список аутентификации входа пользователей в систему.
...
esr(config-line-console)# login authentication <NAME>
...
<NAME> – имя списка, задаётся строкой до 31 символа. Создано на шаге 7.
...
16
...
Активировать список аутентификации повышения привилегий пользователей.
...
esr(config-line-console)# enable authentication <NAME>
...
<NAME> – имя списка, задаётся строкой до 31 символа. Создано на шаге 8.
...
esr(config)# ldap-server base-dn <NAME>
...
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> | encrypted <ENCRYPTED-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-сервере, принимает следующие значения:
- onelevel – выполнять поиск в объектах на следующем уровне после базового DN в дереве LDAP-сервера;
- subtree – выполнять поиск во всех объектах поддерева базового DN в дереве 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> }
[ vrf <VRF> ]
esr(config-ldap-server)#
...
<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
...
Указать количество неудачных попыток аутентификации для блокировки логина пользователя и время блокировки (не обязательно).
...
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> | <IPV6-ADDR> }
...
<ADDR> – IP-адрес источника, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255];
<IPV6-ADDR> – IPv6-адрес источника, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF].
...
<IF> – имя интерфейса устройства, задаётся в виде, описанном в разделе Типы и порядок именования интерфейсов маршрутизатора;
<TUN> – имя туннеля устройства, задаётся в виде, описанном в разделе Типы и порядок именования туннелей маршрутизатора.
...
17
...
Указать LDAP в качестве метода аутентификации.
...
esr(config)# aaa authentication login { default | <NAME> }
<METHOD 1> [ <METHOD 2> ] [ <METHOD 3> ] [ <METHOD 4> ]
...
<NAME> – имя списка, задаётся строкой до 31 символа.
Способы аутентификации:
- local – аутентификация с помощью локальной базы пользователей;
- tacacs – аутентификация по списку TACACS-серверов;
- radius – аутентификация по списку RADIUS-серверов;
- ldap – аутентификация по списку LDAP-серверов.
...
18
...
Указать LDAP в качестве способа аутентификации повышения привилегий пользователей.
...
esr(config)# aaa authentication enable <NAME>
<METHOD 1> [ <METHOD 2> ] [ <METHOD 3> ] [ <METHOD 4> ]
...
<NAME> – имя списка, строка до 31 символа;
- default – имя списка по умолчанию.
<METHOD> – способы аутентификации:
- enable – аутентификация с помощью enable-паролей;
- tacacs – аутентификация по протоколу TACACS;
- radius – аутентификация по протоколу RADIUS;
- ldap – аутентификация по протоколу LDAP.
...
19
...
Указать способ перебора методов аутентификации в случае отказа.
...
esr(config)# aaa authentication mode <MODE>
...
<MODE> – способы перебора методов:
- chain – если сервер вернул FAIL, переход к следующему в цепочке методу аутентификации;
- break – если сервер вернул FAIL, прекратить попытки аутентификации. Если сервер недоступен, продолжить попытки аутентификации следующими в цепочке методами.
Значение по умолчанию: chain.
...
20
...
Перейти в режим конфигурирования соответствующего терминала.
...
esr(config)# line <TYPE>
...
<TYPE> – тип консоли:
- console – локальная консоль;
- ssh – защищенная удаленная консоль.
...
21
...
Активировать список аутентификации входа пользователей в систему.
...
esr(config-line-console)# login authentication <NAME>
...
<NAME> – имя списка, задаётся строкой до 31 символа. Создано на шаге 14.
...
22
...
Активировать список аутентификации повышения привилегий пользователей.
...
esr(config-line-console)# enable authentication <NAME>
...
<NAME> – имя списка, задаётся строкой до 31 символа. Создано на шаге 15.
Пример настройки аутентификации по telnet через RADIUS-сервер
Задача:
Настроить аутентификацию пользователей, подключающихся по 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 |
Scroll Pagebreak |
---|
Блок кода |
---|
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). В дальнейшем при создании пользователя можно задать уровень привилегий, определяя ему доступный набор команд.
- 1-9 уровни – позволяют использовать все команды мониторинга (show …);
- 10-14 уровни – позволяют использовать все команды кроме команд перезагрузки устройства, управления пользователями и ряда других;
- 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
icmp-threshold { <NUM> }
...
<NUM> – количество ICMP-пакетов в секунду, задается в диапазоне [1..10000].
...
2
...
Включить защиту от land-атак.
...
esr(config)# firewall screen dos-defense land
...
3
...
Включить ограничение числа пакетов, отправляемых за одну секунду на один адрес назначения.
...
esr(config)# ip firewall screen dos-defense
limit-session-destination { <NUM> }
...
<NUM> – ограничение числа IP-пакетов в секунду, задается в диапазоне [1..10000].
...
4
...
Включить ограничение числа пакетов, отправляемых за одну секунду с единого адреса источника.
...
esr(config)# ip firewall screen dos-defense
limit-session-source { <NUM> }
...
<NUM> – ограничение числа IP-пакетов в секунду, задается в диапазоне [1..10000].
...
5
...
Включить защиту от SYN flood-атак.
...
esr(config)# ip firewall screen dos-defense
syn-flood { <NUM> } [src-dsr]
...
<NUM> – максимальное количество TCP-пакетов с установленным флагом SYN в секунду, задается в диапазоне [1..10000].
src-dst – ограничение количества TCP-пакетов с установленным флагом SYN на основании адреса источника и адреса назначения.
...
6
...
Включить защиту от UDP flood-атак.
...
esr(config)# ip firewall screen dos-defense
udp-threshold { <NUM> }
...
<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, может принимать значения:
- destination-unreachable
- echo-request
- reserved
- source-quench
- time-exceeded
...
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> } [ <TIME> ]
...
<threshold> – интервал в секундах, в течение которого будет фиксироваться port scan-атака [1..10000].
<TIME> – время блокировки в миллисекундах [1..1000000].
...
12
...
Включить защиту от IP spoofing-атак.
...
esr(config)# ip firewall screen spy-blocking spoofing
...
13
...
Включить блокировку TCP-пакетов, с установленными флагами SYN и FIN.
...
esr(config)# ip firewall screen spy-blocking syn-fin
...
14
...
Включить блокировку TCP-пакетов, со всеми флагами или с набором флагов: FIN, PSH, URG. Данной командой обеспечивается защита от атаки XMAS.
...
esr(config)# ip firewall screen spy-blocking tcp-all-flag
...
15
...
Включить блокировку TCP-пакетов, с нулевым полем flags.
...
esr(config)# ip firewall screen spy-blocking tcp-no-flag
...
16
...
Включить блокировку фрагментированных
ICMP-пакетов.
...
esr(config)# ip firewall screen suspicious-packets icmp-fragment
...
17
...
Включить блокировку фрагментированных IP-пакетов.
...
esr(config)# ip firewall screen suspicious-packets ip-fragment
...
18
...
Включить блокировку ICMP-пакетов длиной более 1024 байт.
...
esr(config)# ip firewall screen suspicious-packets icmp-fragment
...
19
...
Включить блокировку фрагментированных TCP-пакетов, с флагом SYN.
...
esr(config)# ip firewall screen suspicious-packets syn-fragment
...
20
...
Включить блокировку фрагментированных UDP-пакетов.
...
esr(config)# ip firewall screen suspicious-packets udp-fragment
...
21
...
Включить блокировку пакетов, с ID протокола в заголовке IP равном 137 и более.
...
esr(config)# ip firewall screen suspicious-packets unknown-protocols
...
22
...
Установить частоту оповещения (по SNMP, syslog и в CLI) об обнаруженных и отраженных сетевых атаках.
esr(config)# ip firewall logging interval <NUM>
...
<NUM> – интервал времени в секундах [30 .. 2147483647].
...
23
...
Включить более детальный вывод сообщений по обнаруженным и отраженным сетевым атакам в CLI.
...
esr(config)# logging firewall screen detailed
...
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> | icmp-type <ICMP_TYPE> }
...
<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 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 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 и более.
Scroll Pagebreak |
---|
Пример настройки логирования и защиты от сетевых атак
Задача:
Необходимо защитить LAN-сеть и маршрутизатор ESR от сетевых атак land, syn-flood, ICMP flood и настроить оповещение об атаках по SNMP на SNMP-сервер 192.168.0.10.
Решение:
Предварительно необходимо настроить интерфейсы и firewall (настройка firewall или ее отсутствие не повлияют на работу защиты от сетевых атак):
Блок кода |
---|
esr(config)# security zone LAN
esr(config-zone)# exit
esr(config)# security zone WAN
esr(config-zone)# exit
esr(config)# security zone-pair LAN WAN
esr(config-zone-pair)# rule 100
esr(config-zone-pair-rule)# action permit
esr(config-zone-pair-rule)# enable
esr(config-zone-pair-rule)# ex
esr(config-zone-pair)# exit
esr(config)# security zone-pair WAN LAN
esr(config-zone-pair)# rule 100
esr(config-zone-pair-rule)# action permit
esr(config-zone-pair-rule)# enable
esr(config-zone-pair-rule)# exit
esr(config-zone-pair)# 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 |
Scroll Pagebreak |
---|
Настроим защиту от 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 – комплекс аппаратных или программных средств, осуществляющий контроль и фильтрацию проходящих через него сетевых пакетов в соответствии с заданными правилами.
Алгоритм настройки
...
esr(config)# security zone <zone-name1>
esr(config)# security zone <zone-name2>
...
<zone-name> – до 12 символов.
Имена all, any и self зарезервированы.
...
esr(config-zone)# description <description>
...
esr(config- zone)# ip vrf forwarding <VRF>
...
esr(config)# ip firewall sessions counters
...
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].
По умолчанию: 512000.
...
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].
По умолчанию: 30 секунд.
...
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
...
Создать списки IP-адресов, которые будут использоваться при фильтрации.
...
esr(config)# object-group network <obj-group-name>
...
<obj-group-name> – до 31 символа.
...
20
...
Задать описание списка IP-адресов (не обязательно).
...
esr(config-object-group-network)# description <description>
...
<description> – описание профиля, задается строкой до 255 символов.
...
21
...
Внести необходимые IPv4/IPv6-адреса в список.
...
esr(config-object-group-network)# ip prefix <ADDR/LEN>
...
<ADDR/LEN> – подсеть, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32].
...
esr(config-object-group-network)# ip address-range
<FROM-ADDR>-<TO-ADDR>
...
<FROM-ADDR> – начальный IP-адрес диапазона адресов;
<TO-ADDR> – конечный IP-адрес диапазона адресов, опциональный параметр. Если параметр не указан, то командой задаётся одиночный IP-адрес.
Адреса задаются в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255].
...
esr(config-object-group-network)# ipv6 prefix <IPV6-ADDR/LEN>
...
<IPV6-ADDR/LEN> – IP-адрес и маска подсети, задаётся в виде X:X:X:X::X/EE, где каждая часть X принимает значения в шестнадцатеричном формате [0..FFFF] и EE принимает значения [1..128].
...
esr(config-object-group-network)# ipv6 address-range
<FROM-ADDR>-<TO-ADDR>
...
<FROM-ADDR> – начальный IPv6-адрес диапазона адресов;
<TO-ADDR> – конечный IPv6-адрес диапазона адресов, опциональный параметр. Если параметр не указан, то командой задаётся одиночный IPv6-адрес.
Адреса задаются в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF].
...
22
...
Создать списки сервисов, которые будут использоваться при фильтрации.
...
esr(config)# object-group service <obj-group-name>
...
<obj-group-name> – имя профиля сервисов, задается строкой до 31 символа.
...
23
...
Задать описание списка сервисов (не обязательно).
...
esr(config-object-group-service)# description <description>
...
<description> – описание профиля, задается строкой до 255 символов.
...
24
...
Внести необходимые сервисы (tcp/udp-порты) в список.
...
esr(config-object-group-service)# port-range <port>
...
<port> – принимает значение [1..65535].
Можно указать несколько портов перечислением через запятую «,» либо указать диапазон портов через «-».
...
25
...
Создать списки приложений, которые будут использоваться в механизме DPI.
...
esr(config)# object-group application <NAME>
...
<NAME> – имя профиля приложений, задается строкой до 31 символа.
...
26
...
Задать описание списка приложений (не обязательно).
...
esr(config-object-group-application)# description <description>
...
<description> – описание профиля, задается строкой до 255 символов.
...
27
...
Внести необходимые приложения в списки.
...
esr(config-object-group-application)# application < APPLICATION >
...
<APPLICATION> – указывает приложение попадающее под действие данного профиля.
...
28
...
Включить интерфейсы (физические, логические, 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
...
29
...
Создать набор правил межзонового взаимодействия.
На маршрутизаторе всегда существует зона безопасности с именем «self». Если в качестве получателя трафика выступает сам маршрутизатор, то есть трафик не является транзитным, то в качестве параметра указывается зона «self».
Очерёдность обработки трафика для разных zone-pair описана в примечании.
...
esr(config)# security zone-pair <src-zone-name1> <dst-zone-name2>
...
<src-zone-name> – до 12 символов.
<dst-zone-name> – до 12 символов.
...
30
...
Создать правило межзонового взаимодействия.
...
esr(config-zone-pair)# rule <rule-number>
...
<rule-number> – 1..10000.
...
31
...
Задать описание правила (не обязательно).
...
esr(config-zone-rule)# description <description>
...
<description> – до 255 символов.
...
32
...
Указать действие данного правила.
...
esr(config-zone-rule)# action <action> [ log ]
...
<action> – permit/deny/reject/netflow-sample/sflow-sample
log – ключ для активации логирования сессий, устанавливающимися согласно данному правилу.
...
33
...
Установить имя или номер IP-протокола, для которого должно срабатывать правило (не обязательно).
...
esr(config-zone-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-zone-rule)# match [not] protocol-id <protocol-id>
...
<protocol-id> – идентификационный номер IP-протокола, принимает значения [0x00-0xFF].
...
34
...
Установить профиль IP-адресов отправителя, для которых должно срабатывать правило (не обязательно).
...
esr(config-zone-rule)# match [not] source-address <OBJ-GROUP-NETWORK-NAME>
<OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, задаётся строкой до 31 символа. При указании значения «any» правило будет срабатывать для любого IP-адреса отправителя/получателя.
...
35
...
Установить профиль IP-адресов получателя, для которых должно срабатывать правило (не обязательно).
...
esr(config-zone-rule)# match [not] destination-address <OBJ-GROUP-NETWORK-NAME>
...
36
...
Установить MAC-адрес отправителя, для которого должно срабатывать правило (не обязательно).
...
esr(config-zone-rule)# match [not] source-mac <mac-addr>
<mac-addr> – задаётся в виде XX:XX:XX:XX:XX:XX, где каждая часть принимает значения [00..FF].
...
37
...
Установить MAC-адрес получателя, для которого должно срабатывать правило (не обязательно).
...
esr(config-zone-rule)# match [not] destination-mac <mac-addr>
...
38
...
Установить профиль TCP/UDP-портов отправителя, для которых должно срабатывать правило (если указан протокол).
...
esr(config-zone-rule)# match [not] source-port <PORT-SET-NAME>
...
<PORT-SET-NAME> – задаётся строкой до 31 символа. При указании значения «any» правило будет срабатывать для любого TCP/UDP-порта отправителя/получателя.
...
39
...
Установить профиль TCP/UDP-портов получателя, для которых должно срабатывать правило (если указан протокол).
...
esr(config-zone-rule)# match [not] destination-port <PORT-SET-NAME>
...
40
...
Установить тип и код сообщений протокола ICMP, для которых должно срабатывать правило (если в качестве протокола выбран ICMP) (не обязательно).
...
esr(config-zone-rule)# match [not] icmp <ICMP_TYPE> <ICMP_CODE>
...
<ICMP_TYPE> – тип сообщения протокола ICMP, принимает значения [0..255];
<ICMP_CODE> – код сообщения протокола ICMP, принимает значения [0..255]. При указании значения «any» правило будет срабатывать для любого кода сообщения протокола ICMP.
...
41
...
Установить ограничение, при котором правило будет срабатывать только для трафика, измененного сервисом трансляции IP-адресов и портов получателя.
...
esr(config-zone-rule)# match [not] destination-nat
...
42
...
Установить максимальную скорость прохождения пакетов (не обязательно, доступно только для zone-pair any self и zone-pair <zone-name> any).
...
esr(config-zone-pair-rule)# rate-limit pps <rate-pps>
...
<rate-pps> – максимальное количество пакетов, которое может быть передано. Принимает значения [1..10000].
...
43
...
Установить фильтрацию только для фрагментированных IP-пакетов (не обязательно, доступно только для zone-pair any self и zone-pair <zone-name> any).
...
esr(config-zone-pair-rule)# match [not] fragment
...
44
...
Установить фильтрацию для IP-пакетов, содержащих ip-option (не обязательно, доступно только для zone-pair any self и zone-pair <zone-name> any).
...
esr(config-zone-pair-rule)# match [not] ip-option
...
45
...
Включить правило межзонового взаимодействия.
...
esr(config-zone-rule)# enable
...
46
...
Активировать фильтрацию и режим отслеживания сессий при прохождении пакетов между участниками одной Bridge-группы (не обязательно, доступно только на ESR-1000/1200/1500/1511/1700
/3100).
...
esr(config-bridge)# ports firewall enable
...
Порядок обработки транзитного трафика правилами firewall
- Если трафик передаётся с одного интерфейса на другой в пределах одной зоны (src-zone-name), то он проверяется правилами zone-pair src-zone-name src-zone-name.
Если трафик не попал ни под одно из правил текущей zone-pair, переходим к следующему шагу. - Если трафик передаётся с одного интерфейса на другой в разных зонах, то он проверяется правилами zone-pair src-zone-name dst-zone-name.
Если трафик не попал ни под одно из правил текущей zone-pair, переходим к следующему шагу. - Трафик проверяется правилами zone-pair src-zone-name any.
Если трафик не попал ни под одно из правил текущей zone-pair, переходим к следующему шагу. - Трафик проверяется правилами zone-pair any any.
Если трафик не попал ни под одно из правил текущей zone-pair, он отбрасывается.
Порядок обработки трафика терминируемого на маршрутизаторе Scroll Pagebreak
- Трафик проверяется правилами zone-pair any self.
Если трафик не попал ни под одно из правил текущей zone-pair, переходим к следующему шагу. - Трафик проверяется правилами zone-pair src-zone-name self.
Если трафик не попал ни под одно из правил текущей zone-pair, он отбрасывается.
Каждая команда «match» может содержать ключ «not». При использовании данного ключа под правило будут попадать пакеты, не удовлетворяющие заданному критерию.
Более подробная информация о командах для настройки межсетевого экрана содержится в «Справочнике команд CLI».
Пример настройки Firewall
Задача:
Разрешить обмен сообщениями по протоколу ICMP между устройствами R1, R2 и маршрутизатором ESR.
Решение:
Для каждой сети ESR создадим свою зону безопасности:
Блок кода |
---|
esr# configure
esr(config)# security zone LAN
esr(config-zone)# exit
esr(config)# security zone WAN
esr(config-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 |
Scroll Pagebreak |
---|
Для настройки правил зон безопасности потребуется создать профиль адресов сети «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-zone-pair)# rule 1
esr(config-zone-pair-rule)# action permit
esr(config-zone-pair-rule)# match protocol icmp
esr(config-zone-pair-rule)# match destination-address WAN_GATEWAY
esr(config-zone-pair-rule)# match source-address LAN_GATEWAY
esr(config-zone-pair-rule)# enable
esr(config-zone-pair-rule)# exit
esr(config-zone-pair-pair)# exit |
Для пропуска трафика из зоны «WAN» в зону «LAN» создадим пару зон и добавим правило, разрешающее проходить ICMP-трафику от R2 к R1. Действие правил разрешается командой enable:
Блок кода |
---|
esr(config)# security zone-pair WAN LAN
esr(config-zone-pair)# rule 1
esr(config-zone-pair-rule)# action permit
esr(config-zone-pair-rule)# match protocol icmp
esr(config-zone-pair-rule)# match destination-address LAN_GATEWAY
esr(config-zone-pair-rule)# match source-address WAN_GATEWAY
esr(config-zone-pair-rule)# enable
esr(config-zone-pair-rule)# exit
esr(config-zone-pair)# exit |
На маршрутизаторе всегда существует зона безопасности с именем «self». Если в качестве получателя трафика выступает сам маршрутизатор, то есть трафик не является транзитным, то в качестве параметра указывается зона «self». Создадим пару зон для трафика, идущего из зоны «WAN» в зону «self». Добавим правило, разрешающее проходить ICMP-трафику между R2 и маршрутизатором ESR, для того чтобы маршрутизатор начал отвечать на ICMP-запросы из зоны «WAN»:
Блок кода |
---|
esr(config)# security zone-pair WAN self
esr(config-zone-pair)# rule 1
esr(config-zone-pair-rule)# action permit
esr(config-zone-pair-rule)# match protocol icmp
esr(config-zone-pair-rule)# match destination-address WAN
esr(config-zone-pair-rule)# match source-address WAN_GATEWAY
esr(config-zone-pair-rule)# enable
esr(config-zone-pair-rule)# exit
esr(config-zone-pair)# exit |
Создадим пару зон для трафика, идущего из зоны «LAN» в зону «self». Добавим правило, разрешающее проходить ICMP-трафику между R1 и ESR, для того чтобы маршрутизатор начал отвечать на ICMP-запросы из зоны «LAN»:
Блок кода |
---|
esr(config)# security zone-pair LAN self
esr(config-zone-pair)# rule 1
esr(config-zone-pair-rule)# action permit
esr(config-zone-pair-rule)# match protocol icmp
esr(config-zone-pair-rule)# match destination-address LAN
esr(config-zone-pair-rule)# match source-address LAN_GATEWAY
esr(config-zone-pair-rule)# enable
esr(config-zone-pair-rule)# exit
esr(config-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 |
Пример настройки фильтрации приложений (DPI)
Примечание |
---|
Использование механизма фильтрации приложений многократно снижает производительность маршрутизатора из-за необходимости проверки каждого пакета. Производительность снижается с ростом количества выбранных приложений для фильтрации. |
Задача:
Блокировать доступ к ресурсам youtube, bittorrent и facebook.
Scroll Pagebreak |
---|
Для каждой сети ESR создадим свою зону безопасности:
Блок кода |
---|
esr# configure
esr(config)# security zone LAN
esr(config-zone)# exit
esr(config)# security zone WAN
esr(config-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 в stateless:
Блок кода |
---|
esr(config)# ip firewall mode stateless
|
Для настройки правил зон безопасности потребуется создать профиль приложений, которые необходимо будет блокировать:
Блок кода |
---|
esr(config)# object-group application APP
esr(config-object-group-application)# application youtube
esr(config-object-group-application)# application bittorrent
esr(config-object-group-application)# application facebook
esr(config-object-group-application)# exit |
Для установки правил прохождения трафика из зоны «WAN» в зону «LAN» создадим пару зон и добавим правило, запрещающее проходить трафику приложений, и правило, разрешающее проходить остальному трафику. Действие правил разрешается командой enable:
Блок кода |
---|
esr(config)# security zone-pair WAN LAN
esr(config-zone-pair)# rule 1
esr(config-zone-pair-rule)# action deny
esr(config-zone-pair-rule)# match application APP
esr(config-zone-pair-rule)# enable
esr(config-zone-pair-rule)# exit
esr(config-zone-pair)# rule 2
esr(config-zone-pair-rule)# action permit
esr(config-zone-pair-rule)# enable
esr(config-zone-pair-rule)# exit
esr(config-zone-pair-pair)# exit |
Scroll Pagebreak |
---|
Блок кода |
---|
esr(config)# security zone-pair LAN WAN
esr(config-zone-pair)# rule 1
esr(config-zone-pair-rule)# action deny
esr(config-zone-pair-rule)# match application APP
esr(config-zone-pair-rule)# enable
esr(config-zone-pair-rule)# exit
esr(config-zone-pair)# rule 2
esr(config-zone-pair-rule)# action permit
esr(config-zone-pair-rule)# enable
esr(config-zone-pair-rule)# exit
esr(config-zone-pair-pair)# exit |
Посмотреть членство портов в зонах можно с помощью команды:
Блок кода |
---|
esr# show security zone |
Посмотреть пары зон и их конфигурацию можно с помощью команд:
Блок кода |
---|
esr# show security zone-pair
esr# show security zone-pair configuration |
Посмотреть активные сессии можно с помощью команд:
Блок кода |
---|
esr# show ip firewall sessions |
Scroll Pagebreak |
---|
Настройка списков доступа (ACL)
Access Control List или ACL — список контроля доступа, содержит правила, определяющие прохождение трафика через интерфейс.
Алгоритм настройки
...
esr(config)# ip access-list extended <NAME>
...
esr(config-acl)# description <DESCRIPTION>
...
Создать правило и перейти в режим его конфигурирования.
Правила обрабатываются маршрутизатором в порядке возрастания их номеров.
...
esr(config-acl)# rule <ORDER>
...
esr(config-acl-rule)# action <ACT>
...
<ACT> – назначаемое действие:
- permit – прохождение трафика разрешается;
- deny – прохождение трафика запрещается.
...
esr(config-acl-rule)# match protocol <TYPE>
...
esr(config-acl-rule)# match protocol-id <ID>
...
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 { <PORT> | any }
...
<PORT> – номер TCP/UDP-порта отправителя, принимает значения [1..65535]. При указании значения «any» правило будет срабатывать для любого TCP/UDP-порта отправителя.
...
11
...
Установить номер TCP/UDP-порта получателя, для которого должно срабатывать правило (если указан протокол).
...
esr(config-acl-rule)# match destination-port { <PORT> | any }
...
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 символа.
Также списки доступа могут использоваться для организации политик 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 |
Scroll Pagebreak |
---|
Применим список доступа на интерфейс 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 можно создавать свои специфические правила.
По умолчанию на устройствах ESR установлен базовый набор правил от компании EmergingThreats, предназначенный для тестирования и проверки работоспособности системы.
Алгоритм базовой настройки
...
Шаг
...
Описание
...
Команда
...
Ключи
...
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) (не обязательно).
...
<ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255];
<IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF];
<TRANSPORT> – протокол передачи данных, по умолчанию - UDP, принимает значения:
- TCP – передача данных осуществляется по протоколу TCP;
- UDP – передача данных осуществляется по протоколу UDP;
<PORT> – номер TCP/UDP-порта, опциональный параметр, принимает значения [1..65535], по умолчанию: 514;
<SRC-ADDR> – IPv4-адрес маршрутизатора, который будет использоваться в качестве IP-адреса источника в отправляемых syslog-пакетах, по умолчанию – IPv4-адрес интерфейса, с которого отправляются пакеты;
<IPV6-SRC-ADDR> – IPv6-адрес маршрутизатора, который будет использоваться в качестве IPv6-адреса источника в отправляемых syslog-пакетах, по умолчанию – IPv6-адрес интерфейса, с которого отправляются пакеты.
...
10
...
Активировать IPS/IDS на интерфейсе.
...
esr(config-if-gi)# service-ips { inline | monitor }
...
inline – этот режим устанавливается, когда ESR с сервисом IPS/IDS ставится в разрыв сети.
monitor – этот режим устанавливается, когда ESR с сервисом IPS/IDS мониторит зеркалируемый трафик.
Алгоритм настройки автообновления правил IPS/IDS из внешних источников
...
Шаг
...
Описание
...
Команда
...
Ключи
...
1
...
Перейти в режим конфигурирования автообновлений.
...
esr(config-ips)# auto-upgrade
...
2
...
Задать имя и перейти в режим конфигурирования пользовательского сервера обновлений.
...
esr(config-ips-auto-upgrade)# user-server <WORD>
...
<WORD> – имя сервера, задаётся строкой до 32 символов.
...
3
...
Задать описание пользовательского сервера обновлений (не обязательно).
...
esr(config-ips-upgrade-user-server)# description <DESCRIPTION>
...
<DESCRIPTION> – описание задаётся строкой до 255 символов.
...
4
...
Задать URL.
...
esr(config-ips-upgrade-user-server)# url <URL>
...
<URL> – текстовое поле, содержащее URL-ссылку длиной от 8 до 255 символов.
В качестве URL-ссылки может быть указан:
- файл правил с расширениеМ .rule;
- файл классификатора правил с именем classification.config;
- каталог на сервере, содержащий файлы правил и/или файл классификатора правил.
...
5
...
Задать частоту проверки обновлений (не обязательно).
...
esr(config-ips-upgrade-user-server)# upgrade interval <HOURS>
...
<HOURS> – интервал обновлений в часах, от 1 до 240.
Значение по умолчанию: 24 часа.
Предупреждение |
---|
Для правил IPS/IDS, загружаемых из внешних источников, на маршрутизаторах ESR выделена отдельная область энергозависимой памяти. Размер этой области зависит от модели ESR:
Для всех остальных моделей – 100 МБ. Если настроить слишком много источников правил или загружать правила, превышающие указанные лимиты, то маршрутизатор будет выдавать сообщения об ошибке %STORAGE_IPS_MGR-I-ERR: There no free space in rules directory. |
Рекомендуемые открытые источники обновления правил
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-attack_response.rules
...
Правила, детектирующие поведение хоста после успешно проведенных атак.
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-chat.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-current_events.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-dns.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-dos.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-exploit.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-ftp.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-games.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-icmp.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-icmp_info.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-imap.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-inappropriate.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-info.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-malware.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-misc.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-mobile_malware.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-netbios.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-p2p.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-policy.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-poprules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-rpc.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-scada.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-scan.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-shellcode.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-smtp.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-sql.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-telnet.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-tftp.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-trojan.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-user_agents.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-l.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-web_client.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-web_server.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-web_specific_apps.rules
...
https://rules.emergingthreats.net/open/suricata/rules/emerging-worm.rules
...
Пример настройки IPS/IDS с автообновлением правил
Задача:
Организовать защиту локальной сети с автообновлением правил из открытых источников.
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 name-server 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 |
Scroll Pagebreak |
---|
Настроим автообновление правил с сайтов EmergingThreats.net, etnetera.cz и Abuse.ch:
Блок кода |
---|
esr(config-ips)# auto-upgrade
esr(config-auto-upgrade)# user-server ET-Open
esr(config-ips-upgrade-user-server)# description "emerging threats open rules"
esr(config-ips-upgrade-user-server)# url https://rules.emergingthreats.net/open/suricata-4.0/emerging-all.rules
esr(config-ips-upgrade-user-server)# exit
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)# 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.rules
esr(config-ips-upgrade-user-server)# upgrade interval 4
esr(config-ips-upgrade-user-server)# exit
esr(config-auto-upgrade)# user-server C2-Botnet
esr(config-ips-upgrade-user-server)# description "Abuse.ch Botnet C2 IP Blacklist"
esr(config-ips-upgrade-user-server)# url https://sslbl.abuse.ch/blacklist/sslipblacklist.rules
esr(config-ips-upgrade-user-server)# upgrade interval 4
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 }
...
- alert – прохождение трафика разрешается, и сервис IPS/IDS генерирует сообщение;
- reject – прохождение трафика запрещается. Если это TCP-трафик, отправителю и получателю посылается пакет TCP-RESET, для остального типа трафика посылается пакет ICMP-ERROR. Сервис IPS/IDS генерирует сообщение;
- pass – прохождение трафика разрешается;
- drop – прохождение трафика запрещается, и сервис IPS/IDS генерирует сообщение.
...
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
{ip <ADDR> | ip-prefix <ADDR/LEN> |
object-group <OBJ_GR_NAME> | policy-object-group
{ protect | external } | any }
...
<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 символа.
- protect – устанавливает в качестве адресов отправителя и protect-адреса определенные адреса в политике IPS/IDS;
- external – устанавливает в качестве адресов отправителя и external- адреса определенные адреса в политике IPS/IDS.
При указании значения «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
{ip <ADDR> | ip-prefix <ADDR/LEN> | object-group <OBJ_GR_NAME> |
policy-object-group { protect | external } | any }
...
<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 символа.
- protect – устанавливает в качестве адресов получателя protect-адреса, определенные в политике IPS/IDS;
- external – устанавливает в качестве адресов получателя external-адреса, определенные в политике IPS/IDS.
При указании значения «any» правило будет срабатывать для любого IP-адреса получателя.
...
10
...
Установить номера TCP/UDP-портов получателя, для которых должно срабатывать правило.
Для значения protocol icmp, значение destination-port может быть только any.
...
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-порта получателя.
...
11
...
Установить направление потока трафика, для которого должно срабатывать правило.
...
esr(config-ips-category-rule)# direction { one-way | round-trip }
...
- 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
{ not-suspicious | unknown | bad-unknown | attempted-recon |
successful-recon-limited | successful-recon-largescale |
attempted-dos | successful-dos | attempted-user |
unsuccessful-user | successful-user | attempted-admin |
successful-admin | rpc-portmap-decode | shellcode-detect |
string-detect | suspicious-filename-detect | suspicious-login | system-call-detect | tcp-connection | trojan-activity |
unusual-client-port-connection | network-scan |
denial-of-service | non-standard-protocol |
protocol-command-decode | web-application-activity |
web-application-attack | misc-activity | misc-attack |
icmp-event | inappropriate-content | policy-violation |
default-login-attempt }
...
- not-suspicious – не подозрительный трафик.
- unknown – неизвестный трафик.
- bad-unknown – потенциально плохой трафик.
- attempted-recon – попытка утечки информации.
- successful-recon-limited – утечка информации.
- successful-recon-largescale – масштабная утечка информации.
- attempted-dos – попытка отказа в обслуживании.
- successful-dos – отказ в обслуживании.
- attempted-user – попытка получения привилегий пользователя.
- unsuccessful-user – безуспешная попытка получения привилегий пользователя.
- successful-user – успешная попытка получения привилегий пользователя.
- attempted-admin – попытка получения привилегий администратора.
- successful-admin – успешная попытка получения привилегий администратора.
- rpc-portmap-decode – декодирование запроса RPC.
- shellcode-detect – обнаружен исполняемый код.
- string-detect – обнаружена подозрительная строка.
- suspicious-filename-detect – было обнаружено подозрительное имя файла.
- suspicious-login – была обнаружена попытка входа с использованием подозрительного имени пользователя.
- system-call-detect – обнаружен системный вызов.
- tcp-connection – обнаружено TCP-соединение.
- trojan-activity – был обнаружен сетевой троян.
- unusual-client-port-connection – клиент использовал необычный порт.
- network-scan – обнаружение сетевого сканирования.
- denial-of-service – обнаружение атаки отказа в обслуживании.
- non-standard-protocol – обнаружение нестандартного протокола или события.
- protocol-command-decode – обнаружена попытка шифрования.
- web-application-activity – доступ к потенциально уязвимому веб-приложению.
- web-application-attack – атака на веб-приложение.
- misc-activity – прочая активность.
- misc-attack – прочие атаки.
- icmp-event – общее событие ICMP.
- inappropriate-content – обнаружено неприемлемое содержание.
- policy-violation – потенциальное нарушение корпоративной конфиденциальности.
- default-login-attempt – попытка входа с помощью стандартного логина/пароля.
...
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
{ greater-than | less-than }
...
Оператор сравнения для значения ip icmp code:
- greater-than – больше чем..
- less-than –меньше чем..
...
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
{ greater-than | less-than }
...
Оператор сравнения для значения ip icmp type:
- greater-than – больше чем.
- less-than –меньше чем.
...
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 |
accept-lang | client-body | connection | content-type | cookie | file-data | header | header-names | host | method | protocol |
referer | request-line | response-line | server-body | start |
start-code | start-msg | uri | user-agent }
Значение ключевых слов см. в документации 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
{ greater-than | less-than }
...
Оператор сравнения для значения ip http urilen:
- greater-than – больше чем..
- less-than –меньше чем..
...
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
comparison-operator { greater-than | less-than }
...
Оператор сравнения для значения payload data-size:
- greater-than – больше чем..
- less-than –меньше чем.
...
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
{ by-src | by-dst }
...
- by-src – считать пороговое значение для пакетов с одинаковым IP-отправителя.
- by-dst – считать пороговое значение для пакетов с одинаковым IP-получателя.
...
34
...
Указать метод обработки пороговых значений.
...
esr(config-ips-category-rule)# threshold type
{threshold | limit | both }
...
- threshold – выдавать сообщение каждый раз по достижении порога.
- limit – выдавать сообщение не чаще <COUNT> раз за интервал времени <SECOND>.
- both – комбинация threshold и limit.
Сообщение будет генерироваться, если в течении интервала времени <SECOND> было <COUNT> или более пакетов подходящих под условия правила, и сообщение будет отправлено только один раз в течении интервала времени <SECOND>.
...
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 |
Scroll Pagebreak |
---|
Правило будет срабатывать на пакеты размером больше 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 |
Алгоритм настройки расширенных пользовательских правил
...
Шаг
...
Описание
...
Команда
...
Ключи
...
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 символов.
Примечание |
---|
При написании правил в тексте правила необходимо использовать только двойные кавычки (символ "), а само правило необходимо заключать в одинарные кавычки (символ '). |
...
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 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; )' |
...
EDM (Eltex Distribution Manager) — сервис распространения лицензируемого контента на устройства по коммерческой подписке.
Благодаря использованию инфраструктуры безопасности «Лаборатории Касперского» , в том числе облачного «коллективного разума» Kaspersky Security Network с поддержкой Kaspersky SafeStream II, сервисный маршрутизатор ESR способен обнаруживать вредоносное ПО во всех типах трафика (web, email, P2P, сервисы мгновенного обмена сообщениями и т. п.). В результате обеспечивается защита пользователей от самых опасных киберугроз, в том числе угроз нулевого дня, программ-шифровальщиков, заражённых сайтов и иных типов.
Система IPS на устройствах ESR может использовать следующие наборы правил, предоставляемых Kaspersky SafeStream II:
- Данные о репутации IP-адресов — набор IP-адресов с контекстной информацией, сообщающей о подозрительных и вредоносных узлах;
- URL-адреса вредоносных ссылок — набор URL-адресов, соответствующих опасным ссылкам и веб-сайтам;
- URL-адреса фишинговых ссылок — набор URL-адресов, распознаваемых «Лабораторией Касперского» как фишинговые. Доступны записи с масками и без масок;
- URL-адреса командных серверов ботнетов — набор URL-адресов командных серверов ботнетов и связанных с ними вредоносных объектов;
- URL-адреса шифровальщиков — набор URL-адресов шифровальщиков;
- Хэши вредоносных объектов — набор файловых хэшей, охватывающий наиболее опасные и распространенные, а также самые новые вредоносные программы;
- Хэши вредоносных объектов для мобильных устройств — набор файловых хэшей для обнаружения вредоносных объектов, заражающих мобильные устройства;
- URL-адреса командных серверов ботнетов для мобильных устройств — набор URL-адресов с контекстной информацией для выявления командных серверов ботнетов, использующих мобильные устройства;
- URL-адреса веб-сайтов, используемых для размещения вредоносных программ, заражающих устройства Internet of Things (IoT).
Для работы по групповой лицензии предоставляется программное обеспечение EDM Server, позволяющее автоматически включать в работу новый сервисный маршрутизатор ESR в рамках действующей лицензии. Таким образом, пользователь системы может сам управлять распределением лицензий по устройствам ESR в рамках своей организации. Для обеспечения масштабируемости и отказоустойчивости возможна установка ПО EDM Server на нескольких хостах.
Алгоритм базовой настройки
...
1
...
Перейти в конфигурирование контент- провайдера.
...
2
...
Задать IP-адрес edm-сервера.
...
<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-серверу.
...
<PORT> – номер TCP/UDP-порта отправителя, принимает значения [1..65535].
...
4
...
Задать тип и раздел внешнего устройства для создания крипто-хранилища.
...
<DEVICE> – лейбл и имя раздела на внешнем носителе информации в формате usb://Partion_name:/
mmc://Partion_name:/.
На внешнем носителе должна быть создана файловая система в формате exFAT.
...
5
...
Установить время перезагрузки устройства после получения сертификата.
...
Перезагрузить устройство после получения сертификата.
time <HH:MM:SS> – время, в которое ESR перезагрузится <Часы:минуты:секунды>.
...
6
...
Включить контент-провайдер.
...
7
...
Установить интервал обращения к edm-серверу в часах.
...
8
...
Установить описание (не обязательно).
...
LINE (1-255) String describing server
...
11
...
Создать списки IP-адресов, которые будут использоваться при фильтрации.
...
<WORD> – имя сервера, задаётся строкой до 32 символов.
<ADDR/LEN> – подсеть, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32].
...
12
...
На интерфейсе включить service-ips.
...
13
...
Создать политику безопасности IPS/IDS.
...
WORD(1-31)
...
14
...
Задать профиль IP-адресов, которые будет защищать IPS/IDS.
...
<OBJ-GROUP-NETWORK-NAME> – имя профиля защищаемых IP-адресов, задается строкой до 32 символов.
...
15
...
Войти в раздел конфигурирования вендора.
...
16
...
Подключить необходимую категорию.
...
Phishing URL Data Feed – потоки данных Phishing URL
Malicious URL Data Feed – потоки данных Malicious URL
Botnet C&C URL Data Feed – потоки данных Botnet C&C URL
Malicious Hash Data Feed – потоки данных Malicious Hashes
Mobile Malicious Hash Data Feed – потоки данных мобильных Malicious Hashes
IP Reputation Data Feed – потоки данных IP-адресов
Mobile Botnet Data Feed – потоки данных о мобильных Botnet
Ransomware URL Data Feed – поток данных Ransomware URL
Botnet C&C URL Exact Data Feed – поток данных Botnet C&C URL Exact
Phishing URL Exact Data Feed – поток данных Phishing URL Exact
Malicious URL Exact Data Feed – поток данных Malicious URL Exact
Iot URL Data Feed – поток данных IoT URL
...
17
...
Задать тип правил.
...
<ACTION> – drop | reject | alert | pass – действия, которые будут применяться к пакетам.
alert – прохождение трафика разрешается, и сервис IPS/IDS генерирует сообщение;
reject – прохождение трафика запрещается. Если это TCP-трафик отправителю и получателю посылается пакет TCP-RESET, для остального типа трафика посылается пакет ICMP-ERROR. Сервис IPS/IDS генерирует сообщение;
pass – прохождение трафика разрешается;
drop – прохождение трафика запрещается, и сервис IPS/IDS генерирует сообщение.
...
18
...
Задать количество скачиваемых правил.
...
<number>
...
19
...
Включить категорию.
...
20
...
Перейти в режим конфигурирования IPS/IDS.
...
21
...
Назначить политику безопасности IPS/IDS.
...
<NAME> – имя политики безопасности, задаётся строкой до 32 символов.
...
22
...
Использовать все ресурсы ESR для IPS/IDS (не обязательно).
...
23
...
Задать параметры удаленного сервера для отправки статистики работы сервиса IPS/IDS в формате EVE (elasticsearch) (не обязательно).
...
<ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255];
<IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF];
<TRANSPORT> – протокол передачи данных, по умолчанию – UDP, принимает значения:
- TCP – передача данных осуществляется по протоколу TCP;
- UDP – передача данных осуществляется по протоколу UDP.
<PORT> – номер TCP/UDP-порта, опциональный параметр, принимает значения [1..65535], по умолчанию 514;
<SRC-ADDR> – IPv4-адрес маршрутизатора, который будет использоваться в качестве IP-адреса источника в отправляемых syslog-пакетах, по умолчанию – IPv4-адрес интерфейса, с которого отправляются пакеты;
<IPV6-SRC-ADDR> – IPv6-адрес маршрутизатора, который будет использоваться в качестве IPv6-адреса источника в отправляемых syslog-пакетах, по умолчанию – IPv6-адрес интерфейса, с которого отправляются пакеты.
...
25
...
Активировать IPS/IDS.
...
Scroll Pagebreak |
---|
Задать параметры 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 count 100
enable
exit
category MobileBotnetCAndCDF
rules action alert
rules count 1000
enable
exit
category APTIPDF
rules action alert
rules count 1000
enable
exit |
Блок кода |
---|
category APTURLsDF
rules action alert
rules count 1000
enable
exit
category BotnetCAndCURLsDF
rules action alert
rules count 1000
enable
exit
category IPReputationDF
rules action alert
rules count 1000
enable
exit
category IoTURLsDF
rules action alert
rules count 1000
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
|
Scroll Pagebreak |
---|
Для просмотра информации о загруженном контенте для 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
TCP flows processed : 191
Alerts generated : 0
Blocked by ips engine : 7
Accepted by ips engine : 51483
|
Показывает прошедший трафик через IPS/IDS и действия, которые применялись к трафику, а также число срабатываний правил IPS/IDS.
Настройка сервиса контентной фильтрации
Примечание |
---|
Данный функционал активируется только при наличии лицензии. |
Сервис контентной фильтрации предназначен для ограничения доступа к HTTP-сайтам на основании их содержимого. Для каждого сайта определяется принадлежность его к той или иной категории. В качестве базы категорий сайтов используется база Лаборатории Касперского. Для определения категории сайтов ESR отправляет HTTPS-запросы на сервер Лаборатории Касперского по адресу https://ksn-vt.kaspersky-labs.com.
Работа сервиса контентной фильтрации основана на системе предотвращения вторжений (IPS) и настраивается как пользовательские правила IPS.
Алгоритм базовой настройки
...
Шаг
...
Описание
...
Команда
...
Ключи
...
esr(config)# domain name-server <IP>
...
esr(config)# domain lookup enable
...
3
...
Создать политику безопасности IPS/IDS.
...
esr(config)# security ips policy <NAME>
...
<NAME> – имя политики безопасности, задаётся строкой до 32 символов.
...
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>
...
<WORD> – имя сервера, задаётся строкой до 32 символов.
<ADDR/LEN> – подсеть, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32].
...
6
...
Задать профиль IP-адресов, которые будет защищать IPS/IDS.
...
esr(config-ips-policy)# protect network-group <OBJ-GROUP-NETWORK_NAME>
...
<OBJ-GROUP-NETWORK-NAME> – имя профиля защищаемых IP-адресов, задается строкой до 32 символов.
...
7
...
Задать профиль IP-адресов, внешних для IPS/IDS (не обязательно).
...
esr(config-ips-policy)# external network-group <OBJ-GROUP-NETWORK_NAME>
...
<OBJ-GROUP-NETWORK-NAME> – имя профиля внешних IP-адресов, задается строкой до 32 символов.
...
esr(config)# object-group content-filter <NAME>
...
9
...
Задать описание профиля категорий контентной фильтрации (не обязательно).
...
esr(config-object-group-content-filter)# description <DESCRIPTION>
...
<DESCRIPTION> – описание задаётся строкой до 255 символов.
...
esr(config-object-group-content-filter)# vendor <CONTENT-FILTER-VENDOR>
...
esr(config-object-group-cf-kaspersky)# 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) (не обязательно).
...
<ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255];
<IPV6-ADDR> – IPv6-адрес, задаётся в виде X:X:X:X::X, где каждая часть принимает значения в шестнадцатеричном формате [0..FFFF];
<TRANSPORT> – протокол передачи данных, по умолчанию - UDP, принимает значения:
- TCP – передача данных осуществляется по протоколу TCP;
- UDP – передача данных осуществляется по протоколу UDP;
<PORT> – номер TCP/UDP-порта, опциональный параметр, принимает значения [1..65535], по умолчанию: 514;
<SRC-ADDR> – IPv4-адрес маршрутизатора, который будет использоваться в качестве IP-адреса источника в отправляемых syslog-пакетах, по умолчанию – IPv4-адрес интерфейса, с которого отправляются пакеты;
<IPV6-SRC-ADDR> – IPv6-адрес маршрутизатора, который будет использоваться в качестве IPv6-адреса источника в отправляемых syslog-пакетах, по умолчанию – IPv6-адрес интерфейса, с которого отправляются пакеты.
...
17
...
Активировать IPS/IDS.
...
esr(config-ips )# enable
...
18
...
Активировать IPS/IDS на интерфейсе.
...
esr(config-if-gi)# service-ips enable
...
19
...
Задать имя и перейти в режим конфигурирования набора пользовательских правил.
...
esr(config)# security ips-category user-defined <WORD>
...
<WORD> – имя набора пользовательских правил, задаётся строкой до 32 символов.
...
20
...
Задать описание набора пользовательских правил (не обязательно).
...
esr(config-ips-category)# description <DESCRIPTION>
...
<DESCRIPTION> – описание задаётся строкой до 255 символов.
...
21
...
Создать правило и перейти в режим конфигурирования правила.
...
esr(config-ips-category)# rule <ORDER>
...
<ORDER> – номер правила, принимает значения [1..512].
...
22
...
Задать описание правила (не обязательно).
...
esr(config-ips-category-rule)# description <DESCRIPTION>
...
<DESCRIPTION> – описание задаётся строкой до 255 символов.
...
23
...
Указать действие данного правила.
...
esr(config-ips-category-rule)# action { alert | reject | pass | drop }
...
- alert – прохождение трафика разрешается, и сервис IPS/IDS генерирует сообщение;
- reject – прохождение трафика запрещается. Если это TCP-трафик, отправителю и получателю посылается пакет TCP-RESET, для остального типа трафика посылается пакет ICMP-ERROR. Сервис IPS/IDS генерирует сообщение;
- pass – прохождение трафика разрешается;
- drop – прохождение трафика запрещается, и сервис IPS/IDS генерирует сообщение.
...
24
...
Установить в качестве IP-протокола протокол HTTP.
...
esr(config-ips-category-rule)# protocol http
...
25
...
Установить IP-адреса отправителя, для которых должно срабатывать правило.
...
esr(config-ips-category-rule)# source-address
{ip <ADDR> | ip-prefix <ADDR/LEN> | object-group <OBJ_GR_NAME> | policy-object-group { protect | external } | any }
...
<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 символа.
- protect – устанавливает в качестве адресов отправителя protect-адреса, определенные в политике IPS/IDS;
- external – устанавливает в качестве адресов отправителя external-адреса. определенные в политике IPS/IDS.
При указании значения «any» правило будет срабатывать для любого IP-адреса отправителя.
...
26
Установить номера TCP-портов отправителя, для которых должно срабатывать правило.
...
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-порта отправителя.
...
27
...
Установить IP-адреса получателя, для которых должно срабатывать правило.
...
esr(config-ips-category-rule)# destination-address
{ip <ADDR> | ip-prefix <ADDR/LEN> | object-group <OBJ_GR_NAME> |
policy-object-group { protect | external } | any }
...
<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 символа.
- protect – устанавливает в качестве адресов получателя protect-адреса, определенные в политике IPS/IDS;
- external – устанавливает в качестве адресов получателя external-адреса, определенные в политике IPS/IDS.
При указании значения «any» правило будет срабатывать для любого IP-адреса получателя.
...
28
...
Установить номера TCP-портов получателя, для которых должно срабатывать правило.
Обычно для протокола 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-порта получателя.
...
29
...
Установить направление потока трафика, для которого должно срабатывать правило.
...
esr(config-ips-category-rule)# direction { one-way | round-trip }
...
- one-way – трафик передаётся в одну сторону.
- round-trip – трафик передаётся в обе стороны.
...
30
...
Определить сообщение которое IPS/IDS будет записывать в лог, при срабатывании этого правила.
...
esr(config-ips-category-rule)# meta log-message <MESSAGE>
...
<MESSAGE> – текстовое сообщение, задаётся строкой до 129 символов.
...
esr(config-ips-category-rule)# ip http content-filter <NAME>
...
<NAME> – имя профиля контентной фильтрации задаётся строкой до 31 символа.
any – правило будет срабатывать для http-сайтов любой категории.
...
esr(config-ips-category-rule)# enable
Пример настройки правил контентной фильтрации
Задача:
Запретить доступ к http-сайтам, относящимся к категориям adult-content, casino, online-betting, online-lotteries из локальной сети 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 name-server 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 |
Устройство будет использоваться только как шлюз безопасности, поэтому отдадим сервису 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 adult-content
esr(config-object-group-cf-kaspersky)# category casino
esr(config-object-group-cf-kaspersky)# category online-betting
esr(config-object-group-cf-kaspersky)# category online-lotteries |
Создадим набор пользовательских правил:
Блок кода |
---|
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 http |
При http-запросах в качестве TCP-порта отправителя операционная система использует случайное значение, поэтому требуется указать any:
Блок кода |
---|
esr(config-ips-category-rule)# source-port any |
В качестве TCP-порта назначения для протокола 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 http content-filter Black
|
Активируем правило:
Блок кода |
---|
esr(config-ips-category-rule)# enable
esr(config-ips-category-rule)# exit
esr(config-ips-category-rule)# threshold type both |
Настройка сервиса «Антиспам»
Примечание |
---|
Данный функционал активируется только при наличии лицензии. |
Почтовый антиспам или спам-фильтр — это программа для определения и фильтрации нежелательных электронных сообщений, которые могут поступать через корпоративные почтовые серверы и публичные сервисы электронной почты (спам, почтовый фишинг и т.п.).
Основная задача сервиса «Антиспам» — распознать такие нежелательные письма еще в процессе доставки этих писем в почтовый ящик получателя. Для этого сервисный маршрутизатор ESR с настроенным сервисом «Антиспам» устанавливается в сети перед защищаемым почтовым сервером и перенаправляет через себя электронную почту между этим сервером и другими почтовыми серверами в сети Интернет, фактически выполняя функцию Mail Proxy.
Письма, пришедшие от внешних почтовых доменов, в сервисе «Антиспам» будут проанализированы следующими способами:
- проверка подлинности домена-отправителя через SPF;
- проверка подписи электронного письма, подписанного ключом домена по технологии DKIM;
- идентификация электронного письма согласно технологии DMARC;
- проверка наличия корректной MX-записи для домена, из которого отправлено электронное письмо;
- поиск отправителя письма в списке известных сервисов широковещательной рассылки;
- поиск отправителя письма в RBL;
- анализ корректности SMTP-команд во время поднятия SMTP-сессии;
- анализ кодировок Unicode, присутствующих в тексте письма;
- анализ ссылок в тексте письма на принадлежность к фишингу.
Письма, не прошедшие большинство проверок, будут отброшены и не попадут на защищаемый почтовый сервер.
Примечание |
---|
При использовании сервиса «Антиспам» для защиты почтового сервера произвести ряд дополнительных настроек, не связанных непосредственно с конфигурацией маршрутизатора ESR. 1) Изменить MX-запись для используемого домена таким образом, чтобы она ссылалась не на защищаемый почтовый сервер, а на IP-адрес ESR с настроенным сервисом «Антиспам». 2) Настроить на почтовом сервере использование SMTP Proxy, где в качестве Proxy выступит ESR с настроенным сервисом «Антиспам». |
Алгоритм базовой настройки
...
<MARK-TYPE> – тип маркировки писем, отнесенных к категории «Спам». Возможные значения:
- header – добавить X-Spam заголовок к заголовкам электронного письма;
- subject – добавить тег [SPAM] перед темой электронного письма.
...
<ACTION> – назначаемое действие. Возможные значения:
- reject – дальнейшая доставка письма запрещена, отправителю письма высылается ответ об ошибке.
...
<TYPE> – тип файла сертификата или ключа. Возможные значения:
- ca – сертификат удостоверяющего центра;
- server-key – приватный ключ сервера;
- server-crt – публичный сертификат сервера;
- dh – ключ Диффи-Хэллмана.
<NAME> – имя файла сертификата, задаётся строкой до 31 символа.
...
Scroll Pagebreak |
---|
Задача:
Настроить на ESR сервис «Антиспам» для работы в качестве SMTP Proxy для анализа электронной почты, адресованной почтовому серверу, расположенному в сети предприятия и обслуживающему домен eltex-co.ru.
...
Решение:
Убедимся, что MX-запись для домена eltex-co.ru указывает на IP-адрес ESR:
Блок кода |
---|
esr@eltex:~$ dig +noall +answer eltex-co.ru MX
eltex-co.ru. 3548 IN MX 10 mail-gate.eltex-co.ru.
esr@eltex:~$ dig +noall +answer mail-gate.eltex-co.ru A
mail-gate.eltex-co.ru. 3453 IN A 95.171.220.11 |
Настроим сетевые интерфейсы:
Блок кода |
---|
esr# config
esr(config)# interface gi1/0/1
esr(config-if-gi)# ip address 95.171.220.11/18
esr(config-if-gi)# ip firewall disable
esr(config-if-gi)# exit
esr(config)# interface gi1/0/2
esr(config-if-te)# ip address 192.168.1.1/24
esr(config-if-te)# ip firewall disable
esr(config-if-te)# exit |
Настроим сетевое имя, имя домена и настройки DNS. Сетевое имя и имя домена должны образовать FQDN (англ. Fully Qualified Domain Name — полностью определённое имя домена), прописанное в MX-записи для домена eltex-co.ru:
Блок кода |
---|
esr(config)# hostname mail-gate
esr(config)# domain name eltex-co.ru
esr(config)# domain name-server 1.1.1.1
esr(config)# domain lookup enable |
Создадим профиль для сервиса «Антиспам», который будет добавлять X-Spam заголовок к письмам, идентифицированным как спам:
Блок кода |
---|
esr(config)# security antispam profile SimpleProfile
esr(config-antispam-profile)# description "Basic Antispam profile without rules"
esr(config-antispam-profile)# mark-type header
esr(config-antispam-profile)# exit |
Scroll Pagebreak |
---|
Блок кода |
---|
esr(config)# mailserver domain MainDomain
esr(config-mailserver-domain)# mail domain eltex-co.ru
esr(config-mailserver-domain)# description "Mail domain eltex-co.ru"
esr(config-mailserver-domain)# mail server ip 192.168.1.10
esr(config-mailserver-domain)# profile antispam SimpleProfile
esr(config-mailserver-domain)# enable
esr(config-mailserver-domain)# exit |
Добавим в конфигурацию почтового сервера созданный домен и пропишем настройки для работы TLS:
Блок кода |
---|
esr(config)# mailserver
esr(config-mailserver)# domain MainDomain
esr(config-mailserver)# tls keyfile ca ca.crt
esr(config-mailserver)# tls keyfile server-crt server.crt
esr(config-mailserver)# tls keyfile server-key server.key
esr(config-mailserver)# tls enable
esr(config-mailserver)# enable
esr(config-mailserver)# exit |
Применение текущей конфигурации запустит сервис в работу.
Примечание |
---|
В firewall необходимо разрешить протокол SMTP (TCP -порт 25). |