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

Ключ

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

...

Блок кода
esr# show remote-access configuration wireguard WG

Пример настройки правил Firewall для совместной работы с WireGuard-сервером

Задача:

Настроить правила  Firewall таким образом, чтобы разрешить обращения клиентов на 80 порт сервера 10.50.0.10, остальное взаимодействие запретить.

Решение:

Создадим зоны безопасности WAN, SERVERS, WIREGUARD и назначим их на соответствующие интерфейсы и включим Firewall:

Блок кода
esr(config)# security zone WAN
esr(config-security-zone)# exit
esr(config)# security zone SERVERS
esr(config-security-zone)# exit
esr(config)# security zone WIREGUARD 
esr(config-security-zone)# exit
esr(config)# interface gigabitethernet 1/0/1
esr(config-if-gi)# security-zone WAN
esr(config-if-gi)# no ip firewall disable
esr(config-if-gi)# exit
esr(config)# interface gigabitethernet 1/0/2
esr(config-if-gi)# security-zone SERVERS 
esr(config-if-gi)# no ip firewall disable
esr(config-if-gi)# exit
esr(config)# remote-access wireguard WG 
esr(config-wireguard-server)# security-zone WIREGUARD 
esr(config-wireguard-server)# no ip firewall disable
esr(config-wireguard-server)# exit

Создадим правила, разрешающие работу WireGuard:

Блок кода
esr(config)# security zone-pair WAN self 
esr(config-security-zone-pair)# rule 10
esr(config-security-zone-pair-rule)# description "Permit wireguard-traffic"
esr(config-security-zone-pair-rule)# action permit
esr(config-security-zone-pair-rule)# match protocol udp
esr(config-security-zone-pair-rule)# match destination-port port-range 43020
esr(config-security-zone-pair-rule)# enable
esr(config-security-zone-pair-rule)# exit
esr(config-security-zone-pair)# rule 100
esr(config-security-zone-pair-rule)# action deny
esr(config-security-zone-pair-rule)# enable
esr(config-security-zone-pair-rule)# exit
esr(config-security-zone-pair)# exit

Создадим правила, разрешающие обращения на 80 порт сервера 10.50.0.10 из туннеля WireGuard:

Блок кода
esr(config)# security zone-pair WIREGUARD SERVERS
esr(config-security-zone-pair)# rule 10
esr(config-security-zone-pair-rule)# action permit
esr(config-security-zone-pair-rule)# match protocol tcp
esr(config-security-zone-pair-rule)# match destination-address address-range 10.50.0.10
esr(config-security-zone-pair-rule)# match destination-port port-range 80
esr(config-security-zone-pair-rule)# enable
esr(config-security-zone-pair-rule)# exit
esr(config-security-zone-pair)# rule 100
esr(config-security-zone-pair-rule)# action deny
esr(config-security-zone-pair-rule)# enable
esr(config-security-zone-pair-rule)# exit
esr(config-security-zone-pair)# exit

 Проверим работоспособность:

Блок кода
esr@client:~$ ping 10.50.0.10 -c 4
PING 10.50.0.10 (10.50.0.10) 56(84) bytes of data.

--- 10.50.0.10 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3090ms


esr@client:~$ hping3 10.50.0.10 -c 4 -S -p 80
HPING 10.50.0.10 (ens3 10.50.0.10): S set, 40 headers + 0 data bytes
len=46 ip=10.50.0.10 ttl=62 DF id=0 sport=80 flags=RA seq=0 win=0 rtt=2.0 ms
len=46 ip=10.50.0.10 ttl=62 DF id=0 sport=80 flags=RA seq=1 win=0 rtt=2.8 ms
len=46 ip=10.50.0.10 ttl=62 DF id=0 sport=80 flags=RA seq=2 win=0 rtt=2.6 ms
len=46 ip=10.50.0.10 ttl=62 DF id=0 sport=80 flags=RA seq=3 win=0 rtt=2.3 ms

--- 10.50.0.10 hping statistic ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 2.0/2.4/2.8 ms

Настройка клиента удаленного доступа по протоколу PPPoE

...

Шаг

Описание

Команда

Ключи

1

Создать PPPoE-туннель и перейти в режим конфигурирования PPPoE-клиента.

esr(config)# tunnel pppoe <PPPoE>

<PPPoE> – порядковый номер туннеля от 1 до 10.

2

Указать описание конфигурируемого клиента (необязательно).

esr(config-pppoe)# description <DESCRIPTION>

<DESCRIPTION> – описание PPPoE-туннеля, задаётся строкой до 255 символов.

