Дерево страниц

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

Ключ

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

Оглавление
maxLevel42

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

...

Шаг

Описание

Команда

Ключи

1

Создать профиль PPTP-сервера.

esr(config)# remote-access pptp <NAME>

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

2

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

esr(config-pptp-server)# description <DESCRIPTION>

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

3

Указать IP-адрес, который должен обрабатывать PPTP-сервер.

esr(config-pptp-server)# outside-address
{ object-group  <OBJ-GROUP-NETWORK-NAME> |
ip-address <ADDR> | interface { <IF> | <TUN> } }

<OBJ-GROUP-NETWORK-NAME> – имя профиля, содержащего IP-адрес, который должен слушать PPTP-сервер, задаётся строкой до 31 символа;

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

<IF> – тип и идентификатор интерфейса маршрутизатора;

<TUN> – тип и номер туннеля маршрутизатора.

4

Указать IP-адрес локального шлюза.

esr(config-pptp-server)# local-address
{ object-group <OBJ-GROUP-NETWORK-NAME > |
ip-address <ADDR> }

<OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, который содержит IP-адрес локального шлюза, задаётся строкой до 31 символа;

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

5

Указать список IP-адресов, из которого PPTP выдаются динамические IP-адреса удаленным пользователям.

esr(config-pptp-server)# remote-address
{ object-group <OBJ-GROUP-NETWORK-NAME > |
address-range <FROM-ADDR>-<TO-ADDR> }

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

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

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

6

Выбрать режим аутентификации PPTP-клиентов.

esr(config-pptp-server)# authentication mode
{ local | radius }

  • local – аутентификация пользователя по локальной базе.
  • radius – аутентификация пользователя по базе RADIUS-сервера. На маршрутизаторе должен быть сконфигурирован механизм взаимодействия с RADIUS-сервером см. раздел Алгоритм настройки AAA по протоколу RADIUS.
7Разрешить необходимые методы аутентификации удаленных пользователей.

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

<METHOD> – метод аутентификации, принимает значения [chap, mschap, mschap-v2, eap, pap].

По умолчанию разрешен только chap.

8

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

esr(config-pptp-server) username < NAME >

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

9

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

esr(config-pptp-user) password ascii-text
{ <PASSWORD> | encrypted <PASSWORD> }

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

10

Активировать пользователя (при использовании локальной аутентификации пользователей).

esr(config-pptp-user) enable


11

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

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

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

12Включить сервер.

esr(config-pptp-server)# enable


13

Указать DSCP-приоритет исходящих пакетов (не обязательно).

esr(config-pptp-server)# dscp <DSCP>

<DSCP>– dscp-приоритет исходящих пакетов [0..63].

14

Включить шифрование MPPE для PPTP-соединений (не обязательно).

esr(config-pptp-server)# encryption mppe


15

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

esr(config-pptp-server) mtu <MTU>

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

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

16

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

esr(config-pptp-server)# dns-servers
object-group <OBJ-GROUP-NETWORK -NAME >

<OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, содержащего адреса необходимых DNS-серверов, задаётся строкой до 31 символа.

17

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

esr(config-pptp-server)# wins-servers object-group
<OBJ-GROUP-NETWORK-NAME >

<OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, содержащего адреса необходимых WINS-серверов, задаётся строкой до 31 символа.

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

Задача:

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

...

Блок кода
esr(config)# object-group network pptp_remote
esr(config-object-group-network)# ip address-range 10.10.10.5-10.10.10.25
esr(config-object-group-network)# exit

...

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

Блок кода
esr(config)# object-group network pptp_dns
esr(config-object-group-network)# ip address-range 8.8.8.8,8.8.8.4
esr(config-object-group-network)# exit

Создадим PPTP-сервер и привяжем вышеуказанные профили:

...

Блок кода
esr# clear remote-access session pptp username fedor
esr# clear remote-access session pptp server remote-workers username fedor

Scroll Pagebreak
Конфигурацию PPTP-сервера можно посмотреть командой:

Блок кода
esr# show remote-access configuration pptp remote-workers


Примечание

Помимо создания PPTP-сервера необходимо в firewall открыть TCP-порт 1723 для обслуживания соединений и разрешить протокол GRE(47) для туннельного трафика.

