LINUX.ORG.RU
ФорумAdmin

l2tp/openvpn+mikrotik3g

 


0

1

Уважаемые коллеги прошу Вашей помощи. Задача есть шлюз на VDS с белым IP 1.1.1.1 который провайдер выдает на интерфейс eth0. Есть клиент на базе mikrotik с поднятым соединением через usb modem 3g. Настройки сети 2.2.2.0/24. и подключенным к нему компьютером через второй порт микротика. Встала глобальная проблема для меня прокинуть весь трафик до конечного компьютера что бы при обращении на реальный IP 1.1.1.1 весь трафик уходил на компьютер где будут крутиться разные сервисы, начиная от апача и заканчивая видеонаблюдением.

Что было сделано: работал в основном через убунту, 1)SoftEather vpn server, очень крутая штука, бесплатная однако проброс трафика организовать к сожалению не удалось информации в интернете по этому поводу тоже маловато, основная проблема что указанная софтина весь трафик гоняет через виртуальные интерфейсы, и iptables в чистом виде не работает. 2)поставил Pritunl, поднял openvpn с пол пинка, с windows подключился и легко настроил проброс всего трафика, кроме портов ssh 22 порт и pritunl чтобы был доступен который крутился у меня на 1194 порту, остальной трафик отправил iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j ACCEPT iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1194 -j ACCEPT iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination 2.2.2.2 ну и в FORWARD прописал 1 чтобы работало. Все работало великолепно. Однако при попытке подключиться к openvpn через mikrotik встал в ступор. На микротике поднял коннект через 3g modem, интернет пошел без проблем, однако при настройке openvpn выяснилось что микротик очень сильно не любит данный vpn, и имеет ряд ограничений например по udp не подключишься только по tcp тому подобные ограничения. В какойто момент pritunl показал что я все таки смог подключится, однако пингануть 2.2.2.1 адрес openvpna не получается. Как прокинуть весь трафик на микротике через поднятый Openvpn? 3)попытки поднять С НУЛЯ и Чистые openvpn или p2tp не приводят ни к чему хорошем так как статьи уже довольно стары и не актуальны, постоянно где то вылазят ошибки в процессе сборки и настройки.

Помогите кто чем может:) хотябы как пустить весь трафик на микротике через опенвпн тонель?:)))

Или быть может кто подскажет другой способ или связку желательно с сылками на актуальные статьи, чтобы решить задачу по Другому?

Нужна дополнительная информация:
На Mikrotik:

/interface ovpn-client print detail
В момент, когда подключен к vpn:
/ip route print detail
На сервере OpenVPN:
iptables-save
ip r
sysctl net.ipv4.ip_forward
tcpdump в момент пинга с Mikrotik.

Uzix ()
Ответ на: комментарий от Uzix

микротик не подключен /interface ovpn-client print detail Flags: X - disabled, R - running 0 X name=«ovpn-out1» mac-address=02:2D:FA:3B:7A:BF max-mtu=1500 connect-to=1.1.1.1 port=555 mode=ip user=«user» password=«» profile=default certificate=TH_user_ServOpenvpn.ovpn_1 auth=null cipher=null add-default-route=no в момент когда подключен к впн: /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 S dst-address=0.0.0.0/0 gateway=*B gateway-status=*B unreachable distance=1 scope=30 target-scope=10 routing-mark=vpn-trafic

1 ADS dst-address=0.0.0.0/0 gateway=10.112.112.124 gateway-status=10.112.112.124 reachable via ppp-out1 distance=0 scope=30 target-scope=10

2 ADC dst-address=10.112.112.124/32 pref-src=10.115.26.152 gateway=ppp-out1 gateway-status=ppp-out1 reachable distance=0 scope=10

3 ADC dst-address=192.168.30.1/32 pref-src=192.168.30.2 gateway=ovpn-out1 gateway-status=ovpn-out1 reachable distance=0 scope=10

4 ADC dst-address=192.168.91.0/24 pref-src=192.168.91.1 gateway=bridge gateway-status=bridge reachable distance=0 scope=10

На сервере впн iptables-save # Generated by iptables-save v1.4.21 on Thu Aug 18 20:45:33 2016 *nat :PREROUTING ACCEPT [566:29145] :INPUT ACCEPT [566:29145] :OUTPUT ACCEPT [9:623] :POSTROUTING ACCEPT [9:623] -A POSTROUTING -s 192.168.30.0/24 -o eth0 -m comment --comment pritunl_57b5b1a3b7d59306cb84e69c -j MASQUERADE COMMIT # Completed on Thu Aug 18 20:45:33 2016 # Generated by iptables-save v1.4.21 on Thu Aug 18 20:45:33 2016 *filter :INPUT ACCEPT [63382:14290497] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [64412:19766304] -A INPUT -i tun2 -m comment --comment pritunl_57b5b1a3b7d59306cb84e69c -j ACCEPT -A FORWARD -o tun2 -m comment --comment pritunl_57b5b1a3b7d59306cb84e69c -j ACCEPT -A FORWARD -i tun2 -m comment --comment pritunl_57b5b1a3b7d59306cb84e69c -j ACCEPT -A OUTPUT -o tun2 -m comment --comment pritunl_57b5b1a3b7d59306cb84e69c -j ACCEPT COMMIT # Completed on Thu Aug 18 20:45:33 2016

ip r default via 1.1.1.5 dev eth0 1.1.1.0/25 dev eth0 proto kernel scope link src 1.1.1.1 192.168.30.0/24 dev tun2 proto kernel scope link src 192.168.30.1

sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 1

вот это

tcpdump в момент пинга с Mikrotik.

не совсем понял как сделать.

Система поставлена с нуля и еще никаких ручных правил по пробросу портов или трафика не делал.

alemsin ()
Ответ на: комментарий от alemsin

Не совсем понял задачу.
У Вас Mikrotik на vpn-интерфейсе имеет адрес 192.168.30.2, на мосту локальной сети - 192.168.91.1. Адрес 2.2.2.1 нигде не фигурирует.

Если Вы хотите прокинуть трафик с OVPN-сервера на Mikrotik, то в DNAT нужно указывать адрес 192.168.30.2.
Если Вы хотите прокинуть трафик с OVPN-сервера на один из хостов в сети 192.168.91.0/24 за микротиком, то в конфиге OVPN на сервере нужно добавить следующую строку (добавляет маршрут к целевой сети на vpn-интерфейс):

route 192.168.91.0 255.255.255.0
И в ccd клиента добавить следующую строку (указывает через какого клиента доступен маршрут):
iroute 192.168.91.0 255.255.255.0

После чего нужно убедиться что в файрволе Mikrotik разрешён forward между 192.168.30.1 и 192.168.91.0/24. Также на хостах в локальной сети должен быть маршрут по умолчанию либо маршрут до 192.168.30.1 через Mikrotik.

С Pritunl я не сталкивался, но полагаю что найти нужные настройки труда не составит.

P.S. Кстати, что за маршут №0 на Mikrotik?

P.P.S. Используйте, пожалуйста, разметку сообщений: www.linux.org.ru/help/lorcode.md

Uzix ()
Ответ на: комментарий от Uzix

Приношу искренне свои извинения, однако я не настолько прошарен что бы понять все ваши посылы и рекомендации.
по поводу адреса 2.2.2.1, в связи с переустановкой системы был заменен на 192.168.91.251

Если Вы хотите прокинуть трафик с OVPN-сервера на Mikrotik, то в DNAT нужно указывать адрес 192.168.30.2

Я так понимаю данное действие прописать можно командой на впн сервера
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination 192.168.30.2

Если Вы хотите прокинуть трафик с OVPN-сервера на один из хостов в сети 192.168.91.0/24 за микротиком, то в конфиге OVPN на сервере нужно добавить следующую строку (добавляет маршрут к целевой сети на vpn-интерфейс):

route 192.168.91.0 255.255.255.0

Здесь к сожалению возникает проблема pritunl коммерческий продукт, а я пользуюсь бесплатной версией и разобраться где какие конфиги и куда писать довольно проблематично. Можно просто на впне прописать данную строчку не обращаясь к файлам настроек?

И в ccd клиента добавить следующую строку (указывает через какого клиента доступен маршрут):

iroute 192.168.91.0 255.255.255.0

etc/openvpn/ccd просто нет такого пути куда добавлять тоже непонятно.

route 192.168.91.0 255.255.255.0 ?

P.S. Кстати, что за маршут №0 на Mikrotik?

Кто бы его знал:)

А как на микротике сказать ему весь трафик гнать через openvpn? а то все пинги и трафик гонится напрямую через 3g модем.

alemsin ()
Ответ на: комментарий от alemsin

Здесь к сожалению возникает проблема pritunl коммерческий продукт, а я пользуюсь бесплатной версией и разобраться где какие конфиги и куда писать довольно проблематично.

Рекомендую использовать обычный OpenVPN с настройкой через конфигурационный файл. Ничего сложного в этом нет, в сети большое количество примеров и мануалов.

etc/openvpn/ccd просто нет такого пути куда добавлять тоже непонятно.

ccd-директория указывается в конфигурации сервера openvpn с помощью директивы «client-config-dir». Внутри этой директории расположены файлы конфигурации клиентов, имена этих файлов должны соответствовать CN в сертификатах клиентов.

А как на микротике сказать ему весь трафик гнать через openvpn? а то все пинги и трафик гонится напрямую через 3g модем.

/interface ppp-client set default-route-distance=10 ppp-out
/interface ovpn-client set add-default-route=yes ovpn-out
/ip route add dst-address=1.1.1.1 gateway=ppp-out1

Последняя команда в версии ROS >= 6.37 не нужна.

Uzix ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.