exo Posted February 5, 2008 Share Posted February 5, 2008 Здравейте, зная че по въпроса има много материал в нета, но при мене проблема наистина е сериозен, а и днес прерових поне 100 страници по въпроса. Досега съм си правил port forwarding-а с тези правила: *filter :FORWARD DROP [0:0] :INPUT DROP [0:0] :OUTPUT DROP [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -p icmp --icmp-type any -j ACCEPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p tcp -m state -m tcp --dport 80 --state NEW -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited # open the port -A INPUT -i eth2 -p tcp -m tcp --dport 8080 -j ACCEPT # allow connection from internet to the internal host -A FORWARD -i eth2 -o eth0 -p tcp -d 192.168.0.234 --dport 80 -j ACCEPT # all left RELATED (like data) and already ESTABLISHED connections from the internal host to the internet are accepted -A FORWARD -i eth0 -o eth2 -p tcp -s 192.168.0.234 -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT *mangle :FORWARD ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] COMMIT *nat :PREROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A PREROUTING -i eth2 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.0.234:80 COMMIT eth2 ми е интернета, eth0 вътрешната мрежа. Известно време тези правила ги нямаше в /etc/sysconfig/iptables защото не ми се налагаше да правя port forward, но днес се наложи и се оказа че те не действат. Приемат се но на практика нищо не става Пробвах какви ли не варианти и комбинаций, всичките се приемат (ако им е верен синтаксиса) но нищо не се случва. Препращането на пакети в ядрото го разрешавам чрез /etc/rc.d/rc.local: modprobe iptable_nat echo "1" >/proc/sys/net/ipv4/ip_forward echo "1" >/proc/sys/net/ipv4/tcp_syncookies Доставчикът ми не филтрира портответе които ползвам. Дистрото ми е Fedora 8. Моля ви, Много ви моля помогнете защото направо се отчаях вече Link to comment Share on other sites More sharing options...
wbyte Posted February 5, 2008 Share Posted February 5, 2008 kogato connectvash kam tozi port kakvo vrashta -refused ili timed out? da ne testwash dali port forwarda raboti ot mashinata koiato e gw? Link to comment Share on other sites More sharing options...
exo Posted February 5, 2008 Author Share Posted February 5, 2008 Не, тествам от друга машина която също е вързана в интернет, но е със съвсем друго реално ip в съвсем друга мрежа и не е свързана по никакъв начин с първата машина. А иначе дава connection time out. Link to comment Share on other sites More sharing options...
Godfather Posted February 5, 2008 Share Posted February 5, 2008 Първо виж дали наистина са активирани iptables правилата с командите: iptables -nL iptables -t nat -nL След това виж къде точно спират пакетите със следните tcpdump команди (най-добре ги пусни едновременно в две отделни терминални сесии): tcpdump -vvn -i eth0 tcp port 80 tcpdump -vvn -i eth2 tcp port 8080 Сигурен ли си, че на машината с адрес 192.168.0.234 не работи firewall или ако работи съответно пропуска пакети до порт 80? Link to comment Share on other sites More sharing options...
exo Posted February 6, 2008 Author Share Posted February 6, 2008 iptables -nL Chain INPUT (policy DROP) target prot opt source destination ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy DROP) target prot opt source destination ACCEPT tcp -- 0.0.0.0/0 192.168.0.234 tcp dpt:80 ACCEPT tcp -- 192.168.0.234 0.0.0.0/0 state RELATED,ESTABLISHED REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy DROP) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state NEW,RELATED,ESTABLISHED iptables -t nat -nL Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 to:192.168.0.234:80 Chain POSTROUTING (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination tcpdump -vvn -i eth2 tcp port 8080 tcpdump: listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes 13:40:16.949848 IP (tos 0x10, ttl 62, id 37346, offset 0, flags [DF], proto TCP (6), length 60) XXX.XXX.XXX.XXX.33550 > YYY.YYY.YYY.YYY.webcache: S, cksum 0x3c2d (correct), 1734290557:1734290557(0) win 5840 <mss 1460,sackOK,timestamp 24824148 0,nop,wscale 6> 13:40:22.948335 IP (tos 0x10, ttl 62, id 37347, offset 0, flags [DF], proto TCP (6), length 60) XXX.XXX.XXX.XXX.33550 > YYY.YYY.YYY.YYY.webcache: S, cksum 0x24bd (correct), 1734290557:1734290557(0) win 5840 <mss 1460,sackOK,timestamp 24830148 0,nop,wscale 6> 13:40:35.194044 IP (tos 0x10, ttl 62, id 58107, offset 0, flags [DF], proto TCP (6), length 60) XXX.XXX.XXX.XXX.33553 > YYY.YYY.YYY.YYY.webcache: S, cksum 0x1b2d (correct), 2066346596:2066346596(0) win 5840 <mss 1460,sackOK,timestamp 24842399 0,nop,wscale 6> 13:40:38.192895 IP (tos 0x10, ttl 62, id 58108, offset 0, flags [DF], proto TCP (6), length 60) XXX.XXX.XXX.XXX.33553 > YYY.YYY.YYY.YYY.webcache: S, cksum 0x0f75 (correct), 2066346596:2066346596(0) win 5840 <mss 1460,sackOK,timestamp 24845399 0,nop,wscale 6> 13:40:44.189698 IP (tos 0x10, ttl 62, id 58109, offset 0, flags [DF], proto TCP (6), length 60) XXX.XXX.XXX.XXX.33553 > YYY.YYY.YYY.YYY.webcache: S, cksum 0xf804 (correct), 2066346596:2066346596(0) win 5840 <mss 1460,sackOK,timestamp 24851399 0,nop,wscale 6> 5 packets captured 5 packets received by filter 0 packets dropped by kernel tcpdump -vvn -i eth0 tcp port 80 tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 13:40:16.949846 IP (tos 0x10, ttl 61, id 37346, offset 0, flags [DF], proto TCP (6), length 60) XXX.XXX.XXX.XXX.33550 > 192.168.0.234.http: S, cksum 0x9ae1 (correct), 1734290557:1734290557(0) win 5840 <mss 1460,sackOK,timestamp 24824148 0,nop,wscale 6> 13:40:22.948402 IP (tos 0x10, ttl 61, id 37347, offset 0, flags [DF], proto TCP (6), length 60) XXX.XXX.XXX.XXX.33550 > 192.168.0.234.http: S, cksum 0x8371 (correct), 1734290557:1734290557(0) win 5840 <mss 1460,sackOK,timestamp 24830148 0,nop,wscale 6> 13:40:35.194114 IP (tos 0x10, ttl 61, id 58107, offset 0, flags [DF], proto TCP (6), length 60) XXX.XXX.XXX.XXX.33553 > 192.168.0.234.http: S, cksum 0x79e1 (correct), 2066346596:2066346596(0) win 5840 <mss 1460,sackOK,timestamp 24842399 0,nop,wscale 6> 13:40:38.192938 IP (tos 0x10, ttl 61, id 58108, offset 0, flags [DF], proto TCP (6), length 60) XXX.XXX.XXX.XXX.33553 > 192.168.0.234.http: S, cksum 0x6e29 (correct), 2066346596:2066346596(0) win 5840 <mss 1460,sackOK,timestamp 24845399 0,nop,wscale 6> 4 packets captured 8 packets received by filter 0 packets dropped by kernel с XXX.XXX.XXX.XXX съм отбелязал IP-то на машината от която правя теста, а с YYY.YYY.YYY.YYY IP-то на машината на която се опитвам да го направя тоя пусти port forwarding ... Машината на 192.168.0.234 си приема съвсем нормално заявките от машината на която се опитвам да направя port forward-а, a на 0.234 работи един ши*ан IIS: telnet 192.168.0.234 80 Trying 192.168.0.234... Connected to 192.168.0.234. Escape character is '^]'. blah HTTP/1.1 400 Bad Request Content-Type: text/html Date: Wed, 06 Feb 2008 12:11:57 GMT Connection: close Content-Length: 35 <h1>Bad Request (Invalid Verb)</h1>Connection closed by foreign host. Почвам да си мисля вече дали има друг начин защото от това което видях и пробвах до тук стигам до извода че с iptables няма да стане ... Link to comment Share on other sites More sharing options...
wbyte Posted February 6, 2008 Share Posted February 6, 2008 flushni iptables zapisite , pusni posle samo nata i port forwarda, taka shte razberesh dali e ot samiq dostavchik ili ot firewalla Link to comment Share on other sites More sharing options...
exo Posted February 6, 2008 Author Share Posted February 6, 2008 flushni iptables zapisite , pusni posle samo nata i port forwarda, taka shte razberesh dali e ot samiq dostavchik ili ot firewalla И това ми мина през акъла днеска и го направих ама не - от iptables-а е, не е от доставчика. Link to comment Share on other sites More sharing options...
Godfather Posted February 6, 2008 Share Posted February 6, 2008 И това ми мина през акъла днеска и го направих ама не - от iptables-а е, не е от доставчика. Port forwarding-а ти работи перфектно, според tcpdump логовeте, които си пуснал. Причината е изцяло в машината с IP 192.168.0.234. Тя изобщо не отговаря на SYN пакетите към порт 80, които очевидно отиват към нея. Погледни пак какъв firewall работи там и какви са рестрикциите. Има и друг момент - правилното рутиране. Eth0 на линукс машината трябва да се явява default router за 192.168.0.234. Link to comment Share on other sites More sharing options...
exo Posted February 7, 2008 Author Share Posted February 7, 2008 Както се казва леееелееее ... Точно това излезе машината на 192.168.0.234 се поддържа от мой колега аз нямам достъп до нея. Тъй като в момента правя промени по мрежата на която работи тази машина и сменям и gateway-я с друг бях изрично му казал да си оправи настройките на мрежата и да си смени Default Gateway-я с този на който аз се опитвам да направя port forward-а. Обаче той забравил, беше в командировка два дена и сега като дойде го накарах да го провери. Ужас, пълен смях Аз се мъча няколко дена да го направя това а той пича си забравил ... Да се чуди човек да се смее ли да плаче ли или да се ядосва. Както и да е БЛАГОДАРЯ на всички които се отзоваха на моя зов за помощ. Благодаря ви наистина много Специално Благодаря на Godfather че ми отвори очите къде може да е цялата работа. 10x Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.