Документация: ПО Факел — разрабатываемая версия

Интерфейс WireGuard

Обзор

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

WireGuard обладает рядом отличительных особенностей:

  • Современная криптография: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF и т.д.;

  • Компактный читаемый код, который проще исследовать на уязвимости;

  • Высокая производительность, так как протокол работает на третьем уровне модели OSI.

Порядок настройки соединения WireGuard

  1. Создать интерфейсы WireGuard на пограничных маршрутизаторах.

  2. Настроить сетевые параметры на интерфейсах обоих маршрутизаторов.

Чтобы маршрутизаторы могли обнаружить друг друга, убедитесь, что на устройствах заданы корректные IP-адреса, порты и маски подсети.

Когда соединение инициирует одноранговый узел сети, настраивать порт прослушивания не обязательно.

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

  1. Сгенерировать пару из открытого и закрытого ключей для каждого участника соединения и обменяться открытыми ключами.

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

Совет

Чтобы дополнительно защитить трафик, вы можете подключить симметричное шифрование поверх асимметричного. В этом случае для аутентификации участников генерируется одинаковый общий закрытый ключ (preshared key). Поскольку ключ не открытый, а закрытый, обеспечьте его безопасное распространение.

  1. Добавить разрешения для межсетевого экрана.

Чтобы туннель WireGuard работал корректно, настройте МСЭ на всех узлах-участниках: разрешите входящий UDP-трафик на порт WireGuard (по умолчанию: 51820), разрешите входящие и производные соединения.

Удаленное подключение

C помощью WireGuard можно не только создать защищенный туннель между двумя узлами сети, но и предоставить безопасный удаленный доступ. В этом случае будет реализована топология сети «звезда».

Зеркалирование трафика: Зеркалирование трафика (SPAN).

Конфигурацию для клиента удаленного подключения формируют команды режима «Администрирование» generate wireguard client-config <name> interface <interface> server <server> …. Параметр address задает виртуальный адрес клиента; его можно указать дважды, чтобы назначить клиенту один IPv4-адрес и один IPv6-адрес. Если указаны два адреса одного семейства, команда выводит сообщение Client can only have one IPv4 and one IPv6 address., если адрес некорректен — Client IP address invalid!. Если интерфейса нет, выводится сообщение WireGuard interface "<interface>" does not exist!.

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

В примере два маршрутизатора соединяются туннелем WireGuard. Вместо <private-key> укажите закрытый ключ из вывода команды на шаге 1 на этом маршрутизаторе, вместо <public-key> — открытый ключ из вывода команды на шаге 1 на другом маршрутизаторе.

Примечание

Команда generate pki wireguard key-pair выполняется в режиме «Администрирование». В режиме «Конфигурирование» используйте run generate pki wireguard key-pair.

Настройка маршрутизатора с интерфейсом wg01:

Шаг

Команда

Описание

1

generate pki wireguard key-pair

Генерирует пару из открытого и закрытого ключей. Закрытый ключ используется на шаге 2, открытый ключ передается администратору другого маршрутизатора

2

set interfaces wireguard wg01 private-key <private-key>

Сохраняет закрытый ключ, полученный на шаге 1, и ассоциирует его с интерфейсом WireGuard

3

set interfaces wireguard wg01 address 10.1.0.1/30

Назначает интерфейсу WireGuard IPv4-адрес с префиксом подсети

4

set interfaces wireguard wg01 description VPN-to-wg02

Добавляет описание для интерфейса WireGuard

5

set interfaces wireguard wg01 peer to-RT-02 allowed-ips 192.168.2.0/24

Указывает IP-адрес или диапазон IP-адресов однорангового узла, через которые интерфейс WireGuard будет поддерживать двустороннюю связь

6

set interfaces wireguard wg01 peer to-RT-02 address 192.0.2.1

Указывает IPv4-адрес однорангового узла сети

7

set interfaces wireguard wg01 peer to-RT-02 port 51820

Указывает порт для входящих соединений на одноранговом узле

8

set interfaces wireguard wg01 peer to-RT-02 public-key <public-key>

Ассоциирует с одноранговым узлом его открытый ключ. Вместо <public-key> укажите открытый ключ, который вывела команда на шаге 1 на другом маршрутизаторе

9

set interfaces wireguard wg01 port 51820

Указывает порт для входящих соединений на интерфейсе WireGuard

10

set protocols static route 192.168.2.0/24 interface wg01

Направляет трафик в сеть 192.168.2.0/24 через интерфейс WireGuard

Настройка маршрутизатора с интерфейсом wg02:

Шаг

Команда

Описание

1

generate pki wireguard key-pair

Генерирует пару из открытого и закрытого ключей. Закрытый ключ используется на шаге 2, открытый ключ передается администратору другого маршрутизатора

2

set interfaces wireguard wg02 private-key <private-key>

Сохраняет закрытый ключ, полученный на шаге 1, и ассоциирует его с интерфейсом WireGuard

3

set interfaces wireguard wg02 address 10.1.0.2/30

Назначает интерфейсу WireGuard IPv4-адрес с префиксом подсети

