Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    RouterOS
    NordVPN (IPSEC/IKEv2) + killswitch (для ROS6)

    NordVPN (IPSEC/IKEv2) + killswitch (для ROS6)

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    NordVPN (IPSEC/IKEv2) + killswitch (для ROS6), RouterOS
     
    erkexzcx
    Guest
    #1
    0
    20.11.2020 00:51:00
    Обзор  
    Я потратил часы, чтобы настроить 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
     
     
     
    ztx
    Guest
    #2
    0
    24.12.2020 04:56:00
    В случае использования сценария №2, как отключить сайты вроде youtube.com, которые работают с несколькими IP-адресами?
     
     
     
    erkexzcx
    Guest
    #3
    0
    24.12.2020 10:55:00
    Вы не можете, потому что: Важно: Вы не сможете эффективно направить весь трафик Youtube, Netflix или любых других больших сайтов через VPN. У них множество разных доменов и IP-адресов, которые постоянно меняются. Вместо этого направьте весь трафик вашего устройства через VPN. Я обновил эти шаги и добавил приведённое выше замечание. Чтобы добиться результата, вам нужно направить весь трафик вашего устройства через VPN. Посмотрите второй способ ещё раз для обновлённых шагов.
     
     
     
    ztx
    Guest
    #4
    0
    24.12.2020 11:24:00
    Спасибо!
     
     
     
    starleaf
    Guest
    #5
    0
    24.12.2020 19:03:00
    Привет, у меня небольшая проблема с настройкой работы с несколькими VLAN. Я попробовал кое-какие изменения, но немного запутался, поэтому хотелось бы услышать ваши советы. Если я правильно понимаю поток пакетов, это не должно работать, но тем не менее оно работает. По крайней мере, я так думаю, ведь я получаю нужный результат. Но, как видно ниже, я добавил кое-что ещё. В оригинальной версии вы не сможете достучаться до других VLAN.

    /ip firewall mangle  
    add action=mark-connection chain=postrouting new-connection-mark=under_vpn out-interface-list=!ALL_LAN passthrough=yes src-address-list=HOST-NeedVPN  
    add action=change-mss chain=forward connection-mark=under_vpn new-mss=1360 passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=!0-1360  
    add action=mark-routing chain=prerouting connection-mark=under_vpn new-routing-mark=to_vpn passthrough=yes src-address-list=HOST-NeedVPN  

    Но что меня сбивает с толку — это то, что я могу делать маркировку в postrouting и использовать её в prerouting. Это работает только для IKEv2/IPsec? Или может быть это вообще не должно работать, но, как мне кажется, работает, потому что я получаю ожидаемый результат, даже когда туннель не активен. (Я только начал работать с Mikrotik, и мне честно не очень нравится, когда что-то просто работает, а я понятия не имею как и почему.)
     
     
     
    Sob
    Guest
    #6
    0
    24.12.2020 21:56:00
    Это killswitch, он влияет на все пакеты от хостов, перечисленных в списке «under_vpn», включая пакеты к другим локальным подсетям. Твоя модификация немного ломает killswitch, потому что теперь он работает только для пакетов с connection-mark=under_vpn, а ты устанавливаешь этот маркер только при выходе первого пакета, так что только последующие будут затронуты, то есть первый пакет просочится наружу, если VPN упадёт. Это также отвечает на твой вопрос, как маркер, установленный в postrouting, может работать в prerouting. Может, но не для того же пакета. Connection marks устроены так: маршрутизатор автоматически определяет пакеты, относящиеся к одному и тому же соединению, и присваивает им connection mark (который отличается от packet marks и routing marks). Ты же хочешь, чтобы killswitch всегда работал, но исключал локальные подсети. Один из способов — добавить dst-address-list=! к нему. Другой — использовать маршрутизирующие правила:

    /ip route rule  
    add action=lookup-only-in-table dst-address=<local subnet 1> table=main  
    add action=lookup-only-in-table dst-address=<local subnet 2> table=main  
    ...

    Я предпочитаю второй вариант, потому что он помогает и с другими задачами. Например, если ты будешь делать hairpin NAT к внутреннему серверу, то этот вариант сработает, а первый — нет (без дополнительных изменений).
     
     
     
    starleaf
    Guest
    #7
    0
    25.12.2020 08:41:00
    Большое спасибо за разъяснение и решение. Всё отлично сработало, я использовал правила маршрутизатора с суммаризацией.
     
     
     
    msatter
    Guest
    #8
    0
    26.12.2020 09:40:00
    В использовании встречается такая строка, которая устарела, если делать это напрямую в IPSEC Policy. Вот эта строка в mangle:  
    # Снижение MSS (должно быть примерно 1200–1400, но у меня сработало 1360)  
    /ip firewall mangle add action=change-mss chain=forward new-mss=1360 passthrough=yes protocol=tcp src-address-list=under_vpn tcp-flags=syn tcp-mss=!0-1360  
    Мой пост об этом, а решала проблему Sindy: http://forum.mikrotik.com/t/sector-writes-growing/160/1

    /ip ipsec policy  
    move *ffffff destination=0  
    add action=none dst-address=192.168.88.0/24 src-address=0.0.0.0/0 place-before=1

    Первую строку я думаю уже не нужно использовать, потому что она всегда будет на самом верху в политике. Здесь я использовал внутреннюю сеть 192.168.88.0/24, и вам нужно подстроить её под ту внутреннюю сеть, которую вы используете для подключения к маршрутизатору с IKEv2. Кроме того, NordVPN и другие провайдеры позволяют использовать SHA384 в профилях, что даёт более высокий уровень шифрования на первом этапе подключения.
     
     
     
    erkexzcx
    Guest
    #9
    0
    26.12.2020 16:13:00
    @msatter — спасибо за твой отзыв. На самом деле я не вижу в этом улучшения моего руководства. Да, это работает, но использовать простое правило mangle — более динамичный способ управлять VPN-трафиком. Например, в списке адресов я указал домен, который разрешается роутером Mikrotik. Если он обновится, то весь трафик тоже автоматически пойдёт через VPN. С ipsec-политиками такого не будет — их придётся обновлять вручную. Может, я что-то упускаю? Ещё NordVPN и другие позволяют использовать SHA384 в профилях, что даёт более высокий уровень шифрования на первом этапе соединения. Я слышал об этом, но официальной поддержки, судя по всему, нет. Думаю, SHA256 пока достаточно, но каждый пользователь может при желании повысить уровень защиты.
     
     
     
    msatter
    Guest
    #10
    0
    26.12.2020 17:55:00
    Это нужно для синхронизации, и RouterOS не знает, куда отправлять возвращающиеся пакеты. Теперь эти пакеты отправляются туда, где их ждут, и происходит обработка для снижения MTU до тех пор, пока запросы «пожалуйста, снизьте MTU» больше не приходят. IKEv2/IPsec значительно повышает безопасность и конфиденциальность пользователей, используя сильные криптографические алгоритмы и ключи. NordVPN применяет NGE (Next Generation Encryption) в IKEv2/IPsec. Для генерации ключей Phase1 используются шифры AES-256-GCM для шифрования, вместе с SHA2-384 для обеспечения целостности и в сочетании с PFS (Perfect Forward Secrecy) с 3072-битными ключами Диффи-Хеллмана. Затем IPsec защищает туннель между клиентом и сервером, используя мощный AES-256. Этот протокол обеспечивает пользователю спокойствие благодаря безопасности, стабильности и скорости. Поэтому NordVPN настоятельно рекомендует его и использует по умолчанию в своих приложениях для iOS и macOS. Источник: https://support.nordvpn.com/FAQ/1047408592/Which-protocol-should-I-choose.htm

    RouterOS не поддерживает AES-256-GCM, поэтому это невозможно. Обновление: мой роутер тоже умеет CGM, но большинство других — нет, и никаких упоминаний про SHA384.

    Релизные заметки последней стабильной версии 6.48:  
    *) ipsec — добавлена поддержка алгоритма хэширования SHA384 для phase 1

    Обновление 2: NordVPN также поддерживает DH19 — ecp256  
    /ip ipsec profile add name="NordVPN" hash-algorithm=sha384 enc-algorithm=aes-256 dh-group=ecp256,modp3072
     
     
     
    erkexzcx
    Guest
    #11
    0
    27.12.2020 15:15:00
    Спасибо всем за ваши отзывы! Я обновил инструкции соответственно.
     
     
     
    mclarencar
    Guest
    #12
    0
    03.01.2021 23:41:00
    Рад, что нашёл это руководство. Просто хотел сказать спасибо!
     
     
     
    yo3gjc
    Guest
    #13
    0
    07.01.2021 17:51:00
    Отлично работает на Windows, но всё ещё возникают проблемы с Android-устройствами при TCP MSS 1360. Кто-нибудь знает, как угадать оптимальный размер? Спасибо и с Новым годом! ОБНОВЛЕНИЕ: обновился до версии 6.48 (релиз 22 декабря 2020) и протестировал снова с Android. Теперь всё работает, раньше загрузка на Android была почти нулевой.
     
     
     
    DOMIN
    Guest
    #14
    0
    13.01.2021 18:43:00
    Пожалуйста, подскажите, как правильно сделать переадресацию порта, например, для торрента в этой конфигурации?
     
     
     
    erkexzcx
    Guest
    #15
    0
    15.01.2021 22:47:00
    Как это вообще связано с этой темой? Зачем тебе проброс портов для… торрентов?
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры