У меня возникли некоторые проблемы с работой MT с сервером OpenVPN (Debian). Я могу успешно подключиться к серверу OVPN, но трафик не маршрутизируется через сервер OVPN. Вот моя конфигурация.
Настраивать -https://i.stack.imgur.com/AAH9Y.jpg
Конфигурация сервера OpenVPN (Debian/Linux)
# кот /etc/openvpn/server.conf местный 95.2.171.3 порт 1194 прото tcp дев тун ca ca.crt сервер сертификатов.crt ключевой сервер.ключ dh dh.pem сервер 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt клиент-config-dir ccd маршрут 192.168.81.0/24 255.255.255.0 поддерживать активность 10 120 тун-мту 1500 mssfix 1450 шифр AES-256-CBC аутентификация sha1 сохраняющийся ключ сохраняйте-tun статус /var/log/openvpn-status.log log-append /var/log/openvpn.log глагол 5 crl-verify /etc/openvpn/easy-rsa/pki/crl.pem # кот /etc/openvpn/ccd/client маршрут 192.168.81.0 255.255.255.0 10.8.0.2 ifconfig-push 10.8.0.2 10.8.0.1 # кошка /proc/sys/net/ipv4/ip_forward 1 # netstat -an | grep 1194 tcp 0 0 95.2.171.3:1194 0.0.0.0:* СЛУШАТЬ tcp 0 0 95.2.171.3:1194 81.190.190.100:62973 УСТАНОВЛЕНО # ifconfig eth0 Link encap:Ethernet HWaddr 20:cf:30:f2:a8:76 inet addr:95.2.171.3 Bcast:95.2.171.31 Маска:255.255.255.224 inet6 адрес: fe80::22cf:30ff:fef2:a876/64 Область действия:Ссылка UP BROADCAST РАБОТАЕТ MULTICAST MTU:1500 Метрика:1 RX пакеты:255189 ошибки:0 отброшены:0 переполнения:0 кадр:0 Пакеты TX:333054 Ошибки:0 Отброшено:0 Переполнение:0 Несущая:0 столкновения:0 txqueuelen:1000 Байты RX: 34521411 (32,9 МБ) Байты TX: 367074147 (350,0 МБ) Прерывание:26 Базовый адрес:0x8000 lo Ссылка encap:Local Loopback inet addr:127.0.0.1 Маска:255.0.0.0 inet6 addr: ::1/128 Область действия:Хост UP LOOPBACK ВЫПОЛНЯЕТСЯ MTU:16436 Метрика:1 RX пакеты:15579 ошибки:0 отброшены:0 переполнения:0 кадр:0 Пакеты TX:15579 Ошибки:0 Отброшено:0 Переполнение:0 Несущая:0 столкновения:0 txqueuelen:0 Байты RX: 1326071 (1,2 МБ) Байты TX: 1326071 (1,2 МБ) tun0 Ссылка encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.1 PtP:10.8.0.2 Маска:255.255.255.255 UP POINTTOPOINT РАБОТАЕТ NOARP MULTICAST MTU:1500 Метрика:1 RX пакеты:57 ошибки:0 отброшены:0 переполнения:0 кадр:0 Пакеты TX:6 ошибки:0 отброшены:0 переполнения:0 носитель:0 столкновения:0 txqueuelen:100 Байты RX: 6669 (6,5 КиБ) Байты TX: 504 (504,0 Б) # netstat -rn Таблица маршрутизации IP ядра Шлюз назначения Флаги Genmask Окно MSS irtt Iface 10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 95.2.171.0 0.0.0.0 255.255.255.224 U 0 0 0 eth0 192.168.81.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 0.0.0.0 95.2.171.30 0.0.0.0 UG 0 0 0 eth0 # iptables -S -P ВХОД ПРИНЯТЬ -P ПЕРЕСЛАТЬ ПРИНЯТЬ -P ВЫХОД ПРИНЯТЬ -A ВХОД -i lo -j ПРИНЯТЬ -A ВХОД -d 127.0.0.0/8 -i !lo -j ОТКЛОНИТЬ --reject-with icmp-port-unreachable -A ВХОД -i tun0 -j ПРИНЯТЬ -A ВХОД -m состояние --state СВЯЗАННЫЙ,УСТАНОВЛЕН -j ПРИНЯТЬ -A ВХОД -p tcp -m tcp --dport 1194 -j ПРИНЯТЬ -A ВХОД -m limit --limit 5/мин -j ЖУРНАЛ --log-prefix "iptables отклонен: " --log-level 7 -A ВХОД -j ОТКЛОНИТЬ --reject-with icmp-port-unreachable -A ВЫХОД -j ПРИНЯТЬ # iptables -t nat -S -P ПРЕДВАРИТЕЛЬНЫЙ МАРШРУТ ПРИНЯТЬ -P ПОСТСТРОУТИНГ ПРИНЯТЬ -P ВЫХОД ПРИНЯТЬ -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 95.2.171.3 -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 95.2.171.3 -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 95.2.171.3 # пинг 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) байт данных. 64 байта из 8.8.8.8: icmp_req=1 ttl=55 время=12,9 мс 64 байта из 8.8.8.8: icmp_req=2 ttl=55 время=12,8 мс
Это все мои настройки на сервере OpenVPN (Debian/Linux).
Конфигурация клиентской стороны OpenVPN (Mikrotik RouterOS 6)
/интерфейс печати Флаги: D - динамический, X - отключен, R - работает, S - подчиненный # ИМЯ ТИП АКТУАЛЬНЫЙ-MTU L2MTU МАКС-L2MTU MAC-АДРЕС 0 Р эфир1 эфир 1500 1600 4076 D4:CA:6D:31:14:F4 1 S эфир2 эфир 1500 1598 2028 D4:CA:6D:31:14:F5 2 S эфир3 эфир 1500 1598 2028 D4:CA:6D:31:14:F6 3 S эфир4 эфир 1500 1598 2028 D4:CA:6D:31:14:F7 4 S эфир5 эфир 1500 1598 2028 D4:CA:6D:31:14:F8 5 RS wlan1 wlan 1500 1600 D4:CA:6D:31:14:F9 6 R мост1 мост 1500 1598 D4:CA:6D:31:14:F5 7 R ovpn-out1 ovpn-out 1500 FE:3E:27:7D:61:8C /интерфейс мост печать Флаги: X - отключено, R - запущено 0 R name="bridge1" mtu=auto actual-mtu=1500 l2mtu=1598 arp=enabled mac-address=D4:CA:6D:31:14:F5 protocol-mode=rstp priority=0x8000 auto-mac=yes admin-mac=00:00:00:00:00:00 max-message-age=20s forward-delay=15s transmission-hold-count=6 ageing-time=5m /интерфейсный мост порт печать Флаги: X - отключен, I - неактивен, D - динамический # ИНТЕРФЕЙС МОСТ ПРИОРИТЕТ ПУТЬ-СТОИМОСТЬ ГОРИЗОНТ 0 I ether2 bridge1 0x80 10 нет 1 I ether3 bridge1 0x80 10 нет 2 I ether4 bridge1 0x80 10 нет 3 Я ether5 bridge1 0x80 10 нет 4 wlan1 bridge1 0x80 10 нет /ip адрес печать Флаги: X - отключено, I - недействительно, D - динамический # АДРЕС СЕТЕВОЙ ИНТЕРФЕЙС 0 192.168.81.1/24 192.168.81.0 мост1 1 D 192.168.7.200/24 192.168.7.0 эфир1 2 D 10.8.0.2/32 10.8.0.1 ovpn-out1 /ip брандмауэр nat печать Флаги: X - отключено, I - недействительно, D - динамический 0 цепочка=srcnat действие=маскарад to-addresses=0.0.0.0 out-interface=ether1 log=no log-prefix="" /ip маршрут печать Флаги: X - отключено, A - активно, D - динамический, C - подключиться, S - статический, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - недоступно, P - запретить # DST-АДРЕС PREF-SRC ШЛЮЗ РАССТОЯНИЕ 0 ОБЪЯВЛЕНИЙ 0.0.0.0/0 192.168.7.1 0 1 АЦП 10.8.0.1/32 10.8.0.2 ovpn-out1 0 2 АЦП 192.168.7.0/24 192.168.7.200 эфир1 0 3 АЦП 192.168.81.0/24 192.168.81.1 мост1 0 /интерфейс ovpn-клиент печать Флаги: X - отключено, R - запущено 0 R имя="ovpn-out1" mac-адрес=FE:3E:27:7D:61:8C max-mtu=1500 connect-to=195.13.171.3 port=1194 mode=ip user="client" password="" profile=default certificate=Client auth=sha1 cipher=aes256 add-default-route=no /пинг 10.8.0.1 SEQ ХОСТ РАЗМЕР TTL ВРЕМЯ СТАТУС 0 10.8.0.1 56 64 6 мс 1 10.8.0.1 56 64 9 мс 2 10.8.0.1 56 64 7 мс 3 10.8.0.1 56 64 6 мс отправлено=4 получено=4 потеря пакетов=0% мин-rtt=6мс ср-rtt=7мс макс-rtt=9мс
Как видите, я могу пинговать OpenVPN-сервер с Mikrotik. Но когда я подключаюсь к Интернету с локального ПК, он показывает IP-адрес 81.190.190.100, а не тот, который я хотел бы видеть - IP OpenVPN-сервера - 95.2.171.3.
Я могу успешно пинговать/трассировать маршрут до 10.8.0.1 с ноутбука (192.168.81.100/24), но не могу понять, почему он не маршрутизируется через VPN-туннель. Я думаю, что я что-то упускаю с маршрутизацией либо на сервере (Linux), либо на клиенте (mikrotik).
Спасибо за помощь! Я уже некоторое время играюсь с этим и не могу запустить :(
Хорошего дня!
решение1
Ваш клиент не маршрутизирует через туннель OVPN, потому что на mikrotik нет маршрута (шлюза по умолчанию)!
Итак, добавьте еще один шлюз на mikrotik с отметкой маршрутизации с назначением OVPN-сервера 10.8.0.1
/ip route add dst-address=0.0.0.0/0 gateway=10.8.0.1 routing-mark=clientmark
Конечно, вам следует добавить правило искажения для routing-mark, например:
/ip firewall mangle add action=mark-routing chain=prerouting src-address=192.168.81.0/24 new-routing-mark=clientmark
Также на нем должно быть правило nat для клиента (адрес источника 192.168.81.0/24).
ip firewall nat add action=masquerade chain=srcnat src-address=192.168.81.0/24 out-interface=ovpn-out1