[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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



Владимир Скубриев -> Debian-russian@lists.debian.org  @ Thu, 05 Sep 2013 15:41:31 +0400:

 ВС> Как правильно пробросить порт для доступа к проброшенному порту по внешнему
 ВС> адресу шлюза из локальной сети.

 ВС> есть такое правило в фаерволе у меня

 ВС>         iptables -A INPUT -d $INETIP -p TCP --dport 6480 -j ACCEPT
 ВС>         iptables -t nat -A PREROUTING -d $INETIP -p TCP --dport 6480 -j 
 ВС> DNAT --to-destination $EARTHVM:80
 ВС>         iptables -t nat -A POSTROUTING -d $EARTHVM -p TCP --dport 80 -j 
 ВС> SNAT --to-source $LANIP

 ВС> из вне, т.е. например с других мест работает проброс всегда работает

 ВС> но если из локальной сети(где стоит этот шлюз) пытаться зайти на внешний адрес
 ВС> INETIP и порт 6480, то я не могу достучаться до веб сервера.

 ВС> причем что интересно, если на шлюзе запустить tpdump то в локальной сети с
 ВС> клиентов все начинает работать.

 ВС> в чем подвох ?

С виду все правильно.  Ну, по классике, не хватает, конечно, правила для
nat в цепочку OUTPUT, но оно влияет только на попытки зайти туда с
самого шлюза, на клиентов из локальной сети не влияет.

Вообще диагностика "если запустить tcpdump" заставляет заподозрить
глючный драйвер сетевки, шибко умный свитч, либо их взаимодействие.  В
смысле, если результат в этой ситуации зависит от того, в promiscuous
mode стоит сетевка или нет, то вопрос в том, что обратные, вероятно,
пакеты то ли не доходят до сетевки шлюза, то ли не воспринимаются ею как
адресованные ей.

При одном "если".  Если последнее правило не содержит ошибок и успешно
срабатывает для клиентов из локальной сети (в смысле, ничем не
перебивается, поскольку само оно никаких отсылок к локалке не содержит).
С виду не содержит, а вот как на самом деле, во взаимодействии с
остальными правилами...  Впрочем, "во взаимодействии" актуально для всех
трех правил и для маршрутизации вообще.

Попробуй еще запустить tcpdump с -p и посмотреть, что будет.

 ВС> При чем аналогичное правило используется для проброса с 80 на 80 порт другого
 ВС> веб сервера и с ним все работает из локальной сети.

 ВС>         # WWW
 ВС>         iptables -A INPUT -d $INETIP -p TCP --dport 80 -j ACCEPT
 ВС>         iptables -t nat -A PREROUTING -d $INETIP -p TCP --dport 80 -j 
 ВС> DNAT --to-destination $WWW:80
 ВС>         iptables -t nat -A POSTROUTING -d $WWW -p TCP --dport 80 -j 
 ВС> SNAT --to-source $LANIP


 ВС> Спасибо!

 ВС> -- 
 ВС> С Уважением,
 ВС> специалист по техническому и программному обеспечению,
 ВС> системный администратор

 ВС> Скубриев Владимир
 ВС> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ВС> Россия, Ростовская область, г. Таганрог

 ВС> тел. моб: +7 (918) 504 38 20
 ВС> skype: v.skubriev
 ВС> icq: 214-800-502
 ВС> www: skubriev.ru


 ВС> -- 
 ВС> To UNSUBSCRIBE, email to debian-russian-REQUEST@lists.debian.org
 ВС> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
 ВС> Archive: [🔎] 52286DEB.5030209@skubriev.ru">http://lists.debian.org/[🔎] 52286DEB.5030209@skubriev.ru


Reply to: