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=101 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=103 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=104 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=105 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=106 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=107 ADC dst-address=192.168.88.0/24 pref-src=192.168.88.1 gateway=bridge gateway-status=bridge reachable distance=0
scope=108 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=106 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=101 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=102 ADC dst-address=10.100.100.101/32 pref-src=bbbbbbbbbb gateway=pppoe-out1
gateway-status=pppoe-out1 reachable distance=0 scope=103 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=104 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=105 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 и правило это есть
-
Да, на Микротике вообще отключал Firewall, порт щас поменял на 1197 и правило это есть
Я про встроенный брандмауэр Windows.
Ну и последнее - у ПК Микротик и pfSense - шлюзы по умолчанию? -
В виндовс отключен, были мысли по этому поводу
По умолчанию, что имеется ввиду? -
В виндовс отключен, были мысли по этому поводу
По умолчанию, что имеется ввиду?Что 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 и вот теперь как это понимать))?