Перейти к содержанию

Настройка WireGuard


Настройка WireGuard в Mikrotik в качестве клиента

Предполагаю что у вас уже есть и настроен WireGuard Server, (1) и у вас есть конфигурационный файл примерно такого вида:

  1. 🙇‍♂️ Когда-то сделаю и настройку сервера
WireGuard client config
[Interface]
PrivateKey = +KhOsN0X68/38dFIKywgb/SCw9/B2Sbq+pT1QDf6ikk=
Address = 192.168.100.2/32
DNS = 1.1.1.1, 1.0.0.1
MTU = 1420

[Peer]
PublicKey = 0z1LlE-TkUxCJb7v37g8SG23oeP2qbvcFsuXCFhYBf/yI=
AllowedIPs = 0.0.0.0/0
Endpoint = 192.168.1.1:22222

1. Создаем WireGuard интерфейс в Mikrotik

Имя можно любое, порт нам безразличен (1), Private key вписываем с [Interface]

  1. Он будет важен, если мы настраиваем интерфейс в качестве сервера. В нашем случае мы используем его как клиента.
PrivateKey = +KhOsN0X68/38dFIKywgb/SCw9/B2Sbq+pT1QDf6ikk=

Tip

Или можно сделать командой в терминале:

Mikrotik Terminal
/interface/wireguard/add listen-port=13232 name=WG-tunnel mtu=1420 private-key="+KhOsN0X6838dFIKywgb/SCw9/B2Sbq+pT1QDf6ikk="


2. Создаем IP-адресс к нашему созданному интерфейсу, переходим в IP Addresses. Указываем адресс выданный нам с [Interface]

Tip

Тоже действие в терминале: (1)

Mikrotik Terminal
/ip/address/add address=192.168.100.2/32 interface=WG-tunnel network=192.168.100.0 comment="IP WireGuard"

  1. Старайтесь добавлять комментарии, это касается не только IP-адресов. Когда у вас один туннель, проблем не будет, но с их ростом может возникнуть путаница впоследствии.

3. Создаем пир в WireGuard Peers.

Тут все достаточно просто, нам нужно прописать настройки с раздела [Peer].

  1. Interface - созданный нами интерфейс
  2. Public Key - публичный ключ сервера
  3. Endpoint и Endpoint Port - публичный адрес нашего сервера и его порт
  4. Allowed Address - 0.0.0.0/0 разрешаем любой трафик в туннеле
  5. Если ваш Mikrotik находится за NAT, устанавливаем Persistent Keepalive 25 секунд

Наглядный пример с самого начала

[Peer]
PublicKey = 0z1LlE-TkUxCJb7v37g8SG23oeP2qbvcFsuXCFhYBf/yI=
AllowedIPs = 0.0.0.0/0
Endpoint = 192.168.1.1:22222

Tip

Команда для терминала:

/interface/wireguard/peers/add interface=WG-tunnel public-key="0z1LlE-TkUxCJb7v37g8SG23oeP2qbvcFsuXCFhYBf/yI=" endpoint-address=192.168.1.1 endpoint-port=22222 allowed-address=0.0.0.0/0


4. По необходимости создаем маскарад. Переходим в IP Firewall NAT.

  1. Chain - srcnat
  2. Out interface - интерфейс WireGuard
  3. Action - masquerade
  4. Src. Address - диапазон локальной сети

Src. Address не является обязательным, все зависит от ваших задач. В качестве примера, мы можем добавить ограничение на подсеть, из которой могут проходить пакеты.

Tip

Команда для терминала:

Mikrotik Terminal
/ip/firewall/nat/add action=masquerade out-interface=WG-tunnel chain=srcnat


Настройка завершена. Дальнейшие действия зависят от ваших задач. Например, если вам необходим доступ к определенному веб-сайту или узлу. Достаточно сделать для них отдельный маршрут в IP Routes. Также вы можете направить весь трафик через туннель, изменив нулевой маршрут. Кроме того, можно настроить обработку определенного трафика с помощью маркировки.

Пример

Допустим, нам нужно проверить, работает ли наш туннель или нет. Для этого добавим маршрут проверки IP, узнав IP-адрес сайта 2ip.ru. На данный момент его IP-адрес: 195.201.201.32. Добавим новый маршрут:

Теперь, посетив сайт 2ip.ru, мы увидим, что наш IP-адрес изменился. Кроме того, вы можете воспользоваться функцией Torch, чтобы проверить наш интерфейс WireGuard.

Подобие блок схемы для наглядности 😅