Обзор
Я потратил часы, чтобы настроить RouterOS для идеальной работы с NordVPN, и написал это руководство, чтобы вы не тратили своё время зря.
У вас должен быть RouterOS версии 6, минимальная версия — 6.45. В ROS7 некоторые шаги будут отличаться. Почти идентичная настройка возможна и с Surfshark. Смотрите здесь.
Чтобы обойти геоограничения (например, для BBC player, контента Netflix) и избежать утечек DNS, вы обязательно должны использовать DNS-серверы NordVPN.
Отказ от ответственности: я не тестировал, работает ли это. В приведённых ниже шагах используются шифры и уровни защиты, которые считаются «абсолютно безопасными», но NordVPN поддерживает более высокие уровни шифрования. Проверьте, какую аппаратную поддержку шифрования поддерживает ваш Mikrotik, и возможно, вместо указанных ниже настроек вы захотите использовать именно её.
P.S. Поддержка “SHA384 для первой фазы” появилась с версии 6.48 (возможно, только в CLI). Вместо уменьшения размера MSS командами ниже, это можно сделать через функциональность IPSEC. Инструкции здесь.
Подготовка
Получите рекомендуемый сервер NordVPN здесь. В примерах ниже я использовал “lv55.nordvpn.com”.
Получите свои учетные данные для сервиса здесь и используйте их для настройки.
Импортируйте сертификат CA NordVPN в ваш роутер:
/tool fetch url="https://downloads.nordcdn.com/certificates/root.der"
/certificate import file-name=root.der name="NordVPN CA" passphrase=""
Сценарий №1: Конкретный трафик (по источнику) идёт через VPN-сервер
Пример: вы хотите, чтобы в интернет через VPN выходили только 2 устройства локальной сети (192.168.88.10 и 192.168.88.11), а остальные устройства LAN выходили в интернет без VPN.
# Помечаем трафик, который надо пускать через VPN
/ip firewall address-list add address=192.168.88.10 list=under_nordvpn
/ip firewall address-list add address=192.168.88.11 list=under_nordvpn
/ip firewall mangle add action=mark-connection chain=prerouting src-address-list=under_nordvpn new-connection-mark=under_nordvpn passthrough=yes
# Конфигурация IPsec/IKEv2
/ip ipsec mode-config add connection-mark=under_nordvpn name="NordVPN mode config" responder=no
/ip ipsec policy group add name=NordVPN
/ip ipsec profile add dh-group=modp2048 enc-algorithm=aes-256 hash-algorithm=sha512 name="NordVPN profile"
/ip ipsec peer add address=lv55.nordvpn.com exchange-mode=ike2 name="NordVPN server" profile="NordVPN profile"
/ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc lifetime=0s name="NordVPN proposal" pfs-group=none
/ip ipsec identity add auth-method=eap certificate="NordVPN CA" eap-methods=eap-mschapv2 generate-policy=port-strict mode-config="NordVPN mode config" password=XXXXXXXXXX peer="NordVPN server" policy-template-group=NordVPN username=XXXXXXXXXX
/ip ipsec policy add dst-address=0.0.0.0/0 group=NordVPN proposal="NordVPN proposal" src-address=0.0.0.0/0 template=yes
# В разделе "/ip ipsec policy" должна появиться новая динамическая запись рядом с вашей политикой NordVPN. Она ОБЯЗАТЕЛЬНА. Без неё настройка не работает.
# (НЕОБЯЗАТЕЛЬНО) Настроить killswitch
/interface bridge add name=nordvpn_blackhole protocol-mode=none
/ip route add gateway=nordvpn_blackhole routing-mark=nordvpn_blackhole
/ip firewall mangle add chain=prerouting src-address-list=under_nordvpn action=mark-routing new-routing-mark=nordvpn_blackhole passthrough=yes
# Исключить VPN-трафик из fasttrack
/ip firewall filter add action=accept chain=forward connection-mark=under_nordvpn place-before=[find where action=fasttrack-connection]
# Уменьшить MSS (должно быть в районе 1200–1400, у меня сработало 1360)
/ip firewall mangle add action=change-mss chain=forward new-mss=1360 passthrough=yes protocol=tcp connection-mark=under_nordvpn tcp-flags=syn tcp-mss=!0-1360
Сценарий №2: Конкретный трафик (по назначению) идёт через VPN-сервер
Пример: вы хотите заходить на сайт wtfismyip.com через VPN, а остальной трафик пускаете напрямую (без VPN).
Примечание: Нельзя эффективно гонять через VPN весь трафик таких крупных сайтов, как Youtube, Netflix и т.д. У них много разных доменов и IP-адресов, которые постоянно меняются. Вместо этого прокидывайте через VPN весь трафик устройства.
Примечание 2: Можно направить через VPN весь корпоративный трафик, но тогда, если в компании используется популярный хостинг типа Amazon AWS или Linode, по IP NordVPN может пойти 30-40% сайтов с такими хостингами.
Например, Mikrotik.com резолвится в “159.148.147.196”. Быстрый поиск показал, что у Mikrotik есть собственный ASN с 512 IP. Если хотите получить доступ к сервисам/сайтам Mikrotik через NordVPN, следует добавить в адресный список диапазоны 159.148.147.0/24 и 159.148.172.0/24, используя именно этот (второй) метод.
# Помечаем трафик, который пускаем через VPN
/ip firewall address-list add address=wtfismyip.com list=under_nordvpn
/ip firewall mangle add action=mark-connection chain=prerouting dst-address-list=under_nordvpn new-connection-mark=under_nordvpn passthrough=yes
# Конфигурация IPsec/IKEv2
/ip ipsec mode-config add connection-mark=under_nordvpn name="NordVPN mode config" responder=no
/ip ipsec policy group add name=NordVPN
/ip ipsec profile add dh-group=modp2048 enc-algorithm=aes-256 hash-algorithm=sha512 name="NordVPN profile"
/ip ipsec peer add address=lv55.nordvpn.com exchange-mode=ike2 name="NordVPN server" profile="NordVPN profile"
/ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc lifetime=0s name="NordVPN proposal" pfs-group=none
/ip ipsec identity add auth-method=eap certificate="NordVPN CA" eap-methods=eap-mschapv2 generate-policy=port-strict mode-config="NordVPN mode config" password=XXXXXXXXXX peer="NordVPN server" policy-template-group=NordVPN username=XXXXXXXXXX
/ip ipsec policy add dst-address=0.0.0.0/0 group=NordVPN proposal="NordVPN proposal" src-address=0.0.0.0/0 template=yes
# В разделе "/ip ipsec policy" должна появиться новая динамическая запись рядом с вашей политикой NordVPN. Она ОБЯЗАТЕЛЬНА. Без неё настройка не работает.
# (НЕОБЯЗАТЕЛЬНО) Настроить killswitch
/interface bridge add name=nordvpn_blackhole protocol-mode=none
/ip route add gateway=nordvpn_blackhole routing-mark=nordvpn_blackhole
/ip firewall mangle add chain=prerouting dst-address-list=under_nordvpn action=mark-routing new-routing-mark=nordvpn_blackhole passthrough=yes
# Исключить VPN-трафик из fasttrack
/ip firewall filter add action=accept chain=forward connection-mark=under_nordvpn place-before=[find where action=fasttrack-connection]
# Уменьшить MSS (должно быть в районе 1200–1400, у меня сработало 1360)
/ip firewall mangle add action=change-mss chain=forward new-mss=1360 passthrough=yes protocol=tcp connection-mark=under_nordvpn tcp-flags=syn tcp-mss=!0-1360
Я потратил часы, чтобы настроить RouterOS для идеальной работы с NordVPN, и написал это руководство, чтобы вы не тратили своё время зря.
У вас должен быть RouterOS версии 6, минимальная версия — 6.45. В ROS7 некоторые шаги будут отличаться. Почти идентичная настройка возможна и с Surfshark. Смотрите здесь.
Чтобы обойти геоограничения (например, для BBC player, контента Netflix) и избежать утечек DNS, вы обязательно должны использовать DNS-серверы NordVPN.
Отказ от ответственности: я не тестировал, работает ли это. В приведённых ниже шагах используются шифры и уровни защиты, которые считаются «абсолютно безопасными», но NordVPN поддерживает более высокие уровни шифрования. Проверьте, какую аппаратную поддержку шифрования поддерживает ваш Mikrotik, и возможно, вместо указанных ниже настроек вы захотите использовать именно её.
P.S. Поддержка “SHA384 для первой фазы” появилась с версии 6.48 (возможно, только в CLI). Вместо уменьшения размера MSS командами ниже, это можно сделать через функциональность IPSEC. Инструкции здесь.
Подготовка
Получите рекомендуемый сервер NordVPN здесь. В примерах ниже я использовал “lv55.nordvpn.com”.
Получите свои учетные данные для сервиса здесь и используйте их для настройки.
Импортируйте сертификат CA NordVPN в ваш роутер:
/tool fetch url="https://downloads.nordcdn.com/certificates/root.der"
/certificate import file-name=root.der name="NordVPN CA" passphrase=""
Сценарий №1: Конкретный трафик (по источнику) идёт через VPN-сервер
Пример: вы хотите, чтобы в интернет через VPN выходили только 2 устройства локальной сети (192.168.88.10 и 192.168.88.11), а остальные устройства LAN выходили в интернет без VPN.
# Помечаем трафик, который надо пускать через VPN
/ip firewall address-list add address=192.168.88.10 list=under_nordvpn
/ip firewall address-list add address=192.168.88.11 list=under_nordvpn
/ip firewall mangle add action=mark-connection chain=prerouting src-address-list=under_nordvpn new-connection-mark=under_nordvpn passthrough=yes
# Конфигурация IPsec/IKEv2
/ip ipsec mode-config add connection-mark=under_nordvpn name="NordVPN mode config" responder=no
/ip ipsec policy group add name=NordVPN
/ip ipsec profile add dh-group=modp2048 enc-algorithm=aes-256 hash-algorithm=sha512 name="NordVPN profile"
/ip ipsec peer add address=lv55.nordvpn.com exchange-mode=ike2 name="NordVPN server" profile="NordVPN profile"
/ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc lifetime=0s name="NordVPN proposal" pfs-group=none
/ip ipsec identity add auth-method=eap certificate="NordVPN CA" eap-methods=eap-mschapv2 generate-policy=port-strict mode-config="NordVPN mode config" password=XXXXXXXXXX peer="NordVPN server" policy-template-group=NordVPN username=XXXXXXXXXX
/ip ipsec policy add dst-address=0.0.0.0/0 group=NordVPN proposal="NordVPN proposal" src-address=0.0.0.0/0 template=yes
# В разделе "/ip ipsec policy" должна появиться новая динамическая запись рядом с вашей политикой NordVPN. Она ОБЯЗАТЕЛЬНА. Без неё настройка не работает.
# (НЕОБЯЗАТЕЛЬНО) Настроить killswitch
/interface bridge add name=nordvpn_blackhole protocol-mode=none
/ip route add gateway=nordvpn_blackhole routing-mark=nordvpn_blackhole
/ip firewall mangle add chain=prerouting src-address-list=under_nordvpn action=mark-routing new-routing-mark=nordvpn_blackhole passthrough=yes
# Исключить VPN-трафик из fasttrack
/ip firewall filter add action=accept chain=forward connection-mark=under_nordvpn place-before=[find where action=fasttrack-connection]
# Уменьшить MSS (должно быть в районе 1200–1400, у меня сработало 1360)
/ip firewall mangle add action=change-mss chain=forward new-mss=1360 passthrough=yes protocol=tcp connection-mark=under_nordvpn tcp-flags=syn tcp-mss=!0-1360
Сценарий №2: Конкретный трафик (по назначению) идёт через VPN-сервер
Пример: вы хотите заходить на сайт wtfismyip.com через VPN, а остальной трафик пускаете напрямую (без VPN).
Примечание: Нельзя эффективно гонять через VPN весь трафик таких крупных сайтов, как Youtube, Netflix и т.д. У них много разных доменов и IP-адресов, которые постоянно меняются. Вместо этого прокидывайте через VPN весь трафик устройства.
Примечание 2: Можно направить через VPN весь корпоративный трафик, но тогда, если в компании используется популярный хостинг типа Amazon AWS или Linode, по IP NordVPN может пойти 30-40% сайтов с такими хостингами.
Например, Mikrotik.com резолвится в “159.148.147.196”. Быстрый поиск показал, что у Mikrotik есть собственный ASN с 512 IP. Если хотите получить доступ к сервисам/сайтам Mikrotik через NordVPN, следует добавить в адресный список диапазоны 159.148.147.0/24 и 159.148.172.0/24, используя именно этот (второй) метод.
# Помечаем трафик, который пускаем через VPN
/ip firewall address-list add address=wtfismyip.com list=under_nordvpn
/ip firewall mangle add action=mark-connection chain=prerouting dst-address-list=under_nordvpn new-connection-mark=under_nordvpn passthrough=yes
# Конфигурация IPsec/IKEv2
/ip ipsec mode-config add connection-mark=under_nordvpn name="NordVPN mode config" responder=no
/ip ipsec policy group add name=NordVPN
/ip ipsec profile add dh-group=modp2048 enc-algorithm=aes-256 hash-algorithm=sha512 name="NordVPN profile"
/ip ipsec peer add address=lv55.nordvpn.com exchange-mode=ike2 name="NordVPN server" profile="NordVPN profile"
/ip ipsec proposal add auth-algorithms=sha256 enc-algorithms=aes-256-cbc lifetime=0s name="NordVPN proposal" pfs-group=none
/ip ipsec identity add auth-method=eap certificate="NordVPN CA" eap-methods=eap-mschapv2 generate-policy=port-strict mode-config="NordVPN mode config" password=XXXXXXXXXX peer="NordVPN server" policy-template-group=NordVPN username=XXXXXXXXXX
/ip ipsec policy add dst-address=0.0.0.0/0 group=NordVPN proposal="NordVPN proposal" src-address=0.0.0.0/0 template=yes
# В разделе "/ip ipsec policy" должна появиться новая динамическая запись рядом с вашей политикой NordVPN. Она ОБЯЗАТЕЛЬНА. Без неё настройка не работает.
# (НЕОБЯЗАТЕЛЬНО) Настроить killswitch
/interface bridge add name=nordvpn_blackhole protocol-mode=none
/ip route add gateway=nordvpn_blackhole routing-mark=nordvpn_blackhole
/ip firewall mangle add chain=prerouting dst-address-list=under_nordvpn action=mark-routing new-routing-mark=nordvpn_blackhole passthrough=yes
# Исключить VPN-трафик из fasttrack
/ip firewall filter add action=accept chain=forward connection-mark=under_nordvpn place-before=[find where action=fasttrack-connection]
# Уменьшить MSS (должно быть в районе 1200–1400, у меня сработало 1360)
/ip firewall mangle add action=change-mss chain=forward new-mss=1360 passthrough=yes protocol=tcp connection-mark=under_nordvpn tcp-flags=syn tcp-mss=!0-1360