Настройка сервера удаленного доступа к корпоративной сети по L2TP over IPsec протоколу

...

Блок кода
esr# show remote-access configuration l2tp remote-workers


Примечание

Помимо создания L2TP-сервера необходимо в firewall открыть UDP-порты 500, 1701, 4500 для обслуживания соединений и разрешить протоколы ESP (50) и GRE (47) для туннельного трафика.

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

...

Шаг

Описание

Команда

Ключи

1

Создать профиль OpenVPN-сервера.

esr(config)# remote-access openvpn <NAME>

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

2

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

esr(config-openvpn-server)# description <DESCRIPTION>

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

3

Определим подсеть, из которой выдаются IP-адреса пользователям (только для tunnel ip).

esr(config-openvpn-server)# network <ADDR/LEN>

<ADDR/LEN> – адрес подсети, имеет следующий формат:

AAA.BBB.CCC.DDD/EE – IP-адрес подсети с маской в форме префикса, где AAA-DDD принимают значения [0..255] и EE принимает значения [16..29].

4

Указать инкапсулируемый протокол.

esr(config-openvpn-server)# protocol <PROTOCOL>

<PROTOCOL> – тип инкапсуляции, возможные значения:

  • TCP-инкапсуляция в TCP-сегменты;
  • UDP-инкапсуляция в UDP-дейтаграммы.

5

Определить тип соединения с частной сетью через OpenVPN-сервер.

esr(config-openvpn-server)# tunnel <TYPE>

<TYPE> – инкапсулирующий протокол, принимает значения:

  • ip – соединение точка-точка;
  • ethernet – подключение к L2-домену.

6

Указать список IP-адресов, из которого OpenVPN-сервером выдаются динамические IP-адреса удаленным пользователям в режиме L2 (только для tunnel ethernet).

esr(config-openvpn-server)# address-range <FROM-ADDR>-<TO-ADDR>

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

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

7

Включить клиентские соединения по OpenVPN в L2-домен (только для tunnel ethernet).

esr(config-openvpn-server)# bridge-group <BRIDGE-ID>

<BRIDGE-ID> – идентификационный номер моста.

8

Указать сертификаты и ключи.

esr(config-openvpn-server)# crypto <CERTIFICATE-TYPE> <NAME>

<CERTIFICATE-TYPE> – тип сертификата или ключа, может принимать следующие значения:

  • ca – сертификат удостоверяющего сервера;
  • crl – список отозванных сертификатов;
  • dh – ключ Диффи-Хеллмана;
  • cert – публичный сертификат сервера;
  • private-key – приватный ключ сервера;
  • ta – HMAC-ключ.

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

9

Или указать контейнер pkcs 12контейнер PKCS12

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

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

esr(config-openvpn-server)# crypto pfx <NAME> [password ascii-text <PASSWORD>]

<NAME> - имя PKCS12-контейнера, задаётся строкой до 31 символа.

<PASSWORD> - пароль от PKCS12-контейнера.

10

Выбрать алгоритм шифрования, используемый при передачи данных.

esr(config-openvpn-server)# encryption algorithm <ALGORITHM>

<ALGORITHM> – идентификатор протокола шифрования, принимает значения: 3des,blowfish128, aes128.

11

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

esr(config-openvpn-server)# security-zone <NAME>

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

12

Определить дополнительные параметры для указанного пользователя OpenVPN-сервера (при использовании локальной базы для аутентификации пользователей).

esr(config-openvpn-server)# username < NAME >

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


13

Определить подсеть для указанного пользователя OpenVPN-сервера.

esr(config-openvpn-user)# subnet <ADDR/LEN>

<ADDR/LEN> – адрес подсети, имеет следующий формат:
 AAA.BBB.CCC.DDD/EE – IP-адрес подсети с маской в форме префикса, где AAA-DDD принимают значения [0..255] и EE принимает значения [16..32].

14

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

esr(config-openvpn-user)# ip address <ADDR>

<ADDR> – адрес имеет следующий формат:
 AAA.BBB.CCC.DDD – IP-адрес подсети, где AAA-DDD принимают значения [0..255].

15

Включить профиль OpenVPN-сервера.

esr(config-openvpn-server)# enable


