LINUX.ORG.RU
решено ФорумAdmin

openwrt: forward from pptp to lan

 , , ,


0

1

Доброго дня! Сразу к делу. Есть роутер с openwrt на борту. Поднят pptp клиент. За роутером машина, к которой нужно получить доступ. Объясняю конкретнее=). Я c pptp сервера обращаюсь на клиента (openwrt) на порт 8000, например и должен попасть на 8000 порт машины, находящейся в ЛС роутера. Все это дело пытаюсь организовать через iptables на openwrt соответственно. Вот правила:

iptables -t nat -I PREROUTING -d ip_vpnclient -p tcp --dport 8000 -j DNAT --to-destination ip_localpc:8000
#или
iptables -t nat -I PREROUTING -i ppp0 -p tcp --dport 8000 -j DNAT --to-destination ip_localpc:8000
#и в обратную сторону
iptables -t nat -I POSTROUTING -o ppp0 -j MASQUERADE
Правила добавляются - эффекта ноль. Попробовал с wan на lan аналогичниый проброс сделать - работает. Правила проверенные. В чем косяк? Есть у openwrt особенности работы с iptables? Пакеты через opkg все что мог для iptables поставил. Спасибо!


Ответ на: комментарий от whitedevil

Нашел свой же косяк. Маскарадить надо не pptp клиента а lan. Но все равно не работает. С wan на lan работает. А с pptp на lan нет. Наведите на мысли.

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

Читал. Там действительно есть. Но! Там соль в том, что правила пишутся в файле /etc/config/firewall. А мне нужно сразу через iptables делать. Без web-морды и без редактирования файла firewall. Это же неудобно. А там зоны наверчены, по которым интерфейсы группируются и правила для проброса одного порта раскидываются по таблице nat в разные места в зависимости от зон, в которых присутствуют интерфейсы, между которыми делаю форвардинг. Что выглядит довольно пугающе. Неужели нельзя просто в консоли вбить правило и чтобы оно сразу заработало без бубна?

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

Приписал правила, поверил, если все работает вбиваешь

 iptables -t nat -S
там все правила выводятся.

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

Как в GUI пробросить порт я знаю и умею. Если пробросить таким образом, то iptables -t nat -L покажет, что правило участвует в нескольких цепочках, так как есть деление на зоны. Мне нужно иное решение. В моем случае, нет GUI(luci), есть только ssh и правила iptables, которые прекрасно работают на том же debian, но их видимо недостаточно для openwrt. Так как порт не пробрасывается таким образом у меня. Вот я и спрашиваю, как упростить себе жизнь и сделать так, чтобы правила мои без проблем работали на openwrt.

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

добавил правило через люси, получилось так:

-A zone_wan_prerouting -p tcp -m tcp --dport 8000 -m comment --comment test -j DNAT --to-destination 192.168.0.15:8000

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

Тестил правила через luci и также через правку firewall.user. Отловил отвал lan-клиента, через какое-то время. Т.е. пока в консоли пробовал правила, клиент отваливался и у меня ничего не работало. Добился работы правила в firewall.user, потом попробовал просто в консоли его вбить. Предварительно удалив правила в gui и в файле firewall.user. Сработало. Postrouting у lan включен по-умолчанию. Поэтому достаточно одного правила Prerouting. По крайней мере все работает как надо.

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