4

set interfaces wireguard wg02 description VPN-to-wg01

Добавляет описание для интерфейса WireGuard

5

set interfaces wireguard wg02 peer to-RT-01 allowed-ips 192.168.1.0/24

Указывает IP-адрес или диапазон IP-адресов однорангового узла, через которые интерфейс WireGuard будет поддерживать двустороннюю связь

6

set interfaces wireguard wg02 peer to-RT-01 address 192.0.2.2

Указывает IPv4-адрес однорангового узла сети

7

set interfaces wireguard wg02 peer to-RT-01 port 51820

Указывает порт для входящих соединений на одноранговом узле

8

set interfaces wireguard wg02 peer to-RT-01 public-key <public-key>

Ассоциирует с одноранговым узлом его открытый ключ. Вместо <public-key> укажите открытый ключ, который вывела команда на шаге 1 на другом маршрутизаторе

9

set interfaces wireguard wg02 port 51820

Указывает порт для входящих соединений на интерфейсе WireGuard

10

set protocols static route 192.168.1.0/24 interface wg02

Направляет трафик в сеть 192.168.1.0/24 через интерфейс WireGuard

Пример базовой конфигурации Пример базовой конфигурации

Список команд


Режим «Конфигурирование»


interfaces wireguard <interface> address [<x.x.x.x/x> | <h:h:h:h:h:h:h:h/x>]

Описание:
Назначает интерфейсу WireGuard диапазон IPv4- или IPv6-адресов с префиксом подсети.

Синтаксис:

  • set interfaces wireguard <interface> address [<x.x.x.x/x> | <h:h:h:h:h:h:h:h/x>]

  • delete interfaces wireguard <interface> address [<x.x.x.x/x> | <h:h:h:h:h:h:h:h/x>]

  • show interfaces wireguard <interface> address

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <x.x.x.x/x> — диапазон IPv4-адресов с префиксом подсети;

  • <h:h:h:h:h:h:h:h/x> — диапазон IPv6-адресов с префиксом подсети.

Режим: «Конфигурирование».


interfaces wireguard <interface> description <text>

Описание:
Добавляет описание для интерфейса WireGuard.

Синтаксис:

  • set interfaces wireguard <interface> description <text>

  • delete interfaces wireguard <interface> description <text>

  • show interfaces wireguard <interface> description

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <text> — описание для интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> disable

Описание:
Выключает интерфейс WireGuard. Интерфейсу будет присвоен статус A/D (выключен администратором).

Синтаксис:

  • set interfaces wireguard <interface> disable

  • delete interfaces wireguard <interface> disable

  • show interfaces wireguard <interface>

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> fwmark <number>

Описание:
Присваивает интерфейсу WireGuard метку соединения fwmark. В текущей версии ПО Факел параметр не применяется (см. Ограничения).

Синтаксис:

  • set interfaces wireguard <interface> fwmark <number>

  • delete interfaces wireguard <interface> fwmark <number>

  • show interfaces wireguard <interface> fwmark

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <number> — числовая метка fwmark.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip adjust-mss [<mss> | <clamp-mss-to-pmtu>]

Описание:
Устанавливает на интерфейсе WireGuard конкретное значение для максимального размера сегмента при передаче пакетов по протоколу TCP или рассчитывает значение автоматически, динамически подстраиваясь под допустимый максимальный размер передаваемого пакета на маршруте.

Конкретным значением администратор ПО Факел задает порог и ограничивает отправку пакетов, размер которых будет превышать заданное значение.

Максимальный размер сегмента — это опциональное поле в заголовке TCP-пакета с установленным флагом SYN. Если автоматическое обнаружение максимального размера передаваемого пакета на маршруте работает некорректно, установите конкретный размер сегмента вручную.

Синтаксис:

  • set interfaces wireguard <interface> ip adjust-mss [<mss> | <clamp-mss-to-pmtu>]

  • delete interfaces wireguard <interface> ip adjust-mss [<mss> | <clamp-mss-to-pmtu>]

  • show interfaces wireguard <interface> ip adjust-mss

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <mss> — конкретное значение для максимального размера сегмента на протоколе TCP. Диапазон значений: от 536 до 65535;

  • <clamp-mss-to-pmtu> — максимальный размер сегмента будет задан автоматически.

Режим: «Конфигурирование».

Подсказка

Максимальный размер сегмента = максимальный размер передаваемого пакета - 20 (заголовок протокола IP) - 20 (заголовок протокола TCP) = 1452 байта при максимальном размере передаваемого пакета в 1492 байт.


interfaces wireguard <interface> ip arp-cache-timeout <sec>

Описание:
Задает временной интервал между записями в ARP-кэш на интерфейсе WireGuard. ARP-кэш хранит информацию о связях между IP- и MAC-адресами. Кэш продолжит хранить данные, если от протокола верхнего уровня будет получен соответствующий сигнал. Если сигнал получен не будет, данные будут стерты.

