Маршрутизация OpenVPN



  • В общем хрен бы с ним, с IPSec’ом, пока как временное решение подключил я два филиала через OpenVPN, но не могу почему-от разобраться с маршрутизацией.
    Итак дано:

    Филиал_1 PFSense 2.3.5 в качестве сервера OpenVPN
    Сеть 192.168.72.0/24
    Сеть OpenVPN 10.0.1.0/24
    IP полученный при установлении туннеля 10.0.1.1

    Филиал_2 PFSense 2.1.5 в качестве клиента
    Сеть 192.168.166.0/24
    Сеть OpenVPN 10.0.1.0/24
    IP полученый при установлении туннеля 10.0.1.2

    Надо: чтоб подсети 192.168.72.0 и 192.168.166.0 могли подружиться между собой и видеть компьютеры друг-друга.

    Было сделано:

    • Добавлен интерфейс со стороны клиента (Interfaces - (assign)) с указанием на Network Port ovpnc1
    • Автоматически в гейтах добавился новый гейт OPENVPN_VPNV4 с указанием адреса удаленного сервера 10.0.1.1
    • Создан маршрут
    192.168.72.0/24 Gateway OPENVPN_VPNV4 - 10.0.1.1
    

    между собой pf’ы себя видят, пингуются полученные 10.0.1.1 и 10.0.1.2, но дальше этого дело не идет, почему-то подсети дружить не хотят.

    Подскажите, что я делаю не так?



  • Неправильно. Всё.
    У вас простейшая задача по опенвпн.

    1. Никакого создания отдельн. интерфейсов.
    2. Никаких маршрутов руками.

    Опенвпн прекрасно сам рисует маршруты.

    В гугл. Фраза openvpn pfsense Вас спасет.



  • @werter сударь видимо считает что я не спрашивал у дяди гугла? =D
    Я понимаю что так то она простейшая, но чота вкрутиться в нее не получается 😞
    Не спорю, ручное прописывание это уже чисто импровизация, но как-то автоматом у меня маршрутизация не взлетела, не смотря на то что в полях IPv4 Remote network(s) что на сервере что на клиенте прописаны сети других сторон.

    Может быть я что-то с режимами не так сделал?

    SERVER MODE Peer to peer
    Protocol UDP
    Device mode tun
    


  • Добрый.
    Стройте туннель на сертификатах. И используйте директиву iroute в Client specific overrides на впн-сервере.
    Зы. Никаких доп. интерфейсов и маршрутов руками.



  • @werter
    то есть на shared key работать не будет? Ща попробуем на сертификатах…



  • @desroze said in Маршрутизация OpenVPN:

    @werter
    то есть на shared key работать не будет? Ща попробуем на сертификатах…

    Я этого не сказал.



  • @werter said in Маршрутизация OpenVPN:

    Я этого не сказал.

    Ну тем не менее оно почему-то на shared key не роутит.
    Итак, я правильно понял, на сервере и на клиенте я создаю одинаковый (в смысле содержимого Certificate data и Certificate Private Key) Certificate Authorities, создаю на сервере Server Certificate и User Certificate.
    Затем содержимое User Certificate с сервера копирую на клиента, и при создании туннеля указываю его клиенту, при этом снимаю галку с TLS authentication.
    Все верно?



  • В целом, я думаю, будет все гораздо проще если вы меня ткнете мануалом как все это дело настраивается, ато я чет туплю походу, до этого между одинаковыми версиями IPSec нормально работал, и OpenVPN я не пользовал, а ща почему-то разобраться не выходит



  • блин, вот тут чувак как раз создает еще один интерфейс, но при этом маршрутов руками не прописывает, и у него все работает, а у меня точно так же не работает… ЧЯДНТ?



  • Блин, вот вторая тема от меня на этом форуме, и уже на вторую тему мне не могут дать ответ или как-то помочь, вот ведь беда



  • Вот каноническая инструкция от rubic:
    https://forum.netgate.com/topic/53251/openvpn-pki-site-to-site-инструкция-для-обсуждения
    Одно плохо - переезд форума на новый движок покорежил разметку.

    @desroze said in Маршрутизация OpenVPN:

    чувак как раз создает еще один интерфейс

    Интерфейс для OpenVPN, в частности и для вашего случая site-to-site не нужен.



  • @pigbrother said in Маршрутизация OpenVPN:

    Вот каноническая инструкция от rubic:
    https://forum.netgate.com/topic/53251/openvpn-pki-site-to-site-инструкция-для-обсуждения
    Одно плохо - переезд форума на новый движок покорежил разметку.

    @desroze said in Маршрутизация OpenVPN:

    чувак как раз создает еще один интерфейс

    Интерфейс для OpenVPN, в частности и для вашего случая site-to-site не нужен.

    вот то то и оно, не особо разборчива эта инструкция без картинок, на них там половина нагрузки смысловой



  • @desroze Вот копия из вебархива
    https://web.archive.org/web/20130925085058/http://forum.pfsense.org/index.php/topic,59081.0.html
    Картинок, правда, тоже нет, но читается лучше.



  • @pigbrother said in Маршрутизация OpenVPN:

    @desroze Вот копия из вебархива
    https://web.archive.org/web/20130925085058/http://forum.pfsense.org/index.php/topic,59081.0.html
    Картинок, правда, тоже нет, но читается лучше.

    да видел я это. Там ведь в картинках то описаны настройки сервера, настройки Client Specific Overrides и других пунктов. Были бы они продублированы текстом - не вопрос, а так то толку…



  • Добрый.

    Отличное видео от самого произ-ля для понимания настройки OpenVPN на pfsense. Рекомендую.
    Не поленитесь просмотреть до конца.

    https://www.youtube.com/watch?v=ku-fNfJJV7w



  • В общем таки разобрался, туннель таки взлетел, но одна проблема таки осталась, может вы чего подскажете, ибо гугл внятного не подсказал (либо я не понял).
    Дано:

    OpenVPN Server
    IP 192.168.72.1
    Tunnel IP 192.168.100.1
    Сеть за сервером 192.168.72.0/24
    
    OpenVPN Client 
    IP 192.168.166.1
    Tunnel IP 192.168.100.2
    Сеть за сервером 192.168.166.0/24
    

    С самих PF’ов сети я прекрасно пингую в обе стороны. А вот с сетей за ними пинги ходят только до адресов туннеля, дальше туннеля не хотят.
    Руками на PF’ах никаких маршрутов не прописывал, хотел было прописать на Centos’е из подсети 166, но что-то пошло не так

    [root@aster]# route add -net 192.168.72.0/24 gw 192.168.100.1
    SIOCADDRT: Нет такого процесса
    

    при том что с этой машины IP противоположного (тот самый 192.168.100.1) конца я прекрасно пингую. Если пускаю пинг с самого 192.168.166.1 до какого либо из хостов подсети 72 - все ок.
    Что я делаю не так?



  • Добрый.

    Никаких маршрутов руками на клиентах. Достаточно указания шлюза в настр. сети (ip пф). И правил на интерфейсах пф (если необходимо). Удаляйте.

    На форуме ixbt есть ветка по openvpn. Там на русском хорошо описаны директивы.

    P.s. В правилах fw на LAN сервера попробуйте разрешить явно хождение в удаленную сеть. Хотя в 2.4.3 это вроде и не нужно, но все же.



  • @werter said in Маршрутизация OpenVPN:

    Добрый.

    Никаких маршрутов руками на клиентах. Достаточно указания шлюза в настр. сети (ip пф). И правил на интерфейсах пф (если необходимо). Удаляйте.

    На форуме ixbt есть ветка по openvpn. Там на русском хорошо описаны директивы.

    P.s. В правилах fw на LAN сервера попробуйте разрешить явно хождение в удаленную сеть. Хотя в 2.4.3 это вроде и не нужно, но все же.

    Шлюз указан корректно, в правилах fw два правила, Anti-Lockout Rule и Default allow LAN to any rule. И тем не менее до целевой подсети связи нет



  • "На форуме ixbt есть ветка по openvpn. Там на русском хорошо описаны директивы. "

    Подскажу, для того, чтобы сеть за сервером увидела сеть за клиентом на сервере нужна директива route (ее роль выполняет пункт remote network в настройках сервера)
    Наоборот - директива iroute на сервере в настройках Client specific overrides.

    Выше описанное касается только туннеля, построенного на сертификатах.



  • То же наступил на такие грабли, ток сервером у меня PfSense с сертификатами, а клиентом Zyxel на NDIS.
    С Zyxel в сетку за PfSense ходит прекрасно (видать сам OpenVPN разруливает маршруты), а вот в обратку никак.



  • @ptz-m said in Маршрутизация OpenVPN:

    Zyxel

    Как написано выше - про route и iroute для клиента на Zyxel не забыли?
    Плюс иногда помогает правило на LAN pfSense :
    IPv4 * LAN net * a.b.с.d/24 *
    a.b.с.d/24 - сеть за Zyxel
    Правило поставить повыше, затем reset states перезакрузка.



  • Ох как туго мозг включается после отпуска, да ещё и интерфейс форума переделали… ☠

    @pigbrother
    Насколько помню iroute в OpenVPN давным давно “грохнули” как атавизм, и без него норм работает на новых версиях.
    LAN правило - м-м, оно вместо статического маршрута работает?

    P.S. ещё вроде как tap на TCP надо переходить, а то с MultiWAN будут проблемы при UDP

    P.S.S. кста, в видео, что выше, чувак делает точка-точка, а у меня точка-многоточка!



  • @ptz-m said in Маршрутизация OpenVPN:

    Насколько помню iroute в OpenVPN давным давно “грохнули” как атавизм, и без него норм работает на новых версиях.

    Нет, это не так.
    route говорит серверу - у тебя есть маршрут в a.b.с.d/24
    iroute говорит серверу, что сеть a.b.с.d/24 находится за конкретным клиентом.

    @ptz-m said in Маршрутизация OpenVPN:

    LAN правило - м-м, оно вместо статического маршрута работает?

    Нет, в pfSense иногда проявляется особенность, заставлюющая это правило создавать (если интересно - гуглите ветку на предмет negate rules)

    @ptz-m said in Маршрутизация OpenVPN:

    P.S. ещё вроде как tap на TCP надо переходить, а то с MultiWAN будут проблемы при UDP

    Про это не слышал



  • @ptz-m said in Маршрутизация OpenVPN:

    P.S. ещё вроде как tap на TCP надо переходить, а то с MultiWAN будут проблемы при UDP

    Ерунда какая.
    Не вводите др. участников в заблуждение.

    P.s. Навскидку, TAP исп-ся, если необходим широковещательный домен - единая сеть с единой адресацией в ней.
    В ютубе есть офиц. канал Netgate. Рекомендую видео по OpenVPN (и не только) там. Оч. доходчиво снято.



  • @pigbrother said in Маршрутизация OpenVPN:

    Про это не слышал

    Да суть в технологии TCP/UDP, если VPN не ответственный (не касса или канал банка) то и х с ним. В противном случае где-то тут писалось, что тупить начинает - не понимает, что канал лёг и держит сессию. Реально может стать проблемой, если настроено кол-во подключений - слоты забиваются и до свидос.



  • @ptz-m , Использую и TCP и UDP. Никакой разницы в моем случае не замечаю.



  • Вчера провёл эксперимент.
    VPN - OpenVPN - Серверы - Локальные сети IPv4 кроме серверной сети 0.0 дописал клиентские 1.0 и т.д. В результате клиент перестал пинговать серверную сеть и открывать шару. Снёс изменения - пинг с клиента в серверную сеть снова пошёл, в обратку - по прежнему нет.
    VPN - OpenVPN - Серверы - Специфические Настройки Клиента - Настройки Клиента - Расширенные добавил запись, с Обычное Имя (CN) соответствующие имени клиента VPN на сети 1.0, вида push “route 192.168.1.0 255.255.255.0”. Толку 0%.
    Межсетевой экран - Правила - LAN добавил запись Протокол IPv4 *, Источник LAN net, Порт *, Назначение 192.168.1.0, Порт *, Шлюз * и стало интереснее, согласно tracert пакеты в данном случае ходят по маршруту комп-pfsense-провайдер-заглушка. Убираем правило и маршрут меняется на комп-провайдер-заглушка. Тут возможно срабатывают правила, с которыми я воевал ранее - https://forum.netgate.com/topic/128281/multiwan-dns-do-not-override/19
    Мысль вернулась к тому, что PfSense не пускает клиентам, поскольку просто не объявлен маршрут. Теперь вопрос - а как его прописать правильно? В Система - Маршрутизация - Статические Маршруты какая-то белиберда добавляется, предположу что надо в Межсетевой экран - Правила - OpenVPN добавить запись вида Протокол IPv4 *, Источник LAN net, Порт *, Назначение 192.168.1.0, Порт *, Шлюз *?



  • А с каким IP виден ПК, подключивщийся из сети за Zyxel к ресурсу в сети за pfSense? Обычно это видно в логах почтовых, веб и т.д серверов.



  • Добрый.

    VPN - OpenVPN - Серверы - Специфические Настройки Клиента - Настройки Клиента - Расширенные добавил запись, с Обычное Имя (CN) соответствующие имени клиента VPN на сети 1.0, вида push “route 192.168.1.0 255.255.255.0”. Толку 0%.

    Enter the X.509 common name for the client certificate, or the username for VPNs utilizing password authentication. This match is case sensitive.

    Т.е., если у вас впн на сертификатах + юзер и пасс - пишется имя пол-ля.
    При этом пол-лю должен быть создан личный сертификат.

    Если только на сертификатах - правильное CN сертфиката пол-ля.
    Внимательно с этим.



  • @pigbrother а вот это хороший вопрос… народ пользуется шарой, на pfsense в логах разве что смотреть…

    @werter said in Маршрутизация OpenVPN:

    Если только на сертификатах - правильное CN сертфиката пол-ля.
    Внимательно с этим.

    имя полностью писал -> ля-ля-ля.домен , специально 2 раза проверил



  • @ptz-m said in Маршрутизация OpenVPN:

    а вот это хороший вопрос… народ пользуется шарой, на pfsense в логах разве что смотреть…

    Смотреть можно на ПК с шарой. netstat, хотите в GUI -
    https://live.sysinternals.com/Tcpview.exe

    @ptz-m said in Маршрутизация OpenVPN:

    имя полностью писал -> ля-ля-ля.домен , специально 2 раза проверил

    ля-ля-ля.домен? Имеется в виду CN (common name) сертификата пользователя.



  • @pigbrother
    я уже глянул в ту сторону, на следующей неделе займусь этим вопросом

    ну CN у меня есть и трёхсоставные - ля-ля-ля.город.отдел



  • Покажите скрин того, что вы считаете CN. Так нам всем понятнее будет.



  • @werter 0_1529094343166_cn.jpg

    не знаю что это даст, но вот - смотрите. берём имя из сертификата.
    проблема то в маршрутизации на данный момент, идея с правилом в разделе OpenVPN ничего не дала. согласно tracert - по прежнему сыпет pf пакетами для 1.0 сети в мир вместо того что-бы гнать его в туннель. идея с правилом в LAN от pigbrother даёт хоть что-то, но опять же, трафик сыпется в дефолтный гейтвей и выкидываться в мир вместо туннеля. бредовая идея с созданием прослойки в виде “левого” гейтвея и прогоном трафика из LAN через него в failover выглядит диким костылём



    1. Повторю свой вопрос :

    @pigbrother said in Маршрутизация OpenVPN:

    с каким IP виден ПК, подключивщийся из сети за Zyxel к ресурсу в сети за pfSense?

    1. Попробуйте создать пользователя с CN попроще, из 1 слова без точек и спецсимволов.


  • Добрый.
    Адресация в сетях за сервером и клиентом какая ? Должна быть разной.



  • @pigbrother

    0_1529406722921_socket.jpg
    Винда идентифицирует соединения из тунеля (172.) и локалку серверную (0.0).
    Вообще проще через Диагностика - Редактировать файл привести конфиг сервака на данный момент из /var/etc/openvpn/server1.conf

    codedev ovpns1
    verb 1
    dev-type tap
    dev-node /dev/tap1
    writepid /var/run/openvpn_server1.pid
    #user nobody
    #group nobody
    script-security 3
    daemon
    keepalive 10 60
    ping-timer-rem
    persist-tun
    persist-key
    proto udp4
    cipher AES-256-CBC
    auth SHA1
    up /usr/local/sbin/ovpn-linkup
    down /usr/local/sbin/ovpn-linkdown
    local XXX.XXX.XXX.XXX
    tls-server
    server 172.16.0.0 255.255.255.0
    client-config-dir /var/etc/openvpn-csc/server1
    tls-verify "/usr/local/sbin/ovpn_auth_verify tls 'server.ля-ля-ля.mainframe' 1"
    lport 1194
    management /var/etc/openvpn/server1.sock unix
    push "route 192.168.0.0 255.255.255.0"
    client-to-client
    ca /var/etc/openvpn/server1.ca 
    cert /var/etc/openvpn/server1.cert 
    key /var/etc/openvpn/server1.key 
    dh /etc/dh-parameters.2048
    tls-auth /var/etc/openvpn/server1.tls-auth 0
    ncp-ciphers AES-256-GCM:AES-128-GCM
    comp-lzo adaptive
    push "comp-lzo adaptive"
    persist-remote-ip
    float
    

    P.S. глянул в ман - http://www.lissyara.su/doc/man/safety/openvpn/ , слазил client-config-dir - я так понимаю тут и лежат активные VPN - OpenVPN - Специфические Настройки Клиента - CSC специфические настройки. Вот ток не все, а только из раздела Расширенные

    P.S.S. вот сразу надо было в норм конфиг OpenVPN залезть! Появилась мысль вида:
    VPN - OpenVPN - Специфические Настройки Клиента - CSC специфические настройки - Расширенные нужно правильный синтаксис писать iroute 192.168.1.0 255.255.255.0
    VPN - OpenVPN - Серверы - Расширенные настройки - Особые параметры прописать route 192.168.1.0 255.255.255.0
    А я как дурак пишу push “route 192.168.10.0 255.255.255.0” и т.д. из хелпа PfSense.

    @werter
    разуметься разная, в противном случае начинает глючить сеть со стороны клиента



  • @ptz-m said in Маршрутизация OpenVPN:

    Винда идентифицирует соединения из тунеля (172.

    А должна из сети за клиентом.

    @ptz-m said in Маршрутизация OpenVPN:

    нужно правильный синтаксис писать iroute 192.168.1.0 255.255.255.0

    Отмтайте тему назад и посчитайте, сколько раз про iroute вам тут говорили.

    Момент номер 2.
    Убедитесь что Zyxel не поднимает NAT для своего OpenVPN интерфейса.

    @ptz-m said in Маршрутизация OpenVPN:

    Вообще проще через Диагностика - Редактировать файл привести конфиг сервака на данный момент из /var/etc/openvpn/server1.conf

    Нет. Этого делать не надо. Если и сработает - до до первой перезагрузки. Плюс pfSense - практически идеал в смысле GUI настроек вообще, OpenVPN - в частности.
    Более того, даже для iroute есть GUI-аналог, да еще хорошо откомментированный:
    IPv4 Remote Network/s
    These are the IPv4 networks that will be routed to this client specifically using iroute, so that a site-to-site VPN can be established. Expressed as a comma-separated list of one or more CIDR ranges. May be left blank if there are no client-side networks to be routed.
    NOTE: Remember to add these subnets to the IPv4 Remote Networks list on the corresponding OpenVPN server settings.

    В pfSense можно настроить OpenVPN практическти не используя поля Advanced.



  • @pigbrother
    какая-то каша пошла в теме…

    1. редактируемый файл слететь не должен, это не MyPBX с астериском в виртуалке
    2. причём тут route и iroute? я просто в первоначальном варианте писал с “…” (чего делать не надо было), а когда переписал на верный синтаксис, у меня клиенты по прежнему сервер шары видят, а сервер их не видит, если с него их пинговать! и трейс с сервака я приводил не для красоты - пакеты улетают в WAN вместо OpenVPN туннеля.
    3. а как Zyxel с NDIS, NAT может поднять на OpenVPN? У него ISP вообще основной, а всё остальное или туннелируется через него(IPPoE, VPN) или идёт параллелкой (VLAN). или мысль была, что он делает masqueradin на OpenVPN? ну дак по скрину и видно, что он это делает, причём по умолчанию. никаких настроек там нет - https://help.keenetic.com/hc/ru/articles/115005717009-Использование-клиента-OpenVPN , даже сервер настраиваться без особого конфигурирования - https://help.keenetic.com/hc/ru/articles/115005822629-OpenVPN-сервер-на-Keenetic
    4. а вот с чего это вдруг? ладно Zyxel имеет DHCP на том конце 172.16.0.2, а на 172.16.0.3 у меня просто комп висит, он-то ИП должен откуда в TAP брать тогда? я конечно понимаю, что по логике выходит, что концы туннеля - это оконечные устройства и соответственно за ними пустота, но в чём тогда смысл конфигурирования L2 как клиентов? если получается должна быть сеть из серверов…

    вообще странно то что пинг не улетает на концы туннеля из локалки серверной (пробовал с PfSens-а пускать до компа на 0.3 - пингует зараза…), вот начало пингуется 172.16.0.1, а концы 0.2 и 0.3 - нет…


 

© Copyright 2002 - 2018 Rubicon Communications, LLC | Privacy Policy