Автор Тема: iptables DNAT -> port_forwarding  (Прочетена 5173 пъти)

  • Гост
iptables DNAT -> port_forwarding
« Отговор #15 -: Jan 26, 2005, 22:46 »
Цитат (VladSun @ Ян. 26 2005,19:18)
В chain PREROUTING сменяш dest IP-то, след PREROUTING твоята машина трябва да вземе решение - дали знае какво да прави с пакета (и да го прати на INPUT) или не знае (ти не си дир.бг, нали '<img'> ) и за това го праща към FORWARD. А от FORWARD според мен се препраща към ДРУГИТЕ интерфейси, където естествено няма дир.бг и затова оставаш само с SYN packet. А това, че получаваш "TTL exceeded in transit" говори, че някъде заявката зацикля (най-вероятно в твоята машина). Пусни един tcpdump да видиш какво става ....

Извинявам се на всички за късния отговор.
Да разбирам ли че трябва да сложа и специфично FORWARD chain. Щото наистина не знам как се ориентира на къде да ходи след това '<img'>
Колкото до tcpdump вече написах какво става -> ICMP TTL exceeded. Това го видях с ethereal което си е същото като tcpdump.
При всяка завка има 3 пакета в PREROUTING hooka.
Това са 3та опита за SYN, иначе моята машина връщa ICMP-то.
Активен

  • Гост
iptables DNAT -> port_forwarding
« Отговор #16 -: Jan 26, 2005, 22:48 »
Цитат (VladSun @ Ян. 26 2005,22:42)
Цитат (RedIce @ Ян. 26 2005,19:48)
Цитат на: the_real_maniac,Ян. 26 2005,20:13
еквивалентни са

за съжеление не са, защото наремето като го нагласях това при мен, със --to-destinaton даваше грешка
'<img'>съгласен съм !
с --to-destination нищо не става както трябва, трябвa --to.

Нищо не казваш за резултата от tcpdump и проба с съшествуващо ИП зад твоята машина .....

не става и с --to
Имаше и предложение за -d ип.адреса.ми
iptables -t nat -A PREROUTING -p tcp -i eth0 -d ип.адреса.ми --dport 80 -j DNAT --to 194.145.63.12:80
Доколкото си спомням едно от първите които пробвах (сега пак го пробвах) - и то не става.
Съответно всякакви компинации с него, tcp+udp, --to, --to-destion и т.н.
Активен

RedIce

  • Напреднали
  • *****
  • Публикации: 162
    • Профил
iptables DNAT -> port_forwarding
« Отговор #17 -: Jan 26, 2005, 23:04 »
а що не го тесваш от вън '<img'>?
погледна ли малката забележка която ти написах ?
ето какво става при мен:
Примерен код
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 7766 -j DNAT --to 192.168.0.1:22

така от порт 7766 да пренасочва към порт 22 на ssh
Примерен код

ssh -l root 192.168.0.1 -p 7766
ssh: connect to host 192.168.0.1 port 7766: Connection refused

така до тук ОК
нормално е това да го даде защото съм на локалното ПС и няма да стане,ОБАЧЕ!!!:

Примерен код

~# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:7766 to:192.168.0.1:22


отивам на саседното PC
Примерен код
~# ssh -l root 192.168.0.1 -p 7766
The authenticity of host '192.168.0.1 (192.168.0.1)' can't be established.
RSA key fingerprint is 51:3b:b0:ba:8f:1b:b5:ba:3a:2b:80:f8:56:10:e6:3d.
Are you sure you want to continue connecting (yes/no)?


всичко работи!
ако така не стане при теб, може и да нямаш съпорта от ядрото, и да иска да се прекомпилира...
незнам какво повече да кажа
Активен

  • Гост
iptables DNAT -> port_forwarding
« Отговор #18 -: Jan 27, 2005, 10:47 »
Проблема ти е, че не си описал FORWARD веригата. С PREROUTING ок, ама прочети малко за пътя на пакета, от къде минава, защо минава и т.н.  Повече инфо в Iptables Tutorial.
Активен

  • Гост
iptables DNAT -> port_forwarding
« Отговор #19 -: Jan 27, 2005, 18:27 »
Цитат (Guest @ Ян. 27 2005,11:47)
Проблема ти е, че не си описал FORWARD веригата. С PREROUTING ок, ама прочети малко за пътя на пакета, от къде минава, защо минава и т.н.  Повече инфо в Iptables Tutorial.

мдаа.
Пробвах и с някакви forwardi обаче не става (през FORWARD веригата ни един пакет не мина). Четох документацията уж разбирам от къде минава пакета, но нищо не се получава. Някой майстор все пак ще подскаже ли как може да стане. Имам един интерфейс, искам от инернет.ип да се минава през моя комп за друго дир.бг(например).
Аз като се замисля трябва и SNAT да се ползва щото иначе dir.bg ще се опита да прати пакета директно на интернет.ип(което инициира връзката) без да мине обратно през мен.
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
iptables DNAT -> port_forwarding
« Отговор #20 -: Jan 27, 2005, 21:27 »
http://users.gurulink.com/drk/transproxy/TransparentProxy.html

Виж т. 6, ако смяташ, че проблемът е от липсата на SNAT
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

Филип Бонев

  • Напреднали
  • *****
  • Публикации: 517
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
iptables DNAT -> port_forwarding
« Отговор #21 -: Jan 27, 2005, 22:27 »
Нещо се обърках, извинивам се
Активен

Поздрави,
Филип Бонев

  • Гост
iptables DNAT -> port_forwarding
« Отговор #22 -: Jan 28, 2005, 10:53 »
Винаги моя комп връща ICMP TTL exceeded на човека който се опитва да прави конекция.
Не мога да накарм един пакет да мине през FORWARD веригата.
Възможно ли е моя доставчик да сменя TTL-a  на всички пакети на 1 и затова да става този проблем. То явно така става де. Щото човека дето иска конект е на 7-8 hopa. Или по default рутерите сменят на TTL 1 като достигнат dst.address.
И ще помогне ли patch-o-matic да сменя TTL-a.
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
iptables DNAT -> port_forwarding
« Отговор #23 -: Jan 28, 2005, 12:21 »
Цитат (Guest @ Ян. 28 2005,10:53)
1) Възможно ли е моя доставчик да сменя TTL-a  на всички пакети на 1 и затова да става този проблем.

И ще помогне ли patch-o-matic да сменя TTL-a.

1) Еми виж, де (ehteral, tcpdump) '<img'>
2) Ако е така може и да помогне (или поне да направи от невъзможното възможно)
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

  • Гост
iptables DNAT -> port_forwarding
« Отговор #24 -: Jan 28, 2005, 12:56 »
мдаа
пакета който идва от вън към мен има TTL 1
Ще трябва да правя magic '<img'>)
Ако някой иска да каже tips and tricks за инсталацията на patch-o-matic, които са извън реадмето да каже. Иначе ще пробвам както е по инструкции. Само с runme няма да стане май като чета readmeto.
Активен

laskov

  • Напреднали
  • *****
  • Публикации: 3166
    • Профил
iptables DNAT -> port_forwarding
« Отговор #25 -: Jan 28, 2005, 14:16 »
Ако правилно съм разбрал ситуацията и ако имаш работещ http сървър на компа дето трябва да препраща и ако можеш да пуснеш виртуален сървър на порт 8080 и ако в index.html напишеш
Цитат
<html>
<head>
<meta http-equiv="refresh" content="1;url=http://www.dir.bg">
</head>
</html>

може резултата да ти хареса  '<img'>
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

  • Гост
iptables DNAT -> port_forwarding
« Отговор #26 -: Jan 28, 2005, 18:22 »
Цитат (laskov @ Ян. 28 2005,15:16)
Ако правилно съм разбрал ситуацията и ако имаш работещ http сървър на компа дето трябва да препраща и ако можеш да пуснеш виртуален сървър на порт 8080 и ако в index.html напишеш
Цитат
<html>
<head>
<meta http-equiv="refresh" content="1;url=http://www.dir.bg">
</head>
</html>

може резултата да ти хареса  '<img'>

ами може и този метод да върши работа - ще го пробвам със сигурност да вида как работи.
имам сървър. virtualen не знам как се прави но май имаше примерен в httpd.con.

Все пак ми се иска да се направи културно, рутерската. Не виждам нищо лошо, пък и не трябва да е трудно.
Направих TTL mangle и пакетите тръгнаха по FORWARD и POSTROUTING веригите. Обаче все още нещо не става.
Пакета отива до dir.bg и на връжане като дава SYN/ACK аз не го пращам към повикващия. Още малко трябва да пипна и би трябвало да стане.
Активен

  • Гост
iptables DNAT -> port_forwarding
« Отговор #27 -: Jan 29, 2005, 18:49 »
Нещо много елементарно пробвам - да пренасоча ping към моята машина към dir.bg.
Дал съм какви правила използвам. По галямата част са стандартните правила от netfilter който са за логване на всяка верига (с цел да се види от къде минава пакета). След тоава съм посочил реалния лог файл.