Синтаксис:

  • set interfaces wireguard <interface> ip arp-cache-timeout <sec>

  • delete interfaces wireguard <interface> ip arp-cache-timeout <sec>

  • show interfaces wireguard <interface> ip arp-cache-timeout

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <sec> — интервал между записью данных в ARP-кэш. Формат: секунды. Диапазон значений: от 1 до 86400. Значение по умолчанию: 30 секунд.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip disable-arp-filter

Описание:
Выключает фильтрацию по протоколу ARP на интерфейсе WireGuard. ПО Факел сможет отвечать на ARP-запросы IP-адресами с других интерфейсов. Это позволит контролировать, какие интерфейсы будут отвечать на ARP-запросы. Применяется в сложных сетевых конфигурациях, где необходимо строго разделять трафик между интерфейсами.
Если фильтрация через протокол ARP включена (по умолчанию), то на одной подсети смогут существовать несколько сетевых интерфейсов. При этом конкретный интерфейс ответит на ARP-запрос тогда, когда ядро системы примет решение маршрутизировать пакеты через этот интерфейс. Это позволяет настраивать на уровне ядра, какой сетевой интерфейс будет отвечать на ARP-запрос. Однако для этого необходимо использовать маршрутизацию от источника.

Синтаксис:

  • set interfaces wireguard <interface> ip disable-arp-filter

  • delete interfaces wireguard <interface> ip disable-arp-filter

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip disable-forwarding

Описание:
Выключает переадресацию пакетов по протоколу IP с интерфейса WireGuard на любой другой интерфейс. После выполнения команды интерфейс WireGuard перейдет в режим хоста.

Синтаксис:

  • set interfaces wireguard <interface> ip disable-forwarding

  • delete interfaces wireguard <interface> ip disable-forwarding

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip enable-arp-accept

Описание:
Создает новые записи в ARP-таблице интерфейса WireGuard для gratuitous ARP-кадров, если им не присвоены соответствующие IP-адреса.

Автоматически обновляет ARP-таблицу при появлении gratuitous ARP-кадров типа «запрос», «ответ».

Если ARP-таблица уже содержит IP-адрес, соответствующий gratuitous ARP-кадру, то таблица все равно будет обновлена, даже если команда не была выполнена.

Синтаксис:

  • set interfaces wireguard <interface> ip enable-arp-accept

  • delete interfaces wireguard <interface> ip enable-arp-accept

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip enable-arp-announce

Описание:
Ограничивает на интерфейсе WireGuard анонсирование локального IP-адреса источника при отправке IP-пакетов через ARP-запрос. ПО Факел будет использовать в исходящих ARP-запросах только те IP-адреса источника, которые соответствуют локальным IP-адресам в подсети цели.

При генерации ARP-запроса интерфейс WireGuard проверяет все целевые подсети. По умолчанию ПО Факел при отправке ARP-запросов использует любой локальный IP-адрес, настроенный на любом интерфейсе.

Синтаксис:

  • set interfaces wireguard <interface> ip enable-arp-announce

  • delete interfaces wireguard <interface> ip enable-arp-announce

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip enable-arp-ignore

Описание:
Указывает интерфейсу WireGuard отвечать на ARP-запросы только в том случае, если целевой IP-адрес — локальный адрес на принимающем интерфейсе, который получил ARP-запрос.

По умолчанию интерфейс WireGuard отвечает на ARP-запросы даже в том случае, если целевой IP-адрес — локальный IP-адрес назначения на любом интерфейсе. Независимо от того, какой интерфейс получил запрос.

Синтаксис:

  • set interfaces wireguard <interface> ip enable-arp-ignore

  • delete interfaces wireguard <interface> ip enable-arp-ignore

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip enable-directed-broadcast

Описание:
Включает направленную широковещательную переадресацию на интерфейсе WireGuard. Если IP-адрес интерфейса получит пакет через широковещательную рассылку, то маршрутизатор Факел переадресует его на подсеть назначения.

Более подробная информация содержится в документах RFC 1812 и 2644.

Синтаксис:

  • set interfaces wireguard <interface> ip enable-directed-broadcast

  • delete interfaces wireguard <interface> ip enable-directed-broadcast

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip enable-proxy-arp

Описание:
Включает прокси-сервер на интерфейсе WireGuard для маршрутизации ARP-запросов. Интерфейс WireGuard сможет отвечать со своих MAC-адресов на ARP-запросы со стороны IP-адресов назначения, если IP-адреса назначения будут находиться на других интерфейсах маршрутизатора. В дальнейшем ПО Факел будет перенаправлять пакеты на IP-адреса назначения через прокси-сервер.

Синтаксис:

  • set interfaces wireguard <interface> ip enable-proxy-arp

  • delete interfaces wireguard <interface> ip enable-proxy-arp

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip proxy-arp-pvlan

Описание:
Создает на интерфейсе WireGuard частную сеть VLAN и включает на ней прокси-сервер для маршрутизации ARP-запросов. Устройства на разных портах смогут отвечать на ARP-запросы вышестоящего маршрутизатора и получат возможность обмениваться данными. Фактически интерфейс выступает в роли коммутатора, когда отдельные порты не могут общаться друг с другом напрямую, но могут поддерживать связь через вышестоящий маршрутизатор посредством маршрутизации ARP-запросов через прокси-сервер.

