...
| Блок кода |
|---|
esr# show ip nat translations |
...
Алгоритм настройки
...
Шаг
...
Описание
...
Команда
...
Ключи
...
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> – тип данных, подлежащих фильтрации. Может принимать значения (как одно, так и несколько):
...
...
Указать удаленный или локальный список URL и тип операции (блокировка/пропуск трафика/перенаправление) (необязательно).
...
esr(config-profile)# urls { local | remote } <URL_OBJ_GROUP_NAME>
action { deny | permit | redirect } [redirect-url <URL>]
...
<URL_OBJ_GROUP_NAME> – указать название объекта, содержащего набор URL.
...
Указать удаленный сервер, где лежат необходимые списки URL (необязательно).
...
esr(config)# ip http proxy server-url <URL>
...
<URL> – адрес сервера, откуда будут брать удалённые списки url.
...
Указать прослушиваемый порт для проксирования http (необязательно).
...
esr(config)# ip http proxy listen-ports <OBJ_GROUP_NAME>
...
<OBJ_GROUP_NAME> – имя профиля порта, задаётся строкой до 31 символа.
По умолчанию прослушиваются порты 80 и 8080
...
Указать прослушиваемый порт для проксирования (необязательно).
...
esr(config)# ip https proxy listen-ports <OBJ_GROUP_NAME>
...
<OBJ_GROUP_NAME> – имя профиля порта, задаётся строкой до 31 символа.
По умолчанию прослушивается порт 443
...
Указать базовый порт для проксирования http (необязательно).
...
esr(config)# ip http proxy redirect-port <PORT>
...
<PORT> – номер порта, указывается в диапазоне [1..65535].
Значение по умолчанию 3128.
...
Указать базовый порт для проксирования https (необязательно).
...
esr(config)# ip http proxy redirect-port <PORT>
...
<PORT> – номер порта, указывается в диапазоне [1..65535].
Значение по умолчанию 3128.
...
Включить проксирование на интерфейсе на основе выбранного HTTP-профиля.
...
esr(config-if)# ip http proxy <PROFILE_NAME>
...
<PROFILE_NAME> – название профиля.
...
Включить проксирование на интерфейсе на основе выбранного HTTPS-профиля.
...
esr(config-if)# ip https proxy <PROFILE_NAME>
...
<PROFILE_NAME> – название профиля.
...
Создать списки сервисов, которые будут использоваться при фильтрации.
...
esr(config)# object-group service <obj-group-name>
...
<obj-group-name> – имя профиля сервисов, задается строкой до 31 символа.
...
Задать описание списка сервисов (необязательно).
...
esr(config-object-group-service)# description <description>
...
<description> – описание профиля, задается строкой до 255 символов.
...
Внести необходимые сервисы (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.
...
Создать набор правил межзонового взаимодействия.
...
esr(config)# security zone-pair <src-zone-name> self
...
<src-zone-name> – зона безопасности, в которой находятся интерфейсы с функцией ip http proxy или ip https proxy.
self – предопределенная зона безопасности для трафика, поступающего на сам ESR.
...
Создать правило межзонового взаимодействия.
...
esr(config-zone-pair)# rule <rule-number>
...
<rule-number> – 1..10000.
...
Задать описание правила (необязательно).
...
esr(config-zone-rule)# description <description>
...
<description> – до 255 символов.
...
Указать действие данного правила.
...
esr(config-zone-rule)# action <action> [ log ]
...
<action> – permit.
log – ключ для активации логирования сессий, которые устанавливаются согласно данному правилу.
...
Установить имя IP-протокола, для которого должно срабатывать правило.
...
esr(config-zone-rule)# match protocol <protocol-type>
...
<protocol-type> – tcp.
Прокси-сервер ESR работает по протоколу ESR.
...
Установить профиль TCP/UDP-портов получателя, для которых должно срабатывать правило (если указан протокол).
...
esr(config-zone-rule)# match [not]
destination-port <obj-group-name>
...
<obj-group-name> – имя профиля сервисов, созданного на шаге 12.
...
Включить правило межзонового взаимодействия.
...
esr(config-zone-rule)# enable
| Примечание |
|---|
Если функция Firewall на ESR принудительно не отключена, необходимо создать разрешающее правило для зоны Self. |
Пример настройки HTTP-прокси
Задача:
Организовать фильтрацию по 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 |
|---|
Задача:
Изменить локальный список с URL для фильтрации proxy-сервером на список, получаемый с удалённого сервера.
Решение:
Для использования 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 |
|---|
Задача:
Организовать фильтрацию по веб-скриптам ActiveX URL для ряда адресов посредством прокси и настроить логирование событий в консоль.
Решение:
...
Для блокировки сайтов, использующих 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 |
|---|
Настройка NTP
NTP (англ. Network Time Protocol — протокол сетевого времени) — сетевой протокол для синхронизации внутренних часов оборудования с использованием IP-сетей, использует для своей работы протокол UDP, учитывает время передачи и использует алгоритмы для достижения высокой точности синхронизации времени.
Алгоритм настройки
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Включить NTP. | esr(config)# ntp enable | |
2 | Задать IP-адрес NTP-сервера, либо участника NTP-синхронизации. | esr(config)# ntp { pool | server | peer } { <IPV4> | <NAME> | IPV6} | <IPV4> – IP-адрес назначения (шлюз), задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. <NAME> – DNS-имя сервера, задаётся строкой до 31 символа. <IPV6> – IP-адрес назначения (шлюз), задаётся в виде X:X:X:X::X, где каждая часть X принимает значения в шестнадцатеричном формате [0..FFFF]. |
3 | Включить отправку нескольких пакетов вместо одного при установке соединения. | esr(config-ntp)# burst | |
4 | Включить отправку нескольких пакетов вместо одного в случае разрыва соединения. | esr(config-ntp)# iburst | |
5 | Задать ключ для аутентификации (не обязательно). | esr(config-ntp)# key <ID> | <ID> – идентификатор ключа, задается в диапазоне [1..255]. |
6 | Установить максимальное значение интервала времени между отправкой сообщений NTP-серверу (не обязательно). | esr(config-ntp)# maxpoll <INTERVAL> | <INTERVAL> – максимальное значение интервала опроса. Параметр команды используется как показатель степени двойки при вычислении длительности интервала в секундах, вычисляется путем возведения двойки в степень, заданную параметром команды, принимает значение [10..17]. Значение по умолчанию: |
7 | Установить минимальное значение интервала времени между отправкой сообщений NTP-серверу (не обязательно). | esr(config-ntp)# minpoll <INTERVAL> | <INTERVAL> – минимальное значение интервала опроса в секундах вычисляется путем возведения двойки в степень, заданную параметром команды, принимает значение [4..6]. Значение по умолчанию: 6 (26= 64 секунды или 1 минута 4 секунды). |
8 | Отметить данный NTP-сервер как предпочтительный (не обязательно). | esr(config-ntp)# prefer | |
9 | Определить список доверенных IP-адресов, с которыми может происходить обмен ntp-пакетами (не обязательно). | esr(config)# ntp access-addresses <NAME> | <NAME> – имя профиля IP-адресов, задаётся строкой до 31 символа. |
10 | Указать идентификатор ключа из профиля связки ключей (не обязательно). | esr(config)# ntp authentication trusted-key <ID> | <ID> – идентификатор ключа из профиля связки ключей. |
11 | Указать имя профиля связки ключей (не обязательно). | esr(config)# ntp authentication key-chain <WORD> | <WORD> – имя профиля связки ключей. |
12 | Активировать аутентификацию для NTP по ключу (не обязательно). | esr(config)# ntp authentication enable | |
13 | Включить режим приёма широковещательных сообщений NTP-серверов для глобальной конфигурации и всех существующих VRF (не обязательно). | esr(config)# ntp broadcast-client enable | |
14 | Задать значение кода DSCP для использования в IP-заголовке исходящих пакетов NTP-сервера (не обязательно). | esr(config)# ntp dscp <DSCP> | <DSCP> – значение кода DSCP, принимает значения в диапазоне [0..63]. Значение по умолчанию: 46. |
15 | Включить режим query-only, ограничивающий взаимодействие по NTP для определенного профиля IP-адресов (не обязательно). | esr(config)# ntp object-group query-only <NAME> | <NAME> – имя профиля IP-адресов, задаётся строкой до 31 символа. |
16 | Включить режим serve-only, ограничивающий взаимодействие по NTP для определенного профиля IP-адресов (не обязательно). | esr(config)# ntp object-group serve-only <NAME> | <NAME> – имя профиля IP-адресов, задаётся строкой до 31 символа. |
| 17 | Указать source-IP-адреса для NTP-пакетов для всех peer (не обязательно). | esr(config)# ntp source address <ADDR> | <ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
| 18 | Задать текущие время и дату в ручном режиме (не обязательно). | esr# set date <TIME> [<DAY> <MONTH> [ <YEAR> ] ] | <TIME> – устанавливаемое системное время, задаётся в виде HH:MM:SS, где:
<MONTH> – месяц, принимает значения [January/February/March/April/May/June/July/August/September/October/November/December]; <YEAR> – год, принимает значения [2001..2037]. |
...