my.ip.address - е моят аддресс (машината която трябва да рутира)
client.ip.address - машината която прави ping-а към мен.

*****************това са ми правилата*************
# Generated by iptables-save v1.2.11 on Sat Jan 29 00':0'3:14 2005
*mangle
:PREROUTING ACCEPT [8215:876562]
:INPUT ACCEPT [8043:857850]
:FORWARD ACCEPT [4:240]
:OUTPUT ACCEPT [471:30191]
:POSTROUTING ACCEPT [475:30431]
-A PREROUTING -p icmp -m icmp --icmp-type 8 -j LOG --log-prefix "mangle PREROUTING:"
-A PREROUTING -p icmp -m icmp --icmp-type 0 -j LOG --log-prefix "mangle PREROUTING:"
-A PREROUTING -j TTL --ttl-set 64
-A INPUT -p icmp -m icmp --icmp-type 0 -j LOG --log-prefix "mangle INPUT:"
-A INPUT -p icmp -m icmp --icmp-type 8 -j LOG --log-prefix "mangle INPUT:"
-A FORWARD -p icmp -m icmp --icmp-type 0 -j LOG --log-prefix "mangle FORWARD:"
-A FORWARD -p icmp -m icmp --icmp-type 8 -j LOG --log-prefix "mangle FORWARD:"
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j LOG --log-prefix "mangle OUTPUT:"
-A OUTPUT -p icmp -m icmp --icmp-type 0 -j LOG --log-prefix "mangle OUTPUT:"
-A POSTROUTING -p icmp -m icmp --icmp-type 0 -j LOG --log-prefix "mangle POSTROUTING:"
-A POSTROUTING -p icmp -m icmp --icmp-type 8 -j LOG --log-prefix "mangle POSTROUTING:"
COMMIT
# Completed on Sat Jan 29 00':0'3:14 2005
# Generated by iptables-save v1.2.11 on Sat Jan 29 00':0'3:14 2005
*nat
:PREROUTING ACCEPT [1476:229387]
:POSTROUTING ACCEPT [76:2921]
:OUTPUT ACCEPT [76:2921]
-A PREROUTING -p icmp -m icmp --icmp-type 8 -j LOG --log-prefix "nat PREROUTING:"
-A PREROUTING -p icmp -m icmp --icmp-type 0 -j LOG --log-prefix "nat PREROUTING:"
-A PREROUTING -d my.ip.address -p icmp -j DNAT --to-destination 194.145.63.12
-A POSTROUTING -p icmp -m icmp --icmp-type 8 -j LOG --log-prefix "nat POSTROUTING:"
-A POSTROUTING -p icmp -m icmp --icmp-type 0 -j LOG --log-prefix "nat POSTROUTING:"
-A POSTROUTING -p icmp -j SNAT --to-source my.ip.address
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j LOG --log-prefix "nat OUTPUT:"
-A OUTPUT -p icmp -m icmp --icmp-type 0 -j LOG --log-prefix "nat OUTPUT:"
COMMIT
# Completed on Sat Jan 29 00':0'3:14 2005
# Generated by iptables-save v1.2.11 on Sat Jan 29 00':0'3:14 2005
*filter
:INPUT ACCEPT [8054:859082]
:FORWARD ACCEPT [2:120]
:OUTPUT ACCEPT [475:30450]
-A INPUT -p icmp -m icmp --icmp-type 8 -j LOG --log-prefix "filter INPUT:"
-A INPUT -p icmp -m icmp --icmp-type 0 -j LOG --log-prefix "filter INPUT:"
-A FORWARD -p icmp -m icmp --icmp-type 8 -j LOG --log-prefix "filter FORWARD:"
-A FORWARD -p icmp -m icmp --icmp-type 0 -j LOG --log-prefix "filter FORWARD:"
-A FORWARD -d 194.145.63.12 -p icmp -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j LOG --log-prefix "filter OUTPUT:"
-A OUTPUT -p icmp -m icmp --icmp-type 0 -j LOG --log-prefix "filter OUTPUT:"
COMMIT
# Completed on Sat Jan 29 00':0'3:14 2005
***************************************************