Более подробная информация содержится в документе RFC 3069.

Синтаксис:

  • set interfaces wireguard <interface> ip proxy-arp-pvlan

  • delete interfaces wireguard <interface> ip proxy-arp-pvlan

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ip source-validation [<strict> | <loose> | <disable>]

Описание:
Включает на интерфейсе WireGuard различные режимы проверки источника запроса по обратному пути.

Более подробная информация содержится в документе RFC 3704.

Синтаксис:

  • set interfaces wireguard <interface> ip source-validation [<strict | loose | disable>]

  • delete interfaces wireguard <interface> ip source-validation [<strict | loose | disable>]

  • show interfaces wireguard <interface> ip

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <strict> — строгий режим. Применяется для предотвращения подмены IP-адреса при DDos-атаках. Каждый входящий пакет проверяется по таблице FIB. Если IP-адрес источника не соответствует записи в таблице FIB, пакет не пройдет проверку и будет отброшен. В этом режиме некоторые полезные пакеты могут быть отклонены, если сеть имеет сложную конфигурацию;

  • <loose> — нестрогий режим. Применяется в случае ассиметричной маршрутизации или другой сложной конфигурации сети. Каждый входящий пакет проверяется по таблице FIB. Если IP-адрес источника недоступен ни через какой интерфейс, то пакет не пройдет проверку и будет отброшен;

  • <disable> — проверка источника по обратному пути выключена.

Режим: «Конфигурирование».


interfaces wireguard <interface> ipv6 accept-dad

Описание:
Настраивает работу механизма обнаружения дубликатов IPv6-адресов на интерфейсе WireGuard.

Синтаксис:

  • set interfaces wireguard <interface> ipv6 accept-dad <1-3>

  • delete interfaces wireguard <interface> ipv6 accept-dad <1-3>

  • show interfaces wireguard <interface> ipv6 accept-dad

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <0> — выключает механизм по обнаружению дубликатов IPv6-адресов;

  • <1> — включает механизм по обнаружению дубликатов IPv6-адресов. Значение по умолчанию;

  • <2> — включает механизм по обнаружению дубликатов IPv6- и MAC-адресов в сегменте локальной сети. Если будут найдены два устройства с одинаковыми MAC- и IPv6-адресами на одном сегменте сети, передача данных по протоколу IPv6 будет остановлена для избежания конфликтов.

Режим: «Конфигурирование».


interfaces wireguard <interface> ipv6 address autoconf

Описание:
Включает на интерфейсе WireGuard механизм получения IPv6-адреса другими устройствами через автоматическую настройку адресов без сохранения состояния (SLAAC). Хост-устройства с поддержкой протокола IPv6 cмогут автоматически производить свою настройку при подключении к сети IPv6. Для этого они обмениваются сообщениями ICMPv6 по протоколу обнаружения соседей.

При первичном подключении хост-устройство отправляет многоадресную рассылку с запросом параметров у маршрутизатора. Роутер отвечает на запрос и высылает объявление, которое содержит параметры конфигурации сетевого уровня. Узнав эти параметры, хост-устройство сможет подключиться к маршрутизатору.

Более подробная информация содержится в документе RFC 4862.

Синтаксис:

  • set interfaces wireguard <interface> ipv6 address autoconf

  • delete interfaces wireguard <interface> ipv6 address autoconf

  • show interfaces wireguard <interface> ipv6 address

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».

Примечание

Команда автоматически выключает перенаправление IPv6-трафика на интерфейсе WireGuard.


interfaces wireguard <interface> ipv6 address eui64 <prefix>

Описание:
Запускает преобразование EUI-64 на интерфейсе WireGuard. После этого хост-устройство сгенерирует себе уникальный 64-битный IPv6-адрес на основе своего MAC-адреса.

Более подробная информация содержится в документе RFC 4291.

Синтаксис:

  • set interfaces wireguard <interface> ipv6 address eui64 <prefix>

  • delete interfaces wireguard <interface> ipv6 address eui64 <prefix>

  • show interfaces wireguard <interface> ipv6 address eui64

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <prefix> — префикс IPv6-адреса. Будет добавлен к основной части IPv6-адреса при запуске преобразования EUI-64.

Режим: «Конфигурирование».



interfaces wireguard <interface> ipv6 adjust-mss [<mss> | <clamp-mss-to-pmtu>]

Описание:
Устанавливает на интерфейсе WireGuard конкретное значение для максимального размера сегмента при передаче IPv6-пакетов по протоколу TCP или рассчитывает значение автоматически, динамически подстраиваясь под допустимый максимальный размер передаваемого пакета на маршруте.

Конкретным значением администратор ПО Факел задает порог и ограничивает отправку пакетов, размер которых будет превышать заданное значение.

Максимальный размер сегмента — это опциональное поле в заголовке TCP-пакета с установленным флагом SYN. Если автоматическое обнаружение максимального размера передаваемого пакета на маршруте работает некорректно, установите конкретный размер сегмента вручную.

