...
| Блок кода |
|---|
esr# show ip access-list white |
| Scroll Pagebreak |
|---|
| Якорь | ||||
|---|---|---|---|---|
|
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Cоздать объект с URL. | esr(config)# object-group url <NAME> | |
2 | Указать набор. | esr(config-object-group-url)# url <URL> | <URL> – адрес веб страницы, сайта. |
3 | Создать профиль проксирования. | esr(config)# ip http profile <NAME> | <NAME> – название профиля. |
4 | Выбрать действие по умолчанию. | esr(config-profile)# default action { deny | permit | redirect } | <URL> – адрес хоста, на который будут передаваться запросы. |
5 | Указать описание (необязательно). | esr(config-profile)# description <description> | <description> – до 255 символов. |
6 | Указать режим фильтрации данных (необязательно). | esr(config-profile)# filter <DATA-TYPE> | <DATA-TYPE> – тип данных, подлежащих фильтрации. Может принимать значения (как одно, так и несколько):
|
| 7 | Указать удаленный или локальный список URL и тип операции (блокировка/пропуск трафика/перенаправление) (необязательно). | esr(config-profile)# urls { local | remote } <URL_OBJ_GROUP_NAME> | <URL_OBJ_GROUP_NAME> – указать название объекта, содержащего набор URL. |
| 8 | Указать удаленный сервер, где лежат необходимые списки URL (необязательно). | esr(config)# ip http proxy server-url <URL> | <URL> – адрес сервера, откуда будут брать удалённые списки url. |
| 9 | Указать прослушиваемый порт для проксирования http (необязательно). | esr(config)# ip http proxy listen-ports <OBJ_GROUP_NAME> | <OBJ_GROUP_NAME> – имя профиля порта, задаётся строкой до 31 символа. По умолчанию прослушиваются порты 80 и 8080 |
| 10 | Указать прослушиваемый порт для проксирования (необязательно). | esr(config)# ip https proxy listen-ports <OBJ_GROUP_NAME> | <OBJ_GROUP_NAME> – имя профиля порта, задаётся строкой до 31 символа. По умолчанию прослушивается порт 443 |
| 11 | Указать базовый порт для проксирования http (необязательно). | esr(config)# ip http proxy redirect-port <PORT> | <PORT> – номер порта, указывается в диапазоне [1..65535]. Значение по умолчанию 3128. |
| 12 | Указать базовый порт для проксирования https (необязательно). | esr(config)# ip http proxy redirect-port <PORT> | <PORT> – номер порта, указывается в диапазоне [1..65535]. Значение по умолчанию 3128. |
| 13 | Включить проксирование на интерфейсе на основе выбранного HTTP-профиля. | esr(config-if)# ip http proxy <PROFILE_NAME> | <PROFILE_NAME> – название профиля. |
| 14 | Включить проксирование на интерфейсе на основе выбранного HTTPS-профиля. | esr(config-if)# ip https proxy <PROFILE_NAME> | <PROFILE_NAME> – название профиля. |
| 15 | Создать списки сервисов, которые будут использоваться при фильтрации. | esr(config)# object-group service <obj-group-name> | <obj-group-name> – имя профиля сервисов, задается строкой до 31 символа. |
| 16 | Задать описание списка сервисов (необязательно). | esr(config-object-group-service)# description <description> | <description> – описание профиля, задается строкой до 255 символов. |
| 17 | Внести необходимые сервисы (TCP/UDP-порты) в список. | esr(config-object-group-service)# port-range 3128-3135 | Прокси-сервер ESR использует для своей работы порты, начиная с базового порта, определённого на 10 шаге. Для http proxy используются порты, начиная с базового порта по базовый порт + количество cpu данной модели ESR - 1. Для https proxy используются порты, начиная с базового порта + количество cpu данной модели ESR по базовый порт + количество cpu данной модели ESR * 2 - 1. Количество CPU можно посмотреть с помощью команды show cpu utilization. |
| 18 | Создать набор правил межзонового взаимодействия. | esr(config)# security zone-pair <src-zone-name> self | <src-zone-name> – зона безопасности, в которой находятся интерфейсы с функцией ip http proxy или ip https proxy. self – предопределенная зона безопасности для трафика, поступающего на сам ESR. |
| 19 | Создать правило межзонового взаимодействия. | esr(config-zone-pair)# rule <rule-number> | <rule-number> – 1..10000. |
| 20 | Задать описание правила (необязательно). | esr(config-zone-rule)# description <description> | <description> – до 255 символов. |
| 21 | Указать действие данного правила. | esr(config-zone-rule)# action <action> [ log ] | <action> – permit. log – ключ для активации логирования сессий, которые устанавливаются согласно данному правилу. |
| 22 | Установить имя IP-протокола, для которого должно срабатывать правило. | esr(config-zone-rule)# match protocol <protocol-type> | <protocol-type> – tcp. Прокси-сервер ESR работает по протоколу ESR. |
| 23 | Установить профиль TCP/UDP-портов получателя, для которых должно срабатывать правило (если указан протокол). | esr(config-zone-rule)# match [not] | <obj-group-name> – имя профиля сервисов, созданного на шаге 12. |
| 24 | Включить правило межзонового взаимодействия. | esr(config-zone-rule)# enable |
| Примечание |
|---|
Если функция Firewall на ESR принудительно не отключена, необходимо создать разрешающее правило для зоны Self. |
Пример настройки HTTP-прокси
Задача №1:
Организовать фильтрацию по URL для ряда адресов посредством прокси.
Решение:
Создадим набор URL, по которым будет осуществляться фильтрация. Настроим прокси-фильтр и укажем действия для созданного набора URL:
| Блок кода |
|---|
esr# configure
esr(config)# object-group url FILTER_OG
esr(config-object-group-url)# regexp *speedtest.net/
esr(config-object-group-url)# url http://ya.ru/
esr(config-object-group-url)# url https://ya.ru/
esr(config-object-group-url)# exit |
| Scroll Pagebreak |
|---|
Создаем профиль, где указываем действие для всех URL и действие для созданной группы URL:
| Блок кода |
|---|
esr(config)# ip http profile PROXY_LIST
esr(config-profile)# default action permit
esr(config-profile)# urls local FILTER_OG action redirect redirect-url http://test.loc
esr(config-profile)# exit |
Включим проксирование на интерфейсе по профилю ‘PROXY_LIST’:
| Блок кода |
|---|
esr(config)# interface gi 1/0/1
esr(config-if)# ip http proxy PROXY_LIST
esr(config-if)# ip https proxy PROXY_LIST |
Если используется Firewall, создадим для него разрешающие правила. Для этого:
Определим число CPU, доступных для данной модели:
| Блок кода |
|---|
esr(config)# do show cpu utilization
CPU Last Last Last
5 sec 1 min 5 min
---- ------- ------- -------
0 3.79% 1.61% 1.55%
1 0.00% 0.00% 0.01%
2 0.00% 0.00% 0.01%
3 0.00% 0.02% 0.01% |
В примере используется модель ESR-20, у которой 4 CPU.
Соответственно по формуле, описанной на 16 шаге алгоритма настройки http/https-прокси, получаем:
Для http proxy необходимо открыть порты с 3128 по 3131 (3128+4-1=3131).
Для https proxy необходимо открыть порты с 3132 по 3135 (3128+4=3132, 3128+2*4-1=3135).
Создаем профиль портов прокси-сервера:
| Блок кода |
|---|
esr(config)# object-group service PROXY_PORTS
esr(config-object-group-service)# port-range 3128-3135
esr(config-object-group-service)# exit |
Создаем разрешающее правило межзонового взаимодействия:
| Блок кода |
|---|
esr(config)# security zone-pair LAN self
esr(config-zone-pair)# rule 50
esr(config-zone-pair-rule)# action permit
esr(config-zone-pair-rule)# match protocol tcp
esr(config-zone-pair-rule)# match destination-port object-group PROXY_PORTS
esr(config-zone-pair-rule)# enable
esr(config-zone-pair-rule)# exit
esr(config-zone-pair)# exit |
| Scroll Pagebreak |
|---|
Задача №2:
Изменить локальный список с URL для фильтрации proxy-сервером из задачи №1 на список, получаемый с удалённого сервера.
Решение:
Для использования remote-списка необходимо в конфигурации прописать адрес сервера, а в ip http profile изменить urls local на urls remote <list> — название списка, лежащего на сервере:
| Блок кода |
|---|
esr(config)# ip http proxy server-url http://198.51.100.10
esr(config)# ip http profile PROXY_LIST
esr(config-profile)# default action permit
esr(config-profile)# urls remote URLS_PROXY action deny
esr(config-profile)# exit |
| Scroll Pagebreak |
|---|
Задача №3:
Организовать фильтрацию по веб-скриптам ActiveX URL для ряда адресов посредством прокси и настроить логирование событий в консоль.
Решение:
Выможетенастроить Proxy-сервер для фильтрации определённых веб-скриптов. Для фильтрации доступны ActiveX, cookie, JavaScript.
Для блокировки сайтов, использующих ActiveX, настроим фильтрацию и включим логирование событий proxy:
| Блок кода |
|---|
esr(config)# ip http profile PROXY_LIST
esr(config-profile)# default action permit
esr(config-profile)# urls local FILTER_OG action redirect redirect-url http://test.loc
esr(config-profile)# filter activex
esr(config-profile)# log enable
esr(config-profile)# exit |
Теперь при срабатывании фильтрации, а также указанных действий для URL, в консоль будут попадать логи вида:
| Блок кода |
|---|
%FIREWALL-I-LOG: http proxy 'Filter' (QQ) denied (ActiveX)
%FIREWALL-I-LOG: http proxy 'PROXY_LIST' permitted |
| Scroll Pagebreak |
|---|
| Якорь | ||||
|---|---|---|---|---|
|
...
192.168.1.0/24 – локальная сеть.
Решение:
Создадим профиль адресов защищаемой локальной сети:
...
Написать правило для защиты сервера с IP 192.168.1.10 от DOS-атаки ICMP-пакетами большого размера.
Решение:
Создадим набор пользовательских правил:
...
Написать правило, детектирующее атаку типа Slowloris.
Решение:
Создадим набор пользовательских правил:
...
| draw.io Diagram | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Решение:
На устройстве предварительно должны быть настроены интерфейсы и правила firewall.
| Scroll Pagebreak |
|---|
...