16

Включить блокировку передачи данных между клиентами (не обязательно).

esr(config-openvpn-server)# client-isolation


17

Устанавливается максимальное количество одновременных пользовательских сессий (не обязательно).

esr(config-openvpn-server)# client-max <VALUE>

<VALUE> – максимальное количество пользователей, принимает значения [1..65535].

18

Включается механизм сжатия передаваемых данных между клиентами и сервером OpenVPN (не обязательно).

esr(config-openvpn-server)# compression


19

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

esr(config-openvpn-server)# dns-server <ADDR>

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

20

Указать TCP-/UDP-порт, который будет прослушиваться OpenVPN-сервером (не обязательно).

esr(config-openvpn-server)# port <PORT>

<PORT> – TCP-/UDP-порт, принимает значения [1..65535].

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

21

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

esr(config-openvpn-server)# redirect-gateway


22

Включить анонсирование указанных подсетей, шлюзом является IP-адрес OpenVPN-сервера (не обязательно).

esr(config-openvpn-server)# route <ADDR/LEN>

<ADDR/LEN> – адрес подсети, имеет следующий формат:

AAA.BBB.CCC.DDD/EE – IP-адрес подсети с маской в форме префикса, где AAA-DDD принимают значения [0..255] и EE принимает значения [1..32].

23

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

esr(config-openvpn-server)# timers holdtime <TIME>

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

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

24

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

esr(config-openvpn-server)# timers keepalive <TIME>

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

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

25

Разрешить подключаться к OpenVPN-серверу нескольким пользователям с одним сертификатом.

esr(config-openvpn-server)# duplicate-cn


26

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

esr(config-openvpn-server)# wins-server <ADDR>

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

27Изменить алгоритм аутентификации OpenVPN-клиентов (не обязательно).

esr(config-openvpn-server)# authentication algorithm <ALGORITHM>

<ALGORITHM> – алгоритм аутентификации:

  • 8-128 bits key size: md4, rsa-md4, md5, rsa-md5, mdc2, rsa-mdc2
  • 8-160 bits key size: sha, sha1, rsa-sha, rsa-sha1, rsa-sha1-2, dsa, dsa-sha, dsa-sha1, dsa-sha1-old, ripemd160, rsa-ripemd160, ecdsa-with-sha1
  • 8-224 bits key size: sha-224, rsa-sha-224
  • 8-256 bits key size: sha-256, rsa-sha-256
  • 8-384 bits key size: sha-384, rsa-sha-384
  • 8-512 bits key size: sha-512, rsa-sha-512, whirlpool

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

...

  • подсеть OpenVPN-сервера – 10.10.100.0/24;
  • режим – L3;
  • аутентификация на основе сертификатов.

Scroll Pagebreak
Решение:

Предварительно нужно выполнить следующие действия:

  • Подготовить сертификаты и ключи:
    • Сертификат Удостоверяющего Центра (СА),
    • Ключ и сертификат для OpenVPN-сервера,
    • Ключ Диффи-Хэллмана и HMAC для TLS.

ИЛИ

    • Контейнер PKSC12, содержащий в себе сертификат Удостоверяющего Центра (СА) и ключ и сертификат для OpenVPN-туннеля.
  • Настроить зону для интерфейса te1/0/1.
  • Указать IP-адреса для интерфейса te1/0/1.

Импортируем по tftp сертификаты и ключи:

Блок кода
esr# copy tftp://192.168.16.10:/ca.crt crypto:cert/ca.crt
esr# copy tftp://192.168.16.10:/dh.pem crypto:dh/dh.pem
esr# copy tftp://192.168.16.10:/server.key crypto:private-key/server.key
esr# copy tftp://192.168.16.10:/server.crt crypto:cert/server.crt 
esr# copy tftp://192.168.16.10:/ta.key crypto:ta/ta.key

Или импортируем PKCS12-контейнер: 

Блок кода
esr# copy tftp://192.168.0.1:/container.p12 crypto:pfx/cont.p12

...

Объявим подсети ЛВС, которые будут доступны через OpenVPN-соединение и укажем DNS-сервер:

...