Синтаксис:

  • set interfaces wireguard <interface> ipv6 adjust-mss [<mss> | <clamp-mss-to-pmtu>]

  • delete interfaces wireguard <interface> ipv6 adjust-mss [<mss> | <clamp-mss-to-pmtu>]

  • show interfaces wireguard <interface> ipv6 adjust-mss

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <mss> — конкретное значение для максимального размера сегмента на протоколе TCP. Диапазон значений: от 536 до 65535;

  • <clamp-mss-to-pmtu> — максимальный размер сегмента будет задан автоматически.

Режим: «Конфигурирование».

Подсказка

Максимальный размер сегмента = максимальный размер передаваемого пакета - 20 (заголовок протокола IP) - 20 (заголовок протокола TCP) = 1452 байта при максимальном размере передаваемого пакета в 1492 байт.


interfaces wireguard <interface> ipv6 base-reachable-time <sec>

Описание:
Задает временной интервал, в течение которого интерфейс WireGuard будет пытаться установить связь с хостом на другом конце туннеля. Если в течение указанного интервала связь установлена не будет, то интерфейс WireGuard отметит туннель нерабочим.

Синтаксис:

  • set interfaces wireguard <interface> ipv6 base-reachable-time <sec>

  • delete interfaces wireguard <interface> ipv6 base-reachable-time <sec>

  • show interfaces wireguard <interface> ipv6 base-reachable-time

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <sec> — интервал в течение которого интерфейс WireGuard будет пытаться установить связь с хостом на другом конце туннеля WireGuard. Формат: секунды. Диапазон значений: от 1 до 86400. Значение по умолчанию: 30 секунд.

Режим: «Конфигурирование».


interfaces wireguard <interface> ipv6 disable-forwarding

Описание:
Выключает переадресацию пакетов по протоколу IPv6 с интерфейса WireGuard на любой другой интерфейс. После выполнения команды интерфейс WireGuard перейдет в режим хоста.

Синтаксис:

  • set interfaces wireguard <interface> ipv6 disable-forwarding

  • delete interfaces wireguard <interface> ipv6 disable-forwarding

  • show interfaces wireguard <interface> ipv6

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> ipv6 dup-addr-detect-transmits <n>

Описание:
Задает, сколько сообщений типа «опрос соседа» интерфейс WireGuard отправит по сети для обнаружения дубликатов IPv6-адресов.

Синтаксис:

  • set interfaces wireguard <interface> ipv6 dup-addr-detect-transmits <n>

  • delete interfaces wireguard <interface> ipv6 dup-addr-detect-transmits <n>

  • show interfaces wireguard <interface> ipv6 dup-addr-detect-transmits

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <n> — количество сообщений типа «опрос соседа», рассылаемых по сети.

Режим: «Конфигурирование».


interfaces wireguard <interface> ipv6 source-validation [<strict> | <loose> | <disable>]

Описание:
Включает на интерфейсе WireGuard различные режимы проверки источника запроса по обратному пути.

Более подробная информация содержится в документе RFC 3704.

Синтаксис:

  • set interfaces wireguard <interface> ipv6 source-validation <strict | loose | disable>

  • delete interfaces wireguard <interface> ipv6 source-validation <strict | loose | disable>

  • show interfaces wireguard <interface> ipv6

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <strict> — строгий режим. Применяется для предотвращения подмены IPv6-адреса при DDos-атаках. Каждый входящий пакет проверяется по таблице FIB. Если IPv6-адрес источника не соответствует записи в таблице FIB, пакет не пройдет проверку и будет отброшен. В этом режиме некоторые полезные пакеты могут быть отклонены, если сеть имеет сложную конфигурацию;

  • <loose> — нестрогий режим. Применяется в случае ассиметричной маршрутизации или другой сложной конфигурации сети. Каждый входящий пакет проверяется по таблице FIB. Если IPv6-адрес источника недоступен ни через какой интерфейс, то пакет не пройдет проверку и будет отброшен;

  • <disable> — проверка источника по обратному пути выключена.

Режим: «Конфигурирование».


interfaces wireguard <interface> mtu <mtu>

Описание:
Устанавливает максимальный размер передаваемого пакета на интерфейсе WireGuard.

Синтаксис:

  • set interfaces wireguard <interface> mtu <mtu>

  • delete interfaces wireguard <interface> mtu <mtu>

  • show interfaces wireguard <interface> mtu

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <mtu> — максимальный размер передаваемого пакета. Формат: байты. Диапазон значений: от 68 до 16000.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer>

Описание:
Ассоциирует интерфейс WireGuard с одноранговым узлом с определенным именем.

Синтаксис:

  • set interfaces wireguard <interface> peer <peer>

  • delete interfaces wireguard <interface> peer <peer>

  • show interfaces wireguard <interface> peer

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer> address [<x.x.x.x> | <h:h:h:h:h:h:h:h>]

