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

    OpenVPN Client -> External VPN Service provider

    Scheduled Pinned Locked Moved Russian
    35 Posts 3 Posters 5.4k 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.
    • D
      dvv06
      last edited by

      Добрый день!
      Вопрос состоит в следующем: Как корректно подключить шлюз для локальной сети pfsense к внешнему сервису предоставляющему доступ к закрытым сайтам (vpnbook.com) по VPN каналу (OpenVPN)
      Что сделал на шлюзе:
      1. экспортировал с сайта *.ovpn файл (в нем также присутсвуют данные сертификатов ca,  cert, key-privat)
      2.  Импорт сертификатов:
          2.1 В разделе System-Certificate Manager-CAs создал ca-сертификат и скопировал из файла п.1 данный са,
          2.2 В разделе System-Certificate Manager-Certificates создал сертификат клиента и скопировал из файла п.1 данные cert, key-privat
      3. создал OpenVPN Client  указал настройки из файла *.ovpn
      –----------------
      client
      dev tun0
      proto udp
      remote 176.126.237.214 53
      remote euro214.vpnbook.com 53
      resolv-retry infinite

      nobind
      persist-key
      persist-tun
      auth-user-pass
      comp-lzo
      verb 3
      cipher AES-128-CBC

      fast-io
      pull
      route-delay 2
      redirect-gateway
      –---------------------
      в меню создания клиента openvpn
      http://my-files.ru/vtncda
      http://my-files.ru/c3l0iz

      Клиент вроде бы подключается судя по логу:
      May 17 11:41:20 openvpn 34862 Initialization Sequence Completed
      May 17 11:41:20 openvpn 34862 /usr/local/sbin/ovpn-linkup ovpnc2 1500 1558 10.8.0.106 10.8.0.105 init
      May 17 11:41:20 openvpn 34862 /sbin/ifconfig ovpnc2 10.8.0.106 10.8.0.105 mtu 1500 netmask 255.255.255.255 up
      May 17 11:41:20 openvpn 34862 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
      May 17 11:41:20 openvpn 34862 TUN/TAP device /dev/tun2 opened
      May 17 11:41:20 openvpn 34862 TUN/TAP device ovpnc2 exists previously, keep at program end
      May 17 11:41:18 openvpn 34862 [vpnbook.com] Peer Connection Initiated with [AF_INET]176.126.237.214:53
      May 17 11:41:17 openvpn 34862 WARNING: this configuration may cache passwords in memory – use the auth-nocache option to prevent this
      May 17 11:41:16 openvpn 34862 UDPv4 link remote: [AF_INET]176.126.237.214:53
      May 17 11:41:16 openvpn 34862 UDPv4 link local (bound): [AF_INET]WAN1_IP_Public
      May 17 11:41:16 openvpn 34862 Initializing OpenSSL support for engine 'cryptodev'
      May 17 11:41:16 openvpn 34862 NOTE: the current –script-security setting may allow this configuration to call user-defined scripts
      May 17 11:41:16 openvpn 34862 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
      May 17 11:41:16 openvpn 34618 WARNING: file '/var/etc/openvpn/client2.up' is group or others accessible
      May 17 11:41:16 openvpn 34618 library versions: OpenSSL 1.0.1s-freebsd 1 Mar 2016, LZO 2.09
      May 17 11:41:16 openvpn 34618 OpenVPN 2.3.9 amd64-portbld-freebsd10.3 [SSL (OpenSSL)] [LZO] [MH] [IPv6] built on Apr 6 2016
      –----------------
      Но на компьютерах в LAN пропадает интернет (multi WAN)
      работа в LAN идет через прокси
      Понимаю, что нужно как-то перенаправить созданные VPN канал в локалку, но не соображу как...

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

        Проделывал подобное несколько лет назад с другим провайдером OVPN. Пишу по памяти.
        Если туннель поднялся:
        1. Объявить OVPN интерфейсом
        2. В Outbound Nat - переключить в Manual или Hybrid, добавить NAT для OVPN
        3. На LAN создать\отредактировать правило с указанием OVPN шлюза.

        Если грубо - настраивать по аналогии:
        https://forum.pfsense.org/index.php?topic=76015.0
        https://www.privateinternetaccess.com/forum/discussion/18111/openvpn-step-by-step-setup-for-pfsense-firewall-router-with-video

        1 Reply Last reply Reply Quote 1
        • D
          dvv06
          last edited by

          Спасибо огромное. буду тестить!

          P.S: Спасибо по инструкции сделал, соединение успешно, только есть 1 проблема, которую обойти не могу, подскажите.
          проблема заключается в том, что при создании подключения от сервера приходит команда redirect-gateway, которая перенаправляет весь трафик интернет в тунель.
          Можно ли как-то блокировать эту команду на стороне клиента, чтобы можно было выбирать Alias'ами нужные IP и пускать их в этот тунель?

          P.S №2: Для тех, кто будет настраивать по вышеприведенной инструкции есть ньюанс: конкретно в этом провайдере еще применяется сертификат клиента + секретный ключ, который нужно указать в в пункте Client Certificate (как его создать описал в стартовом посте п.2.2) в настройках клиента, а не самоподписаный сертификат как в инструкции выше и в pfSense 2.3 появилось в GUI OpenVPN Client окна отвечающие за ввод логин/пароль, поэтому не нужно указывать их в Advenced

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

            уже к данному провайдеру vpn не подключусь - его в список распространителей ботов занесли.
            https://www.spamhaus.org/query/ip/176.126.237.214
            эх, а такую хорошую скорость давал
            может кто знает еще какие-нибудь надежные сервера?…
            но до того как забанили, удалось выяснить
            что при подключении к впн-провайдеру приходит как раз директива --redirect-gateway def1 которая как раз и сообщает клиенту что не удалять путь по умолчанию.
            у меня выше есть правило определенным ip из локалки через шлюз vpn выпускать на определенные сайты, а ниже правило заворачивать все на прокси
            http://my-files.ru/ou30s1
            но если ходить не через прокси, то все ходит через mymultiwan, а если в броузере прописать прокси - то через тунель, даже если ip компа нет в списке VPN_IPs (из компов которым это разрешено)
            не могу это обьяснить, как такое возможно...если у кого-то есть какие-то мнения по этому поводу...

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

              –redirect-gateway def1 которая как раз и сообщает клиенту что не удалять путь по умолчанию.
              Насколько я понимаю, redirect-gateway def1 как раз подменяет шлюз по умолчанию.

              Squid проблематично работает с мультиван.
              Как заставить его поступать иначе - не знаю, не использую.

              может кто знает еще какие-нибудь надежные сервера?
              Бесплатные рекомендовать нет смысла - сегодня они работают, завтра - нет.
              Из платных:
              Русскоязычный https://hidemy.name/ru/
              Из популярных англоязычных
              https://www.privateinternetaccess.com/
              https://www.hidemyass.com/
              …множество других.

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

                т.е получается, что
                1. те компьютеры которые ходят через прокси и шлюзом указан мултиван - всеравно ходят в тунель впн
                2. те компьютеры которые не ходят через прокси и указан мултиван - ходят мимо тунеля
                3. правило стоящее выше всех и указывающее определенным ip ходить через впн тунель - не нужно т.к п.1
                –
                если это не моя ошибка, то это ведь баг pfsense...

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

                  Сквид, насколько я знаю,  умеет работать только с default gateway. По крайней мере - в новых версиях pfSense.
                  Как и можно ли это победить - вам, возможно, подскажут.
                  Я сквид не использую и ничего сказать не могу.
                  Без сквида направление любого IP из LAN через любой шлюз работает.

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

                    Если  кто-то также столкнулся с проблемой заворачивания всего интернет канала в тунель впн на клиенте (т.е сервером впн присылается команда "redirect-gateway def1"). нашел статью с 2 вариантами обхода.
                    https://community.openvpn.net/openvpn/wiki/IgnoreRedirectGateway

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

                      Пусть меня поправят, но именно redirect-gateway def1 в вашем случае обеспечивает "наличие интернета" на OPVN-интерфейсе.
                      Вопрос теперь у меня - обойдя заворачивания всего интернет канала через запрет redirect-gateway def1 вы не потерли собственно доступ в интернет через туннель?

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

                        так в этом и смысл, если я в правилах фаервола пишу явно шлюзом впн-шлюз, тогда я могу выпустить определенные ip через этот тунель, а остальные через тунель по умолчанию (т.е мультиван). Если же принудительно присылают, как клиенту впн, команду redirect gateway def1, то затирается маршрут по умолчанию со шлюзом мультиван.

                        pigbrother:
                        "Пусть меня поправят, но именно redirect-gateway def1 в вашем случае обеспечивает "наличие интернета" на OPVN-интерфейсе.
                        Вопрос теперь у меня - обойдя заворачивания всего интернет канала через запрет redirect-gateway def1 вы не потерли собственно доступ в интернет через туннель? "

                        • Будет. Я настраивал впн-сервер на pfsense и подключаюсь клиентом, так вот в настройках сервера есть галочка - "Redirect Gateway" Force all client generated traffic through the tunnel.
                          как раз и отвечающая за подмену шлюза по умолчанию на клиенте .
                          Я ее не ставлю и клиенты впн ходят по своему интернету домашнему, а если нужнасетка впн-сервера то спокойно видят клиенты за ним.

                        Если кому нужны бесплатные впн-сервера, есть ресурс
                        http://www.vpngate.net/en/
                        там и uptime их написан и скорость, и др.инфа

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

                          Доброе.
                          Немного добавлю.

                          а если нужнасетка впн-сервера то спокойно видят клиенты за ним.

                          Если нужна впн-сетка клиентам и вы "рулите" впн-сервером :
                          1. Можно пУшить маршрут клиентам на впн-сервере - push "route …" (или в веб-фейсе как сейчас реализовано указать Local networks)
                          2. В особых случаях, можно не пУшить сервером, а руками в конфиге каждого клиента добавить route до нужной клиенту сети за впн-сервером.

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

                            @werter:

                            Доброе.
                            Немного добавлю.

                            а если нужнасетка впн-сервера то спокойно видят клиенты за ним.

                            Если нужна впн-сетка клиентам и вы "рулите" впн-сервером :
                            1. Можно пУшить маршрут клиентам на впн-сервере - push "route …" (или в веб-фейсе как сейчас реализовано указать Local networks)
                            2. В особых случаях, можно не пУшить сервером, а руками в конфиге каждого клиента добавить route до нужной клиенту сети за впн-сервером.

                            мой личный впн-сервер работает - вопросов нет.  Начальный вопрос поста был не в этом.
                            Повторюсь, как pfsensu с настроеным клиентом впн подключится к внешнему впн-провайдеру (он успешно подключается), но при этом провайдер присылает команду заворачивания всего моего интернета в свой впн-канал вышеуказаной командой, а мне нужно, чтобы шлюз по умолчанию на клиенте (у меня) оставался мультиван, а правилами фаервола уже конкретно каждому ip заворачивать в впн-тунель. как-то так..

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

                              Будет. Я настраивал впн-сервер на pfsense и подключаюсь клиентом, так вот в настройках сервера есть галочка - "Redirect Gateway" Force all client generated traffic through the tunnel.
                              Именно. Redirect Gateway" Force all client generated traffic through the tunnel" как раз и передает клиентам вашего сервера директиву redirect-gateway def1, и они начинают ходить в инет через ваш pfSense.

                              Ваш же случай - pfSense выступает клиентом и redirect-gateway добавляет этому клиенту (этому интерфейсу OVPN) шлюз в интернет. Без  redirect-gateway клиент получит адрес из сети удаленного OVPN-сервера но не получит шлюза в 0.0.0.0, без которого доступ в интернет невозможен.
                              Именно redirect-gateway def1 создает для вас еще один как-бы WAN. Почему как-бы? Потому, что он создается поверх уже имеющегося WAN.
                              Повторю. Использовалось на версии до 2.2 Я не использовал сквид. И правилами на LAN можно было выпускать любые IP\Алиасы IP через любой имеющийся в pfSense шлюз (группу мультиван, шлюзы, входящие в мультиван по отдельности, шлюз OVPN клиента) на выбор, создав на LAN нужные правила и расставив их в определенном порядке.

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

                                в настроеном мной pfsense servere эта галочка НЕ СТОИТ. Клиенты подключаются к нему и т.о им доступны ресурсы сети за шлюзом pfSense, а на домашних устройствах они испоьзуют своих провайдеров и ходят через них. Стоило бы мне на моем сервере поставить эту галку, так на стороне клиента это выглядело бы как если бы раздавал ему инет а не их домашний провайдер. то, что вы говорите - я кажется понимаю, без этой директивы я как клиент впн буду как бы частью сети во главе с впн сервером, но интернет от него я не получу т.к он не является шлюзом по умолчанию у меня на клиенте.

                                тогда какже это реализовать…

                                Я сейчас проделал следующее подключился клиентом к внешнему провайдеру vpn

                                • весь трафик завернуло в впн, т.к пришла директива от сервера впн

                                • потом я применил на клиенте (https://community.openvpn.net/openvpn/wiki/IgnoreRedirectGateway)
                                  route 0.0.0.0 192.0.0.0 net_gateway
                                  route 64.0.0.0 192.0.0.0 net_gateway
                                  route 128.0.0.0 192.0.0.0 net_gateway
                                  route 192.0.0.0 192.0.0.0 net_gateway
                                  маршрут поумолчанию изменился на моего провайдера (НЕ ТУНЕЛЬ)
                                  тунель впн в состоянии подключен

                                • потом добавил в маршрут диапазон ip сайтов доступ к которым я хочу получить по каналу впн с явным указанием шлюза openvpn
                                    tracert ом проверяю - идет в канал впн, но сайт заблокирова всеравно

                                на этом пока застопорился

                                я еще попробую без сквида, если все-таки можно будет выбирать элиасы, тогда это уже косяк сквида а не пфсенса...

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

                                  в настроеном мной pfsense servere эта галочка НЕ СТОИТ. Клиенты подключаются к нему и т.о им доступны ресурсы сети за шлюзом pfSense, а на домашних устройствах они испоьзуют своих провайдеров и ходят через них. Стоило бы мне на моем сервере поставить эту галку, так на стороне клиента это выглядело бы как если бы раздавал ему инет а не их домашний провайдер. то, что вы говорите - я кажется понимаю, без этой директивы я как клиент впн буду как бы частью сети во главе с впн сервером, но интернет от него я не получу т.к он не является шлюзом по умолчанию у меня на клиенте.

                                  Все верно.

                                  - потом я применил на клиенте (https://community.openvpn.net/openvpn/wiki/IgnoreRedirectGateway)
                                  С этим дела не имел и не подскажу ничего.

                                  я еще попробую без сквида, если все-таки можно будет выбирать элиасы, тогда это уже косяк сквида а не пфсенса.
                                  Да, AFAIK, это особенность сквида - использовать исключительно системный default gateway. Как это обойти в актуальных версиях pfSense вроде были посты, но, повторю, я от темы сквида далек.

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

                                    Доброе.

                                    tracert ом проверяю - идет в канал впн, но сайт заблокирова всеравно

                                    Конечно. У вас же обращение к dns идет не через vpn. У вашего пров-ра блокировка через dns реализована.
                                    Раздайте по dhcp те же 8.8.8.8, 8.8.4.4 своим локальным клиентам в кач-ве dns. И заверните трафик к 8.8.8.8, 8.8.4.4 через ваш туннель. Или же сделайте так, чтобы сам пф обращался к dns-серверам только через туннель. И на клиентах неплохо бы сделать ipconfig /flushdns после этого.

                                    P.s. Купите в Европе самый дешевый VPS за 5-10$ в мес. Разверните debian\centos minimal. И прикрутите это - http://pritunl.com/ (https://github.com/pritunl/pritunl , демка - http://demo.pritunl.com/), https://techknight.eu/2016/05/15/deploy-pritunl-ubuntu/
                                    Дел - на 15 минут. Все рулится через веб-фейс. И вы сам себе хозяин.

                                    P.s2. Признайтесь, в ОК и ВК пытаетесь попасть ?  ;)

                                    P.s3. Написал и подумал. А ведь это же готовый бизнес-план  8)

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

                                      Кстати, по поводу DNS и OVPN.
                                      Если в Client Specific Overrides или настройках самого сервера задать DNS Servers, и передать клиенту через
                                      push "block-outside-dns"; или явно указать block-outside-dns в конфиге клиента, то есть все имеющиеся в системе DNS будут игнорироваться, а использоваться только те, что передаются через OVPN.
                                      Это работает, проверял, по крайней мере, для клиентов Windows 8.1, и наверное, более новых.
                                      Клиент в логе пишет:
                                      Sun May 21 18:56:03 2017 Blocking outside dns using service succeeded.
                                      Возможно это можно реализовать и когда pfSense  сам является клиентом OVPN.

                                      P.s. Купите в Европе самый дешевый VPS за 5-10$ в мес. Разверните debian\centos minimal. И прикрутите это - http://pritunl.com/ (https://github.com/pritunl/pritunl , демка - http://demo.pritunl.com/), https://techknight.eu/2016/05/15/deploy-pritunl-ubuntu/
                                      Дел - на 15 минут. Все рулится через веб-фейс. И вы сам себе хозяин.

                                      Проблема ТС, как я понял не только и не столько в выборе поставщика VPN, а недружбе сквида с многочисленными шлюзами.

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

                                        Доброе.
                                        Спасибо за block-outside-dns

                                        server.conf

                                        push "dhcp-option DNS x.x.x.x"  # Push your preferred VPN DNS - google eg. 8.8.8.8
                                        push "block-outside-dns"        # Block access to any other DNS

                                        Otherwise, you can simply add block-outside-dns to your Windows 10 client config files.

                                        P.s. По сквиду попробовать в Services -> Proxy server -> General -> Custom Options добавить tcp_outgoing_address 127.0.0.1;

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

                                          я все-таки не хочу прыгать с одной системы на другу и останусь на pfsense.
                                          Насчет DNS провайдера я не подумал, спасибо за наводку (хотя это первое о чем надо было подумать)
                                          Думаю если в General Setup указать внешний днс с привязкой к openvpn шлюзу, то если не ошибаюсь на клиентах ничего не потребуется менять…
                                          раздать клиентам гулевские днс не получится, у них днс - контролер домена, это вызовет проблемы как участников домена.
                                          да и весь трафик тогда пойдет с откликом от гуглевских, а не провайдеровского днс с 2 мс.
                                          Но идея понятна - для тунеля не использовать днс провайдера
                                          может быть в сетевом интерфейсе впн указать явно днс гугла?

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

                                          P.S: проверил на windows 7 клиенте openvpn.
                                          добавил маршрут к нужным сайтам через впн шлюз
                                          указал гуглевские днс.
                                          теперь у меня скорость всех сайтов от провайдера, а на нужные ходит по узкому каналу впн.

                                          завтра попробую на pfsense

                                          Отдельное спасибо за терпение и помощь werter и pigbrother. Может быть мой опыт поиска решения будет кому-то полезен ;-)

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

                                            я все-таки не хочу прыгать с одной системы на другу и останусь на pfsense.

                                            Совет ув. Werter Купить в Европе самый дешевый VPS касается не смены платформы, а организации собственного удаленного сервера с поднятым на нем OpenVPN.

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