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

Пример “Site-to_Site VPN”#

Настроить между маршрутизаторами HQ-RTR и BR-RTR Site-to_Site VPN туннель WireGuard. Адреса VPN - туннеля должны быть из сети 10.10.10.0/30

Site-to_Site VPN - это VPN от маршрутизатора к маршрутизатору. В VPN Site-to_Site не разрешено использовать несколько пользователей.

asda

Настройка:

  1. Выполнить проверку настройку сетевых интерфейсов:

ip a

Между роутерами должны проходить пакеты (connectivity).

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

  1. Выполнить установку необходимых пакетов на оборудование(HQ-RTR, BR-RTR):

apt-get install wireguard-tools wireguard-tools-wg-quick kernel-source-wireguard
  1. Создать каталоги /etc/wireguard и /etc/wireguard/keys

mkdir /etc/wireguard
mkdir /etc/wireguard/keys
  1. Перейти в каталог /etc/wireguard/keys:

..code:

cd /etc/wireguard/keys
  1. Сгенерировать приватный и публичный ключ:

wg genkey | tee private.key | wg pubkey | tee public.key

Здесь генерируется приватный ключ wg genkey и командой tee направляется в файл private.key, затем он передается на вход wg pubkey, генерирующей на его основе публичный ключ и командой tee записывается в public.key

  1. Перейти в каталог /etc/wireguard и создать конфигурационные файлы wg-hq.conf и wg-br.conf на соответствующих маршрутизаторах:

cd /etc/wireguard/

HQ-RTR:

vim wg-hq.conf
[Interface]
Address = 10.10.10.1/32
ListenPort = 51820
PrivateKey = <ПРИВАТНЫЙ_КЛЮЧ_HQ-RTR>
PostUp = iptables -t nat -A POSTROUTING -o ens224 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o ens224 -j MASQUERADE

[Peer]
PublicKey = <ПУБЛИЧНЫЙ_КЛЮЧ_BR-RTR>
AllowedIPs = 10.10.10.0/30
Endpoint = 172.16.5.2:51820
PersistentKeepalive = 20

BR-RTR:

vim wg-br.conf
[Interface]
Address = 10.10.10.2/32
ListenPort = 51820
PrivateKey = <ПРИВАТНЫЙ_КЛЮЧ_BR-RTR>
PostUp = iptables -t nat -A POSTROUTING -o ens224 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o ens224 -j MASQUERADE

[Peer]
PublicKey = <ПУБЛИЧНЫЙ_КЛЮЧ_HQ-RTR>
AllowedIPs = 10.10.10.0/30
Endpoint = 172.16.5.1:51820
PersistentKeepalive = 20
  1. Поднять туннели на обоих серверах:

HQ-RTR:

wg-quick up wg-hq

BR-RTR:

wg-quick up wg-br
asda

Note

Примечание: Выключить туннель можно командой: wg-quick down wg-hq

  1. Проверить активность туннелей командой wg:

wg
asda

Если присутствует “latest handshake:… seconds ago” и байты и в received и в sent, значит, все хорошо.

Если байты только в sent, без handshake и received, значит, где-то в конфигурационном файле ошибка или серверы недоступны друг для друга.

Если в процессе включения туннеля произошла ошибка, то достаточно перезагрузить сервер — активные туннели сбросятся.

  1. Проверить сетевые интерфейсы

..code:

ip a
asda
  1. В случае отсутствия ошибок поставить туннели в автозапуск:

HQ-RTR:

systemctl enable wg-quick@wg-hq.service

BR-RTR:

systemctl enable wg-quick@wg-br.service

Пример “Remote access VPN”#

В Remote access VPN (VPN с удалённым доступом) пользователи подключаются к частным сетям, и это позволяет механически удалённо получать доступ к сервисам и использовать эту частную сеть. Это лучше всего подходит для деловых и домашних целей. При использовании VPN c удаленным доступом разрешено использовать несколько пользователей.

Для хоста OUT-CLI настроить Remote access VPN к маршрутизатору BR-RTR. Для клиента использовать адрес из сети 172.16.10.0/24

asda
  1. Проверить настройки хоста OUT - CLI

  2. Установить необходимое программное обеспечение:

apt-get install wireguard-tools wireguard-tools-wg-quick kernel-source-wireguard
  1. Создать каталог для ключей клиента (см. п.п. 2 - 4, Пример 1)

  2. В каталоге /etc/wireguard cоздать конфигурационный файл wg0-client.conf для клиента OUT-CLI:

cd /etc/wireguard
vim wg0-client.conf
[Interface]
PrivateKey = <ПРИВАТНЫЙ_КЛЮЧ_OUT-CLI>
Address = 172.16.10.10/32

[Peer]
PublicKey = <ПУБЛИЧНЫЙ_КЛЮЧ_BR-RTR>
AllowedIPs = 172.16.10.0/24, 192.168.0.0/24
Endpoint = 172.16.5.2:51820
PersistentKeepalive = 20
  • Address = 172.16.10.10/32 - IP адрес клиента в теннеле

  • AllowedIPs = 172.16.10.0/24, 192.168.0.0/24

172.16.10.0/24 - сеть туннеля. Из этой сети разрешать доступ

192.168.0.0/24 - Из этой сети разрешать доступ и пакеты, направляемые в эту сеть передавать через туннель.

  • Endpoint = 172.16.5.2:51820 - ip адрес сервера VPN (BR-RTR)

  • PersistentKeepalive = 20 - каждые 2 секунд выполнять handshake для поддержания связи.

  1. На BR-RTR внести изменения в файл wg-br.conf

Добавить в конец файла два раздела:

[Interface]
Address = 172.16.10.1/32
ListenPort = 51820
PrivateKey = <ПРИВАТНЫЙ_КЛЮЧ_BR-RTR>

[Peer]
PublicKey = <ПУБЛИЧНЫЙ_КЛЮЧ_OUT-CLI>
AllowedIPs = 172.16.10.10/32
PersistentKeepalive = 20
asda
  1. На обоих устройствах запустить туннель:

BR-RTR:

wg-quick down wg-br
wg-quick up wg-br

OUT-CLI:

wg-quick down wg0-client
wg-quick up wg0-client
  1. Проверить состояние туннеля:

wg
  1. При отсутствии ошибок поставить туннели в автозапуск:

OUT-CLI:

systemctl enable wg-quick@wg0-client.service
  1. Можно с OUT-CLI получать доступ к инфраструктуре за BR-RTR:

ping 192.168.0.2
asda