Описание:
Указывает IPv4- или IPv6-адрес однорангового узла, с которым интерфейс WireGuard будет устанавливать связь. В текущей версии ПО Факел адрес и порт однорангового узла обязательны: если они не заданы, фиксация конфигурации завершается ошибкой.

Синтаксис:

  • set interfaces wireguard <interface> peer <peer> address [<x.x.x.x> | <h:h:h:h:h:h:h:h>]

  • delete interfaces wireguard <interface> peer <peer> address [<x.x.x.x> | <h:h:h:h:h:h:h:h>]

  • show interfaces wireguard <interface> peer <peer> address

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла;

  • <x.x.x.x> — IPv4-адрес однорангового узла;

  • <h:h:h:h:h:h:h:h> — IPv6-адрес однорангового узла.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer> allowed-ips <address>

Описание:
Указывает IP-адрес или диапазон IP-адресов однорангового узла, через которые интерфейс WireGuard будет поддерживать двустороннюю связь.

Синтаксис:

  • set interfaces wireguard <interface> peer <peer> allowed-ips <address>

  • delete interfaces wireguard <interface> peer <peer> allowed-ips <address>

  • show interfaces wireguard <interface> peer <peer> allowed-ips

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла;

  • <address>— IP-адреса, через которые интерфейс WireGuard будет поддерживать двустороннюю связь. Формат: IPv4, CIDR, диапазон IP-адресов. Перечислить значения можно через запятую.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer> description <description>

Описание:
Добавляет описание для однорангового узла, с которым интерфейс WireGuard будет устанавливать связь.

Синтаксис:

  • set interfaces wireguard <interface> peer <peer> description <description>

  • delete interfaces wireguard <interface> peer <peer> description <description>

  • show interfaces wireguard <interface> peer <peer> description

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла;

  • <description> — описание для однорангового узла.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer> disable

Описание:
Отключает связь интерфейса WireGuard с указанным одноранговым узлом. В текущей версии ПО Факел параметр не применяется (см. Ограничения). Чтобы отключить одноранговый узел, удалите его настройки.

Синтаксис:

  • set interfaces wireguard <interface> peer <peer> disable

  • delete interfaces wireguard <interface> peer <peer> disable

  • show interfaces wireguard <interface> peer <peer>

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer> persistent-keepalive <sec>

Описание:
Задает интервал отправки сообщений keepalive со стороны однорангового узла, с которым интерфейс WireGuard будет устанавливать связь. В текущей версии ПО Факел значение не применяется: интервал всегда равен 30 секундам (см. Ограничения).

Синтаксис:

  • set interfaces wireguard <interface> peer <peer> persistent-keepalive <sec>

  • delete interfaces wireguard <interface> peer <peer> persistent-keepalive <sec>

  • show interfaces wireguard <interface> peer <peer> persistent-keepalive

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла.

  • <sec> — интервал отправки сообщений keepalive со стороны однорангового узла. Диапазон значений: от 1 до 65535. Формат: секунды.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer> port <port>

Описание:
Указывает порт для входящих соединений на одноранговом узле, с которым интерфейс WireGuard будет устанавливать связь. В текущей версии ПО Факел адрес и порт однорангового узла обязательны: если они не заданы, фиксация конфигурации завершается ошибкой.

Синтаксис:

  • set interfaces wireguard <interface> peer <peer> port <port>

  • delete interfaces wireguard <interface> peer <peer> port <port>

  • show interfaces wireguard <interface> peer <peer> port

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла;

  • <port> — номер порта. Формат: целое число. Диапазон значений: от 1 до 65535.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer> preshared-key <key>

Описание:
Ассоциирует общий секретный ключ с одноранговым узлом сети, с которым интерфейс WireGuard будет устанавливать связь. В текущей версии ПО Факел параметр не применяется (см. Ограничения).

Синтаксис:

  • set interfaces wireguard <interface> peer <peer> preshared-key <key>

  • delete interfaces wireguard <interface> peer <peer> preshared-key <key>

  • show interfaces wireguard <interface> peer <peer> preshared-key

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла;

  • <key> — общий секретный ключ. Формат: строка в кодировке Base64.

Режим: «Конфигурирование».


interfaces wireguard <interface> peer <peer> public-key <key>

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

Синтаксис:

  • set interfaces wireguard <interface> peer <peer> public-key <key>

  • delete interfaces wireguard <interface> peer <peer> public-key <key>

  • show interfaces wireguard <interface> peer <peer> public-key

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <peer> — имя однорангового узла;

  • <key> — открытый ключ однорангового узла. Формат: строка в кодировке Base64.

Режим: «Конфигурирование».


interfaces wireguard <interface> per-client-thread

Описание:
Обрабатывает трафик от каждого клиента в отдельной очереди.

Синтаксис:

  • set interfaces wireguard <interface> per-client-thread

  • delete interfaces wireguard <interface> per-client-thread

  • show interfaces wireguard <interface>

Аргументы:

  • <interface> — имя интерфейса WireGuard.

Режим: «Конфигурирование».


interfaces wireguard <interface> port <port>

Описание:
Указывает порт для входящих соединений на интерфейсе WireGuard.

