WireGuard на Mikrotik и клиенты со смартфонами

WireGuard на Mikrotik и клиенты со смартфонами

WireGuard — легкий и быстрый VPN c шифрованием, который отлично работает через NAT. Появился в RouterOS начиная с 7й бета-версии (актуальная на момент написания заметки — 7.10).

С точки зрения клиентов со смартфонами на Android (сорян, любители яблофонов) основная прелесть заключается в том, что можно без root-прав выбрать приложения, которые будут использовать туннель, оставив остальным возможность ходить в мир через основной линк.

Приступим к настройке. Кликаем в меню на WireGuard и на первой вкладке добавляем новый интерфейс:

mikrotik-wireguard1

Менять не нужно ровным счетом ничего (разве что вы хотите использовать кастомный порт или название). После нажатия на ОК или Apply будет сгенерирована пара (публичный и приватный) ключей. Позже Public Key понадобится нам для настройки клиента на смартфоне.

Теперь в IP - Addresses назначим адрес и подсеть для WireGuard-интерфейса. В примере я использую 172.20.20.1/24 для интерфейса на Микротике, а пирам-клиентам буду назначать другие ip из той же подсети.

mikrotik-wireguard2

Отвлечемся от winbox и перейдем к установке клиента на смартфон. Переходим в Google Play \ Apple AppStore, находим и устанавливаем приложение WireGuard.

mikrotik-wireguard3

Открываем, создаем новый туннель и настраиваем подключение — указываем имя интерфейса, генерируем публичный и приватный ключи (публичный, сгенерированный на смартфоне, нужно будет указать пиру на микротике), в качестве адреса указываем ip из выбранной подсети (в примере — 172.20.20.2), а в качестве DNS — ip интерфейса WireGuard на Микротике. При необходимости — выбираем приложения, которые будут работать через туннель.

mikrotik-wireguard4

Далее добавляем пир (peer), в качестве публичного ключа указываем тот, который сгенерился на интерфейсе WireGuard в Микротике, конечная точка — публичный ip (или FQDN-имя) Микротика с портом интерфейса, а разрешенные адреса — подсети, которые будут открываться через туннель (в примере указан дефолтный 0.0.0.0/0).

mikrotik-wireguard5

Сохраняем, возвращаемся в Winbox. В WireGuard - Peers создаем новый пир, Public Key вставляем из настроек интерфейса мобильного приложения, в Allowed Address указываем назначаемый IP.
Если что-то не заработает - попробуйте в Allowed Address дополнительно указать маску - 170.20.20.2/24

mikrotik-weriguard6

Осталось только открыть порт. В IP - FireWall - Filter создаем новое правило, разрешающее входящий UDP-трафик на порт интерфейса WireGuard:

mikrotik-wireguard7

Теперь можно включить туннель на мобильном устройстве.