[РЕШЕНО] Openvpn позади NAT



  • Всем доброго.
    Нужно прокинуть OpenVPN соединение на pfsense, расположенном за NAT.
    Есть два pfsense - один работает шлюзом в инет, второй отделяет технологические сети от интернета и от локальных.
    На втором я поднял OpenVPN сервер, повесил его на порт 1196, собрал inline-конфиг. Из локальной сети соединение устанавливается.
    На внешнем pfsense делаю NAT порта 1196 на адрес внутреннего pfsense. Разрешающее правило прописано.
    В логах OpenVPN:
    openvpn[8771]: TLS Error: cannot locate HMAC in incoming packet from a.b.c.d:port

    ну, и если вдруг не понятно попытаюсь нарисовать схему.

    INTERNET====>pfsense1(LAN - 192.168.1.1; NAT WAN:1196 ->192.168.1.2:1196)
                                                                  |
                                                  LAN(192.168.1.0/24)====>pfsense2(WAN - 192.168.1.2; LAN192.168.5.0/24)
                                                                                                   OpenVPN:1196

    Отказ от TLS  не предлагать, из-зи него весь огород и городится :)
    Такое вообще возможно? Или шифрованное соединение с PKI не маскарадится в принципе? Мож я чего недовкурил?



  • На внешнем pfsense делаю NAT порта 1196 на адрес внутреннего pfsense.

    Не NAT а Port Mapping.
    Nat маскирует исходящие адреса, а Port Mapping конечные.



  • Ну, тогда я бы придрался к слову "маскарадинг" - это уже я по привычке перевёл "устаканившееся" NAT в термин iptables.
    А так - маппинг внешних портов расположен в менюшке "NAT".
    Что делать? Все привыкли (с)
    А всё-таки, оно возможно, или рыть в другую сторону?



  • @Ave:

    Ну, тогда я бы придрался к слову "маскарадинг" - это уже я по привычке перевёл "устаканившееся" NAT в термин iptables.
    А так - маппинг внешних портов расположен в менюшке "NAT".
    Что делать? Все привыкли (с)
    А всё-таки, оно возможно, или рыть в другую сторону?

    Скриншоты правил снимут все недопонималки. А так пляшем только от Ваших слов.
    Я ведь не могу знать того, о чем Вы действительно думаете, когда пишете посты.

    • укажите что является шлюзом для pfSense 2.


  • Скорее всего у вас проблема в конфигах сервера\клиента . Вот похожая проблема - http://www.linux.org.ru/forum/admin/6798065. Проверяйте.
    P.s. Настройка с TLS (правда с пользовательской аутентификацией, но это можно пропустить) статья и видео -  http://blog.stefcho.eu/?p=492 и http://www.youtube.com/watch?v=odjviG-KDq8



  • Шлюзом для pfsense2 служит LAN pfsense1 - 192.168.1.1
    Картинку с правилами запостить я пока затруднюсь - не знаю где можно разместить без регистрации, а регаться нигде неохота.

    В разделе "NAT" закладка "Port Forwarding" добавляем правило:
    Interface - WAN;
    Proto - UDP;
    Source - any;
    Destination - WAN address;
    Destination port range - 1196;
    Redirect target IP - 192.168.1.2;
    Redirect target port - 1196;
    NAT reflection - Use system default.

    Подобными правилами проброшены внутрь сайт, почта и ещё кое-какие службы.
    В разделе "Rules" прописаны правила "TCP/UDP трафик с 192.168.1.2 ходит куда угодно, по каким угодно портам" и "ICMP трафик с 192.168.1.2 ходит куда угодно".

    Настраивалось всё в том числе и по мурзилке с видео. Из сети 192.168.1.0/24 всё замечательно работает. Не работает через проброшенный порт снаружи.

    Ещё раз уточню конечную цель мероприятия. Инженер из интернетиков должен подключиться к оборудованию в технологической сети по шифрованному каналу. Желательно, конечно, ему ещё и доступ в локалку закрыть, но это позже, пока соединение не устанавливается.



  • Прикрепите к посту в Additional Options

    С маппингом вроде все так, коннект присутствует. Возможна проблема с настройками сервер-клиента.
    Вот туториал по настройке на английском. Проверьте еще раз ключи на клиенте.



  • Повторюсь еще раз - это проблема настройки связки клиент-сервер. У вас правильно настроен проброс портов. Встречалось мнение (в англ. ветке) , что есть проблема с TLS (иногда). Его даже рекомендуют отключать. Как вариант - пробуйте без TLS. Если "заведётся" - делайте выводы.



  • При коннекте локально в логе всплывает такое:
    Aug 22 09:22:00 openvpn[27461]: 192.168.1.71:1194 WARNING: 'link-mtu' is used inconsistently, local='link-mtu 1562', remote='link-mtu 1558'
    Aug 22 09:22:00 openvpn[27461]: 192.168.1.71:1194 WARNING: 'mtu-dynamic' is present in local config but missing in remote config, local='mtu-dynamic'

    В "Advanced" я прописал
    push "route 192.168.5.0 255.255.255.0";tun-mtu 1500;fragment 1300;persist-key;
    Ситуация ровно та же самая.

    Подозреваю, что при пробросе порта добавляется ещё 4 байта (ну, когда пробрасывался ftp собственно на сервере пришлось выставить mtu=1496, иначе никак не пролезало).
    Как повлиять на ситуацию, если mtu у провайдера 1500 и mtu оборудования 1500 и не меняется?



  • @Ave:

    Подозреваю, что при пробросе порта добавляется ещё 4 байта (ну, когда пробрасывался ftp собственно на сервере пришлось выставить mtu=1496, иначе никак не пролезало).

    Это не при мапинге добавляется, а при инкапсуляции - 4 байта размер заголовка пакета.



  • Хорошо, а бороться как? Как выяснить подходящие параметры?
    Пытаюсь раскурить ман на счёт tun-mtu, link-mtu, fragment и mssfix. Тянется с трудом.



  • Скриншоты настроек OpenVPN покажите?



  • Вот, скриншоты настройки сервера.
    Опять же, повторюсь, из той сети, которая WAN для pfsense2 соединение прекрасно устанавливается. Так что ключи в порядке.
    А если в этом же файле заменить локальный IP 192.168.1.2 на внешний, и стукнуться снаружи, то будет
    TLS Error: cannot locate HMAC in incoming packet from a.b.c.d:port
    TLS вообще пробрасывается? Я что-то по RFC не смог понять, там адрес сервера в зашифрованном виде не передаётся? А то может в принципе нужно другое решение искать?






  • http://forum.pfsense.org/index.php/topic,29944.msg245287.html#msg245287
    Посмотрите про параметр keysize 128 / keysize 256.



  • Помогло, когда сделал assign на интерфейс ovpns1, указал там MTU 1492, MSS 1400.
    В настройках сервера - keysize 256, mtu-test.
    Всем спасибо.



  • Статус [РЕШЕНО] в теме добавьте , пож-та.


Locked