Автор Тема: Port redirect на локална машина  (Прочетена 3861 пъти)

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Port redirect на локална машина
« -: Nov 16, 2004, 15:46 »
Жертвата е машина, която разделя домашната ми мрежа от интернет (SNAT). На таз машина пускам апаш. Искам от мрежата да се вижда една страница, а отвън - друга. За целта пускам две инстанции на апаша: една която слуша на порт 80, и друга на 8080. До тук всичко работи. с http://ip.here:8080/ се вижда второто копие с различните си настройки. Искам обаче това :8080 да не се пише.. демек всичко което пристига отвън и идва към порт 80, да се пренасочва към порт 8080.
Пробвах следните неща:
Примерен код

iptables -t nat -A PREROUTING -p tcp -d $IP --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -p tcp -d $IP --dport 80 -j DNAT --to $IP:8080
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 8080

(естествено, не наведнъж, едно след друго '<img'> )
eth0 ми е интерфейса, който гледа навън. $IP е адреса на машината, която мъча. Нищо от това не проработи, ако отвън се опитва да се отвори http://ip.here/ (без :8080) се отваря първото копие на апаша, което слуша на 80.
Къде може да бъркам?  '<img'>
Активен

coldy

  • Напреднали
  • *****
  • Публикации: 142
    • Профил
Port redirect на локална машина
« Отговор #1 -: Nov 16, 2004, 18:00 »
Здравей, при мен нещата работят така.

Примерен код
iptables -A PREROUTING -t nat -p tcp -d 111.222.333.444 --dport 80 -j DNAT --to 123.123.123.123:80
Активен

Как правилно да задаваме въпроси:
http://linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=356333931
~
Името със сигурност е ГНУ/Линукс, а не Линукс.
Обяснено е тук: http://www.gnu.org/gnu/why-gnu-linux.html

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Port redirect на локална машина
« Отговор #2 -: Nov 16, 2004, 18:17 »
Същата работа е.
Активен

the_real_maniac

  • Напреднали
  • *****
  • Публикации: 1258
  • Kernel panic, me - no panic ;-) :-)
    • Профил
Port redirect на локална машина
« Отговор #3 -: Nov 16, 2004, 20:00 »
Цитат (ivanatora @ Ноември 16 2004,16:46)
1.Жертвата е машина, която разделя домашната ми мрежа от интернет (SNAT). На таз машина пускам апаш.

2.Искам от мрежата да се вижда една страница, а отвън - друга. За целта пускам две инстанции на апаша: една която слуша на порт 80, и друга на 8080. До тук всичко работи.

3.с http://ip.here:8080/ се вижда второто копие с различните си настройки. Искам обаче това :8080 да не се пише.. демек всичко което пристига отвън и идва към порт 80, да се пренасочва към порт 8080.

4.eth0 ми е интерфейса, който гледа навън. $IP е адреса на машината, която мъча. .
Къде може да бъркам?  '<img'>

1.Т.е рутера , който седи м/у твоята мрежа и интернет.
ОК

2. Всичко работи - проверил си  ?.
ОК

3.Т.е от вънка да виждат host:8080, а от вътре host:80
?/OK

4.
eth0 - INTERNET
$IP - РЕАЛНОТО ( ?! ) ip на рутера
?/ОК

----

1.

iptables -t nat -A PREROUTING -m tcp -p tcp -i eth0 -d ip.of.the.router --dport 80 -j REDIRECT --to-ports 8080



2.

Ако локалната ти мрежа ползва реалното ип за заявка към сайта, вместо локалното тогава правилата ще са 2.

iptables -t nat -A PREROUTING -m tcp -p tcp -i eth1 -d ip.of.the.router --dport 80 -j DNAT --to local.ip.of.therouter:80

Това е ...
Активен

Powered by Debian GNU / LINUX /// Intel inside ...

„Насилието е последното убежище на некомпетентността“ - Айзък Азимов (1920 — 1992)

  • Гост
