Netgate SG-1000 microFirewall

Author Topic: OpenVPN Client -> External VPN Service provider  (Read 1894 times)

0 Members and 1 Guest are viewing this topic.

Offline dvv06

  • Jr. Member
  • **
  • Posts: 51
  • Karma: +1/-0
    • View Profile
OpenVPN Client -> External VPN Service provider
« on: May 17, 2017, 04:27:49 am »
Добрый день!
Вопрос состоит в следующем: Как корректно подключить шлюз для локальной сети 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 канал в локалку, но не соображу как...
« Last Edit: May 17, 2017, 04:51:57 am by dvv06 »

Offline pigbrother

  • Hero Member
  • *****
  • Posts: 1672
  • Karma: +207/-2
    • View Profile
Re: OpenVPN Client -> External VPN Service provider
« Reply #1 on: May 17, 2017, 05:49:22 am »
Проделывал подобное несколько лет назад с другим провайдером 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
 

Offline dvv06

  • Jr. Member
  • **
  • Posts: 51
  • Karma: +1/-0
    • View Profile
Re: OpenVPN Client -> External VPN Service provider
« Reply #2 on: May 17, 2017, 05:55:18 am »
Спасибо огромное. буду тестить!

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

P.S №2: Для тех, кто будет настраивать по вышеприведенной инструкции есть ньюанс: конкретно в этом провайдере еще применяется сертификат клиента + секретный ключ, который нужно указать в в пункте Client Certificate (как его создать описал в стартовом посте п.2.2) в настройках клиента, а не самоподписаный сертификат как в инструкции выше и в pfSense 2.3 появилось в GUI OpenVPN Client окна отвечающие за ввод логин/пароль, поэтому не нужно указывать их в Advenced
« Last Edit: May 18, 2017, 11:16:09 am by dvv06 »

Offline dvv06

  • Jr. Member
  • **
  • Posts: 51
  • Karma: +1/-0
    • View Profile
Re: OpenVPN Client -> External VPN Service provider
« Reply #3 on: May 19, 2017, 12:25:34 am »
уже к данному провайдеру 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 (из компов которым это разрешено)
не могу это обьяснить, как такое возможно...если у кого-то есть какие-то мнения по этому поводу...
« Last Edit: May 19, 2017, 01:36:01 am by dvv06 »

Offline pigbrother

  • Hero Member
  • *****
  • Posts: 1672
  • Karma: +207/-2
    • View Profile
Re: OpenVPN Client -> External VPN Service provider
« Reply #4 on: May 19, 2017, 02:02:57 am »
--redirect-gateway def1 которая как раз и сообщает клиенту что не удалять путь по умолчанию.
Насколько я понимаю, redirect-gateway def1 как раз подменяет шлюз по умолчанию.

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

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

Offline dvv06

  • Jr. Member
  • **
  • Posts: 51
  • Karma: +1/-0
    • View Profile
Re: OpenVPN Client -> External VPN Service provider
« Reply #5 on: May 19, 2017, 02:36:07 am »
т.е получается, что
1. те компьютеры которые ходят через прокси и шлюзом указан мултиван - всеравно ходят в тунель впн
2. те компьютеры которые не ходят через прокси и указан мултиван - ходят мимо тунеля
3. правило стоящее выше всех и указывающее определенным ip ходить через впн тунель - не нужно т.к п.1
--
если это не моя ошибка, то это ведь баг pfsense...

Offline pigbrother

  • Hero Member
  • *****
  • Posts: 1672
  • Karma: +207/-2
    • View Profile
Re: OpenVPN Client -> External VPN Service provider
« Reply #6 on: May 19, 2017, 03:42:00 am »
Сквид, насколько я знаю,  умеет работать только с default gateway. По крайней мере - в новых версиях pfSense.
Как и можно ли это победить - вам, возможно, подскажут.
Я сквид не использую и ничего сказать не могу.
Без сквида направление любого IP из LAN через любой шлюз работает.
« Last Edit: May 19, 2017, 04:12:56 am by pigbrother »

Offline dvv06

  • Jr. Member
  • **
  • Posts: 51
  • Karma: +1/-0
    • View Profile
Re: OpenVPN Client -> External VPN Service provider
« Reply #7 on: May 20, 2017, 08:20:24 am »
Если  кто-то также столкнулся с проблемой заворачивания всего интернет канала в тунель впн на клиенте (т.е сервером впн присылается команда "redirect-gateway def1"). нашел статью с 2 вариантами обхода.
https://community.openvpn.net/openvpn/wiki/IgnoreRedirectGateway

Offline pigbrother

  • Hero Member
  • *****
  • Posts: 1672
  • Karma: +207/-2
    • View Profile
Re: OpenVPN Client -> External VPN Service provider
« Reply #8 on: May 20, 2017, 11:08:49 am »
Пусть меня поправят, но именно redirect-gateway def1 в вашем случае обеспечивает "наличие интернета" на OPVN-интерфейсе.
Вопрос теперь у меня - обойдя заворачивания всего интернет канала через запрет redirect-gateway def1 вы не потерли собственно доступ в интернет через туннель?

Offline dvv06

  • Jr. Member
  • **
  • Posts: 51
  • Karma: +1/-0
    • View Profile
Re: OpenVPN Client -> External VPN Service provider
« Reply #9 on: May 21, 2017, 01:47:52 am »
так в этом и смысл, если я в правилах фаервола пишу явно шлюзом впн-шлюз, тогда я могу выпустить определенные 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 их написан и скорость, и др.инфа
« Last Edit: May 21, 2017, 02:16:03 am by dvv06 »

Offline werter

  • Hero Member
  • *****
  • Posts: 4835
  • Karma: +220/-14
    • View Profile
Re: OpenVPN Client -> External VPN Service provider
« Reply #10 on: May 21, 2017, 01:55:15 am »
Доброе.
Немного добавлю.
Quote
а если нужнасетка впн-сервера то спокойно видят клиенты за ним.
Если нужна впн-сетка клиентам и вы "рулите" впн-сервером :
1. Можно пУшить маршрут клиентам на впн-сервере - push "route ..." (или в веб-фейсе как сейчас реализовано указать Local networks)
2. В особых случаях, можно не пУшить сервером, а руками в конфиге каждого клиента добавить route до нужной клиенту сети за впн-сервером.

Offline dvv06

  • Jr. Member
  • **
  • Posts: 51
  • Karma: +1/-0
    • View Profile
Re: OpenVPN Client -> External VPN Service provider
« Reply #11 on: May 21, 2017, 02:04:37 am »
Доброе.
Немного добавлю.
Quote
а если нужнасетка впн-сервера то спокойно видят клиенты за ним.
Если нужна впн-сетка клиентам и вы "рулите" впн-сервером :
1. Можно пУшить маршрут клиентам на впн-сервере - push "route ..." (или в веб-фейсе как сейчас реализовано указать Local networks)
2. В особых случаях, можно не пУшить сервером, а руками в конфиге каждого клиента добавить route до нужной клиенту сети за впн-сервером.

мой личный впн-сервер работает - вопросов нет.  Начальный вопрос поста был не в этом.
Повторюсь, как pfsensu с настроеным клиентом впн подключится к внешнему впн-провайдеру (он успешно подключается), но при этом провайдер присылает команду заворачивания всего моего интернета в свой впн-канал вышеуказаной командой, а мне нужно, чтобы шлюз по умолчанию на клиенте (у меня) оставался мультиван, а правилами фаервола уже конкретно каждому ip заворачивать в впн-тунель. как-то так..
« Last Edit: May 21, 2017, 02:09:45 am by dvv06 »

Offline pigbrother

  • Hero Member
  • *****
  • Posts: 1672
  • Karma: +207/-2
    • View Profile
Re: OpenVPN Client -> External VPN Service provider
« Reply #12 on: May 21, 2017, 05:00:09 am »
Будет. Я настраивал впн-сервер на 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 нужные правила и расставив их в определенном порядке.
« Last Edit: May 21, 2017, 05:37:16 am by pigbrother »

Offline dvv06

  • Jr. Member
  • **
  • Posts: 51
  • Karma: +1/-0
    • View Profile
Re: OpenVPN Client -> External VPN Service provider
« Reply #13 on: May 21, 2017, 06:20:36 am »
в настроеном мной 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 ом проверяю - идет в канал впн, но сайт заблокирова всеравно

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

я еще попробую без сквида, если все-таки можно будет выбирать элиасы, тогда это уже косяк сквида а не пфсенса...
« Last Edit: May 21, 2017, 06:38:12 am by dvv06 »

Offline pigbrother

  • Hero Member
  • *****
  • Posts: 1672
  • Karma: +207/-2
    • View Profile
Re: OpenVPN Client -> External VPN Service provider
« Reply #14 on: May 21, 2017, 07:03:58 am »
в настроеном мной pfsense servere эта галочка НЕ СТОИТ. Клиенты подключаются к нему и т.о им доступны ресурсы сети за шлюзом pfSense, а на домашних устройствах они испоьзуют своих провайдеров и ходят через них. Стоило бы мне на моем сервере поставить эту галку, так на стороне клиента это выглядело бы как если бы раздавал ему инет а не их домашний провайдер. то, что вы говорите - я кажется понимаю, без этой директивы я как клиент впн буду как бы частью сети во главе с впн сервером, но интернет от него я не получу т.к он не является шлюзом по умолчанию у меня на клиенте.

Все верно.

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

я еще попробую без сквида, если все-таки можно будет выбирать элиасы, тогда это уже косяк сквида а не пфсенса.
Да, AFAIK, это особенность сквида - использовать исключительно системный default gateway. Как это обойти в актуальных версиях pfSense вроде были посты, но, повторю, я от темы сквида далек.
« Last Edit: May 21, 2017, 08:57:39 am by pigbrother »