***Лог файла с пътя на въпросния пакет(ping request/reply)******
mangle PREROUTING:IN=eth0 OUT= MAC=00:c0:26:79'<img'>4'<img'>6':0'0':0'3:6d:20:7a:96':0'8':0'0 SRC=client.ip.address DST=my.ip.address LEN=60 TOS=0x00 PREC=0x80 TTL=1 ID=65063 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=16640
nat PREROUTING:IN=eth0 OUT= MAC=00:c0:26:79'<img'>4'<img'>6':0'0':0'3:6d:20:7a:96':0'8':0'0 SRC=client.ip.address DST=my.ip.address LEN=60 TOS=0x00 PREC=0x80 TTL=64 ID=65063 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=16640
mangle FORWARD:IN=eth0 OUT=eth0 SRC=client.ip.address DST=194.145.63.12 LEN=60 TOS=0x00 PREC=0x80 TTL=63 ID=65063 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=16640
filter FORWARD:IN=eth0 OUT=eth0 SRC=client.ip.address DST=194.145.63.12 LEN=60 TOS=0x00 PREC=0x80 TTL=63 ID=65063 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=16640
mangle POSTROUTING:IN= OUT=eth0 SRC=client.ip.address DST=194.145.63.12 LEN=60 TOS=0x00 PREC=0x80 TTL=63 ID=65063 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=16640
nat POSTROUTING:IN= OUT=eth0 SRC=client.ip.address DST=194.145.63.12 LEN=60 TOS=0x00 PREC=0x80 TTL=63 ID=65063 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=16640
mangle PREROUTING:IN=eth0 OUT= MAC=00:c0:26:79'<img'>4'<img'>6':0'0':0'3:6d:20:7a:96':0'8':0'0 SRC=194.145.63.12 DST=my.ip.address LEN=60 TOS=0x00 PREC=0x00 TTL=1 ID=47844 PROTO=ICMP TYPE=0 CODE=0 ID=512 SEQ=16640
mangle FORWARD:IN=eth0 OUT=eth0 SRC=194.145.63.12 DST=client.ip.address LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=47844 PROTO=ICMP TYPE=0 CODE=0 ID=512 SEQ=16640
filter FORWARD:IN=eth0 OUT=eth0 SRC=194.145.63.12 DST=client.ip.address LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=47844 PROTO=ICMP TYPE=0 CODE=0 ID=512 SEQ=16640
mangle POSTROUTING:IN= OUT=eth0 SRC=194.145.63.12 DST=client.ip.address LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=47844 PROTO=ICMP TYPE=0 CODE=0 ID=512 SEQ=16640
***************************************************

Ethereal ми показва че пакета върви така
request ping:   source.addr      dst.addr

         client   ->      men
         men      ->      dir.bg
reply ping:   dir.bg   ->      men
         dir.bg   ->      client

Кажете ми сега от какъв зор му дава request timed out на човека. Къде може да е проблема?
Активен

  • Гост
iptables DNAT -> port_forwarding
« Отговор #28 -: Jan 29, 2005, 19:01 »
нещо стана. току що пробвах с един друг човек. реално ip, без firewall и пинга си стана.
разликата е че последната пратка не е
дир.бг-> клиент
ами аз-> клиент и всичко си става ток.

Може би ако клиент е с нереално ип нещата се презакват - ама не би трябвало, затова трябва да се грижи GW при клиента '<img'>
Активен

  • Гост
iptables DNAT -> port_forwarding
« Отговор #29 -: Feb 22, 2005, 15:32 »
Цитат (Guest @ Ян. 28 2005,13:56)
мдаа
пакета който идва от вън към мен има TTL 1
Ще трябва да правя magic '<img'>)
Ако някой иска да каже tips and tricks за инсталацията на patch-o-matic, които са извън реадмето да каже. Иначе ще пробвам както е по инструкции. Само с runme няма да стане май като чета readmeto.

KERNEL_DIR=/usr/src/imeto na directoriata na kernela ./runme base

tova go izpulniavash v dira na razarhivirania pach-o-matic
i ne si durpai patch-o-matic chieto ime sudurga "ng" ako si s iadro po nisko ot 2.6
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
SNAT & DNAT
Настройка на програми
nocture 6 3065 Последна публикация May 28, 2005, 13:18
от Soulstealer
Dnat s iptables
Хардуерни и софтуерни проблеми
gogo_hr 9 2850 Последна публикация Jun 13, 2006, 10:48
от Hapkoc
Snat и dnat през vpn
Хардуерни и софтуерни проблеми
muffty 16 4275 Последна публикация Jun 16, 2006, 14:02
от muffty
Iptables dnat проблем ?
Настройка на програми
ludmilbv 2 1841 Последна публикация Aug 25, 2008, 00:51
от triplek
DNS и DNAT
Настройка на програми
sstefanov 5 2001 Последна публикация Oct 26, 2010, 10:16
от sstefanov