3

Указать имя экземпляра VRF, в котором будут использоваться PPPoE-клиент (необязательно).

esr(config-pppoe)# ip vrf forwarding <VRF>

<VRF> – имя VRF, задается строкой до 31 символа.

4

Указать интерфейс, через который будет устанавливаться PPPoE соединение.

esr(config-pppoe)# interface <IF>

<IF> – интерфейс или группа интерфейсов.

5

Указать имя пользователя и пароль для подключения к PPPoE-серверу.

esr(config-pppoe)# username <NAME> password ascii-text
{ <CLEAR-TEXT> | encrypted <ENCRYPTED-TEXT> }

<NAME> – имя пользователя, задаётся строкой до 31 символа;

<CLEAR-TEXT> – пароль, задаётся строкой [8 .. 64] символов;

<ENCRYPTED-TEXT> – зашифрованный пароль, задаётся строкой [16..128] символов.

6

Включить PPPoE-туннель в зону безопасности и настроить правила взаимодействия между зонами (см. раздел Конфигурирование Firewall).

esr(config-pppoe)# security-zone <NAME>

<NAME> – имя зоны безопасности, задаётся строкой до 31 символа.

7

Активировать конфигурируемый профиль.

esr(config-pppoe)# enable


8

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

esr(config-pppoe)# authentication method <METHOD>

<METHOD> – метод аутентификации, возможные значения: chap, mschap, mschap-v2, eap, pap.

Значение по умолчанию: chap.

9

Игнорировать dns-сервер через данный PPoE-туннель (необязательно).

esr(config-pppoe)# ignore nameserver


10

Включить отказ от получения маршрута по умолчанию от PPPoE-сервера (необязательно).

esr(config-pppoe)# ignore-default-route


11

Указать интервал времени, за который усредняется статистика о нагрузке (необязательно).

esr(config-pppoe)# load-average <TIME>

<TIME> – интервал времени в секундах от 5 до 150 (по умолчанию 5 с).

12

Указать размер MTU (MaximumTransmitionUnit) для PPPoE-туннеля.
MTU более 1500 будет активно только если применена команда "system jumbo-frames"
(необязательно).

esr(config-pppoe)# mtu <MTU>

<MTU> – значение MTU, принимает значения в диапазоне [552..1500].

Значение по умолчанию: 1500.

13Изменить количество неудачных data-link тестов перед разрывом сессии (необязательно).

esr(config-pppoe)# ppp failure-count <NUM>

<NUM> – количество неудачных data-link тестов, задается в диапазоне [1..100].

Значение по умолчанию: 10.

14

Изменить интервал времени в секундах, по истечении которого маршрутизатор отправляет keepalive-сообщение (необязательно).

esr(config-pppoe)# ppp timeout keepalive <TIME >

<TIME> – время в секундах, задается в диапазоне [1..32767].

Значение по умолчанию: 10.

15Переопределить значение поля MSS (Maximum segment size) во входящих TCP-пакетах (необязательно).

esr(config-pppoe)# ip tcp adjust-mss <MSS>

<MSS> – значение MSS, принимает значения в диапазоне [500..1460].

Значение по умолчанию: 1460.

16Включить запись статистики использования текущего туннеля (необязательно).

esr(config-pppoe)# history statistics


Также для PPPoE-клиента возможно настроить:

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

Задача:

Настроить PPPoE-клиент на маршрутизаторе.

...

Примечание

Интерфейс, с которого будет осуществляться РРРоЕ-соединение, должен работать в режиме routerport (кроме случаев использования bridge).

Решение:

Предварительно должен быть настроен PPPoE-сервер с соответствующими учетными записями. Также на устройстве должны быть настроены зоны безопасности и описаны правила их взаимодействия.

...

Шаг

Описание

Команда

Ключи

1

Создать PPTP-туннель и перейти в режим его конфигурирования.

esr(config)# tunnel pptp <INDEX>

<INDEX> – идентификатор туннеля в диапазоне: [1..10].

2

Указать описание конфигурируемого туннеля (необязательно).

esr(config-pptp)# description <DESCRIPTION>

<DESCRIPTION> – описание туннеля, задается строкой до 255 символов.

3

Указать экземпляр VRF, в котором будет работать данный PPTP-туннель (не обязательно).

esr(config-pptp)# ip vrf forwarding <VRF>

<VRF> – имя VRF, задается строкой до 31 символа.

4

Включить PPTP-туннель в зону безопасности и настроить правила взаимодействия между зонами или отключить firewall (см. раздел Конфигурирование Firewall).

