...
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 |
...
PPPoE – это туннелирующий протокол (tunneling protocol), который позволяет инкапсулировать IP PPP через соединения Ethernet и обладает программными возможностями PPP-соединений, что позволяет использовать его для виртуальных соединений на соседнюю Ethernet-машину и устанавливать соединение точка-точка, которое используется для транспортировки IP-пакетов, а также работает с возможностями PPP. Это позволяет применять традиционное PPP-ориентированное ПО для настройки соединения, которое использует не последовательный канал, а пакетно-ориентированную сеть (например, Ethernet), чтобы организовать классическое соединение с логином и паролем для Интернет-соединений. Кроме того, IP-адрес по другую сторону соединения назначается, только когда PPPoE-соединение открыто, позволяя динамическое переиспользование IP-адресов.
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
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 | <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 | Включить отказ от получения маршрута по умолчанию от PPPoE-сервера (не обязательно). | esr(config-pppoe)# ignore-default-route | |
10 | Указать интервал времени, за который усредняется статистика о нагрузке (не обязательно). | esr(config-pppoe)# load-average <TIME> | <TIME> – интервал времени в секундах от 5 до 150 (по умолчанию 5 с). |
11 | Указать размер MTU (MaximumTransmitionUnit) для PPPOE-туннеля. | esr(config-pppoe)# mtu <MTU> | <MTU> – значение MTU, принимает значения в диапазоне [552..1500]. Значение по умолчанию: 1500. |
| 12 | Изменить количество неудачных data-link тестов перед разрывом сессии (не обязательно). | esr(config-pppoe)# ppp failure-count <NUM> | <NUM> – количество неудачных data-link тестов, задается в диапазоне [1..100]. Значение по умолчанию: 10. |
| 13 | Изменить интервал времени в секундах, по истечении которого маршрутизатор отправляет keepalive-сообщение (не обязательно). | esr(config-pppoe)# ppp timeout keepalive <TIME > | <TIME> – время в секундах, задается в диапазоне [1..32767]. Значение по умолчанию: 10. |
| 14 | Переопределить значение поля MSS (Maximum segment size) во входящих TCP-пакетах (не обязательно). | esr(config-pppoe)# ip tcp adjust-mss <MSS> | <MSS> – значение MSS, принимает значения в диапазоне [500..1460]. Значение по умолчанию: 1460. |
| 15 | Включить запись статистики использования текущего туннеля (не обязательно). | esr(config-pppoe)# history statistics | |
Также для PPPoE-клиента возможно настроить:
| |||
...
PPTP (англ. Point-to-Point Tunneling Protocol) – туннельный протокол типа точка-точка, позволяющий устанавливать защищённое соединение за счёт создания специального туннеля в обычной незащищенной сети. PPTP помещает (инкапсулирует) кадры PPP в IP-пакеты для передачи по глобальной IP-сети, например, Интернет. PPTP может также использоваться для организации туннеля между двумя локальными сетями. РРТР использует дополнительное TCP-соединение для обслуживания туннеля.
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
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 | <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 | Игнорировать маршрут по умолчанию через данный PPTP-туннель (не обязательно) | esr(config-pptp)# ignore-default-route | |
11 | Задать интервал времени, за который усредняется статистика о нагрузке на туннель (не обязательно). | esr(config-pptp)# load-average <TIME> | <TIME> – интервал в секундах, принимает значения [5..150] Значение по умолчанию: 5. |
12 | Указать метод аутентификации (не обязательно). | esr(config-pptp)# authentication method <METHOD> | <METHOD> – метод аутентификации, возможные значения: chap, mschap, mschap-v2, eap, pap. Значение по умолчанию: chap. |
| 13 | Включить запись статистики использования текущего туннеля (не обязательно). | esr(config-pptp)# history statistics | |
| 14 | Изменить интервал времени в секундах, по истечении которого маршрутизатор отправляет keepalive-сообщение (не обязательно). | esr(config-pptp)# ppp timeout keepalive <TIME > | <TIME> – время в секундах, задается в диапазоне [1..32767]. Значение по умолчанию: 10. |
| 15 | Изменить количество неудачных data-link тестов перед разрывом сессии (не обязательно). | esr(config-pptp)# ppp failure-count <NUM> | <NUM> – количество неудачных data-link тестов, задается в диапазоне [1..100]. Значение по умолчанию: 10. |
...
L2TP (англ. Layer 2 Tunneling Protocol – протокол туннелирования второго уровня) – туннельный протокол, использующийся для поддержки виртуальных частных сетей. L2TP помещает (инкапсулирует) кадры PPP в IP-пакеты для передачи по глобальной IP-сети, например, Интернет. L2TP может также использоваться для организации туннеля между двумя локальными сетями. L2ТР использует дополнительное UDP-соединение для обслуживания туннеля. L2TP-протокол не предоставляет средств шифрования данных и поэтому он обычно используется в связке с группой протоколов IPsec, которая предоставляет безопасность на пакетном уровне.
Алгоритм настройки
Шаг | Описание | Команда | Ключи |
|---|---|---|---|
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 | <NAME> – имя пользователя, задается строкой до 31 символа. <WORD> – пароль в открытой форме, задается строкой [8..64] символов, может включать символы [0-9a-fA-F]. <HEX> – пароль в зашифрованной форме, задается строкой [16..128] символов. |
7 | Выбрать метод аутентификации по ключу для IKE-соединения. | esr(config-l2tp)# ipsec authentication | |
8 | Указать общий секретный ключ для аутентификации, который должен совпадать у обоих сторон, устанавливающих туннель. | esr(config-l2tp)# ipsec authentication pre-shared-key | <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 | Ограничить используемые методы аутентификации и шифрования протокола IPsec (не обязательно). | esr(config-l2tp)# ipsec proposal <NAME> | <NAME> – имя ранее созданного профиля IPsec, задаётся строкой до 31 символа. |
| 11 | Определяется номер UDP-порта по которому устанавливается соединение с l2tp-сервером (не обязательно). | esr(config-l2tp)# port <PORT> | <PORT> – номер UDP-порта, задаётся в диапазоне [1024..65535]. Значение по умолчанию: 1701. |
12 | Активировать туннель. | esr(config-l2tp)# enable | |
13 | Установить размер MTU (MaximumTransmitionUnit) для туннеля (не обязательно). | esr(config-l2tp)# mtu <MTU> | <MTU> – значение MTU, принимает значения в диапазоне [552..10000]. Значение по умолчанию: 1500. |
14 | Игнорировать маршрут по умолчанию через данный L2TP-туннель (не обязательно) | esr(config-l2tp)# ignore-default-route | |
15 | Указать метод аутентификации (не обязательно). | esr(config-l2tp)# authentication method <METHOD> | <METHOD> – метод аутентификации, возможные значения: chap, mschap, mschap-v2, eap, pap Значение по умолчанию: chap. |
16 | Задать интервал времени, за который усредняется статистика о нагрузке на туннель (не обязательно). | esr(config-l2tp)# load-average <TIME> | <TIME> – интервал в секундах, принимает значения [5..150] Значение по умолчанию: 5. |
| 17 | Изменить интервал времени в секундах, по истечении которого маршрутизатор отправляет keepalive-сообщение (не обязательно). | esr(config-l2tp)# ppp timeout keepalive <TIME > | <TIME> – время в секундах, задается в диапазоне [1..32767]. Значение по умолчанию: 10. |
| 18 | Изменить количество неудачных data-link тестов перед разрывом сессии (не обязательно). | esr(config-l2tp)# ppp failure-count <NUM> | <NUM> – количество неудачных data-link тестов, задается в диапазоне [1..100]. Значение по умолчанию: 10. |
Также для L2TP-клиента возможно настроить QoS в базовом или расширенном режимах (см. раздел Управление QoS). | |||
...
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-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 | Указать IP-адрес удаленного пира (обязательно). | esr(config-wireguard-peer)# remote address <ADDR> | <ADDR> – IP-адрес локального шлюза, задается в виде AAA.BBB.CCC.DDD, где каждая часть принимает значения [0..255]. |
| 13 | Указать UDP-порт удаленного пира (обязательно) | esr(config-wireguard-peer)# remote port <PORT> | <PORT>– UDP-порт, принимает значения [1..65535]. |
| 14 | Указать список IP-адресов, которым будет разрешено находиться внутри туннеля (обязательно). | esr(config-wireguard-peer)# subnet <OBJ-GROUPNETWORK-NAME> | <OBJ-GROUP-NETWORKNAME> – имя профиля IPадресов, содержащего префиксы подсетей назначения, задается строкой до 31 символа. |
| 15 | Активировать пир (обязательно). | esr(config-wireguard-peer)# enable | |
16 | Активировать туннель. | esr(config-wireguard)# enable | |
17 | Задать интервал времени, за который усредняется статистика о нагрузке на туннель (не обязательно). | esr(config-wireguard)# load-average <TIME> | <TIME> – интервал в секундах, принимает значения [5..150] Значение по умолчанию: 5. |
| 18 | Включить запись статистики использования текущего туннеля (не обязательно). | esr(config-wireguard)# history statistics |
...