LINUX.ORG.RU
ФорумAdmin

Как настроить роутинг в openvpn через клиента?

 , ,


0

1

Есть комп 10.1.1.11

eth1 - 10.1.1.11/24
gateway - 10.1.1.100

виртуалка с openvpn (сервер)

Настройка интерфейса:

eth1 - 10.1.1.100/24
gateway - 10.1.1.1 (порты для openvpn проброшены)
tun0 - inet 10.7.7.1 peer 10.7.7.2/32 scope global tun0

#route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.1.1.1        0.0.0.0         UG    0      0        0 eth1
10.7.7.0        10.7.7.2        255.255.255.0   UG    0      0        0 tun0
10.7.7.2        0.0.0.0         255.255.255.255 UH    0      0        0 tun0

Клиент openvpn:

tun0 - inet 10.7.7.72 peer 10.7.7.1/32 scope global tun0
eth1 - внешний белый ip

В ccd на сервере openvpn явно указан ip для клиента 10.7.7.72

ifconfig-push 10.7.7.72 10.7.7.1

на 10.1.1.1 - роутер. С белым ip.

Клиент openvpn 10.7.7.72 пингуется, как с компа 10.1.1.11, так и с сервера впн. С клиента пинг тоже идёт, как на комп 10.1.1.11, так и на сервер 10.1.1.100 и 10.7.7.1

Вопрос: как перенаправить весь трафик с 10.1.1.11 через клиента 10.7.7.72 во внешку ?

Задавая правила на сервере vpn:

ip rule add from 10.1.1.11/32 table 120
ip route add default via 10.7.7.72 dev tun0 table 120

получаю ошибку: Error: Nexthop has invalid gateway.

Если via 10.7.7.2 - то как тогда на 10.7.7.72 отправлять ?

iptables на сервере и клиенте прописаны.



Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от anc

Этого недостаточно.

Ему в ccd надо еще и iroute 0.0.0.0/0 указывать

Вообще же для таких целей самое правильное и общепринятое - это запилить точка-точка а не клиент-сервер.

no-dashi-v2 ★★★★
()
Ответ на: комментарий от no-dashi-v2

Ему в ccd надо еще и iroute 0.0.0.0/0 указывать

Да, забыл про это :(

Вообще же для таких целей самое правильное и общепринятое - это запилить точка-точка а не клиент-сервер.

Точки могут быть за nat-ом, т.е. как минимум придется stun сервер поднимать.

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

Пример:

Хост 1 (192.168.0.2/24)

Router+NAT_1 (внутренняя 192.168.0.1/24 внешняя 1.2.3.4)

интернет

Router+NAT_2 (внешняя 5.6.7.8, внутренняя 192.168.1.1/24)

Хост 2 (192.168.1.2/24)

Для того чтобы эта схема заработала по UDP, тебе хватит настройки одного NAT, пример:

Хотим сделать хост 1 «клиентом» а хост 2 «сервером»

Тогда на хосте 2 пишешь

local 192.168.1.2 5599
proto udp

на хосте 1 пишешь

remote 5.6.7.8 6788
proto udp

На раутере2 настраиваем DNAT

iptables -A PREROUTING -t nat -p udp -i extIface --dport 6788 -j 192.168.1.2:5599

Всё работает и никакого STUN. OpenVPN достаточно умен чтобы понять когда ему следует просто ждать инициирующего пакета (есть local, нет remote) а когда пытаться долбиться (есть remote, нет local). Ну и комбо - есть и remote и local, тогда долбиться с указанного IP.

no-dashi-v2 ★★★★
()
Ответ на: комментарий от anc

С белыми IP проблем нет. Спасибо всем, всё заработало.

Поменял на tap. В ipp.txt - прописал IP адреса для всех клиентов. В частности:

cient-m,10.7.7.72

В ccd cient-m:

iroute 0.0.0.0/0

Правило:

ip route add default via 10.7.7.72 dev tap0 table 120

применяется без ошибки и трафик уходит на этот шлюз по умолчанию.

На клиенте, пишем правила:

iptables -A FORWARD -o tap0 -j ACCEPT
iptables -A OUTPUT -o tap0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.7.7.0/24 -o eth0 -j MASQUERADE

И трафик уходит с интерфейса eth0 дальше, на шлюз по умолчанию с той машины.

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

Поменял на tap. В ipp.txt - прописал IP адреса для всех клиентов.

Лучше так не делать, ipp.txt динамический, для статики создайте в каталоге ccd файлиги на каждого клиента с параметром ifconfig-push...

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

А типа у стуна нет белого адреса? Смешно. Без хотя бы одного белого адреса эта схема не работает вообще. И даже стун никакой не поможет, потому что у него внезапно, тоже белый адрес.

Возможно ты хотел сказать «без фиксированного белого адреса», но эта проблема решается всякими дднс и сервисдискавери. Так что без фиксированного ip завести можно. Для подключения к домашнему впн использую дднс, опенвпн жив

no-dashi-v2 ★★★★
()