esr(config-pptp)# security-zone <NAME>

<NAME> – имя зоны безопасности, задаётся строкой до 31 символа.

esr(config-pptp)# ip firewall disable

          

5

Установить удаленный IP-адрес для установки туннеля.

esr(config-pptp)# remote address <ADDR>

<ADDR> – IP-адрес локального шлюза, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255].

6

Установить размер MTU (MaximumTransmitionUnit) для туннеля (необязательно)

esr(config-pptp)# mtu <MTU>

<MTU> – значение MTU, принимает значения в диапазоне [552..10000].

Значение по умолчанию: 1500.

7

Указать пользователя и установить пароль в открытой или зашифрованной форме для аутентификации удаленной стороны.

esr(config-pptp)# username <NAME> password ascii-text
{ <WORD> | encrypted <HEX> }

<NAME> – имя пользователя, задается строкой до 31 символа.

<WORD> – пароль в открытой форме, задается строкой [8..64] символов, может включать символы [0-9a-fA-F].

<HEX> – пароль в зашифрованной форме, задается строкой [16..128] символов.

8

Активировать туннель.

esr(config-pptp)# enable


9Переопределить значение поля MSS (Maximum segment size) во входящих TCP-пакетах (необязательно).

esr(config-pptp)# ip tcp adjust-mss <MSS>

<MSS> – значение MSS, принимает значения в диапазоне [500..1460].

Значение по умолчанию: 1460.

10

Игнорировать dns-сервер через данный PPTP-туннель (необязательно).

esr(config-pptp)# ignore nameserver


11

Игнорировать маршрут по умолчанию через данный PPTP-туннель (необязательно)

esr(config-pptp)# ignore-default-route


12

Задать интервал времени, за который усредняется статистика о нагрузке на туннель (необязательно).

esr(config-pptp)# load-average <TIME>

<TIME> – интервал в секундах, принимает значения [5..150]

Значение по умолчанию: 5.

13

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

esr(config-pptp)# authentication method <METHOD>

<METHOD> – метод аутентификации, возможные значения: chap, mschap, mschap-v2, eap, pap.

Значение по умолчанию: chap.

14Включить запись статистики использования текущего туннеля (не обязательно).

esr(config-pptp)# history statistics


15Изменить интервал времени в секундах, по истечении которого маршрутизатор отправляет keepalive-сообщение (необязательно).

esr(config-pptp)# ppp timeout keepalive <TIME >

<TIME> – время в секундах, задается в диапазоне [1..32767].

Значение по умолчанию: 10.

16Изменить количество неудачных data-link тестов перед разрывом сессии (необязательно).

esr(config-pptp)# ppp failure-count <NUM>

<NUM> – количество неудачных data-link тестов, задается в диапазоне [1..100].

Значение по умолчанию: 10.

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

Задача:

Настроить PPTP-туннель на маршрутизаторе:

  • адрес PPTP-сервера 20.20.0.1;
  • учетная запись для подключения – логин: ivan, пароль: simplepass.


Решение:

Создадим туннель PPTP:

Блок кода
esr(config)# tunnel pptp 1 

...

Шаг

Описание

Команда

Ключи

1

Создать L2TP-туннель и перейти в режим его конфигурирования.

esr(config)# tunnel l2tp <INDEX>

<INDEX> – идентификатор туннеля в диапазоне: [1..10].

2

Указать экземпляр VRF, в котором будет работать данный L2TP-туннель (необязательно).

esr(config-l2tp)# ip vrf forwarding <VRF>

<VRF> – имя VRF, задаётся строкой до 31 символа.

3

Указать описание конфигурируемого туннеля (необязательно).

esr(config-l2tp)# description <DESCRIPTION>

<DESCRIPTION> – описание туннеля, задается строкой до 255 символов.

4

Включить L2TP-туннель в зону безопасности и настроить правила взаимодействия между зонами или отключить firewall (см. раздел Конфигурирование Firewall).

esr(config-l2tp)# security-zone <NAME>

<NAME> – имя зоны безопасности, задаётся строкой до 31 символа.

esr(config-l2tp)# ip firewall disable


5

Установить удаленный IP-адрес для установки туннеля.

esr(config-l2tp)# remote address <ADDR>

<ADDR> – IP-адрес локального шлюза, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255].

6

Указать пользователя и установить пароль в открытой или зашифрованной форме для аутентификации удалённой стороны.

esr(config-l2tp)# username <NAME> password ascii-text
{ <WORD> | encrypted <HEX> }

