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

Ключ

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

...

Блок кода
esr(config-pppoe)# security-zone untrust

Scroll Pagebreak

Опционально для PPPoE-туннеля можно указать следующие параметры:

...

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

...

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

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

Scroll Pagebreak

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

...

Шаг

Описание

Команда

Ключи

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


Scroll Pagebreak

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

Задача:

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

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

Решение:

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

Блок кода
esr# crypto generate private-key x25519 filename wg_client_private.key
esr# crypto generate public-key x25519 private-key wg_client_private.key filename wg_client_public.key

Для успешной работы необходимо совершить обмен открытыми криптографическими ключами с удаленной стороной любым удобным способом. На данном этапе настройки открытым криптографическим ключом является файл с именем именем wg_client_public.key, который хранится в в crypto:public-key:

Блок кода
esr# show crypto certificates public-key
File name                                                                                                       
--------------------------------------------------------------------------------------------------------------  
wg_client_public.key

...

Блок кода
esr(config)# object-group network WG_SERVERS
esr(config-object-group-network)# ip address-range 10.50.0.10-10.50.0.15

Scroll Pagebreak

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

...

Блок кода
esr(config-wireguard)# peer 1
esr(config-wireguard-peer)# public-key wg_server_public.key
esr(config-wireguard-peer)# access-addresses object-group WG_SERVERS 
esr(config-wireguard-peer)# remote address 212.0.50.9
esr(config-wireguard-peer)# remote port 43020

Для усиления криптостойкости установим заранее известный симметричный ключ:

Блок кода
esr(config-wireguard-peer)# pre-shared-key base64 r4u48oYTouJ+j1GrAtVWRIZqlQ2YLjEZEvc+Yttc6R4=

...

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

...

Блок кода
esr@client:~$ ping 10.50.0.10 -c 4
PING 10.50.0.10 (10.50.0.10) 56(84) bytes of data.
64 bytes from 10.50.0.10: icmp_seq=1 ttl=62 time=1.85 ms
64 bytes from 10.50.0.10: icmp_seq=2 ttl=62 time=1.47 ms
64 bytes from 10.50.0.10: icmp_seq=3 ttl=62 time=1.97 ms
64 bytes from 10.50.0.10: icmp_seq=4 ttl=62 time=1.72 ms

--- 10.50.0.10 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 1.465/1.753/1.974/0.188 ms

Scroll Pagebreak

С помощью команды команды monitor, можно убедиться, что ICMP-пакеты проходят через wireguard туннель:

...