WireGuard появился в седьмой прошивке!! О, чудо, но где же найти настройку WireGuard, хотя бы для двух сетей? Ниже написал, как быстро и просто соединить два офиса в peer-to-peer сеть.
OFFICE-1 LAN=192.168.2.0/24
OFFICE-2 LAN=192.168.0.0/24
inet_ip_OFFICE – Белый IP-адрес
# Интерфейсы WireGuard должны быть настроены на обеих сторонах для автоматической генерации ключей.
#
# \\--Команда, которую нужно выполнить на обоих роутерах:
#
/interface wireguard
add listen-port=13232 name=WireGuardTunel
/interface list member
add interface=WireGuardTunel list=LAN
# Или просто добавить интерфейс WireGuard в список интерфейсов "LAN".
#
/ip firewall filter
add action=accept chain=input comment="разрешить WireGuard" dst-port=13232 protocol=udp place-before=1
# Чтобы разрешить удалённым устройствам подключаться к сервисам RouterOS (например, DNS-запросы),
# разрешите подсеть WireGuard в цепочке input.
# ***
# При выводе информации об интерфейсе теперь должны отображаться и приватные, и публичные ключи для удобного обмена.
# Приватный ключ никогда не понадобится на удалённом устройстве — отсюда и название "приватный".
#
# OFFICE-1
/interface/wireguard print
Flags: X - отключён; R - запущен
0 R name="WireGuardTunel" mtu=1420 listen-port=13232 private-key="<private-key_OFFICE-1>"
public-key="<public-key_OFFICE-1>"
#
# OFFICE-2
/interface/wireguard/print
Flags: X - отключён; R - запущен
0 R name="WireGuardTunel" mtu=1420 listen-port=13232 private-key="<private-key_OFFICE-2>"
public-key="<public-key_OFFICE-2>"
#
# Конфигурация peer определяет, кто может использовать интерфейс WireGuard и какой трафик через него проходит.
# Чтобы идентифицировать удалённый хост, нужно указать его публичный ключ вместе с созданным интерфейсом WireGuard.
#
#\\--Настройка каждого MikroTik роутера:
# OFFICE-1
/interface/wireguard/peers
add allowed-address=192.168.0.0/24 endpoint-address=<inet_ip_OFFICE-1> endpoint-port=13232 interface=WireGuardTunel \
public-key="<public-key_OFFICE-2>"
# Настройте IP, маршрутизацию и firewall, чтобы разрешить трафику проходить через туннель.
/ip/address
add address=10.255.255.1/30 interface=WireGuardTunel
/ip/route
add dst-address=192.168.0.0/24 gateway=WireGuardTunel
/ip/firewall/filter
add action=accept chain=input comment="разрешить WireGuard" dst-port=13232 protocol=udp src-address=<inet_ip_OFFICE-1>
/ip/firewall/filter
add action=accept chain=forward comment="разрешить WireGuard" dst-address=192.168.2.0/24 src-address=192.168.0.0/24
add action=accept chain=forward comment="разрешить WireGuard" dst-address=192.168.0.0/24 src-address=192.168.2.0/24
#
# OFFICE-2
/interface/wireguard/peers
add allowed-address=192.168.2.0/24 endpoint-address=<inet_ip_OFFICE-2> endpoint-port=13232 interface=WireGuardTunel \
public-key="<public-key_OFFICE-1>"
# Настройте IP, маршрутизацию и firewall, чтобы разрешить трафику проходить через туннель.
/ip/address
add address=10.255.255.2/30 interface=WireGuardTunel
/ip/route
add dst-address=192.168.2.0/24 gateway=WireGuardTunel
/ip/firewall/filter
add action=accept chain=input comment="разрешить WireGuard" dst-port=13232 protocol=udp src-address=<inet_ip_OFFICE-2>
/ip/firewall/filter
add action=accept chain=forward comment="разрешить WireGuard" dst-address=192.168.0.0/24 src-address=192.168.2.0/24
add action=accept chain=forward comment="разрешить WireGuard" dst-address=192.168.2.0/24 src-address=192.168.0.0/24
#
# Рекомендации по firewall
# По умолчанию firewall RouterOS блокирует корректное создание туннеля.
# Трафик должен разрешаться в цепочке "input" до любых правил drop на обеих сторонах.
# Также возможно, что цепочка "forward" ограничивает связь между подсетями,
# поэтому такой трафик тоже надо разрешать до правил drop.
# Проверьте командой
/interface wireguard print
# на каждом роутере, чтобы убедиться, что интерфейс WireGuard работает.
Проверьте, пожалуйста, правильны ли инструкции. Что-то упустил?
OFFICE-1 LAN=192.168.2.0/24
OFFICE-2 LAN=192.168.0.0/24
inet_ip_OFFICE – Белый IP-адрес
# Интерфейсы WireGuard должны быть настроены на обеих сторонах для автоматической генерации ключей.
#
# \\--Команда, которую нужно выполнить на обоих роутерах:
#
/interface wireguard
add listen-port=13232 name=WireGuardTunel
/interface list member
add interface=WireGuardTunel list=LAN
# Или просто добавить интерфейс WireGuard в список интерфейсов "LAN".
#
/ip firewall filter
add action=accept chain=input comment="разрешить WireGuard" dst-port=13232 protocol=udp place-before=1
# Чтобы разрешить удалённым устройствам подключаться к сервисам RouterOS (например, DNS-запросы),
# разрешите подсеть WireGuard в цепочке input.
# ***
# При выводе информации об интерфейсе теперь должны отображаться и приватные, и публичные ключи для удобного обмена.
# Приватный ключ никогда не понадобится на удалённом устройстве — отсюда и название "приватный".
#
# OFFICE-1
/interface/wireguard print
Flags: X - отключён; R - запущен
0 R name="WireGuardTunel" mtu=1420 listen-port=13232 private-key="<private-key_OFFICE-1>"
public-key="<public-key_OFFICE-1>"
#
# OFFICE-2
/interface/wireguard/print
Flags: X - отключён; R - запущен
0 R name="WireGuardTunel" mtu=1420 listen-port=13232 private-key="<private-key_OFFICE-2>"
public-key="<public-key_OFFICE-2>"
#
# Конфигурация peer определяет, кто может использовать интерфейс WireGuard и какой трафик через него проходит.
# Чтобы идентифицировать удалённый хост, нужно указать его публичный ключ вместе с созданным интерфейсом WireGuard.
#
#\\--Настройка каждого MikroTik роутера:
# OFFICE-1
/interface/wireguard/peers
add allowed-address=192.168.0.0/24 endpoint-address=<inet_ip_OFFICE-1> endpoint-port=13232 interface=WireGuardTunel \
public-key="<public-key_OFFICE-2>"
# Настройте IP, маршрутизацию и firewall, чтобы разрешить трафику проходить через туннель.
/ip/address
add address=10.255.255.1/30 interface=WireGuardTunel
/ip/route
add dst-address=192.168.0.0/24 gateway=WireGuardTunel
/ip/firewall/filter
add action=accept chain=input comment="разрешить WireGuard" dst-port=13232 protocol=udp src-address=<inet_ip_OFFICE-1>
/ip/firewall/filter
add action=accept chain=forward comment="разрешить WireGuard" dst-address=192.168.2.0/24 src-address=192.168.0.0/24
add action=accept chain=forward comment="разрешить WireGuard" dst-address=192.168.0.0/24 src-address=192.168.2.0/24
#
# OFFICE-2
/interface/wireguard/peers
add allowed-address=192.168.2.0/24 endpoint-address=<inet_ip_OFFICE-2> endpoint-port=13232 interface=WireGuardTunel \
public-key="<public-key_OFFICE-1>"
# Настройте IP, маршрутизацию и firewall, чтобы разрешить трафику проходить через туннель.
/ip/address
add address=10.255.255.2/30 interface=WireGuardTunel
/ip/route
add dst-address=192.168.2.0/24 gateway=WireGuardTunel
/ip/firewall/filter
add action=accept chain=input comment="разрешить WireGuard" dst-port=13232 protocol=udp src-address=<inet_ip_OFFICE-2>
/ip/firewall/filter
add action=accept chain=forward comment="разрешить WireGuard" dst-address=192.168.0.0/24 src-address=192.168.2.0/24
add action=accept chain=forward comment="разрешить WireGuard" dst-address=192.168.2.0/24 src-address=192.168.0.0/24
#
# Рекомендации по firewall
# По умолчанию firewall RouterOS блокирует корректное создание туннеля.
# Трафик должен разрешаться в цепочке "input" до любых правил drop на обеих сторонах.
# Также возможно, что цепочка "forward" ограничивает связь между подсетями,
# поэтому такой трафик тоже надо разрешать до правил drop.
# Проверьте командой
/interface wireguard print
# на каждом роутере, чтобы убедиться, что интерфейс WireGuard работает.
Проверьте, пожалуйста, правильны ли инструкции. Что-то упустил?
