|
|
ВНИМАНИЕ: Използвайте форумите на сайта за дa зададете вашите въпроси.
Въпрос |
От: OMA (oma (a) abv__dot__bg) |
Дата: 03/19/2004 |
Здравейте.
Това което искам да направя е много просто. Искам при
обръщение към 80-ти порт на сървърната ми машина 192.168.0.x
заявката да се пренасочва към компютър 192.168.1.y от
вътрешната ми мрежа. Знам, че това става с DNAT на iptables,
но нещо при мен не става връзката.
Това което правя е:
iptables -A PREROUTING -t nat -p tcp -d 192.168.0.y --dport
80 -j DNAT --to 192.168.1.y:80
FORWARD веригата ми е ACCEPT при всяко положение.
След това като пусна браузъра вече не се отваря web
страницата на сървъра ми (явно пакетите се пренасочват към
другата машина), но и не се отваря сайта от другият ми
компютър. Браузърът си цикли и достига timeout.
Мисля, че подробно обясних какъв е проблема. Ако имате
някакви предложения какво пропускам или какво буркам моля
споделете ги.
Благодаря
П.П. Успях да направя port forwarding с ssh по този начин:
ssh -L 80:192.168.1.y:80 192.168.0.x
Така всичко си работи, но с iptables е много по-елегантно!
|
Отговор #1 |
От: fallen |
Дата: 03/19/2004 |
погледнете с ИП адресите пак. Тук 2та завършват на'у', не е
от значение за принципа, но за вас има значение.
|
Отговор #2 |
От: OMA (oma __@__ abv__dot__bg) |
Дата: 03/19/2004 |
При мен ip адресите са си ок. Защо гледаш ip адресите??
Какво общо имат те с моя въпрос? Така съм ги написал като
пример!
:(
|
Отговор #3 |
От: Kolio Kolev (kolio_kolev __@__ europe __точка__ com) |
Дата: 03/19/2004 |
Пробвай:
/sbin/iptables -t nat -A PREROUTING -p tcp -d 192.168.0.y
--dport 80 -j DNAT --to 192.168.1.y:80
Кольо Колев
|
Отговор #4 |
От: OMA (oma (a) abv__dot__bg) |
Дата: 03/19/2004 |
E това е 1 към 1 с това което аз съм го
написал!???????!!!!!?!
НЕ СИ МИСЛЕТЕ, ЧЕ КОМАНДАТА НЕ СЕ ИЗПЪЛНЯВА! ИЗПЪЛНЯВА СЕ,
но не се получава напълно резултата който искам. (описал съм
защо)
|
Отговор #5 |
От: OMA (oma< at >abv< dot >bg) |
Дата: 03/19/2004 |
МНОГО ВИ МОЛЯ отговаряйте САМО ака наистина знаете какъв е
проблема и ако се правили успешен port forwarding с
iptables.
Благодаря
|
Отговор #6 |
От: Kolio Kolev (kolio_kolev__at__europe[ точка ]com) |
Дата: 03/19/2004 |
Умника!
Това дето съм го написал по горе е решението на проблема ти
за forward на порт.
Ако това не работи (защото тази схема работи при мене и така
е описано в документацията на iptables) - значи проблема ти
е другаде.
За да се увериш, че работи горното правило, махни всички
правила в iptables и изпълни само горния ред!
Също така направи диагностика с tcpdump и виж къде ти отиват
пакетите! Например на 192.168.0.y изпълни
/usr/sbin/tcpdump -qnn | grep 192.168.0.y
Кольои Колев
|
Отговор #7 |
От: OMA (oma __@__ abv[ точка ]bg) |
Дата: 03/19/2004 |
Ako това беше решението на проблема ми нямаше да го има този
пост. Аз много добре съм прочел документацията на iptables и
както съм написал във въпроса ми правя точно това което ти
ми каза после. За да питам тук явно това нестава! От
tcpdump-а виждам, че при заявка към 80-ти порт на сървърната
машина, пакетите не се forward-ват, т.е. не напускат сървъра
към вътрешната мрежа и нищо не достига до другия компютър.
При заявка браузърът зависва и достига timeout.
Четох всякакви документации отностно каква поддръжка трябва
да имам в ядрото за DNAT и всичко ми е ок.
Изчиствам абсолютно всички вериги в iptables - на ACCEPT и
пак не се forward-ват пакетите.
|
Отговор #8 |
От: Kolio Kolev (kolio_kolev__at__europe[ точка ]com) |
Дата: 03/19/2004 |
Това не го вярвам!
Я изпълни
/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/iptables -F -t mangle
и след това правилото...
Кольо Колев
|
Отговор #9 |
От: abw |
Дата: 03/19/2004 |
Опитай ДНАТ към реално ип. На някой сайт чието ип знаеш. Аз
имах подобен проблем когато пренасочвах към вътрешно ип.
Когато вместо вътрешно ип задавах реално ип(например на
абв.бг) нямаше проблем. Нещата се оправиха като освен
ДНАТ-а(към вътрешно ип) добавих и СНАТ на всичко от
вътрешното ип.
|
Отговор #10 |
От: dimodim |
Дата: 03/19/2004 |
а пуснал ли си ipforward в ядрото, променливата
net.ipv4.ip_forward трябва да ти е = 1
|
Отговор #11 |
От: fallen |
Дата: 03/19/2004 |
ami da kazha neshto :
dobre e mashinata, koqto pravi PREROUTING da e syshta
gateway na tazi KYM KOQTO se pravi DNAT-a, za mozhe packeta
da izleze ot neq kym tozi kojto ustanowqwa vryzkata. Probvaj
go, posle shte ti napravq ASCII kartinka na shema koqto
raboti pri men za routirane na VNC v localna mreza.
Pishi pak - shte go opravim :)
|
Отговор #12 |
От: ОМА (oma__at__abv__dot__bg) |
Дата: 03/20/2004 |
1) Изпълних:
/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/iptables -F -t mangle
Резултатът е пак същият.
2) Опитах DNAT към реално ip (dir.bg) и пак същото става.
Пакетите не излизат навън.
3) echo 1 > /proc/sys/net/ipv4/ip_forward го имам в .rc
скриптовете
4) fallen ако правя DNAT към сървъра ми(той прави
PREROUTING) просто няма да ми върши работа. Всъщност немога
да разбера какво имаш предвид. Аз съм в локална мрежа с ip
192.168.0.114. Иксма при заявка от някой друг от тази мрежа
към мойта машина 192.168.0.114:80 да се пренасочва към един
компютър от вътрешната ми мрежа: 192.168.1.2. Т.е. той да
играе ролята на web сървър(примерно).
|
Отговор #13 |
От: fallen |
Дата: 03/20/2004 |
192.168.1.2 да има за гейт 192.168.0.114
Интернет/интранет/ >> 192.168.0.114:80 >> 192.168.1.2:80 >>
обратно по връзката , като се мине през 192.168.0.114
>>Интернет /интранет/.
Ако и така не стане пиши пак, при мен схемата е такава и
работи без проблем, ако не успееш и този път ще ти напиша
подробно схемата и правилата - само пиши тук.
|
Отговор #14 |
От: Djimbo (kvv__at__atsoftconsult-bg__dot__com) |
Дата: 03/21/2004 |
OMA пробваи да сложиш интерфейса през който минаваш
от всички което прочетох по постовете никаде не видях входящ
интерфейс.
iptables -A PREROUTING -t nat -i eth0 -p tcp -d 192.168.0.y
--dport
80 -j DNAT --to 192.168.1.y:80
Независимо че FORWARD ти е ACCEPT окажи си
правилото задължително:
iptables -A FORWARD -i eth0 -p tcp -d x.x.x.x.x --dport 80
-j ACCEPT
Незнам дали ще ти помогна но при мен по този начин работят
няколко Forward-a
Успех.
BRDS
|
Отговор #15 |
От: 1010 |
Дата: 03/21/2004 |
EDIN DA NAPISHE NESHTO
|
Отговор #16 |
От: OMA (oma__at__abv< dot >bg) |
Дата: 03/21/2004 |
Никакъв ефект ефект и след това. Пакетите се match-ват от
netfiler-a, но не не се изпращат към 192.168.1.y. Губят се
някъде в машината която прави DNAT-а (192.168.0.x).
Нищо няма да излезе от това. Нещо ми е бъгнато:(
|
Отговор #17 |
От: marihuan |
Дата: 03/21/2004 |
$IPTABLES -t filter -A INPUT -p tcp -d 192.168.0.x --dport
80 -j ACCEPT
$IPTABLES -t filter -A FORWARD -i eth0 -p tcp -d 192.168.1.y
--dport 80 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -p tcp -d 192.168.0.x/32
--dport 80 -j DNAT --to-destination 192.168.1.y:80
$IPTABLES -t nat -A POSTROUTING -p tcp -s 192.168.1.y
--sport 80 -j ACCEPT
|
Отговор #18 |
От: steve |
Дата: 03/21/2004 |
Znachi, ne iska da stane zashtoto e neobhodimo oshte edno
redche predi dnat-a.
iptables -t nat -A POSTROUTING -s 192.168.0.y -o eth1 -j
MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 80 -s
192.168.0.y -j DNAT --to-destination 192.168.0.y:80
o- eth0 e lan kartata kum koqto e svurzan adresa kum koito
shte preprashtash. Tova e i da pocherpish, ei!
|
Отговор #19 |
От: marihuan |
Дата: 03/22/2004 |
steve kaji kva e razlikata edin post ponagore?
:)
Pozdravi!!
|
Отговор #20 |
От: OMA (oma __@__ abv[ точка ]bg) |
Дата: 03/22/2004 |
#iptables -L -t nat -n
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 192.168.0.114
tcp dpt:80 to:192.168.1.2:80
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 192.168.1.2 0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
#iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
state RELATED
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
state ESTABLISHED
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0
tcp dpt:80
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0
tcp flags:0x16/0x02
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
НЕ РАБОТИ! Tеоретично би трябвало. Не е проблема във
правилата. Те така трябва да си бъдат. Нещо друго е. Във
всяка от веригите съм пробвал какво ли не с -i eth0/1, -m
tcp, -s x.x.x.x. и -d x.x.x.x. Oказа се, че правилата си
работят защото пакетите към 192.168.0.114 се match-ват от
првилото:
DNAT tcp -- 0.0.0.0/0 192.168.0.114
tcp dpt:80 to:192.168.1.2:80
но вместо да отиват към 192.168.1.2:80 те се губят някъде в
192.168.0.1. Това е резултата от tcpdump-а. Ako не работеха
правилата заявка към 192.168.0.114 щеше да изплюва
страницата на web сървъра на тази машина. Вместо това
браузърът си цикли и стига timeout. Ako всичко е на АCCEPT и
останат само веригите с MASQUERADЕ-a и DNAT-а същото става.
|
Отговор #21 |
От: Djimbo (kvv__at__atsoftconsult-bg< dot >com) |
Дата: 03/22/2004 |
ok po spokoino a forward megdu dvete mreji pusnal li si?
Tova ne go fidqh nikade?
MASQUERADINGA ne se pravi taka
napravi slednoto
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j
MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j
MASQUERADE
iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0./24 -d
192.168.0.114 --dport 80 -j REDIRECT --to 192.168.1.2:80
iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j
ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -j
ACCEPT
iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 80 -j
ACCEPT
|
<< IE под линукс? (4
) | kernel-2.6.4-1-686 i XF86 (3
) >>
|
|
|
|
|