Оригинал статьиДанная статья была позаимствована с сайта Кибер Лис. Текст был отредактирован и отформатирован с помощью нейросети Grok v3 Ссылка на оригинал от 17.08.2023
Данная инструкция подробно описывает настройку WireGuard клиента на Mikrotik RouterOS для полного и частичного туннелирования трафика через WireGuard VPN. В примере используется RouterOS 7.5 с заводскими настройками и сторонним сервером WireGuard.
Подготовка к настройке WireGuard: Обновление RouterOS
WireGuard поддерживается в Mikrotik начиная с RouterOS версии 7. Если у вас установлена RouterOS 6, необходимо обновить её до последней стабильной версии, а затем до RouterOS 7. Если RouterOS 7 уже установлена, переходите к следующему разделу.
Подключитесь к роутеру Mikrotik через WinBox или веб-интерфейс (IP по умолчанию: 192.168.88.1). Для стабильности подключения используйте MAC-адрес.
В меню выберите System → Packages.
Нажмите Check For Updates для проверки доступных обновлений.
Выберите Channel: stable и нажмите Download&Install.
Дождитесь завершения установки и перезагрузки роутера.
Для перехода на RouterOS 7 выберите Channel: upgrade и нажмите Download&Install.
Дождитесь завершения установки и перезагрузки.
Перейдите в System → RouterBOARD и нажмите Upgrade.
Перезагрузите роутер.
Теперь ваша система обновлена до RouterOS 7, и вы можете приступить к настройке WireGuard.
Настройка WireGuard VPN клиента
Инструкция охватывает настройку WireGuard клиента для полного туннелирования (раздел 2.4.А) и выборочного туннелирования (раздел 2.4.Б) с использованием маркировки пакетов через Firewall-Mangle, Firewall-Address Lists и маршрутов в IP-Routes. В примере используется VPS с DWG, но инструкция применима и для других серверов WireGuard.
2.1. Отключение Fasttrack
Fasttrack снижает нагрузку на процессор, но мешает обработке VPN-трафика. Его необходимо отключить.
Перейдите в IP → Firewall → вкладка Filter Rules.
Отключите правило Fasttrack.
2.2. Создание интерфейса WireGuard и конфигурации Peer
В меню выберите WireGuard и нажмите +.
Укажите MTU (по умолчанию 1420), Listen Port и Private Key из конфигурации сервера WireGuard. Нажмите OK.
Интерфейс WireGuard создан.
Перейдите во вкладку Peers и нажмите +.
Выберите созданный интерфейс, заполните Public Key, Endpoint, Endpoint Port, Preshared Key из конфигурации сервера. Укажите Allowed Address: 0.0.0.0/0 для доступа ко всем подсетям.
Добавьте внутренний IP клиента:
- Перейдите в IP → Addresses → +.
- Укажите Address (IP клиента из конфигурации), Network (то же, но последняя цифра 0), Interface (WireGuard).
2.3. Создание таблицы маршрутизации
Для маршрутов WireGuard создайте пользовательскую таблицу маршрутизации:
Перейдите в Routing → Tables → +.
Укажите Name: wg_mark, включите опцию FIB. Нажмите OK.
2.4. Настройка туннелирования
2.4.А. Полное туннелирование
Для полного туннелирования весь трафик устройств в локальной сети направляется через VPN.
Перейдите в IP → Firewall → Address Lists → +.
Укажите Name: full_wg, Address: 192.168.88.0/24 (локальная сеть роутера). Нажмите OK.
Создайте правило маркировки:
- Перейдите в IP → Firewall → Mangle → +.
- Укажите:
- Chain: prerouting
- Src Address List: full_wg
- Action: mark routing
- New Routing Mark: wg_mark
- Нажмите OK.
2.4.Б. Выборочное туннелирование
Для выборочного туннелирования укажите сайты или IP, которые будут использовать VPN.
Перейдите в IP → Firewall → Address Lists → +.
Укажите Name: rkn_wg, Address: имя сайта (например, 2ip.ru) или его IP. Нажмите OK.
Для дополнительных сайтов используйте тот же Name: rkn_wg, но указывайте другие адреса.
Создайте правило маркировки:
- Перейдите в IP → Firewall → Mangle → +.
- Укажите:
- Chain: prerouting
- Dst Address List: rkn_wg
- Action: mark routing
- New Routing Mark: wg_mark
- Нажмите OK.
Примечания:
- Проверьте VPN на 2ip.ru — должен отобразиться IP сервера. На whoer.net отобразится ваш реальный IP.
- Если сайт не открывается, добавьте два адреса: с www (www.домен.com) и без (домен.com).
- Если Mikrotik некорректно определяет IP сайтов, измените DNS в IP → DNS (например, на 8.8.8.8 или DNS сервера WireHole).
2.5. Создание маршрута для WireGuard
Перейдите в IP → Routes → +.
Укажите:
- Gateway: wireguard1 (имя интерфейса WireGuard)
- Distance: 1
- Routing Table: wg_mark
Нажмите OK.
Понизьте приоритет DHCP-клиента:
- Перейдите в IP → DHCP Client.
- Выберите запись, измените Add Default Route на Special Classless, установите Default Route Distance: 2 (вкладка Advanced).
2.6. Настройка NAT для WireGuard
Перейдите в IP → Firewall → Nat → +.
Укажите:
- Chain: srcnat
- Out. Interface: wireguard1
- Action: masquerade
Нажмите OK.
Настройка завершена. Проверьте соединение на 2ip.ru или whoer.net.
Смена DNS провайдера
Перейдите в IP → DHCP Server → Networks.
Выберите запись, измените DNS Servers:
- Для голого WireGuard: 8.8.8.8, 8.8.4.4
- Для WireHole: 10.2.0.100 (или 10.6.0.1)
- Для DNS Proxy: IP вашего DNS-сервера
Исправление MTU для WireGuard
Если сайты загружаются медленно или не открываются, настройте MTU:
Откройте New Terminal.
Выполните команду:
/ip firewall mangle add action=change-mss chain=forward new-mss=clamp-to-pmtu out-interface=wireguard1 protocol=tcp tcp-flags=syn
Перезагрузите роутер через System → Reboot или командой
/system reboot
.
Правило появится в IP → Firewall → Mangle:
VPN-туннель в локальную сеть
Настройте доступ к локальной сети Mikrotik через WireGuard из внешней сети.
Для голого WireGuard
В файле
wg0.conf
на VPS:Удалите локальный интерфейс (например,
-o eth0
) из правил PostUp и PostDown.В разделе Peer для Mikrotik добавьте локальную сеть (например, 192.168.88.0/24) в AllowedIPs.
Сохраните изменения и перезапустите WireGuard.
Для WireHole
Отредактируйте
server.conf
в папкеwirehole/wireguard/templates
:- Измените PostUp и PostDown аналогично голому WireGuard.
- Добавьте конфигурацию Peer для Mikrotik в конец файла (скопируйте из
wirehole/wireguard/peer_mikrotik
). - Удалите папку
wirehole/wireguard/peer_mikrotik
.
Удалите Peer Mikrotik из
docker-compose.yml
.Перезапустите Docker:
cd wirehole && docker-compose up
.
Рекомендация: В docker-compose.yml
указывайте имена Peer (например, PEERS=DELL,OP8T,XXXXXXX,mikrotik
).
Общие настройки
В Interfaces → Interface Lists добавьте интерфейс
wireguard1
в список LAN для корректной работы правила Firewall defconf: drop all not coming from LAN.
Отмена внесённых изменений
Если необходимо отменить настройки WireGuard, выполните следующие шаги:
Удаление интерфейса WireGuard:
- Перейдите в WireGuard, выберите интерфейс (например,
wireguard1
) и нажмите - для удаления. - Удалите связанные конфигурации в Peers.
- Перейдите в WireGuard, выберите интерфейс (например,
Удаление маршрутов и таблиц:
- В IP → Routes удалите маршрут с Routing Table: wg_mark.
- В Routing → Tables удалите таблицу
wg_mark
.
Удаление правил Mangle и Address Lists:
- В IP → Firewall → Mangle удалите правила с New Routing Mark: wg_mark.
- В IP → Firewall → Address Lists удалите списки
full_wg
иrkn_wg
.
Удаление NAT-правила:
- В IP → Firewall → Nat удалите правило с Out. Interface: wireguard1 и Action: masquerade.
Восстановление Fasttrack:
- В IP → Firewall → Filter Rules включите правило Fasttrack.
Восстановление DHCP-клиента:
- В IP → DHCP Client измените Add Default Route на Yes и Default Route Distance на 1.
Удаление MTU-правила (если применялось):
- В IP → Firewall → Mangle удалите правило с action=change-mss и out-interface=wireguard1.
Перезагрузка роутера:
- Выполните System → Reboot или команду
/system reboot
.
- Выполните System → Reboot или команду
После выполнения этих шагов все изменения, связанные с WireGuard, будут отменены, и роутер вернётся к исходным настройкам.