Синтаксис:

  • set interfaces wireguard <interface> port <port>

  • delete interfaces wireguard <interface> port <port>

  • show interfaces wireguard <interface> port

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <port> — порт для входящий соединений на интерфейсе WireGuard. Диапазон значений: от 1 до 65535.

Режим: «Конфигурирование».


interfaces wireguard <interface> private-key <key>

Описание:
Сохраняет закрытый ключ в системе и ассоциирует его с указанным интерфейсом WireGuard.

Синтаксис:

  • set interfaces wireguard <interface> private-key <key>

  • delete interfaces wireguard <interface> private-key <key>

  • show interfaces wireguard <interface> private-key

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <key> — закрытый ключ.

Режим: «Конфигурирование».


interfaces wireguard <interface> redirect <destination>

Описание:
Перенаправляет трафик на другой интерфейс маршрутизатора Факел.

Синтаксис:

  • set interfaces wireguard <interface> redirect <destination>

  • delete interfaces wireguard <interface> redirect <destination>

  • show interfaces wireguard <interface> redirect

Аргументы:

  • <interface> — имя интерфейса WireGuard;

  • <destination> — имя интерфейса, на который будет перенаправлен трафик.

Режим: «Конфигурирование».


interfaces wireguard <interface> vrf <vrf>

Описание:
Размещает интерфейс WireGuard на указанном VRF-экземпляре.

Синтаксис: * set interfaces wireguard <interface> vrf <vrf> * delete interfaces wireguard <interface> vrf <vrf> * show interfaces wireguard <interface> vrf

Аргументы: * <interface> — имя интерфейса WireGuard; * <vrf> — имя VRF-экземпляра.

Режим: «Конфигурирование».


Режим «Администрирование»


generate pki wireguard key-pair

Описание:
Генерирует пару из открытого и закрытого ключей для интерфейса WireGuard. Отображает ключи в консоли, но не сохраняет в системе.

Синтаксис:

  • generate pki wireguard key-pair

Режим: «Администрирование».

Уровень привилегий: «Администратор».

Примечание

В режиме «Конфигурирование» используйте run generate pki wireguard key-pair.


generate pki wireguard key-pair install interface <interface>

Описание:
Генерирует пару из открытого и закрытого ключей и ассоциирует закрытый ключ с указанным интерфейсом WireGuard. Если команда выполнена в режиме «Конфигурирование» (run generate pki wireguard key-pair install interface <interface>), закрытый ключ добавляется в конфигурацию; в режиме «Администрирование» команда выводит команду для ввода в режиме «Конфигурирование». Открытый ключ для однорангового узла отображается в консоли.

Синтаксис:

  • generate pki wireguard key-pair install interface <interface>

Аргументы:

  • <interface> — имя интерфейса WireGuard. Формат: wgN, где N — число.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


generate pki wireguard preshared-key

Описание:
Генерирует общий секретный ключ для интерфейса WireGuard. Отображает ключ в консоли, но не сохраняет в системе.

Синтаксис:

  • generate pki wireguard preshared-key

Режим: «Администрирование».

Уровень привилегий: «Администратор».

Важно

Поскольку ключ не открытый, а закрытый, обеспечьте его безопасное распространение.


generate pki wireguard preshared-key install interface <interface> peer <peer>

Описание:
Генерирует общий секретный ключ и ассоциирует его с одноранговым узлом на указанном интерфейсе WireGuard. Если команда выполнена в режиме «Конфигурирование» (через run), ключ добавляется в конфигурацию; в режиме «Администрирование» команда выводит команду для ввода в режиме «Конфигурирование».

Синтаксис:

  • generate pki wireguard preshared-key install interface <interface> peer <peer>

Аргументы:

  • <interface> — имя интерфейса WireGuard. Формат: wgN, где N — число;

  • <peer> — имя однорангового узла.

Режим: «Администрирование».

Уровень привилегий: «Администратор».

Важно

Поскольку ключ не открытый, а закрытый, обеспечьте его безопасное распространение.


generate wireguard client-config <name> interface <interface> server <server>

Описание:
Генерирует конфигурацию для клиента, который будет подключаться к интерфейсу WireGuard (серверу). Автоматически встраивает в конфигурацию открытый ключ интерфейса WireGuard. Также создает набор команд для ввода в консоль в режиме конфигурирования. Дополнительно выводит конфигурацию на экран в виде QR-кода.

Синтаксис:

  • generate wireguard client-config <name> interface <interface> server <server>

Аргументы:

  • <name> — имя конфигурации для клиента;

  • <interface> — имя интерфейса WireGuard. Формат: wgN, где N — число;

  • <server> — IP-адрес или полное доменное имя (FQDN) WireGuard-сервера, к которому будет подключаться клиент.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


generate wireguard client-config <name> interface <interface> server <server> address <address>

Описание:
Генерирует конфигурацию для клиента, который будет подключаться к интерфейсу WireGuard (серверу). Автоматически встраивает в конфигурацию открытый ключ интерфейса WireGuard. Также создает набор команд для ввода в консоль в режиме конфигурирования. Дополнительно выводит конфигурацию на экран в виде QR-кода. Клиенту назначается указанный виртуальный адрес.

