...
| Блок кода |
|---|
esr# configure esr(config)# ip dhcp-server pool Simple esr(config-dhcp-server)# network 192.168.1.0/24 esr(config-dhcp-server)# address-range 192.168.1.100-192.168.1.125 esr(config-dhcp-server)# default-lease-time 1:00:00 |
| Scroll Pagebreak |
|---|
Сконфигурируем передачу клиентам дополнительных сетевых параметров:
...
| Блок кода |
|---|
esr(config)# interface gigabitethernet 1/0/1 esr(config-if-gi)# security-zone trusted esr(config-if-gi)# ip address 192.168.1.1/24 esr(config-if-gi)# exit |
| Scroll Pagebreak |
|---|
Для разрешения прохождения сообщений протокола DHCP к серверу необходимо создать соответствующие профили портов, включающие порт источника 68 и порт назначения 67, используемые протоколом DHCP, и создать разрешающее правило в политике безопасности для прохождения пакетов протокола UDP:
...
DNAT используется для перенаправления трафика, идущего на некоторый «виртуальный» адрес в публичной сети, на «реальный» сервер в локальной сети, находящийся за сетевым шлюзом. Эту функцию можно использовать для организации публичного доступа к серверам, находящимся в частной сети и не имеющим публичного сетевого адреса.
| Scroll Pagebreak |
|---|
Алгоритм настройки
| Якорь | ||||
|---|---|---|---|---|
|
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
1 | Перейти в режим настройки сервиса трансляции адресов получателя. | esr(config)# nat destination | |
2 | Cоздать пул IP-адресов и/или TCP/UDP-портов с определённым именем (не обязательно). | esr(config-dnat)# pool <NAME> | <NAME> – имя пула NAT-адресов, задаётся строкой до 31 символа. |
3 | Установить внутренний IP-адрес, на который будет заменяться IP-адрес получателя. | esr(config-dnat-pool)# ip address <ADDR> | <ADDR> – IP-адрес, задаётся в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
4 | Установить внутренний TCP/UDP-порт, на который будет заменяться TCP/UDP-порт получателя. | esr(config-dnat-pool)# ip port <PORT> | <PORT> – TCP/UDP-порт, принимает значения [1..65535]. |
5 | Создать группу правил с определённым именем. | esr(config-dnat)# ruleset <NAME> | <NAME> – имя группы правил, задаётся строкой до 31 символа. |
6 | Указать экземпляр VRF, в котором будет работать данная группа правил (не обязательно). | esr(config-dnat-ruleset)# ip vrf forwarding <VRF> | <VRF> – имя VRF, задается строкой до 31 символа. |
7 | Задать область применения группы правил. Правила будут применяться только для трафика, идущего из определенной зоны или интерфейса. | esr(config-dnat-ruleset)# from { zone <NAME> | <NAME> – имя зоны изоляции; <IF> – имя интерфейса устройства; <TUN> – имя туннеля устройства. default – обозначает группу правил для всего трафика, источник которого не попал под критерии других групп правил. |
8 | Задать правило c определённым номером. Правила обрабатываются в порядке возрастания. | esr(config-dnat-ruleset)# rule <ORDER> | <ORDER> – номер правила, принимает значения [1...10000]. |
9 | Задать IP-адреса {отправителя | получателя}, для которых должно срабатывать правило. | esr(config-dnat-rule)# match [not] | <TYPE> – тип аргумента, устанавливаемый в качестве адреса:
<FROM-ADDR> – начальный IP-адрес диапазона; <OBJ-GROUP-NAME> – имя профиля IP-адресов, задаётся строкой до 31 символа; <ADDR/LEN> – IP-адрес и маска подсети сервера. |
10 | Задать сервисы (TCP/UDP-портов) {отправителя | получателя}, для которых должно срабатывать правило (не обязательно). | esr(config-dnat-rule)# match [not] | <TYPE> – тип аргумента, устанавливаемый в качестве адреса:
<PORT-SET-NAME> – имя профиля порта, задаётся строкой до 31 символа; <FROM-PORT> – начальный порт диапазона; |
| 11 | Установить имя или номер IP-протокола, для которого должно срабатывать правило (не обязательно). | esr(config-dnat-rule)# match [not] | <TYPE> – тип протокола, принимает значения: esp, icmp, ah, eigrp, ospf, igmp, ipip, tcp, pim, udp, vrrp, rdp, l2tp, gre. Значение «any» указывает на любой тип протокола. <ID> – идентификационный номер IP-протокола, принимает значения [0x00-0xFF]. |
| 12 | Задать тип и код сообщений протокола ICMP, для которых должно срабатывать правило (если в качестве протокола выбран ICMP) (не обязательно). | esr(config-dnat-rule)# match [not] | <ICMP_TYPE> – тип сообщения протокола ICMP, принимает значения [0..255]. <ICMP_CODE> – код сообщения протокола ICMP, принимает значения [0..255]. Значение «any» указывает на любой код сообщения. <TYPE-NAME> – имя типа ICMP-сообщения. |
| 13 | Задать действие «трансляция адреса и порта получателя» для трафика, удовлетворяющего критериям, заданным командами «match». | esr(config-dnat-rule)# action destination-nat | off – трансляция отключена; pool <NAME> – имя пула, содержащего набор IP-адресов и/или TCP/UDP-портов; netmap <ADDR/LEN> – IP-адрес и маска подсети, используемые при трансляции. Параметр задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32]. |
| 14 | Активировать конфигурируемое правило. | esr(config-dnat-rule)# enable | |
| 15 | Включить функцию отслеживания сессий уровня приложений для протоколов FTP, SIP, H323, netbios-ns, PPTP (не обязательно). | esr(config)# ip firewall sessions tracking {<PROTOCOL> | sip [ port <OBJECT-GROUP-SERVICE> ] | all} | all – включает функцию отслеживания сессий уровня приложений для всех доступных протоколов; <PROTOCOL> – протокол уровня приложений, сессии которого должны отслеживаться, принимает значения [ftp, h323, pptp, netbios-ns]; <OBJECT-GROUP-SERVICE> – имя профиля TCP/UDP-портов sip-сессии, задаётся строкой до 31 символа. Если группа не указана, то отслеживание сессий sip будет осуществляться для порта 5060. |
| 16 | Включить функцию трансляции IP-адресов в заголовках уровня приложений (не обязательно). | esr(config)# nat alg {<PROTOCOL> | all} | all – включает трансляцию IP-адресов в заголовках всех доступных протоколов. <PROTOCOL> – протокол уровня приложений, в заголовках которого должна работать трансляция адресов, принимает значения [ftp, h323, pptp, netbios-ns, gre, sip, tftp]. |
...
Создадим набор правил «DNAT», в соответствии с которыми будет производиться трансляция адресов. В атрибутах набора укажем, что правила применяются только для пакетов, пришедших из зоны «UNTRUST». Набор правил включает в себя требования соответствия данных по адресу и порту назначения (match destination-address, match destination-port) и по протоколу. Кроме этого в наборе задано действие, применяемое к данным, удовлетворяющим всем правилам (action destination-nat). Набор правил вводится в действие командой «enable»командой enable.
| Блок кода |
|---|
esr(config-dnat)# ruleset DNAT esr(config-dnat-ruleset)# from zone UNTRUST esr(config-dnat-ruleset)# rule 1 esr(config-dnat-rule)# match destination-address object-group NET_UPLINK esr(config-dnat-rule)# match protocol tcp esr(config-dnat-rule)# match destination-port object-group SRV_HTTP esr(config-dnat-rule)# action destination-nat pool SERVER_POOL esr(config-dnat-rule)# enable esr(config-dnat-rule)# exit esr(config-dnat-ruleset)# exit esr(config-dnat)# exit |
...
Для пропуска трафика из зоны «TRUST» в зону «UNTRUST» создадим пару зон и добавим правила, разрешающие проходить трафику в этом направлении. Дополнительно включена проверка адреса источника данных на принадлежность к диапазону адресов «LOCAL_NET» для соблюдения ограничения на выход в публичную сеть. Действие правил разрешается командой командой enable.
| Блок кода |
|---|
esr(config)# security zone-pair TRUST UNTRUST esr(config-zone-pair)# rule 1 esr(config-zone-pair-rule)# match source-address object-group LOCAL_NET esr(config-zone-pair-rule)# action permit esr(config-zone-pair-rule)# enable esr(config-zone-pair-rule)# exit esr(config-zone-pair)# exit |
...
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
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 | Указать удаленный или локальный список URL и тип операции (блокировка/пропуск трафика/перенаправление) (не обязательно). | esr(config-profile)# urls {local|remote} <URL_OBJ_GROUP_NAME> | <URL_OBJ_GROUP_NAME> – указать название объекта, содержащего набор URL. |
7 | Указать удаленный сервер, где лежат необходимые списки URL (не обязательно). | esr(config)# ip http proxy server-url <URL> | <URL> – адрес сервера, откуда будут брать удалённые списки url. |
8 | Указать прослушиваемый порт для проксирования http (не обязательно). | esr(config)# ip http proxy listen-ports <OBJ_GROUP_NAME> | <OBJ_GROUP_NAME> – имя профиля порта, задаётся строкой до 31 символа. По умолчанию прослушиваются порты 80 и 8080 |
9 | Указать прослушиваемый порт для проксирования (не обязательно). | esr(config)# ip https proxy listen-ports <OBJ_GROUP_NAME> | <OBJ_GROUP_NAME> – имя профиля порта, задаётся строкой до 31 символа. По умолчанию прослушивается порт 443 |
| 10 | Указать базовый порт для проксирования http (не обязательно). | esr(config)# ip http proxy redirect-port <PORT> | <PORT> – номер порта, указывается в диапазоне [1..65535]. Значение по умолчанию 3128. |
| 11 | Указать базовый порт для проксирования https (не обязательно). | esr(config)# ip http proxy redirect-port <PORT> | <PORT> – номер порта, указывается в диапазоне [1..65535]. Значение по умолчанию 3128. |
12 | Включить проксирование на интерфейсе на основе выбранного HTTP-профиля. | esr(config-if)# ip http proxy <PROFILE_NAME> | <PROFILE_NAME> – название профиля. |
13 | Включить проксирование на интерфейсе на основе выбранного HTTPS-профиля. | esr(config-if)# ip https proxy <PROFILE_NAME> | <PROFILE_NAME> – название профиля. |
14 | Создать списки сервисов, которые будут использоваться при фильтрации. | esr(config)# object-group service <obj-group-name> | <obj-group-name> – имя профиля сервисов, задается строкой до 31 символа. |
15 | Задать описание списка сервисов (не обязательно). | esr(config-object-group-service)# description <description> | <description> – описание профиля, задается строкой до 255 символов. |
16 | Внести необходимые сервисы (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. |
17 | Создать набор правил межзонового взаимодействия. | esr(config)# security zone-pair <src-zone-name1> self | <src-zone-name> – зона безопасности, в которой находятся интерфейсы с функцией ip http proxy или ip https proxy. self – предопределенная зона безопасности для трафика, поступающего на сам ESR. |
18 | Создать правило межзонового взаимодействия. | esr(config-zone-pair)# rule <rule-number> | <rule-number> – 1..10000. |
19 | Задать описание правила (не обязательно). | esr(config-zone-rule)# description <description> | <description> – до 255 символов. |
20 | Указать действие данного правила. | esr(config-zone-rule)# action <action> [ log ] | <action> – permit. log – ключ для активации логирования сессий, которые устанавливаются согласно данному правилу. |
21 | Установить имя IP-протокола, для которого должно срабатывать правило. | esr(config-zone-rule)# match protocol <protocol-type> | <protocol-type> – tcp. Прокси-сервер ESR работает по протоколу ESR. |
22 | Установить профиль TCP/UDP-портов получателя, для которых должно срабатывать правило (если указан протокол). | esr(config-zone-rule)# match [not] | <obj-group-name> – имя профиля сервисов, созданного на шаге 12. |
23 | Включить правило межзонового взаимодействия. | esr(config-zone-rule)# enable |
...
Если используется 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% |
...
Соответственно по формуле, описанной на 16 шаге алгоритма настройки http/https-прокси, получаем:
Для http proxy необходимо открыть порты с 3128 по 3131. (3128+4-1=3131)
...
| Блок кода |
|---|
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 esr(config-zone-pair-rule)# enable esr(config-zone-pair-rule)# exit esr(config-zone-pair)# exit |
| Scroll Pagebreak |
|---|
Настройка NTP
NTP (англ. Network Time Protocol — протокол сетевого времени) — сетевой протокол для синхронизации внутренних часов оборудования с использованием IP-сетей, использует для своей работы протокол UDP, учитывает время передачи и использует алгоритмы для достижения высокой точности синхронизации времени.
...
Команда для просмотра текущего состояние состояния NTP-серверов (пиров):
| Блок кода |
|---|
esr# show ntp peers |
...