Как настроить WireGuard VPN на MikroTik
Что даёт WireGuard на MikroTik
WireGuard - это современный быстрый VPN-протокол, встроенный в RouterOS 7. Настройка туннеля wireguard mikrotik позволяет удалённым сотрудникам, ноутбукам и телефонам безопасно подключаться к офисной сети, а также соединять две площадки между собой. Он потребляет меньше ресурсов процессора, чем IPsec или OpenVPN, мгновенно переподключается и достаточно компактен для аудита. В этом руководстве создаётся сервер типа road warrior, к которому подключается одно клиентское устройство.
Перед началом
- RouterOS 7.1 или новее. В RouterOS 6 WireGuard недоступен.
- Публичный IP-адрес или стабильное DNS-имя на WAN-интерфейсе маршрутизатора.
- WinBox, WebFig или SSH-терминал. Все команды ниже - CLI.
Шаг 1. Создайте интерфейс WireGuard
Маршрутизатор автоматически генерирует собственную пару ключей. Выберите UDP-порт и позже откройте его в брандмауэре.
/interface/wireguard add name=wg-vpn listen-port=51820 /interface/wireguard print
Вывод команды print показывает публичный ключ интерфейса. Скопируйте его; он понадобится клиенту.
Шаг 2. Задайте туннелю диапазон IP
Назначьте подсеть, которая не пересекается с вашей LAN. Здесь маршрутизатор - 10.10.0.1, а клиенты находятся в 10.10.0.0/24.
/ip/address add address=10.10.0.1/24 interface=wg-vpn
Шаг 3. Откройте брандмауэр
Разрешите UDP-порт WireGuard в цепочке input. Разместите это правило выше любых правил drop.
/ip/firewall/filter add chain=input protocol=udp dst-port=51820 \ action=accept comment="Allow WireGuard"
Шаг 4. Добавьте клиента как peer
Сначала сгенерируйте пару ключей на клиенте; приложение WireGuard делает это за вас. Вставьте его публичный ключ сюда и зарезервируйте один адрес в подсети туннеля.
/interface/wireguard/peers add interface=wg-vpn \ public-key="CLIENT_PUBLIC_KEY_HERE" \ allowed-address=10.10.0.2/32
Шаг 5. Дайте клиентам доступ в интернет и LAN
Для полного туннеля включите маскарадинг трафика, выходящего через WAN (здесь ether1), и убедитесь, что подсеть клиентов маршрутизируется в вашу LAN.
/ip/firewall/nat add chain=srcnat out-interface=ether1 \ src-address=10.10.0.0/24 action=masquerade
Шаг 6. Настройте клиента
На телефоне или ноутбуке создайте туннель с этими значениями. Endpoint - это публичный IP или DNS-имя вашего маршрутизатора и порт из шага 1.
[Interface] PrivateKey = CLIENT_PRIVATE_KEY Address = 10.10.0.2/32 DNS = 1.1.1.1 [Peer] PublicKey = ROUTER_PUBLIC_KEY Endpoint = vash-router.primer.ru:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 25
Задайте AllowedIPs только на вашу подсеть LAN (например, 192.168.88.0/24), если хотите раздельный туннель вместо маршрутизации всего трафика.
Устранение неполадок
- Нет рукопожатия (handshake): проверьте порядок правил брандмауэра и доступность UDP-порта снаружи.
- Рукопожатие есть, но трафика нет:
allowed-addressна маршрутизаторе иAllowedIPsна клиенте должны совпадать с IP-адресами туннеля. - За CGNAT: клиенту нужен
PersistentKeepalive, а маршрутизатору по-прежнему нужен доступный публичный адрес.
Итог
Создайте интерфейс, назначьте ему IP, откройте один UDP-порт, добавьте по одному peer на устройство и включите маскарадинг для полного туннеля. Держите каждое устройство на своём ключе и своей /32, чтобы отозвать доступ одному, не затрагивая остальные. CloudHosting предлагает виртуальные маршрутизаторы MikroTik CHR в дата-центре в Риге, если вы хотите построить это на размещённом маршрутизаторе, а не на локальном оборудовании.
Читайте дальше
Готовы начать?
Запустите за минуты или обсудите с инженером, что подходит вашему проекту.