Блок кода
esr(config-openvpn)# crypto ca ca.crt
esr(config-openvpn)# crypto dh dh.pem
esr(config-openvpn)# crypto private-key server.key
esr(config-openvpn)# crypto cert server.crt
esr(config-openvpn)# crypto ta ta.key

Или укажем импортированный контейнер, DH и TA ключи указываются:

Блок кода
esr(config-openvpn)# crypto dh dh.pem
esr(config-openvpn)# crypto ta ta.key
esr(config-openvpn)# crypto pfx pfx.p12

...

Блок кода
esr(config-openvpn)# encryption algorithm aes128

Scroll Pagebreak
Включим OpenVPN-сервер:   

...

Блок кода
esr# show remote-access counters openvpn server AP 

Scroll Pagebreak

Очистить счетчики сессий OpenVPN-сервера можно командой:

...

Блок кода
esr# show remote-access configuration openvpn AP 


Примечание

Помимо создания OpenVPN-сервера необходимо в firewall открыть TCP-порт 1194.

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

WireGuard — WireGuard – простой, быстрый и современный VPN, использующий современную криптографию (ChaCha20, Poly1305, Curve25519, BLAKE2s, SipHash24, HKDF). WireGuard надежно инкапсулирует IP-пакеты поверх UDP. В основе WireGuard лежит концепция под названием «Маршрутизация криптоключей», которая работает путем связывания открытых ключей со списком IP-адресов туннеля, которым разрешено разрешенным находиться внутри туннеля. Каждый сетевой интерфейс имеет закрытый ключ и список пиров. У каждого узла есть открытый ключ. Открытые ключи короткие и простые и используются узлами для аутентификации друг друга. Их можно передавать для использования в файлах конфигурации любым внешним методом , аналогично тому, как можно отправить открытый ключ SSH для доступа к серверу.

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

Шаг

Описание

Команда

Ключи

1

Создать профиль WireGuard-сервера.

esr(config)# remote-access wireguard <NAME>

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

2

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

esr(config-wireguard-server)# description <DESCRIPTION>

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

3

Определить статический IP-адрес конфигурируемого сервера (обязательно).esr(config-wireguard-server)# local-address <ADDR/LEN><ADDR/LEN> – IP-адрес и длина маски подсети, задаётся в виде AAA.BBB.CCC.DDD/EE, где каждая часть AAA – DDD принимает значения [0..255] и EE принимает значения [1..32].
4Указать UDP-порт, который будет прослушиваться WireGuard-сервером (не обязательно).esr(config-wireguard-server)# port <PORT><PORT> – UDP-порт, принимает значения [1..65535].
5Отключить функции Firewall или включить WireGuard-сервер в зону безопасности и настроить правила взаимодействия между зонами (см. раздел Конфигурирование Firewall).esr(config-wireguard-server)# ip firewall disable
esr(config-wireguard-server)# security-zone <NAME><NAME> – имя зоны безопасности, задаётся строкой до 31 символа. 
6Задать MTU (не обязательно).esr(config-wireguard-server)# mtu <MTU>

<MTU> – 552–10000.

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

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

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

9Включить профиль WireGuard-сервера.esr(config-wireguard-server)# enable
10Перейти к настройке разрешённых туннелей WireGuard-сервера.esr(config-wireguard-server)# peer <COUNT><COUNT> – номер соответствующего пира, принимает значения [1..16].
11Указать описание туннеля (не обязательно).esr(config-wireguard-server-peer)# description <DESCRITPION><DESCRIPTION> – описание WireGuard-сервера, задаётся строкой до 255 символов.
12Указать публичный ключ туннеля (обязательно).esr(config-wireguard-server-peer)# public-key <NAME><NAME> – имя публичного ключа, задаётся строкой до 31 символа.
13Указать список IP-адресов, которым будет разрешено находиться внутри туннеля (обязательно).esr(config-wireguard-server-peer)# subnet <OBJ-GROUP-NETWORK-NAME><OBJ-GROUP-NETWORK-NAME> – имя профиля IP-адресов, содержащего префиксы подсетей назначения, задается строкой до 31 символа.
14Включить туннель (обязательно).esr(config-wireguard-server-peer)# enable

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

Задача:

Настроить WireGuard-сервер на маршрутизаторе для подключения удаленных пользователей к ЛВС.

  • адресация внутри туннеля – 10.10.10.0/24;
  • порт подключения к серверу – 43020; 
  • адрес WireGuard-сервера внутри туннеля – 10.10.10.1;
  • DNS-серверы: 8.8.8.8, 8.8.8.4.

Scroll Pagebreak


Решение:

Предварительно нужно выполнить следующие действия:

  • загрузить на ESR приватный ключ сервера и публичный ключ клиента;
  • создать object-group network, в которой будет указан список IP-адресов, которым будет разрешено проходить через туннель.

Импортируем Импортируйте по tftp приватный ключ сервера и публичный ключ клиента:

Блок кода
esr# copy tftp://192.168.16.10:/server.priv crypto:private-key/server.priv
esr# copy tftp://192.168.16.10:/client.pub crypto:public-key/client.pub

Создадим Создайте object-group network, в которой будет указан список IP-адресов, которым будет разрешено проходить через туннель:

Блок кода
esr(config)# object-group network client_wg
esr(config-object-group-network)# ip address-range 10.10.10.2

Создадим Создайте профиль WireGuard-сервера, зададим задайте локальный адрес сервера, порт для прослушивания и выставим выставьте MTU:

Блок кода
esr(config)# remote-access wireguard WG
esr(config-wireguard-server)# local-address 10.10.10.1/24
esr(config-wireguard-server)# port 43020
esr(config-wireguard-server)# mtu 1420

Укажем Укажите приватный ключ сервера и отключим отключите Firewall:

Блок кода
esr(config-wireguard-server)# private-key server.priv
esr(config-wireguard-server)# ip firewall disable

Перейдем Перейдите в настройки разрешённого туннеля, укажем укажите связку публичного ключа клиента и разрешённого IP-адреса:

Блок кода
esr(config-wireguard-server)# peer 1
esr(config-wireguard-server-peer)# public-key client.pub
esr(config-wireguard-server-peer)# subnet client_wg

Включим Включите туннель и WireGuard-сервер:

Блок кода
esr(config-wireguard-server-peer)# enable
esr(config-wireguard-server-peer)# exit
esr(config-wireguard-server)# enable

После применения конфигурации маршрутизатор будет прослушивать порт 43020.

Счётчики сессий WireGuard-сервера можно посмотреть командой:

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

Scroll Pagebreak


Очистить счётчики сессий WireGuard-сервера можно командой:

Блок кода
esr# clear remote-access counters wireguard server WG

Конфигурацию WireGuard-сервера можно посмотреть командой:

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

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

PPPoE это туннелирующий протокол (tunneling protocol), который позволяет инкапсулировать IP PPP через соединения Ethernet и обладает программными возможностями PPP-соединений, что позволяет использовать его для виртуальных соединений на соседнюю Ethernet-машину и устанавливать соединение точка-точка, которое используется для транспортировки IP-пакетов, а также работает с возможностями PPP. Это позволяет применять традиционное PPP-ориентированное ПО для настройки соединения, которое использует не последовательный канал, а пакетно-ориентированную сеть (например, Ethernet), чтобы организовать классическое соединение с логином и паролем для Интернет-соединений. Кроме того, IP-адрес по другую сторону соединения назначается, только когда PPPoE-соединение открыто, позволяя динамическое переиспользование IP-адресов.

...

  • Учетные записи для подключения – tester;
  • Пароли учетных записей – password;
  • Подключение должно осуществляться с интерфейса gigabitethernet 1/0/7.
Примечание

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

Решение:

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

...

Блок кода
esr# show tunnels configuration l2tp

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

WireGuard — простой, быстрый и современный VPN, использующий современную криптографию (ChaCha20, Poly1305, Curve25519, BLAKE2s, SipHash24, HKDF). WireGuard надежно инкапсулирует IP-пакеты поверх UDP. В основе WireGuard лежит концепция под названием «Маршрутизация криптоключей», которая работает путем связывания открытых ключей со списком IP-адресов туннеля, которым разрешено находиться внутри туннеля. Каждый сетевой интерфейс имеет закрытый ключ и список пиров. У каждого узла есть открытый ключ. Открытые ключи короткие и простые и используются узлами для аутентификации друг друга. Их можно передавать для использования в файлах конфигурации любым внешним методом, аналогично тому, как можно отправить открытый ключ SSH для доступа к серверу.

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

