Установка 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-адрес или имя пира с обязательным указанием порта. Можно не указывать.