проброс 80 порта через pptp

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

rishelie
Сообщения: 32
ОС: openSUSE 11.3

проброс 80 порта через pptp

Сообщение rishelie »

Имеем роутер на linux. Локальная сеть провайдера (MAN): 10.114.172.228/255.255.224.0, интерфейс vlan1
Локальная сеть в квартире (LAN): 192.168.1.1/24, интерфейс br0
Внешний (WAN) постоянный ip-адрес: 82.199.108.15, интерфейс ppp0

настройки маскарадинга и NAT выглядят так:

Код: Выделить всё

$ iptables -t nat -vnL
Chain PREROUTING (policy ACCEPT 495K packets, 26M bytes)
 pkts bytes target     prot opt in     out     source               destination
 101K 6230K VSERVER    all  --  *      *       0.0.0.0/0            82.199.108.15
  144  7591 VSERVER    all  --  *      *       0.0.0.0/0            10.114.172.228

Chain POSTROUTING (policy ACCEPT 106K packets, 6238K bytes)
 pkts bytes target     prot opt in     out     source               destination
 186K   12M MASQUERADE  all  --  *      ppp0   !82.199.108.15        0.0.0.0/0
 8345  536K MASQUERADE  all  --  *      vlan1  !10.114.172.228       0.0.0.0/0
 2937  250K MASQUERADE  all  --  *      br0     192.168.1.0/24       192.168.1.0/24

Chain OUTPUT (policy ACCEPT 27020 packets, 1694K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain VSERVER (2 references)
 pkts bytes target     prot opt in     out     source               destination
 1221 63904 DNAT       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0          tcp dpt:80 to:192.168.1.2:80
   12   565 DNAT       udp  --  *      *       0.0.0.0/0            0.0.0.0/0          udp dpt:80 to:192.168.1.2:80


На внутренней машине 192.168.1.2 работает apache2.
Так вот, если клиент стучится на 80 порт 82.199.108.15 из WAN (т.е. за пределами сети провайдера), то все ОК, видит сайт.
Если же клиент стучится из сети провайдера на 82.199.108.15, имея при этом динамический внешний ip 79.172.127.147, то он мой сайт не видит!!
Если тот же клиент стучится на 80 порт 10.114.172.228 из сети провайдера, то он видит сайт! Причем в логах он виден с адресом 79.172.127.147, т.е. внешним динамическим.

В чем проблема-то? Неужели нужно отказаться от маскарадинга на MAN-интерфейсе (10.114.172.228)?
Ибо такое впечатление, что при попытке зайти на 82.199.108.15 с адреса 79.172.127.147 пакеты приходят на ppp0, а ответы уходят с vlan1 и отбрасываются на машине клиента.

Не знаю, насколько понятно объяснил... traceroute у клиента пока не получил.
Sapienti sat...
Спасибо сказали:
Аватара пользователя
newsrc
Сообщения: 314
ОС: Slackware

Re: проброс 80 порта через pptp

Сообщение newsrc »

Что-то я вот этого момента не понял:
rishelie писал(а):
16.01.2010 00:23
Если же клиент стучится из сети провайдера на 82.199.108.15, имея при этом динамический внешний ip 79.172.127.147, то он мой сайт не видит!!

А клиент имеет IP-адрес в сети провайдера?

rishelie писал(а):
16.01.2010 00:23
Ибо такое впечатление, что при попытке зайти на 82.199.108.15 с адреса 79.172.127.147 пакеты приходят на ppp0, а ответы уходят с vlan1 и отбрасываются на машине клиента.

Не знаю, насколько понятно объяснил... traceroute у клиента пока не получил.

А вы, что бы догадки развеять воспользуйтесь tcpdump'ом. Последовательно слушайте интерфейсы: если клиент делает запрос на 82.199.108.15, то соответственно слушайте сначала ppp0 и убеждаетесь, что пакеты от 79.172.127.147 доходят. Далее слушайте куда они выходят...
Система -- это совокупность элементов и связей, дающая новые свойства, не присущие ни одному из элементов и ни одной из связей.
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: проброс 80 порта через pptp

Сообщение pelmen »

Когда в локалке 2 компа, а на шлюзе переброс порта на один из них, и если со второго компа пытаться подключиться по этому порту на первый комп напрямую, то все работает. А если через этот внешний адрес (т.е. через шлюз, где работает проброс порта), то работать не будет, т.к. адрес отправителя остается 192.168.0.х, т.к. шлюз при пробросе порта во внутреннюю сеть меняет только адрес получателя, а адрес отправителя оставляет, что логично. Так вот, комп 1 получает пакет, в котором написано, что он от второго компа (192.168.0.х). Туда он и шлет ответ. Но второй комп ждет ответа от внешнего адреса, соответственно, ответные пакеты от первого компа он отбросит.
Может быть тут похожая ситуация?
Спасибо сказали:
Venegance
Сообщения: 119
ОС: Debian

Re: проброс 80 порта через pptp

Сообщение Venegance »

Когда кто-то стучится, то нужно ответить?) Мне кажется, пакеты в ответ через другой интерфейс уходят, то есть клиент стучится из сети прова на 82.199.108.15, а получает ответ от 10.114.172.228. Нужно создать две разных таблицы маршрутизации и маршрутизировать трафик на основе адреса источника. Или воткнуть в хост с апачем еще одну сетевуху, еще один айпишник прописать из той же домашней подсети и маскардить один айпишник через один шлюз, другой - через другой. Соответсвенно. пробрасывать 80 порт также на разные IP.
Спасибо сказали: