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

    PfSense OpenVPN Server + Linux-client

    Scheduled Pinned Locked Moved Russian
    76 Posts 5 Posters 15.7k 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.
    • E
      Electricshock
      last edited by

      Имеем pfSense, на нём OpenVPN сервер (Remote Access TLS/SSL). Имеем клиента на CentOS, он подключен к серверу (tun0-интерфейс) всё ок, пингует, видит. А вот машинки за этим шлюзом на CentOS не видят и не пингуют "серверную" сетку, хотя вроде все правила не запрещают это. Куда копать? Читал, что вроде как нужно уйти с "tun" на "tap", если это шлюз, за которым будут "жить" клиенты, так ли это?
      P.S. почему-то на "tap'ax" не работает туннель, т.е. он устанавливается, но пинги не ходят…
      Маршруты на клиентском CentOS (шлюзе)

      
      [root@server log]# route -n
      Kernel IP routing table
      Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
      inet_ip            0.0.0.0         255.255.255.252 U     0      0        0 eth0
      192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth3
      10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 tun0
      192.168.0.0     10.10.10.1      255.255.240.0   UG    0      0        0 tun0
      169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
      169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth3
      0.0.0.0         inet_gateway   0.0.0.0         UG    0      0        0 eth0
      

      Т.е. исходя из этого видно, что сервер "знает" о туннельной сети 192.168.0.0/20 и видит/пингует её, всё ок.

      Вот маршруты клиента на Win 7 за этим CentOS сервером:

      C:\Users\ПК>route print
      ===========================================================================
      Список интерфейсов
       11...bc 5f f4 60 70 e7 ......Realtek PCIe GBE Family Controller
        1...........................Software Loopback Interface 1
       12...00 00 00 00 00 00 00 e0 Адаптер Microsoft ISATAP
       13...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
      ===========================================================================
      
      IPv4 таблица маршрута
      ===========================================================================
      Активные маршруты:
      Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
                0.0.0.0          0.0.0.0    192.168.100.1   192.168.100.82     10
              127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
              127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
        127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
          192.168.100.0    255.255.255.0         On-link    192.168.100.82    266
         192.168.100.82  255.255.255.255         On-link    192.168.100.82    266
        192.168.100.255  255.255.255.255         On-link    192.168.100.82    266
              224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
              224.0.0.0        240.0.0.0         On-link    192.168.100.82    266
        255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
        255.255.255.255  255.255.255.255         On-link    192.168.100.82    266
      ===========================================================================
      Постоянные маршруты:
        Отсутствует
      
      IPv6 таблица маршрута
      ===========================================================================
      Активные маршруты:
       Метрика   Сетевой адрес            Шлюз
        1    306 ::1/128                  On-link
       11    266 fe80::/64                On-link
       11    266 fe80::959a:37c9:fa8a:3744/128
                                          On-link
        1    306 ff00::/8                 On-link
       11    266 ff00::/8                 On-link
      ===========================================================================
      Постоянные маршруты:
        Отсутствует
      
      C:\Users\ПК>
      
      

      И при пинге с клиента хоста за туннелем, например

      C:\Users\ПК>ping 192.168.1.58
      
      Обмен пакетами с 192.168.1.58 по с 32 байтами данных:
      Превышен интервал ожидания для запроса.
      Превышен интервал ожидания для запроса.
      

      Видим фигу, в то время, как с самого клиентского CentOS'a:

      [root@server log]# ping 192.168.1.58
      PING 192.168.1.58 (192.168.1.58) 56(84) bytes of data.
      64 bytes from 192.168.1.58: icmp_seq=1 ttl=127 time=73.0 ms
      64 bytes from 192.168.1.58: icmp_seq=2 ttl=127 time=72.8 ms
      64 bytes from 192.168.1.58: icmp_seq=3 ttl=127 time=73.1 ms
      64 bytes from 192.168.1.58: icmp_seq=4 ttl=127 time=75.2 ms
      

      Где затык?

      1 Reply Last reply Reply Quote 0
      • T
        timon12
        last edited by

        Добрый день!

        Вот свежие данные: Клиент ноутбук сони, подключен через вайфай к телефону который раздает инет.

        Если чесно, я не пользуюсь OpenVPN Client specific overrides.

        Для експеримента попробуйте удалить всех юзеров из  OpenVPN Client specific overrides, заново экспортировать настройки для подключения и проверить.
        (Сначало сделать, чтоб нормально любой клиент мог достучаться в удаленную сеть при подключении по ВПН, а уже потом для каждого клиента определять настройки.)
        ВВиду того, что https://doc.pfsense.org/index.php/OpenVPN_multi_purpose_single_server#OpenVPN_Client_specific_overrides

        Маршруты из вашего ноута правильные, т.е. конфигурация OpenVPN-сервера для мобильных клиентов правильная. Теперь вопрос настроек и конфигов ПФсенсы.
        Покажите еще правила фаервола на LAN, OpenVPN, а также Firewall: NAT: Outbound

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

          2 Tano

          Версия на мой взгляд значение не имеет, поскольку такая же проблема на планшете.

          О, еще как имеет.

          Так же выкладываю текущую конфигурацию Client Specific Overrides этого клиента-16_VPN_C3

          Если вашим машинам за сервером (к-ые в сети 192.168.1.0/24) не нужен доступ в сеть за этим Win-клиентом, то Client Specific Overrides
          не нужно.
          И еще, чтобы дать доступ за win-клиент нужно некоторое шаманство - https://community.openvpn.net/openvpn/wiki/NatOverWindows2008

          1. Enabling IP forwarding Press Windows+R and type:
          regedit.exe

          Now navigate to the:
          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters

          and set
          IpEnableRouter

          to 1

          И перезагрузить клиента.

          1 Reply Last reply Reply Quote 0
          • T
            timon12
            last edited by

            И еще, чтобы дать доступ за win-клиент нужно некоторое шаманство

            Верно подмечено!!!!!!

            yUb0j31YTbFwzXEVP5bVY28mzePPdVBPLWhwR3GZ.jpg
            yUb0j31YTbFwzXEVP5bVY28mzePPdVBPLWhwR3GZ.jpg_thumb

            1 Reply Last reply Reply Quote 0
            • E
              Electricshock
              last edited by

              tap или tun? Если Site-to-Site?

              1 Reply Last reply Reply Quote 0
              • T
                Tano
                last edited by

                @timon12:

                Добрый день!

                Вот свежие данные: Клиент ноутбук сони, подключен через вайфай к телефону который раздает инет.

                Если чесно, я не пользуюсь OpenVPN Client specific overrides.

                Для експеримента попробуйте удалить всех юзеров из  OpenVPN Client specific overrides, заново экспортировать настройки для подключения и проверить.
                (Сначало сделать, чтоб нормально любой клиент мог достучаться в удаленную сеть при подключении по ВПН, а уже потом для каждого клиента определять настройки.)
                ВВиду того, что https://doc.pfsense.org/index.php/OpenVPN_multi_purpose_single_server#OpenVPN_Client_specific_overrides

                Маршруты из вашего ноута правильные, т.е. конфигурация OpenVPN-сервера для мобильных клиентов правильная. Теперь вопрос настроек и конфигов ПФсенсы.
                Покажите еще правила фаервола на LAN, OpenVPN, а также Firewall: NAT: Outbound

                Если для клиента не использовать OpenVPN Client specific overrides то как я передам клиенту информацию об удаленной сети, в этом случае клиент получит доступ только в главную сеть, который по сути сейчас и имеет, но у него не появится маршрут в удаленную сеть.
                Поэтому в моём случае думаю Client specific overrides придется использовать.
                Или на сервере можно прописать удаленную сеть??? как локальную сеть? это будет верно?

                Настройки фаервола на LAN, OpenVPN, а также Firewall: NAT: Outbound я выложил в самом начале обсуждения вопроса.

                1 Reply Last reply Reply Quote 0
                • T
                  timon12
                  last edited by

                  Или на сервере можно прописать удаленную сеть??? как локальную сеть? это будет верно?

                  В настроках openvpn сервера для мобильных клиентов (см скрин):
                  В разделе Tunnel Settings -> IPv4 Local Network/s допишите через запятую в какие сети хотите предоставить доступ аля: 192.168.1.0/24,192.168.12.0/24,192.168.87.0/24. Пускай openvpn сервер сам определяет маршрутизацию.
                  Для експеримента попробуйте удалить всех юзеров из  OpenVPN Client specific overrides, заново экспортировать настройки для подключения и проверить.

                  В данном случае все клиенты, которые будут подключаться к openvpn для мобильных клиентов будт иметь одинаковые настройки, это имеет смысл для правильной настройки, когда все получиться, тогда делать для каждого клиента OpenVPN Client specific overrides - тем самым нарезая доступы как нравиться.

                  ![Remote Access (SSL_TLS)2.jpg](/public/imported_attachments/1/Remote Access (SSL_TLS)2.jpg)
                  ![Remote Access (SSL_TLS)2.jpg_thumb](/public/imported_attachments/1/Remote Access (SSL_TLS)2.jpg_thumb)

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

                    Если для клиента не использовать OpenVPN Client specific overrides то как я передам клиенту информацию об удаленной сети, в этом случае клиент получит доступ только в главную сеть, который по сути сейчас и имеет, но у него не появится маршрут в удаленную сеть.

                    Вы ошибаетесь. Client specific overrides исп-ся для сети за сервером для доступа к сети за клиентом.
                    Для доступа к сети за сервером клиенту сервером отдаются марш-ты директивой push route …..;

                    1 Reply Last reply Reply Quote 0
                    • T
                      timon12
                      last edited by

                      Если для клиента не использовать OpenVPN Client specific overrides то как я передам клиенту информацию об удаленной сети

                      При подключении клиент запрашивает у сервера лист маршрутизации, а сервер ему выдает куда можно ходить клиенту исходя из списка В разделе Tunnel Settings -> IPv4 Local Network/s. Я б не советовал, но у меня таким образом настроенно, и работает все прекрасно.

                      Суть таковая, клиент подключаеться к ПФ-ке, ПФ-ка выдает клиенту маршруты из "Tunnel Settings -> IPv4 Local Network/s" (смотрим маршрутизацию после подключения впн). Дальше клиент посылает запрос на удаленню сеть .87.0/24, и пакет по таблице идет локально – в тунель впн -- на ПФ-ку (пф-ка уже знает где ваша сеть .0.87/24) -- сново впн тунель в удаленку -- УДАЛЕНКА, А вот будет ли ответ здесь, зависит от того знает ли ваш роутер на удаленке где сеть с которой клиент посылает запрос.
                      Вот и все шаманство на двух пальцах.

                      Дело за вами, как плясать с бубном))))))))

                      1 Reply Last reply Reply Quote 0
                      • T
                        Tano
                        last edited by

                        @werter:

                        Если для клиента не использовать OpenVPN Client specific overrides то как я передам клиенту информацию об удаленной сети, в этом случае клиент получит доступ только в главную сеть, который по сути сейчас и имеет, но у него не появится маршрут в удаленную сеть.

                        Вы ошибаетесь. Client specific overrides исп-ся для сети за сервером для доступа к сети за клиентом.
                        Для доступа к сети за сервером клиенту сервером отдаются марш-ты директивой push route …..;

                        Спасибо за подсказку, я забыл про этот момент.
                        Сейчас доеду до удобного места и поэкспериментирую.

                        1 Reply Last reply Reply Quote 0
                        • P
                          pigbrother
                          last edited by

                          @Electric^shock:

                          tap или tun? Если Site-to-Site?

                          tun - для маршрутизации между разными сетями. tap - объединения сетей в одну L2\Ethernet-сеть, как будто у сетей один свитч.
                          https://ru.wikipedia.org/wiki/TUN/TAP

                          1 Reply Last reply Reply Quote 0
                          • T
                            Tano
                            last edited by

                            @Tano:

                            @werter:

                            Если для клиента не использовать OpenVPN Client specific overrides то как я передам клиенту информацию об удаленной сети, в этом случае клиент получит доступ только в главную сеть, который по сути сейчас и имеет, но у него не появится маршрут в удаленную сеть.

                            Вы ошибаетесь. Client specific overrides исп-ся для сети за сервером для доступа к сети за клиентом.
                            Для доступа к сети за сервером клиенту сервером отдаются марш-ты директивой push route …..;

                            Спасибо за подсказку, я забыл про этот момент.
                            Сейчас доеду до удобного места и поэкспериментирую.

                            Общее замечание:
                            По поводу Client specific overrides  я настраивал OPEN VPN режим Remote access SSL/TSL все по этой "ИНСТРУКЦИИ https://forum.pfsense.org/index.php?topic=99694.0"
                            Там как раз мобильному клиенту (по аналогии с удаленным шлюзом) настраивается Client specific overrides, вот я и посчитал, что основная цель этого раздела для передачи маршрутов, а оказалось, что в действительности все маршруты может дать сервер, и лишь если надо конкретному клиенту создать особые правила, можно/нужно применить  Client specific overrides для этого клиента.

                            В моём случае:
                            Теперь удалил по вашим советам все Client specific overrides кроме одного, который для роутера, где и нужно обеспечить двухсторониий обмен данными и чтобы все машины за сервером и за роутером могли обмениваться данными друг с другом. Сейчас это реализовано, обмен есть.
                            Роутер получает инструкцию от сервера и поднимает два маршрута в главную сеть, у меня их две сети LAN,  в итоге он впускает и выпускает пакеты из/в главной сети.
                            При подключении мобильного клиента, он получает все инструкции от сервера, в том числе три маршрута и один из них в сеть …87.0/24, без использования  Client specific overrides, однако доступа в удаленную сеть 192.168.87.0/24 нет.
                            Затык идет на pfsense, он не заворачивает запрос из туннеля openvpn мобильного клиента в туннель между pfsense-роутер.
                            В FW OPENVPN правило Pv4 * * * * * * none
                            В FW LAN правило        IPv4 * LAN net * 192.168.87.0/24 * * none
                            Floating ничего нет
                            WAN открыт нужные порты иначе не было бы соединения.
                            OutBound WAN 127.0.0.0/8 192.168.1.0/24 192.168.12.0/24 192.168.1.80/32 10.0.0.0/24 10.87.0.0/24 10.12.0.0/24 * * * WAN address * NO

                            1 Reply Last reply Reply Quote 0
                            • T
                              timon12
                              last edited by

                              Главное не бояться экспериментов, так и учимся.
                              Отлично, ковыряем дальше NAT или Firewall-rules

                              При подключении мобильного клиента, он получает все инструкции от сервера, в том числе три маршрута и один из них в сеть …87.0/24, без использования  Client specific overrides, однако доступа в удаленную сеть 192.168.87.0/24 нет.
                              Затык идет на pfsense, он не заворачивает запрос из туннеля openvpn мобильного клиента в туннель между pfsense-роутер.
                              В FW OPENVPN правило Pv4 *  *  *  *  *  *  none
                              В FW LAN правило        IPv4 *  LAN net  *  192.168.87.0/24  *  *  none

                              Обратно же, для понимания в чем затык, предлагаю поставить первым правило
                              В FW LAN правило        IPv4 *  *  *  192.168.87.0/24  *  *  none

                              Делаем трасерт на .87.0\24 с мобильго клиента, ложим скрин на форум.

                              Если проблема в этом, тогда изменим на (но только тогда)
                              В FW LAN правило        IPv4 *  VPN mobile net  *  192.168.87.0/24  *  *  none

                              Если проблема не решена, пишем на форум и думаем дальше.
                              И забегая наперед, покажите таблицу маршрутизации вашего удаленного роутера, интересует вопрос, знает ли он, где ваша сеть для мобильных клиентов (в идеале должен знать, когда подключился по впн к ПФ-ке в центральном офисе)

                              Теперь удалил по вашим советам все Client specific overrides кроме одного, который для роутера

                              Этот момент смущает немного, но вначале разберемся с заворотом трафика из впн в впн. Там парочка отдельных вопросов.

                              1 Reply Last reply Reply Quote 0
                              • T
                                Tano
                                last edited by

                                timon12
                                Спасибо за помощь.
                                Правило было первым, добавил еще два правила с туннелями, как вы предложили, два потому, что у меня два туннеля.
                                Выложил скрин FW LAN.
                                Все равно трасерт не проходит, так же как не проходил без этих дополнительных правил.
                                Скрины во вложении, в том числе и таблица маршрутизации на удаленном роутере.

                                ![Route print client_sony1.PNG](/public/imported_attachments/1/Route print client_sony1.PNG)
                                ![Route print client_sony1.PNG_thumb](/public/imported_attachments/1/Route print client_sony1.PNG_thumb)
                                ![Tracert1 from client to 87net.PNG](/public/imported_attachments/1/Tracert1 from client to 87net.PNG)
                                ![Tracert1 from client to 87net.PNG_thumb](/public/imported_attachments/1/Tracert1 from client to 87net.PNG_thumb)
                                ![Routes-tomato router1.JPG](/public/imported_attachments/1/Routes-tomato router1.JPG)
                                ![Routes-tomato router1.JPG_thumb](/public/imported_attachments/1/Routes-tomato router1.JPG_thumb)
                                ![FW LAN.JPG](/public/imported_attachments/1/FW LAN.JPG)
                                ![FW LAN.JPG_thumb](/public/imported_attachments/1/FW LAN.JPG_thumb)

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

                                  Последний скрин.
                                  На LAN работают правила, относящиеся только к LAN. Никакие др. запреты\разрешения , касающиеся др. сетей не работают.
                                  Так что всякие там 10.x.x.x и т.д. , если это на virtual ip LAN, работать не будут. Откл. их.

                                  1 Reply Last reply Reply Quote 0
                                  • T
                                    timon12
                                    last edited by

                                    На LAN работают правила, относящиеся только к LAN.

                                    Тоже верно, но на всякий случай проверить стоило, мое мнение.

                                    Tano!
                                    На скрине Routes-tomato router1.JPG нет маршрута к сети мобильных клиентов, по идее пф-ка должна была выдать томато еще и такой маршрут (при поднятии коннекта между офисами):
                                    Destination        Gateway        Subnet    Metric    Inteface


                                    192.168.1.0      10.87.0.5      /24            0            tun11  - этот маршрут у томато есть
                                    10.0.0.0            10.87.0.5      /24            0            tun11  - а вот этого не хватает

                                    Как вариант, можно дописать в настройках "впн-сервера между офисами" Tunnel Settings -> IPv4 Local Network/s - сеть мобильных клиетнов (10.0.0.0\24), или в client cpecific overrides (что менее практично, и для томато я бы тоже удалил настройки в client cpecific overrides)

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      pigbrother
                                      last edited by

                                      Потерял сюжетную линию саги pfSense OpenVPN Server + Linux-client.

                                      Возможно - не к месту, но в свое время столкнулся с тем, что OVPN-клиент Микротик при работе c pfSense упорно не получал маршруты в удаленные OpenVPN сети.
                                      Помогло явное указание шлюза в Client Specific Overrides, т.е.
                                      push route "xx.0.3.0 255.255.255.0 10.11.12.1";push route "xx.0.5.0 255.255.255.0 10.11.12.1"; 
                                      где 10.11.12.1 - "серверный" IP туннеля.

                                      либо статическое прописывание этого шлюза в клиенте.

                                      1 Reply Last reply Reply Quote 0
                                      • T
                                        timon12
                                        last edited by

                                        pigbrother!
                                        Ход мыслей у вас правильный, а вот где прописывать настройки это уже зависит от того кого с кем надо "скрещивать".
                                        Был и у меня "брачный период pfsense+mikrotik", в итоге mikrotik остался как пограничный шлюз (випиэнами подружились, а вот скорость коннекта с шифрованием не вытащил на минимально необходимую), вопрос решился установкой пф-ки с впнэнами как виртуальную.

                                        1 Reply Last reply Reply Quote 0
                                        • P
                                          pigbrother
                                          last edited by

                                          Минимально необходимая - это сколько?

                                          Основная нагрузка туннелей у меня - RDP, ему много не надо. Тестировал и передачей больших файлов. Максимально удавалось получать прибл. 15 мегабит, причем узким местом был\есть и слабенький процессор на машине с pfSense.

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

                                            2 pigbrother

                                            Попробуйте в конфиг OpenVPN-сервера в Advanced добавить :

                                            sndbuf 100000;
                                            rcvbuf 100000;
                                            push "sndbuf 100000";
                                            push "rcvbuf 100000";

                                            После, переподкл. клиентом и проверить скорость передачи в туннеле. Есть вариант, что она вас удивит.

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