Port redirect на локална машина
« Отговор #4 -: Nov 17, 2004, 09:58 »
Пък като ти писне да го мъчиш с iptables вземи прочети малко за <VirtualHost> директивата на Apache, може и да ти свърши работа.

П.П. Не отричам че може да се реши прблема и с iptables ама защо да намесваме ядрото в неща които и Apache може да прави.
Активен

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Port redirect на локална машина
« Отговор #5 -: Nov 17, 2004, 11:37 »
@the_real_maniac: 1,2,3,4 - ok. 2 е проверено. Всъщност приоритета при тази задача е идващите отвън връзки към порт 80 да се пренасочват към 8080 и нищо повече. Съжалявам, ако съм внесъл малко неразбория.. ама за вътрешната мрежа няма значение кое отваря. IPто е реално.
Ето как тествам:
Карам някой отвън да отвори http://$ip/ и http://$ip:8080/
Това което той вижда при първия случай е 403 - Forbiden, защото в conf-a на сървъра, слушащ на 80 има deny from all. Докато на другия, който е на 8080 има allow from all из директивите. При втория случай се вижда тестовата страница от DocumentRoot-a на втория (8080) сървър.
Какво очаквам: при отваряне на http://$ip/ да се отваря тази тестова страница.
И това решение не помогна. Вече се замислям дали проблема не идва от другаде..
Предпочитам да си играя с iptables вместо с виртуалните хостове.
Активен

vlad73

  • Напреднали
  • *****
  • Публикации: 130
    • Профил
Port redirect на локална машина
« Отговор #6 -: Nov 17, 2004, 16:28 »
малко слабо вероятно ми се вижда, но провери дали можеш да отвориш http://localhost:8080/
естествено от потърпевшата машинка

нещо ми се върти в главата, че -j REDIRECT правеше заявката локална за порта към който се редиректва... ама, ей Богу, наистина не съм убеден в това, което пиша в момента, просто идея, кояти мислех след време да пробвам... иначе мисля, че именно
iptables -t nat -A PREROUTING -p tcp -d $IP --dport 80 -j REDIRECT --to-ports 8080
е верния ред за iptables... естествено ако няма някой друг преди него дето да влияе, защо не го промениш на

iptables -t nat -I PREROUTING 1 -p tcp -d $IP --dport 80 -j REDIRECT --to-ports 8080

за да си гарантираш, че няма да се намери някое правило-тарикат, дето да се габарка с теб '<img'>

Успех!
Активен

Uvigii

  • Напреднали
  • *****
  • Публикации: 381
    • Профил
Port redirect на локална машина
« Отговор #7 -: Nov 17, 2004, 17:23 »
а този, дето отваря страницата ... "отвън"
натиска ли F5  като обезумял ?!
Активен

http://www.openlab.info мрежова лаборатория

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Port redirect на локална машина
« Отговор #8 -: Nov 17, 2004, 19:53 »
Реших проблема '<img'>
Въобще бях забравил че ADSL модема прави някакъв негов си nat и че всъщност адреса на интерфейса е 192.168.1.2  '<img'>
Смених $ip на 192.168.1.2, пуснах го и тръгна.
Всъщност грешката си е моя де.. кой да предположи че доставчика ще направи такова нещо изведнъж '<img'> До сега бях с $ip на интерфейса.
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
redirect URL
Общ форум
nikiv 2 3197 Последна публикация Sep 24, 2002, 09:29
от
redirect port
Настройка на програми
igt 3 1995 Последна публикация Dec 21, 2005, 17:00
от vlad73
Iptables Port Redirect Problem!
Настройка на програми
daemon 2 2262 Последна публикация Jan 07, 2006, 04:23
от daemon
Port redirect
Настройка на програми
vall_666 2 2038 Последна публикация Jan 08, 2008, 00:52
от VladSun
apache redirect if not existing vhost
Настройка на програми
dvbb 10 4245 Последна публикация Oct 17, 2010, 14:22
от dvbb