Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

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

    Scheduled Pinned Locked Moved Russian
    16 Posts 3 Posters 15.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      Ave Alex
      last edited by

      Всем доброго.
      Нужно прокинуть 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 не маскарадится в принципе? Мож я чего недовкурил?

      1 Reply Last reply Reply Quote 0
      • D
        dvserg
        last edited by

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

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

        SquidGuardDoc EN  RU Tutorial
        Localization ru_PFSense

        1 Reply Last reply Reply Quote 0
        • A
          Ave Alex
          last edited by

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

          1 Reply Last reply Reply Quote 0
          • D
            dvserg
            last edited by

            @Ave:

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

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

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

            SquidGuardDoc EN  RU Tutorial
            Localization ru_PFSense

            1 Reply Last reply Reply Quote 0
            • werterW
              werter
              last edited by

              Скорее всего у вас проблема в конфигах сервера\клиента . Вот похожая проблема - 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

              1 Reply Last reply Reply Quote 0
              • A
                Ave Alex
                last edited by

                Шлюзом для 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 всё замечательно работает. Не работает через проброшенный порт снаружи.

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

                1 Reply Last reply Reply Quote 0
                • D
                  dvserg
                  last edited by

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

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

                  SquidGuardDoc EN  RU Tutorial
                  Localization ru_PFSense

                  1 Reply Last reply Reply Quote 0
                  • werterW
                    werter
                    last edited by

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

                    1 Reply Last reply Reply Quote 0
                    • A
                      Ave Alex
                      last edited by

                      При коннекте локально в логе всплывает такое:
                      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 и не меняется?

                      1 Reply Last reply Reply Quote 0
                      • D
                        dvserg
                        last edited by

                        @Ave:

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

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

                        SquidGuardDoc EN  RU Tutorial
                        Localization ru_PFSense

                        1 Reply Last reply Reply Quote 0
                        • A
                          Ave Alex
                          last edited by

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

                          1 Reply Last reply Reply Quote 0
                          • D
                            dvserg
                            last edited by

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

                            SquidGuardDoc EN  RU Tutorial
                            Localization ru_PFSense

                            1 Reply Last reply Reply Quote 0
                            • A
                              Ave Alex
                              last edited by

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

                              screen1.PNG
                              screen1.PNG_thumb
                              screen2.PNG
                              screen2.PNG_thumb

                              1 Reply Last reply Reply Quote 0
                              • D
                                dvserg
                                last edited by

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

                                SquidGuardDoc EN  RU Tutorial
                                Localization ru_PFSense

                                1 Reply Last reply Reply Quote 0
                                • A
                                  Ave Alex
                                  last edited by

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

                                  1 Reply Last reply Reply Quote 0
                                  • werterW
                                    werter
                                    last edited by

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

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post
                                    Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.