OpenVPN Pfsense и Mikrotik



  • Помогите решить связку двух офисов по OpenVPN

    1. Pf WAN a.a.a.a - lan 192.168.6.0/24 - Tunnel 10.0.8.0/24
    2. Mikrotik b.b.b.b -Lan 192.168.88.0/24

    Делалось по разным описаниям в интернете, Pf как сервер, а Mikrotik клент, но итог один:
    Есть только пинг Mikrotik - Pf, при этом VM находящиеся в сетке Pf по RDP зайти не получается
    Pf - Mikrotik вообще ничего
    Решение Ipsec между этими же офисами работает без проблем
    Так же клиент программа OpenVPN для Windows подключается к  Pf и все работает
    В чем косяк связки через Tunnel по OpenVPN между Pf и Mikrotik?








  • У меня такие связки годами работают.

    Приведите с Микротика  при установившемся туннеле:

    /interface ovpn-client print
    /ip route print detail

    Белые IP скройте.

    Вечером гляну.



  • [admin@MikroTik] > /ip route  print detail   
    Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
    B - blackhole, U - unreachable, P - prohibit
    0 ADS  dst-address=0.0.0.0/0 gateway=pppoe-out1 gateway-status=pppoe-out1 reachable distance=0 scope=30 target-scope=10

    1 ADC  dst-address=10.0.8.0/24 pref-src=10.0.8.2 gateway=ovpn-out1 gateway-status=ovpn-out1 reachable distance=0 scope=10

    2 ADC  dst-address=10.100.100.101/32 pref-src=bbb.bb.bbb.bbb gateway=pppoe-out1 gateway-status=pppoe-out1 reachable
            distance=0 scope=10

    3 ADC  dst-address=192.168.0.10/32 pref-src=192.168.0.1 gateway= <pptp-andrey>gateway-status= <pptp-andrey>reachable
            distance=0 scope=10

    4 A S  dst-address=192.168.1.0/24 gateway=ipip-tunnel2 gateway-status=ipip-tunnel2 reachable check-gateway=ping distance=1
            scope=30 target-scope=10

    5  S  dst-address=192.168.6.0/24 gateway=ipip-tunnel1 gateway-status=ipip-tunnel1 unreachable check-gateway=ping
            distance=1 scope=30 target-scope=10

    6 ADS  dst-address=192.168.6.0/24 gateway=10.0.8.1 gateway-status=10.0.8.1 reachable via  ovpn-out1 distance=1 scope=30
            target-scope=10

    7 ADC  dst-address=192.168.88.0/24 pref-src=192.168.88.1 gateway=bridge gateway-status=bridge reachable distance=0
            scope=10

    8  DS  dst-address=192.168.88.0/24 gateway=10.0.8.1 gateway-status=10.0.8.1 reachable via  ovpn-out1 distance=1 scope=30
            target-scope=10
    [admin@MikroTik] > /interface ovpn-client print
    Flags: X - disabled, R - running
    0  R name="ovpn-out1" mac-address=02:B4:74:49:D2:D1 max-mtu=1500 connect-to=aa.aaa.aa.aa port=1194 mode=ip user="vpn-op"
          password="xxxxxxxxxx" profile=openvpn certificate=vpn5.crt_0 auth=md5 cipher=blowfish128 add-default-route=no
    [admin@MikroTik] ></pptp-andrey></pptp-andrey>



  • Будем считать, что я не ошибся какие скрнишоты относятся к серверу, какие к - Сlient Specific Overrides :)
    Для начала:

    1.У вас 2 маршрута в одну сеть

    5  S  dst-address=192.168.6.0/24 gateway=ipip-tunnel1 gateway-status=ipip-tunnel1 unreachable check-gateway=ping
            distance=1 scope=30 target-scope=10

    6 ADS  dst-address=192.168.6.0/24 gateway=10.0.8.1 gateway-status=10.0.8.1 reachable via  ovpn-out1 distance=1 scope=30    target-scope=10

    С одинаковыми distance и  scope. Один из них - мертвый.

    2.  ADC  dst-address=10.0.8.0/24 pref-src=10.0.8.2 gateway=ovpn-out1 gateway-status=ovpn-out1 reachable distance=0 scope=10
    Этот маршрут, в принципе, не нужен. Вероятно, он возник из-за дублирования директив, о котором ниже.

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

    Вы дублируете директивы и делаете ошибки:
    В  Сlient Specific Overrides -
    Tunnel Network,  в принципе, в  Сlient Specific Overrides заполнять не нужно.
    IPv4 Local Network/s  в Сlient Specific Overrides удалите, если она уже задана в настройках сервера.
    (NOTE: Networks do not need to be specified here if they have already been defined on the main server configuration.)
    Либо оставьте iroute, либо IPv4 Remote Network/s - эти записи дублирую друг друга.

    В настройках сервера -
    в advanced  могло бы  быть route 192.168.88… (но не push "route 192.168.88. ... -  вы ошибочно передаете через push клиенту маршрут в его же сеть),  но, так как вы заполнили IPv4 Remote network(s), то в  advanced все удалите.



  • Спасибо за помощь…бекапы есть, переживать не стоит
    Тот что мертвый ipptunnel, это маршрут для ipsec в тот же Pf, я его отключил что бы не было накладок
    Настроил как посоветовали, дублированный маршрут исчез, но результат пока тот же((

    Flags: X - disabled, A - active, D - dynamic,
    C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
    B - blackhole, U - unreachable, P - prohibit
    0 ADS  dst-address=0.0.0.0/0 gateway=pppoe-out1
            gateway-status=pppoe-out1 reachable distance=0 scope=30 target-scope=10

    1 ADC  dst-address=10.0.8.0/24 pref-src=10.0.8.2 gateway=ovpn-out1
            gateway-status=ovpn-out1 reachable distance=0 scope=10

    2 ADC  dst-address=10.100.100.101/32 pref-src=bbbbbbbbbb gateway=pppoe-out1
            gateway-status=pppoe-out1 reachable distance=0 scope=10

    3 A S  dst-address=192.168.1.0/24 gateway=ipip-tunnel2
            gateway-status=ipip-tunnel2 reachable check-gateway=ping distance=1
            scope=30 target-scope=10

    4 ADS  dst-address=192.168.6.0/24 gateway=10.0.8.1
            gateway-status=10.0.8.1 reachable via  ovpn-out1 distance=1 scope=30
            target-scope=10

    5  S  dst-address=192.168.6.0/24 gateway=ipip-tunnel1
            gateway-status=ipip-tunnel1 unreachable check-gateway=ping distance=1
            scope=30 target-scope=10






  • В Сlient Specific Overrides сервер выбран правильно?
    Common name пользователя указано правильно?
    Common name смотреть в сертификатах, регистр букв важен.
    Недействующий маршрут в Микротике отключите не удаляя.

    Туннель поднимается без ошибок? "Золотой стандарт" -  AES\SHA1.

    Ну и до кучи. Добавьте на LAN повыше правило

    IPv4 * LAN net * 192.168.88.0/24 * * none

    Без него иногда доступа к сетям нет.



  • Проверил и даже ради интереса подставлял другие действующие сертификаты, сервер указан верно, правило добавил, шифрование поменял, хотя этим я ранее игрался….результат пока тот же
    Как проверить подключение с ошибками или без, то что в логах микротика ничего особого не видно, кроме не которых записей

    21:52:29 ovpn,info ovpn-out1: initializing...
    21:52:29 ovpn,info ovpn-out1: connecting...
    21:52:29 system,info device changed by admin
    21:52:29 ovpn,debug,packet sent P_CONTROL_HARD_RESET_CLIENT_V2 kid=0 sid=4d33acfc8361e7e4 pid=0 DAT
    A len=0
    21:52:29 ovpn,debug,packet rcvd P_CONTROL_HARD_RESET_SERVER_V2 kid=0 sid=4afbfc5a24ee8a3e [0 sid=4d
    33acfc8361e7e4] pid=0 DATA len=0
    21:52:29 ovpn,debug,packet sent P_CONTROL_HARD_RESET_CLIENT_V2 kid=0 sid=4d33acfc8361e7e4 [0 sid=4a
    fbfc5a24ee8a3e] pid=1 DATA len=0
    21:52:29 ovpn,debug,packet sent P_CONTROL kid=0 sid=4d33acfc8361e7e4 pid=2 DATA len=283
    21:52:29 ovpn,debug,packet rcvd P_ACK kid=0 sid=4afbfc5a24ee8a3e [1 sid=4d33acfc8361e7e4] DATA len=
    DATA len=
    0
    21:52:29 ovpn,debug,packet rcvd P_CONTROL kid=0 sid=4afbfc5a24ee8a3e [4 sid=4d33acfc8361e7e4] pid=4
    DATA len=51
    21:52:29 ovpn,debug,packet sent P_ACK kid=0 sid=4d33acfc8361e7e4 [4 sid=4afbfc5a24ee8a3e] DATA len=
    0
    21:52:29 ovpn,debug,packet sent P_CONTROL kid=0 sid=4d33acfc8361e7e4 pid=5 DATA len=297
    21:52:29 ovpn,debug,packet rcvd P_CONTROL kid=0 sid=4afbfc5a24ee8a3e [5 sid=4d33acfc8361e7e4] pid=5
    DATA len=233
    21:52:29 ovpn,debug,packet sent P_ACK kid=0 sid=4d33acfc8361e7e4 [5 sid=4afbfc5a24ee8a3e] DATA len=
    0
    21:52:29 ovpn,info ovpn-out1: using encoding - AES-128-CBC/SHA1
    21:52:29 ovpn,debug,packet sent P_ACK kid=0 sid=4d33acfc8361e7e4 DATA len=0
    21:52:29 ovpn,debug,packet sent P_CONTROL kid=0 sid=4d33acfc8361e7e4 pid=6 DATA len=42
    21:52:30 ovpn,debug,packet rcvd P_ACK kid=0 sid=4afbfc5a24ee8a3e [6 sid=4d33acfc8361e7e4] DATA len=
    0
    21:52:30 ovpn,debug,packet rcvd P_CONTROL kid=0 sid=4afbfc5a24ee8a3e pid=6 DATA len=167
    21:52:30 ovpn,debug,packet sent P_ACK kid=0 sid=4d33acfc8361e7e4 [6 sid=4afbfc5a24ee8a3e] DATA len=
    0
    21:52:30 ovpn,info ovpn-out1: connected



  • Логи смотреть лучше со стороны pfSense

    Status-System Logs-OpenVPN.

    Вот вам рабочие конфиги сервера и клиента. Меняйте свои настройки в GUI и смотрите результат тут:

    Diagnostics->Edit File.
    Редактировать и сохранять настойки тут нельзя , все делается через GUI.

    сервер

    /var/etc/openvpn/server4.conf

    dev ovpns4
    verb 1
    dev-type tun
    tun-ipv6
    dev-node /dev/tun4
    writepid /var/run/openvpn_server4.pid
    #user nobody
    #group nobody
    script-security 3
    daemon
    keepalive 10 60
    ping-timer-rem
    persist-tun
    persist-key
    proto tcp-server
    cipher AES-256-CBC
    auth SHA1
    up /usr/local/sbin/ovpn-linkup
    down /usr/local/sbin/ovpn-linkdown
    local 1.1.1.1
    tls-server
    server 10.11.12.0 255.255.255.0
    client-config-dir /var/etc/openvpn-csc/server4
    ifconfig 10.11.12.1 10.11.12.2
    tls-verify "/usr/local/sbin/ovpn_auth_verify tls 'ovpns2' 1"
    lport 1195
    management /var/etc/openvpn/server4.sock unix
    push "route 10.0.2.0 255.255.255.0"
    ca /var/etc/openvpn/server4.ca 
    cert /var/etc/openvpn/server4.cert 
    key /var/etc/openvpn/server4.key 
    dh /etc/dh-parameters.1024
    crl-verify /var/etc/openvpn/server4.crl-verify 
    persist-remote-ip
    float
    topology subnet
    route 10.0.3.0 255.255.255.0
    

    Сlient Specific Override

    /var/etc/openvpn-csc/server4*client*

    iroute 10.0.3.0 255.255.255.0
    

    Где:
    10.0.2.0 - LAN за pfSense
    10.0.3.0 - LAN за Микротик
    10.11.12.0 - Сеть туннеля
    client - Common Name клиента, как он виден в  System-Certificate Manager-Certificates.
    1.1.1.1 - IP pfSense

    На Микротике:

    /interface ovpn-client
    add certificate=client-cert cipher=aes256 comment="OVPN" connect-to=1.1.1.1 mac-address=xx:xx:xx:xx:xx:xx name=
        ovpn-out1 password=pass port=1195 user=user

    Маршруты\правила*профили* на Микротике вручную создавать не надо.
    Сертификат и ключ клиента в Микротик импортированы правильно?
    Напротив сертификата в Winbox  должны быть буквы KT



  • Собственно мои конфиги, ничего такого не увидел в различии

    /var/etc/openvpn/server2.conf
    –--------------
    dev ovpns2
    verb 1
    dev-type tun
    dev-node /dev/tun2
    writepid /var/run/openvpn_server2.pid
    #user nobody
    #group nobody
    script-security 3
    daemon
    keepalive 10 60
    ping-timer-rem
    persist-tun
    persist-key
    proto tcp-server
    cipher AES-128-CBC
    auth SHA1
    up /usr/local/sbin/ovpn-linkup
    down /usr/local/sbin/ovpn-linkdown
    local 11.111.11.11
    tls-server
    server 10.0.8.0 255.255.255.0
    client-config-dir /var/etc/openvpn-csc/server2
    ifconfig 10.0.8.1 10.0.8.2
    tls-verify "/usr/local/sbin/ovpn_auth_verify tls 'vpn4' 1"
    lport 1194
    management /var/etc/openvpn/server2.sock unix
    max-clients 2
    push "route 192.168.6.0 255.255.255.0"
    route 192.168.88.0 255.255.255.0
    ca /var/etc/openvpn/server2.ca
    cert /var/etc/openvpn/server2.cert
    key /var/etc/openvpn/server2.key
    dh /etc/dh-parameters.1024
    topology subnet

    /var/etc/openvpn-csc/server2/vpn5

    iroute 192.168.88.0 255.255.255.0

    Сертификаты импортированы правильно, да и вряд ли подключение было бы, без их правильности)
    Может копать в другом направлении? Не могу понять как так получается, что с микротика я пингую любые хосты за Pf, но зайти к примеру по RDP не могу?



  • В    Firewall-Rules-OpenVPN
    есть такое правило?
    IPv4 * * * * * * none Pv4 * * * * * * none

    На машинах, куда хотите по RDP брандмауэры отключать пробовали?

    Пробуйте сменить порт 1194 на что-либо нестандартное.



  • Да, на Микротике вообще отключал Firewall, порт щас поменял на 1197 и правило это есть



  • @smithsky:

    Да, на Микротике вообще отключал Firewall, порт щас поменял на 1197 и правило это есть

    Я про встроенный брандмауэр Windows.
    Ну и последнее - у ПК  Микротик и pfSense - шлюзы по умолчанию?



  • В виндовс отключен, были мысли по этому поводу
    По умолчанию, что имеется ввиду?



  • @smithsky:

    В виндовс отключен, были мысли по этому поводу
    По умолчанию, что имеется ввиду?

    Что pfSense и Микротик - defaultt gateway каждый в своей сети.



  • Все по умолчанию, перепроверил на всякий



  • Чтож. Мне предложить вам больше нечего. Есть что-то, что мешает.
    Осталось версию  Router OS… ;)



  • Возможно, стоит v.6.40.3



  • У меня более старые.
    Работает - не трожь.

    А что говорит трассировка с ПК из сети за Микротиком?
    Где теряются пакеты? Уходят к провайдеру?

    Вот пример для  удаленной сети из примеров выше:

    1    <1 мс    <1 мс    <1 мс  10.0.3.111
    2    5 ms    4 ms    3 ms  10.11.12.1
    3    3 ms    3 ms    3 ms  10.0.2.5



  • Ничего, только до шлюза Pf и все



  • Если пинговать и делать трасеровку (Source addres: OpenVPN) из морды Pf, то сетка за микротиком пингуется, а вот с ПК за Pf видать только шлюз Pf и вот теперь как это понимать))?



  • profile=openvpn

    Попробуйте вместо  openvpn выбрать default, либо удалите в  profile=openvpn любые настройки.

    Если пинговать и делать трасеровку (Source addres: OpenVPN) из морды Pf, то сетка за микротиком пингуется, а вот с ПК за Pf видать только шлюз Pf и вот теперь как это понимать))?

    Это заставляет предположить, что с маршрутами на все хорошо.



  • Профиль убрал, хоть он и был как по дефолту
    С маршрутами и со стороны Pf по мне так кажется