nixp.ru v3.0

20 октября 2017,
пятница,
15:47:08 MSK

DevOps с компанией «Флант»
SKODnick написал 6 июля 2007 года в 11:56 (437 просмотров) Ведет себя как мужчина; открыл 9 тем в форуме, оставил 15 комментариев на сайте.

Есть сервак с внешним IP (через VPN туннель), допустим его локальный IP 172.16.0.1, а внешний 12.34.56.78 Внутри сети есть веб-сервер(172.16.0.2), куда хотелось бы иметь доступ извне через наш сервак с внешним IP. Причем на серваке с внешним IP тоже есть web, поэтому хочется делать редирект с 8080 порта на 80 порт внутрисетевого web серва. Делаю я так:

-t nat -A PREROUTING --dst 12.34.56.78 -p tcp --dport 8080 -j DNAT --to-destination 172.16.0.2:80

-t nat -A OUTPUT --dst 12.34.56.78 -p tcp --dport 8080 -j DNAT --to-destination 172.16.0.2:80

Не работает. Что я делаю не так?

Нужно ли ещё дополнительно открывать на серве с внешним IP порт 8080?

Помогите…

fly4life

Если у тебя в таблице *filter политика цепочки FORWARD выставлена в 'DROP’, то ещё необходимо правило в этой самой FORWARD, разрешающее проброс пакетов с внешнего интерфейса внутрь сети (на твой 172.16.0.2).

А правило с OUTPUT вообще не надо.

SKODnick

Ок. OUTPUT снес.

Правил в iptables больше нет, т.е. iptables голый, есть только правило редиректа и все.

fly4life
SKODnick
Ок. OUTPUT снес.

Правил в iptables больше нет, т.е. iptables голый, есть только правило редиректа и все.

Так а политики в цепочках у тебя какие? Покажи вывод команды:

iptables -t filter -L

Genie

рассказал бы ты, куда настроен шлюз на этом вот сервере: 172.16.0.2 ?

если не на твой шлюзовой комп, то тогда используй эти два правила:

*nat
-A PREROUTING -d 12.34.56.78 -m tcp -p tcp --dport 8080 -j DNAT --to-destination 172.16.0.2:80
-A POSTROUTING -d 172.16.0.2 -m tcp -p tcp --dport 80 -j MASQUERADE

правда, есть в этом побочный эффект, касательно статистики в логах

ну и так же, разрешено ли пропускать пакеты с интерфейса на интерфес, /proc/sys/net/ipv4/ip_forward (должно быть установлено в 1)

и, как уже было сказано, правила таблицы filter.

SKODnick

Вопщем я немножко ступил, ибо локальная машина по отношению к машине с внешним адресом сидит через другой шлюз и для локальной машины default gw является НЕ машина с внешним IP.

В итоге машина с внешним IP превратилась в VPN сервер и был установлен туннель между локальной машиной и машиной в внешним адресом. Ну и одно правило для роутинга.

2Genie :

*nat
-A PREROUTING -d 12.34.56.78 -m tcp -p tcp --dport 8080 -j DNAT --to-destination 172.16.0.2:80
-A POSTROUTING -d 172.16.0.2 -m tcp -p tcp --dport 80 -j MASQUERADE

Это поможет избежать создания туннеля?