LINUX.ORG.RU
ФорумAdmin

Не могу попасть на WEB морду клиента OVPN

 ,


0

1

Приветствую. На двух роутерах поднят OVPN со статик ключами.

Сервер: (Asus rt-n66u Merlin LTS fork)
OVPN 10.8.0.1 (tun21)
LAN 192.168.1.1 (br0)
WAN 123.123.123.123 (eth0) -статический
проброс порта 82 на 192.168.0.1 или 10.8.0.2
проброс порта 99 на 192.168.0.20

Клиент: (Hame-A5-V11 HardDWRT Бодрый подснежник 2.4)
OVPN 10.8.0.2 (tun0)
LAN 192.168.0.1:82 (br-lan)
WAN 4G модем (wwan0)

На lan висит ip камера (192.168.0.20:99) для неё создано правило:
iptables -A PREROUTING -t mangle -i br-lan -p tcp --sport 99 -j MARK --set-mark 2
и соответственно добавлена таблица 2 2 в /etc/iproute2/rt_tables

Из lan клиента могу попасть в lan сервера и наоборот.
К камере из инета есть доступ, а если сделать по аналогии с 82 портом то ответ не приходит, хотя видно что на интерфейсе tun0 в RX пакеты поступают.

Как из инета попасть на WEB интерфейс роутера клиента?


Если вам нужен доступ из интернета к веб интерфейсу Hame-A5-V11, через внешний адрес 123.123.123.123, то за доступ извне у вас отвечать должен DNAT

правило должно выглядеть как то так (на rt-n66u):

iptables -t nat -A PREROUTING -i eth0 -d 123.123.123.123 -t tcp -dport 82 -j DNAT --to-destination 10.8.0.2:80

правило не проверял.

тут 10.8.0.2:80 - должен быть accept на Hame-A5-V11, 80 - порт на котором вивсит веб морда.

samson ★★
()
Последнее исправление: samson (всего исправлений: 1)

На lan висит ip камера (192.168.0.20:99) для неё создано правило:
iptables -A PREROUTING -t mangle -i br-lan -p tcp --sport 99 -j MARK --set-mark 2

камера находится за роутером rt-n66u? А правило создано на Hame-A5-V11, так?

тогда что то не видно смысла в этом правиле. Оно ставит метку для пакетов, с tcp/src-port 99 пришедших на интерфейс br-lan. Далее, в соответствии с этой меткой, маршрутизация... Смысл?

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

samson
Да забыл дописать, на клиенте после поднятия туннеля выполняется ещё:
ip route add default via 10.8.0.1 table 2
ip rule add from all fwmark 2 table 2
а камера зацеплена к клиенту, и всё работает, вопросов нет.
Клиент (Hame-A5-V11) имеет веб морду на 82 порту а не на 80-м
Значит правило на сервере должно иметь вид:
iptables -t nat -A PREROUTING -i eth0 -d 123.123.123.123 -t tcp -dport 82 -j DNAT --to-destination 10.8.0.2:82
правильно?
И ещё проброс порта 82 на 10.8.0.2 на сервере нужно делать или достаточно вашего правила?

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

iptables -t nat -A PREROUTING -i eth0 -d 123.123.123.123 -p tcp -dport 82 -j DNAT --to-destination 10.8.0.2:82
Ругается:
iptables v1.3.8: multiple -d flags not allowed
Try `iptables -h' or 'iptables --help' for more information.
admin@RT-N66U:/tmp/home/root#

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

Да, правило такого вида работает:
iptables -t nat -A PREROUTING -i eth0 -d 123.123.123.123-p tcp --dport 82 -j DNAT --to-destination 10.8.0.2:82
Но это же относится ко входящим пакетам на клиенте. Проблема в том, что что ответ обратно не уходит (или теряется).
http://pixs.ru/showimage/123PNG_8849154_27076970.png

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

Это правило на сервере. Оно подменяет адрес назначения для пакетов, пришедших на 123.123.123.123:82 и пакет уходит на 10.8.0.2:82.

Далее ответ. Надо что бы он ушел в туннель. Если у вас на клиенте default gw прописан как 10.8.0.1, и на сервере происходит snat/masquerade для этого ответа, - все будет ок.

попробуйте пропишите на сервере два правила

iptables -t nat -A PREROUTING -i eth0 -d 123.123.123.123 -p tcp --dport 82 -j DNAT --to-destination 10.8.0.2:82
iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.2/24 -j MASQUERADE

но второе скорее всего не нужно.

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

И ещё проброс порта 82 на 10.8.0.2 на сервере нужно делать или достаточно вашего правила?

Именно это и делает «наше правило»

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

Спасибо.
Проблема решена одним правилом на сервере:
iptables -t nat -A POSTROUTING -p tcp -d 10.8.0.2 --dport 82 -j SNAT --to-source 10.8.0.1
Первое правило не нужно, делается в графическом интерфейсе сервера - проброс 82 порта на 10.8.0.2

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

iptables -t nat -A POSTROUTING -p tcp -d 10.8.0.2 --dport 82 -j SNAT --to-source 10.8.0.1

То что работает - это хорошо.

Но это правило - лишний NAT.

Подмена адреса dnat/snat у вас должна происходить всего два раза на интерфейсе eth0 сервера (на входе и на выходе). Остальное должно решаться маршрутизацией.

Без этого правила не работает, потому что ответ клиента не уходит в туннель.

Нужно делать connection mark/ routing mark и заворачивать через ответ в туннель (ip route)

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