WireGuard — легкий и быстрый VPN c шифрованием, который отлично работает через NAT. Появился в RouterOS начиная с 7й бета-версии (актуальная на момент написания заметки — 7.10). С точки зрения клиентов со смартфонами на Android (сорян, любители яблофонов) основная прелесть заключается в том, что можно без root-прав выбрать приложения, которые будут использовать туннель, оставив остальным возможность ходить в мир через основной линк.
Приступим к настройке. Кликаем в меню на WireGuard и на первой вкладке добавляем новый интерфейс:
Менять не нужно ровным счетом ничего (разве что вы хотите использовать кастомный порт или название). После нажатия на ОК или Apply будет сгенерирована пара (публичный и приватный) ключей. Позже Public Key понадобится нам для настройки клиента на смартфоне.
Теперь в IP — Addresses назначим адрес и подсеть для WireGuard-интерфейса. В примере я использую 172.20.20.1/24 для интерфейса на Микротике, а пирам-клиентам буду назначать другие ip из той же подсети.
Отвлечемся от winbox и перейдем к установке клиента на смартфон. Переходим в Google Play \ Apple AppStore, находим и устанавливаем приложение WireGuard.
Открываем, создаем новый туннель и настраиваем подключение — указываем имя интерфейса, генерируем публичный и приватный ключи (публичный, сгенерированный на смартфоне, нужно будет указать пиру на микротике), в качестве адреса указываем ip из выбранной подсети (в примере — 172.20.20.2), а в качестве DNS — ip интерфейса WireGuard на Микротике. При необходимости — выбираем приложения, которые будут работать через туннель.
Далее добавляем пир (peer), в качестве публичного ключа указываем тот, который сгенерился на интерфейсе WireGuard в Микротике, конечная точка — публичный ip (или FQDN-имя) Микротика с портом интерфейса, а разрешенные адреса — подсети, которые будут открываться через туннель (в примере указан дефолтный 0.0.0.0/0).
Сохраняем, возвращаемся в Winbox. В WireGuard — Peers создаем новый пир, Public Key вставляем из настроек интерфейса мобильного приложения, в Allowed Address указываем назначаемый IP.
Осталось только открыть порт. В IP — FireWall — Filter создаем новое правило, разрешающее входящий UDP-трафик на порт интерфейса WireGuard:
Теперь можно включить туннель на мобильном устройстве.
Доброго дня! прошу подсказки, странная ситуация у меня получается, а может пока полностью не вьехал в логику работы WireGuard на Микротике. Ситуация такая: Имеется три устройства (смарт, планшет (оба на Андроиде) и ноутбук. Создаю интерфейс, создаю три пира, связываю с этим интерфейсом… В общем из трех устройств работает только последний добавленный в peers. Их можно переключать (активировать один другие пиры потушить) , одновременно три или даже два не работают. Работает только один из трех. Т.е. получается что с каждым устройством нужно создавать пару интерфейс-пир. Подскажите, может действительно где то не догоняю…
Все получилось, вся проблема скрывалась на сервере в каждом пире в строчке Allowed Address
Добрый день. А что конкретно исправили? Потому что столкнулся с такой же проблемой.
в поле Allowed address я прописываю адрес который присвоен клиенту, и внимание!!! вроде строчка должна выглядеть вот так (адрес для примера): 192.168.12.3/24 — все логично айпи и маска 255.255.255.0, а хрена с два! не работает! маску обязательносо ставить /32 и понеслась… все очнулось и заработало