В этой статье вы узнаете как быстро настроить WireGuard на MikroTik. Сразу хочу сказать, что такая возможность появилась только в RouterOS 7, поэтому если вы еще не обновились до нее, самое время это сделать.
Для некоторых, вопрос о переходе на RouterOS 7 может быть спорным. Если вы сомневаетесь, что после обновления у вас все будет работать нормально, лучше проведите предварительное тестирование. Лично у меня на MikroTik CCR обновление прошло спокойно, тунели, скрипты и все прочее работает без сбоев и проблем.
Итак, предполагается, что у вас уже есть WireGuard сервер. Процесс установки WireGuard на Ubuntu я описал в этой статье. Вам необходим конфиг подключения для клиента. Он создается вместе с QR-кодом при создании нового клиента WireGuard и имеет примерно такой вид:
[Interface]
PrivateKey = oLANp72uJp2W2uhyd5WmJWqZheYMXGHQfJY/SNbE6mU=
Address = 10.66.66.2/32,fd42:42:42::2/128
DNS = 1.1.1.1,1.0.0.1
[Peer]
PublicKey = pHqTm8RdG76P3W65lM7oN9HiggJrrC88r/lezCR0Ak8=
PresharedKey = gexI+cOQCKaPFl9eH26ebCLSO5ZfaRYEXrT1TPWNV+c=
Endpoint = 5.5.5.5:62085
AllowedIPs = 0.0.0.0/0,::/0
Здесь 5.5.5.5
– вымышленный IP сервера WireGuard.
Приступаем к настройке WireGuard на MikroTik.
Открываем раздел WireGuard
и добавляем новый интерфейс. Вписываем любое название интерфейса, к примеру vpn
и вставляем Private Key из раздела [Interface] конфига клиента WireGuard, т.е. в нашем примере это oLANp72uJp2W2uhyd5WmJWqZheYMXGHQfJY/SNbE6mU=
ВНИМАНИЕ: Private Key нужно вставлять сразу при создании интерфейса, нельзя делать этого потом, иначе у интерфейса будет сгенерирован не тот Public Key и туннель работать не будет.
Затем в IP->Addresses
создаем ip адрес для интерфейса, все данные есть в разделе [Interface] конфига клиента.
Затем включаем маскарадинг для интерфейса. Заходим в IP->Firewall->NAT
, добавляем правило:
- Chain: srcnat
- Out interface: vpn
- Action: masquerade
Затем создаем пира в WireGuard->Peers
и прописываем ему настройки из раздела [Peer] конфига клиента WireGuard.
Если ваш микротик находится за NAT, можно указать Persistent Keepalive секунд на 20-25.
На этом настройка завершена.
Список команд для терминала для тех же действий:
/interface wireguard add name=vpn private-key="oLANp72uJp2W2uhyd5WmJWqZheYMXGHQfJY/SNbE6mU="
/ip address add address=10.66.66.2/24 interface=vpn network=10.66.66.0
/ip firewall nat add action=masquerade chain=srcnat out-interface=vpn
/interface wireguard peers add allowed-address=0.0.0.0/0 endpoint-address=5.5.5.5 endpoint-port=62085 interface=vpn public-key="pHqTm8RdG76P3W65lM7oN9HiggJrrC88r/lezCR0Ak8=" preshared-key="gexI+cOQCKaPFl9eH26ebCLSO5ZfaRYEXrT1TPWNV+c="
Только не забудьте заменить параметры на свои.
Дальше вам остается только решить вопрос с маршрутизацией. Вы можете завернуть весь трафик в сторону нового интерфейса в IP->Routes
или заворачивать определенный трафик по маркировке. Если вы хотите узнать, как маршрутизировать через vpn определенные сайты или подсети, я пару лет назад писал об этом в статье про обход блокировки.