Установка WireGuard#

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

  • wireguard-tools – инструменты командной строки для взаимодействия с модулем ядра WireGuard (команда wg);

  • wireguard-tools-wg-quick – пакет для быстрого вызова интерфейса WireGuard с помощью команды wg-quick;

  • kernel-source-wireguard – пакет исходных кодов ядра для WireGuard, работающий ОС Альт, который позволяет ядру ОС использовать модуль WireGuard.

apt-get install wireguard-tools wireguard-tools-wg-quick kernel-source-wireguard

Команды wg:#

  • wg show – отображает текущую конфигурации и информацию об устройстве;

  • wg showconf – отображает текущую конфигурацию WireGuard, для использования с ‘setconf’;

  • wg set – меняет текущую конфигурацию, управление пирами (добавление, удаление, редактирование);

  • wg setconf – применяет конфигурацию WireGuard;

  • wg addconf – добавляет конфигурацию WireGuard;

  • wg syncconf – синхронизирует конфигурационный файл с интерфейсом WireGuard;

  • wg genkey – генерирует новый приватный ключ и записывает его в stdout;

  • wg genpsk – генерирует новый публичный ключ и записывает его в stdout;

  • wg pubkey – читает приватный ключ из stdin и записывает публичный ключ с stdout.

Команды wg-quick#

Команда wg-quick используется для быстрой работы с интерфейсом или конфигурационным файлом формата .conf. Хранятся данные файлы в каталоге /etc/wireguard/INTERFACE.conf.

Утилита wg-quick может работать только с файлом конфигурации. Файл конфигурации состоит из следующих полей:

  • PrivateKey — приватный ключ. Не путь к ключу, а именно его содержимое. Обязательно должно присутствовать;

  • ListenPort — порт, на котором работает WireGuard. Если нет, выбирается случайно;

  • FwMark — маркировка исходящего трафика;

  • Address — IP-адреса, которые будут назначены интерфейсу;

  • DNS — DNS-адреса (через запятую или несколько раз указать DNS). Требует наличие пакета resolvconf. Если его нет, DNS не добавляются;

  • MTU — значение MTU для интерфейса. Если нет, MTU не изменяется;

  • Table — таблица маршрутизации, куда будут добавлены маршруты для WireGuard. Если нет, используется таблица main;

  • PreUp, PostUp, PreDown, PostDown — скрипты, которые будут выполняться перед и после подключения, перед и после отключения соответственно. Можно указывать несколько скриптов. Выполняться они будут в порядке, описанном в файле;

  • SaveConfig — флаг сохранения всех изменений в файл конфигурации.

Каждый пир должен быть представлен отдельной секцией [Peer] со следующими полями (совпадающими с параметрами запуска wg set <WG_IFACE> peer…):

  • PublicKey — публичный ключ. Обязательно должен присутствовать;

  • PresharedKey — дополнительный ключ шифрования. Если нет, дополнительное шифрование не используется;

  • AllowedIPs — список разрешенных подсетей. Можно указывать каждую сеть через запятую, а можно несколько раз указать это поле. Если нет, никакая сеть не закреплена за пиром;

  • Endpoint — IP-адрес или имя пира с обязательным указанием порта. Можно не указывать.