<NAME> – имя пользователя, задается строкой до 31 символа.

<WORD> – пароль в открытой форме, задается строкой [8..64] символов, может включать символы [0-9a-fA-F].

<HEX> – пароль в зашифрованной форме, задается строкой [16..128] символов.

7

Выбрать метод аутентификации по ключу для IKE-соединения.

esr(config-l2tp)# ipsec authentication
method pre-shared-key


8

Указать общий секретный ключ для аутентификации, который должен совпадать у обоих сторон, устанавливающих туннель.

esr(config-l2tp)# ipsec authentication pre-shared-key
{ ascii-text { <TEXT> | encrypted <ENCRYPTED-TEXT> } |
hexadecimal {<HEX> | encrypted <ENCRYPTED-HEX> } }

<TEXT> – строка [1..64] ASCII-символов;

<HEX> – число размером [1..32] байт, задаётся строкой [2..128] символов в шестнадцатеричном формате (0xYYYY...) или (YYYY...);

<ENCRYPTED-TEXT> – зашифрованный пароль размером [1..32] байт, задаётся строкой [2..128] символов;

<ENCRYPTED-HEX> – зашифрованное число размером [2..64] байт, задаётся строкой [2..256] символов.

9Ограничить используемые методы аутентификации и шифрования протокола IKE (необязательно).esr(config-l2tp)# ipsec ike proposal <NAME>

<NAME> – имя ранее созданного профиля протокола IKE, задаётся строкой до 31 символа.

10Включить пересогласование ключей до разрыва IKE-соединения (необязательно)esr(config-l2tp)# ipsec ike rekey enable


11Ограничить используемые методы аутентификации и шифрования протокола IPsec (не обязательно).

esr(config-l2tp)# ipsec proposal <NAME>

<NAME> – имя ранее созданного профиля IPsec, задаётся строкой до 31 символа. 

12Определяется номер UDP-порта по которому устанавливается соединение с l2tp-сервером (необязательно).esr(config-l2tp)# port <PORT>

<PORT> – номер UDP-порта, задаётся в диапазоне [1024..65535].

Значение по умолчанию: 1701.

13

Активировать туннель.

esr(config-l2tp)# enable


14

Установить размер MTU (MaximumTransmitionUnit) для туннеля (необязательно).

esr(config-l2tp)# mtu <MTU>

<MTU> – значение MTU, принимает значения в диапазоне [552..10000].

Значение по умолчанию: 1500.

15

Игнорировать dns-сервер через данный L2TP-туннель (необязательно).

esr(config-l2tp)# ignore nameserver


16

Игнорировать маршрут по умолчанию через данный L2TP-туннель (необязательно)

esr(config-l2tp)# ignore-default-route


17

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

esr(config-l2tp)# authentication method <METHOD>

<METHOD> – метод аутентификации, возможные значения: chap, mschap, mschap-v2, eap, pap

Значение по умолчанию: chap.

18

Задать интервал времени, за который усредняется статистика о нагрузке на туннель (необязательно).

esr(config-l2tp)# load-average <TIME>

<TIME> – интервал в секундах, принимает значения [5..150]

Значение по умолчанию: 5.

19Изменить интервал времени в секундах, по истечении которого маршрутизатор отправляет keepalive-сообщение (необязательно).

esr(config-l2tp)# ppp timeout keepalive <TIME >

<TIME> – время в секундах, задается в диапазоне [1..32767].

Значение по умолчанию: 10.

20Изменить количество неудачных data-link тестов перед разрывом сессии (необязательно).

esr(config-l2tp)# ppp failure-count <NUM>

<NUM> – количество неудачных data-link тестов, задается в диапазоне [1..100].

Значение по умолчанию: 10.

Также для L2TP-клиента возможно настроить QoS в базовом или расширенном режимах (см. раздел Управление QoS).

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

Задача:

Настроить PPTP-туннель на маршрутизаторе:

  • адрес PPTP-сервера 20.20.0.1;
  • учетная запись для подключения – логин: ivan, пароль: simplepass

Решение:

Создадим туннель L2TP:

Блок кода
esr(config)# tunnel l2tp 1 

...

Шаг

Описание

Команда

Ключи

1

Создать WireGuard-туннель и перейти в режим его конфигурирования.

esr(config)# tunnel wireguard <INDEX>

<INDEX> – идентификатор туннеля в диапазоне: [1..16].

2

Указать экземпляр VRF, в котором будет работать данный Wireguard-туннель (необязательно).

esr(config-wireguard)# ip vrf forwarding <VRF>

<VRF> – имя VRF, задаётся строкой до 31 символа.

3

Указать описание конфигурируемого туннеля (необязательно).

esr(config-wireguard)# description <DESCRIPTION>

<DESCRIPTION> – описание туннеля, задается строкой до 255 символов.

4

Включить Wireguard-туннель в зону безопасности и настроить правила взаимодействия между зонами или отключить firewall (см. раздел Конфигурирование Firewall).

esr(config-wireguard)# security-zone <NAME>

<NAME> – имя зоны безопасности, задаётся строкой до 31 символа.

esr(config-wireguard)# ip firewall disable


5

Определить статический IP-адрес конфигурируемого туннеля.

esr(config-wireguard)# ip address <ADDR/LEN>

<ADDR/LEN> – IP-адрес и длина маски подсети, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32].

6

Задать MTU (необязательно). esr(config-wireguard)# mtu <MTU><MTU> – 552–10000. Значение по умолчанию: 1500.

7

Указать приватный ключ WireGuard-клиента.esr(config-wireguard)# private-key <NAME><NAME> –  имя приватного ключа, задается строкой до 31 символа.

8

Перейти к настройке разрешенных пировesr(config-wireguard)# peer <COUNT>

<COUNT> – номер соответствующего пира, принимает значения [1..16].

9Указать описание пира (необязательно).esr(config-wireguard-peer)# description <DESCRIPTION><DESCRIPTION> – описание туннеля, задается строкой до 255 символов.

10

Задать значение keepalive (необязательно). esr(config-wireguard-peer)# keepalive timeout <SEC><SEC> – количество секунд, принимает значения [1..32767].
11Указать публичный ключ WireGuard-пира.esr(config-wireguard-peer)# public-key <NAME><NAME> –  имя приватного ключа, задается строкой до 31 символа.
12Указать pre-shared-key для настраиваемого пира (необязательно).esr(config-wireguard-peer)# pre-shared-key <TYPE> <WORD>

<TYPE> – тип аргумента, устанавливаемый в качестве симметричного ключа:

  • ascii-text – указать симметричный ключ в виде ASCII-текста, который будет сконвертирован в формат Base64;
  • base64 – указать симметричный ключ в формате Base64;
  • encrypted – указать симметричный ключ в зашифрованном виде.

<WORD> - вводимый симметричный ключ. В зависимости от типа аргумента имеет длину 32 символа для ascii-text, 44 символа для формата base64 и 64 символа для зашифрованного  вида. 

13Указать IP-адрес удаленного пира.esr(config-wireguard-peer)# remote address <ADDR><ADDR> – IP-адрес локального шлюза, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255].
14Указать UDP-порт удаленного пира.esr(config-wireguard-peer)# remote port <PORT><PORT>– UDP-порт, принимает значения [1..65535].
15Указать список IP-адресов, которым будет разрешено находиться внутри туннеля.esr(config-wireguard-peer)# access-addresses <TYPE> 
{<FROM-ADDR> - <TO-ADDR> | <OBJ-GROUP-NETWORK-NAME> | <ADDR/LEN>}

<TYPE> – тип аргумента, устанавливаемый в качестве адреса:

  • address-range – указать диапазон IPv4-адресов;
  • object-group – указать имя профиля;
  • prefix – указать адрес подсети и префикс.

<FROM-ADDR> – начальный IP-адрес диапазона;
<TO-ADDR> – конечный IP-адрес диапазона;

<OBJ-GROUP-NAME> – имя профиля IP-адресов, задаётся строкой до 31 символа;

<ADDR/LEN> – IP-адрес и маска подсети.

16Активировать пир.esr(config-wireguard-peer)# enable

17

Активировать туннель.

esr(config-wireguard)# enable


18

Задать интервал времени, за который усредняется статистика о нагрузке на туннель (необязательно).

esr(config-wireguard)# load-average <TIME>

<TIME> – интервал в секундах, принимает значения [5..150]

Значение по умолчанию: 5.

19Включить запись статистики использования текущего туннеля (необязательно).

esr(config-wireguard)# history statistics


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

Задача:

Настроить WireGuard-клиента на маршрутизаторе:

  • адресация внутри туннеля – 110.0.0.0/30;
  • порт подключения к серверу – 43020;
  • адрес WireGuard-клиента внутри туннеля – 110.0.0.2;
  • адрес удаленного сервера – 212.0.50.9.

Решение:

Создадим ключевую пару x25519, которая будет использоваться в работе WireGuard:

...