Синтаксис:

  • generate wireguard client-config <name> interface <interface> server <server> address <address>

Аргументы:

  • <name> — имя конфигурации для клиента;

  • <interface> — имя интерфейса WireGuard. Формат: wgN, где N — число;

  • <server> — IP-адрес или полное доменное имя (FQDN) WireGuard-сервера, к которому будет подключаться клиент;

  • <address> — виртуальный IP-адрес, который WireGuard-сервер назначит клиенту. Формат: IPv4-адрес или IPv6-адрес.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


interfaces wireguard

Описание:
Отображает краткую информацию о статусе интерфейсов WireGuard.

Синтаксис:

  • show interfaces wireguard

Режим: «Администрирование».

Уровень привилегий: «Администратор».


interfaces wireguard <interface>

Описание:
Отображает информацию о статусе интерфейса WireGuard.

Синтаксис:

  • show interfaces wireguard <interface>

Аргументы:

  • <interface> — имя интерфейса WireGuard. Формат: wgN, где N — число.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


interfaces wireguard <interface> allowed-ips

Описание:
Отображает IP-адреса, через которые интерфейс WireGuard поддерживает двустороннюю связь с другим одноранговым узлом.

Синтаксис:

  • show interfaces wireguard <interface> allowed-ips

Аргументы:

  • <interface> — имя интерфейса WireGuard. Формат: wgN, где N — число.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


interfaces wireguard <interface> endpoints

Описание:
Отображает информацию о конечных точках, с которыми интерфейс WireGuard установил связь.

Синтаксис:

  • show interfaces wireguard <interface> endpoints

Аргументы:

  • <interface> — имя интерфейса WireGuard. Формат: wgN, где N — число.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


interfaces wireguard <interface> peers

Описание:
Отображает идентификаторы одноранговых узлов, с которыми интерфейс WireGuard установил связь.

Синтаксис:

  • show interfaces wireguard <interface> peers

Аргументы:

  • <interface> — имя интерфейса WireGuard. Формат: wgN, где N — число.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


interfaces wireguard <interface> public-key

Описание:
Отображает открытый ключ, ассоциированный с указанным интерфейсом WireGuard.

Синтаксис:

  • show interfaces wireguard <interface> public-key

Аргументы:

  • <interface> — имя интерфейса WireGuard. Формат: wgN, где N — число.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


interfaces wireguard <interface> summary

Описание:
Показывает сводную информацию о текущей конфигурации интерфейса.

Синтаксис:

  • show interfaces wireguard <interface> summary

Аргументы:

  • <interface> — имя интерфейса WireGuard. Формат: wgN, где N — число.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


generate pki key-pair file <filename>

Описание:
Генерирует пару из открытого и закрытого ключей, сохраняет их в файл. Сгенерированные ключи не будут привязаны к какому-либо интерфейсу.

Синтаксис:

  • generate pki key-pair file <filename>

Аргументы:

  • <filename> — имя файла, в который будет сохранена пара ключей.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


generate pki key-pair install <name>

Описание:
Генерирует пару из открытого и закрытого ключей. Если команда выполнена в режиме «Конфигурирование» (через run), ключи добавляются в конфигурацию как pki key-pair <name> public key и pki key-pair <name> private key; в режиме «Администрирование» команда выводит команды для ввода в режиме «Конфигурирование». Сгенерированные ключи не привязаны к какому-либо интерфейсу.

Синтаксис:

  • generate pki key-pair install <name>

Аргументы:

  • <name> — имя пары ключей в разделе pki key-pair.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


interfaces wireguard detail

Описание:
Отображает подробные сведения обо всех интерфейсах WireGuard.

Синтаксис:

  • show interfaces wireguard detail

Режим: «Администрирование».


generate wireguard client-config <name> interface <interface> server <server> address <address> address <address>

Описание:
Генерирует конфигурацию для клиента, который будет подключаться к интерфейсу WireGuard (серверу). Автоматически встраивает в конфигурацию открытый ключ интерфейса WireGuard. Также создает набор команд для ввода в консоль в режиме конфигурирования. Дополнительно выводит конфигурацию на экран в виде QR-кода. Клиенту назначаются два виртуальных адреса: IPv4-адрес и IPv6-адрес.

Синтаксис:

  • generate wireguard client-config <name> interface <interface> server <server> address <address> address <address>

Аргументы:

  • <name> — имя конфигурации для клиента;

  • <interface> — имя интерфейса WireGuard. Формат: wgN, где N — число;

  • <server> — IP-адрес или полное доменное имя (FQDN) WireGuard-сервера, к которому будет подключаться клиент;

  • <address> — виртуальный IP-адрес, который WireGuard-сервер назначит клиенту. Формат: IPv4-адрес (x.x.x.x) или IPv6-адрес (h:h:h:h:h:h:h:h). Один из двух адресов должен быть IPv4-адресом, другой — IPv6-адресом.

Режим: «Администрирование».

Уровень привилегий: «Администратор».