Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Блок кода
esr# show ip access-list white

Scroll Pagebreak

Якорь
Проксирование HTTP/HTTPS-трафика
Проксирование HTTP/HTTPS-трафика
Проксирование HTTP/HTTPS-трафика

Алгоритм настройки

Шаг

Описание

Команда

Ключи

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 }
[redirect-url <URL>]

<URL> адрес хоста, на который будут передаваться запросы.

5

Указать описание (необязательно).

esr(config-profile)# description <description>

<description> до 255 символов.

6

Указать режим фильтрации данных (необязательно).

esr(config-profile)# filter <DATA-TYPE>

<DATA-TYPE> – тип данных, подлежащих фильтрации. Может принимать значения (как одно, так и несколько):

  • activexзаблокироватьвсеприложенияActiveX;
  • cookie – запретить веб-сайтам размещать cookie на пользовательских компьютерах;
  • js – заблокироватьвсестраницыилиприложения на основеJavascript.
7

Указать удаленный или локальный список URL и тип операции (блокировка/пропуск трафика/перенаправление) (необязательно).

esr(config-profile)# urls { local | remote } <URL_OBJ_GROUP_NAME>
 action { deny | permit | redirect } [redirect-url <URL>]

<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]
destination-port <obj-group-name>

<obj-group-name> – имя профиля сервисов, созданного на шаге 12.

24

Включить правило межзонового взаимодействия.

esr(config-zone-rule)# enable



Примечание

Если функция Firewall на ESR принудительно не отключена, необходимо создать разрешающее правило для зоны Self.

Пример настройки HTTP-прокси

Задача №1:

Организовать фильтрацию по URL для ряда адресов посредством прокси.

Image Added
Решение:

Создадим набор 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 на список, получаемый с удалённого сервера.

Image Added

Решение:

Для использования 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

Якорь
Настройка IPS/IDS
Настройка IPS/IDS
Настройка IPS/IDS

...

192.168.1.0/24 – локальная сеть.

Решение:

Создадим профиль адресов защищаемой локальной сети:

...

Написать правило для защиты сервера с IP 192.168.1.10 от DOS-атаки ICMP-пакетами большого размера.

Решение:

Создадим набор пользовательских правил:

...

Написать правило, детектирующее атаку типа Slowloris.

Решение:

Создадим набор пользовательских правил:

...

draw.io Diagram
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNameESR-Antispam-Usage
simpleViewerfalse
width
diagramWidth931
revision1

Решение:

На устройстве предварительно должны быть настроены интерфейсы и правила firewall.

Scroll Pagebreak

...