Author Topic: WEB-server и router...  (Read 4160 times)

0 Members and 1 Guest are viewing this topic.

Offline SMike

  • Newbie
  • *
  • Posts: 13
  • Karma: +0/-0
WEB-server и router...
« on: October 03, 2005, 23:20:12 »
Вопрос такой:
Имеется роутер с доступом в интернет (IP (смотрит в инет): yyy.yyy.yyy.yyy, IP (смотрит в локаль): xxx.xxx.xxx.1)
Имеется WEB server в локальной сети (IP: xxx.xxx.xxx.2)
Все адреса реальные.
На роутере поднят DNAT и SNAT - перенаправление по протоколу http на xxx.xxx.xxx.2.
Если пробовать открывать http://yyy.yyy.yyy.yyy с томского инета - открывается страница, всё нормально (запрос доходит до роутера, перенаправляется на WEB-сервер, генерируется страничка и отправляется обратно _через роутер_ тому, кто запросил страничку).
Если пробовать открывать http://yyy.yyy.yyy.yyy с локали, то роутер перенаправляет на xxx.xxx.xxx.2, генерируется страница, но ответ идет не через роутер, а напрямую к тому, кто сформировал запрос. Естественно получатель ждет ответа от роутера, а не от WEB-сервера. Поэтому отклоняет результат.

Попробовал на WEB-сервере поднять DNAT/SNAT на 127.0.0.1:
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d xxx.xxx.xxx.2 --dport 80 -j DNAT --to-destination 127.0.0.1:80
/usr/sbin/iptables -t nat -A POSTROUTING -p tcp -s 127.0.0.1 --sport 80 -j SNAT --to-source yyy.yyy.yyy.yyy:80

правила DNAT срабатывают, SNAT - нет...
Где ошибка/что неправильно?

Offline demiurg

  • Hero Member
  • *****
  • Posts: 1014
  • Karma: +0/-0
    • http://larin.tomsk.ru
WEB-server и router...
« Reply #1 on: October 04, 2005, 10:14:49 »
Quote
Попробовал на WEB-сервере поднять DNAT/SNAT на 127.0.0.1:
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d xxx.xxx.xxx.2 --dport 80 -j DNAT --to-destination 127.0.0.1:80
/usr/sbin/iptables -t nat -A POSTROUTING -p tcp -s 127.0.0.1 --sport 80 -j SNAT --to-source yyy.yyy.yyy.yyy:80

правила DNAT срабатывают, SNAT - нет...
Где ошибка/что неправильно?
[snapback]4595[/snapback]
"Типовые грабли". Ответ см. в IPTables Tutorial. Например здесь http://demiurg.tomsk.ru/iptables/
Параграф 6.5.2. Действие DNAT :)

Offline Dimmus

  • Sr. Member
  • ****
  • Posts: 438
  • Karma: +0/-0
    • http://dimmus.com
WEB-server и router...
« Reply #2 on: October 04, 2005, 17:03:07 »
можно еще через xinetd:
Quote
service blabla
{
        type            = UNLISTED
        port            = 7777
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        disable         = no
        redirect        = local_ip local_port
}

Offline demiurg

  • Hero Member
  • *****
  • Posts: 1014
  • Karma: +0/-0
    • http://larin.tomsk.ru
WEB-server и router...
« Reply #3 on: October 04, 2005, 17:25:39 »
Quote
можно еще через xinetd:
[snapback]4611[/snapback]
Очередной велисипед. Зачем? Когда это типовая задача и решается типовыми способами, описанными даже в руководствах. В IPTabls Tutorial разбирается именно такой пример.

Кстати прикола с xinet.d не понял.... Видимо буратино был туп как дрова.....:(
« Last Edit: October 04, 2005, 17:26:26 by demiurg »

Offline SMike

  • Newbie
  • *
  • Posts: 13
  • Karma: +0/-0
WEB-server и router...
« Reply #4 on: October 04, 2005, 17:44:14 »
Quote
"Типовые грабли". Ответ см. в IPTables Tutorial. Например здесь http://demiurg.tomsk.ru/iptables/
Параграф 6.5.2. Действие DNAT :)
[snapback]4599[/snapback]

Всё заработало.
Огромное спасибо за подробный help. :D

Offline DrDeath

  • Full Member
  • ***
  • Posts: 124
  • Karma: +1/-0
    • http://
WEB-server и router...
« Reply #5 on: October 04, 2005, 23:59:44 »
Quote
можно еще через xinetd:
[snapback]4611[/snapback]
постановку задачи прочитай внимательнее (;

Offline Dimmus

  • Sr. Member
  • ****
  • Posts: 438
  • Karma: +0/-0
    • http://dimmus.com
WEB-server и router...
« Reply #6 on: October 05, 2005, 01:45:10 »
да, понял, просто не увидел SNAT, подумал, что просто редирект необходим.