Шаг

Описание

Команда

Ключи

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-tunnel-peer)# description <DESCRIPTION><DESCRIPTION> – описание туннеля, задается строкой до 255 символов.

10

Задать значение keepalive (не обязательно). esr(config-wireguard-tunnel-peer)# keepalive timeout <SEC><SEC> – количество секунд, принимает значения [1..32767].
11Указать публичный ключ WireGuard-пира (обязательно).esr(config-wireguard-tunnel-peer)# public-key <NAME><NAME> –  имя приватного ключа, задается строкой до 31 символа.
12Указать IP-адрес удаленного пира (обязательно).esr(config-wireguard-tunnel-peer)# remote address <ADDR><ADDR> – IP-адрес локального шлюза, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255].
13Указать UDP-порт удаленного пира (обязательно)esr(config-wireguard-tunnel-peer)# remote port <PORT><PORT>– UDP-порт, принимает значения [1..65535].
14Указать список IP-адресов, которым будет разрешено находиться внутри туннеля (обязательно).esr(config-wireguard-tunnel-peer)# subnet <OBJ-GROUPNETWORK-NAME><OBJ-GROUP-NETWORKNAME> – имя профиля IPадресов, содержащего префиксы подсетей назначения, задается строкой до 31 символа.
15Активировать пир (обязательно).esr(config-wireguard-tunnel-peer)# enable

16

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

esr(config-wireguard)# enable


17

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

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

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

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

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

esr(config-wireguard)# history statistics


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

Задача:

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

  • адресация внутри туннеля – 10.10.10.0/24;
  • порт подключения к серверу – 43020;
  • адрес WireGuard-клиента внутри туннеля – 10.10.10.2;
  • адрес удаленного сервера – 178.47.26.133.

Drawio
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNameДиаграмма без названия
simpleViewerfalse
width
diagramWidth479
revision1

Решение:

Предварительно нужно выполнить следующие действия:

  • загрузить на ESR приватный ключ клиента и публичный ключ сервера;
  • создать object-group network, в которой будет указан список IP-адресов, которым будет разрешено проходить через туннель.

Импортируем по tftp приватный ключ клиента и публичный ключ сервера:

Блок кода
esr# copy tftp://192.168.16.10:/client.priv crypto:private-key/client.priv
esr# copy tftp://192.168.16.10:/server.pub crypto:public-key/server.pub

Создадим object-group network, в которой будет указан список IP-адресов, которым будет разрешено проходить через туннель:

Блок кода
esr(config)# object-group network server_wg
esr(config-object-group-network)# ip address-range 10.10.10.1

Создадим WireGuard туннель, зададим локальный адрес и выставим MTU:

Блок кода
esr(config)# tunnel wireguard 1
esr(config-wireguard)# ip address 10.10.10.2/24
esr(config-wireguard)# mtu 1420

Укажем приватный ключ клиента и отключим Firewall:

Блок кода
esr(config-wireguard)# private-key client.priv
esr(config-wireguard)# ip firewall disable

Перейдем в настройки разрешённого пира, укажем связку публичного ключа сервера и разрешённого IP-адреса, а также укажем адрес и порт удаленного сервера:

Блок кода
esr(config-wireguard)# peer 1
esr(config-wireguard-tunnel-peer)# public-key server.pub
esr(config-wireguard-tunnel-peer)# subnet server_wg
esr(config-wireguard-tunnel-peer)# remote address 178.47.26.133
esr(config-wireguard-tunnel-peer)# remote port 43020

Scroll Pagebreak

Включим пир и WireGuard-туннель:

Блок кода
esr(config-wireguard-tunnel-peer)# enable
esr(config-wireguard-tunnel-peer)# exit
esr(config-wireguard)# enable

Счётчики сессий WireGuard-туннеля можно посмотреть командой:

Блок кода
esr# show tunnels counters wireguard 1

Очистить счётчики сессий WireGuard-туннеля можно командой:

Блок кода
esr# clear tunnels counters wireguard 1

Конфигурацию WireGuard-туннеля можно посмотреть командой:

Блок кода
esr# show tunnels configuration wireguard 1