====== Настройка VPN на роутере MikroTik с использованием WireGuard ====== --- //[[winogradov@list.ru|lonebuddha]] 2023/05/14 06:53// ===== Задача ===== Настроить VPN туннель на роутере MikroTik под упрравлением RouterOS для перенаправления части/всего трафика локальной сети через туннель. ===== Исходные данные ===== * Роутер MikroTik под упрравлением RouterOS * Использование протокола WireGuard ===== Вместо вступления ===== В internet участились ситуации блокировок доступа к ресурсам для Российского пула IP адресов. Одно из возможных решений проблемы это использование технологии VPN скрытия реального IP адреса. Для реализвции необходим VPN сервер имеющий IP адреса не попадающие в заблокированные пулы, то есть реально расположенный в заграничных датацентрах, и предоставлюющий возможность подключения по протоколу WireGuard. Первоначально необходимо убедиться, что Ваше устройство поддерживает протокол WireGuard. Поддержка протокола WireGuard появилась в RouterOS с версии 7. Если необходимо [[MikroTik:Update|обновите Вапше устройство]] ===== Необходимая для настройки информация ===== Всю необходтиую для настройки информацию можно получить на VPN сервере, после регистрации, а именно - Приватный ключ клиента (Private User key) - IP адрес клиентской стороны туннеля (IP tunnel) - IP адрес или dns имя сервера (Endpoint) - Порт сервера (Endpoint Port) - Пудличный ключ сервера (Public Server key) ===== Настройка MikroTik ===== ==== Создание интерфейса WireGuard ==== /interface wireguard add listen-port= mtu=1420 name=wireguard-test private-key="" ==== Создание настроек подключения к серверу ==== /interface wireguard peers add allowed-address=0.0.0.0/0 endpoint-address= endpoint-port= \ interface=wireguard-test public-key="" ==== Настройка IP адреса WireGuard интерфейса ==== /ip address add address= interface=wireguard-test ==== Создание списка клиентов для использования VPN ==== /ip firewall address-list add address= list=ip-to-vpn add address=192.168.0.0/16 list=privat-ip add address=172.16.0.0/12 list=privat-ip add address=10.0.0.0/8 list=privat-ip К качесве ip может быть адрес одного компютера или адрес подсети ==== Создание таблицы маршрутизации ==== /routing table add disabled=no fib name=vpn ==== Модификация NSS ==== /ip firewall mangle add action=change-mss chain=forward comment="Modification MSS" new-mss=clamp-to-pmtu passthrough=yes \ protocol=tcp tcp-flags=syn ==== Маркировка трафика ==== /ip firewall mangle add action=mark-routing chain=prerouting comment="Mark trafic to VPN" dst-address-list=!privat-ip \ new-routing-mark=vpn passthrough=no src-address-list=ip-to-vpn * переменная new-routing-mark указывает на созданную таблицу маршрутизации * переменная src-address-list указывает на созданный списк клиентов для использования VPN * переменная dst-address-list указывает на инвертный список приватных сетей, исключая из направляемого в VPN трафика локальный трафик ==== Создание маршрута ==== /ip route add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=wireguard-surfshark pref-src="" routing-table=vpn \ scope=30 suppress-hw-offload=no target-scope=10 * переменная gateway указывает на созданный WireGuard интерфейс * переменная routing-table указывает на созданную таблицу маршрутизации {{tag>mikrotik RouterOS VPN WireGuard}} Информация взята [[https://www.youtube.com/watch?v=4rRZGcQM07U]]