Sziasztok
Windows kliensről fut egy iBank kliensprogram, amellyel utalásokat lehet végezni, számlaegyenleget lekérni, stb. Ezt a gépet egy linuxos gép köti össze a nettel.
A problémám abból áll, hogy amikor közvetlenül kötöm a windows-os gépet az ADSL-netre, az iBank program tökéletesen működik, míg amikor a linuxos gépen keresztül kell ugyanezt a kapcsolatot létrehozni, hibát kapok (a program szerint a hálózat túlterhelt).
Az iptables-sorok így néznek ki:
- prerouting
Kód:
iptables -t nat -A PREROUTING -i ppp0 -s 62.77.229.87 -d $adsl_IP -p tcp --sport 80 -j DNAT --to 192.168.1.2
- forward
Kód:
iptables -A FORWARD -i eth0 -o ppp0 -d 62.77.229.87 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -s 62.77.229.87 -j ACCEPT
iptables -A FORWARD -i eth0 -s $belso_halo -o ppp0 -d 62.77.229.87 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ppp0 -s 62.77.229.87 -o eth0 -d $belso_halo -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
A szabályok működnek, tehát ezzel elvileg nem lenne gond. Ha viszont megnézem az Ethereal segítségével, a következőt látom:
Kód:
No. Time Source Destination Protocol Info
1 0.000000 192.168.1.2 62.77.229.87 TCP 1214 > http [SYN] Seq=0 Ack=0 Win=16384 Len=0 MSS=1460
Frame 1 (62 bytes on wire, 62 bytes captured)
Ethernet II, Src: 192.168.1.2 (00:c0:f0:57:39:be), Dst: 192.168.1.1 (00:0a:0d:d4:91:9c)
Internet Protocol, Src: 192.168.1.2 (192.168.1.2), Dst: 62.77.229.87 (62.77.229.87)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
Total Length: 48
Identification: 0xc3e2 (50146)
Flags: 0x04 (Don't Fragment)
Fragment offset: 0
Time to live: 128
Protocol: TCP (0x06)
Header checksum: 0x5196 [correct]
Source: 192.168.1.2 (192.168.1.2)
Destination: 62.77.229.87 (62.77.229.87)
Transmission Control Protocol, Src Port: 1214 (1214), Dst Port: http (80), Seq: 0, Ack: 0, Len: 0
No. Time Source Destination Protocol Info
2 0.037540 62.77.229.87 192.168.1.2 TCP http > 1214 [SYN, ACK] Seq=0 Ack=1 Win=8760 Len=0 MSS=1460
Frame 2 (60 bytes on wire, 60 bytes captured)
Ethernet II, Src: 192.168.1.1 (00:0a:0d:d4:91:9c), Dst: 192.168.1.2 (00:c0:f0:57:39:be)
Internet Protocol, Src: 62.77.229.87 (62.77.229.87), Dst: 192.168.1.2 (192.168.1.2)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
Total Length: 44
Identification: 0xca1c (51740)
Flags: 0x04 (Don't Fragment)
Fragment offset: 0
Time to live: 123
Protocol: TCP (0x06)
Header checksum: 0x5060 [correct]
Source: 62.77.229.87 (62.77.229.87)
Destination: 192.168.1.2 (192.168.1.2)
Transmission Control Protocol, Src Port: http (80), Dst Port: 1214 (1214), Seq: 0, Ack: 1, Len: 0
No. Time Source Destination Protocol Info
3 0.038379 192.168.1.2 62.77.229.87 TCP 1214 > http [ACK] Seq=1 Ack=1 Win=17520 Len=0
Frame 3 (54 bytes on wire, 54 bytes captured)
Ethernet II, Src: 192.168.1.2 (00:c0:f0:57:39:be), Dst: 192.168.1.1 (00:0a:0d:d4:91:9c)
Internet Protocol, Src: 192.168.1.2 (192.168.1.2), Dst: 62.77.229.87 (62.77.229.87)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
Total Length: 40
Identification: 0xc3e3 (50147)
Flags: 0x04 (Don't Fragment)
Fragment offset: 0
Time to live: 128
Protocol: TCP (0x06)
Header checksum: 0x519d [correct]
Source: 192.168.1.2 (192.168.1.2)
Destination: 62.77.229.87 (62.77.229.87)
Transmission Control Protocol, Src Port: 1214 (1214), Dst Port: http (80), Seq: 1, Ack: 1, Len: 0
No. Time Source Destination Protocol Info
4 0.105231 192.168.1.2 62.77.229.87 HTTP Continuation or non-HTTP traffic
Frame 4 (849 bytes on wire, 849 bytes captured)
Ethernet II, Src: 192.168.1.2 (00:c0:f0:57:39:be), Dst: 192.168.1.1 (00:0a:0d:d4:91:9c)
Internet Protocol, Src: 192.168.1.2 (192.168.1.2), Dst: 62.77.229.87 (62.77.229.87)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
Total Length: 835
Identification: 0xc3e4 (50148)
Flags: 0x04 (Don't Fragment)
Fragment offset: 0
Time to live: 128
Protocol: TCP (0x06)
Header checksum: 0x4e81 [correct]
Source: 192.168.1.2 (192.168.1.2)
Destination: 62.77.229.87 (62.77.229.87)
Transmission Control Protocol, Src Port: 1214 (1214), Dst Port: http (80), Seq: 1, Ack: 1, Len: 795
Hypertext Transfer Protocol
No. Time Source Destination Protocol Info
5 0.241642 62.77.229.87 192.168.1.2 HTTP Continuation or non-HTTP traffic
Frame 5 (494 bytes on wire, 494 bytes captured)
Ethernet II, Src: 192.168.1.1 (00:0a:0d:d4:91:9c), Dst: 192.168.1.2 (00:c0:f0:57:39:be)
Internet Protocol, Src: 62.77.229.87 (62.77.229.87), Dst: 192.168.1.2 (192.168.1.2)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
Total Length: 480
Identification: 0xdc1c (56348)
Flags: 0x04 (Don't Fragment)
Fragment offset: 0
Time to live: 123
Protocol: TCP (0x06)
Header checksum: 0x3cac [correct]
Source: 62.77.229.87 (62.77.229.87)
Destination: 192.168.1.2 (192.168.1.2)
Transmission Control Protocol, Src Port: http (80), Dst Port: 1214 (1214), Seq: 1, Ack: 796, Len: 440
Hypertext Transfer Protocol
No. Time Source Destination Protocol Info
6 0.324092 62.77.229.87 192.168.1.2 HTTP [TCP Previous segment lost] Continuation or non-HTTP traffic
Frame 6 (215 bytes on wire, 215 bytes captured)
Ethernet II, Src: 192.168.1.1 (00:0a:0d:d4:91:9c), Dst: 192.168.1.2 (00:c0:f0:57:39:be)
Internet Protocol, Src: 62.77.229.87 (62.77.229.87), Dst: 192.168.1.2 (192.168.1.2)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
Total Length: 201
Identification: 0xe41c (58396)
Flags: 0x04 (Don't Fragment)
Fragment offset: 0
Time to live: 123
Protocol: TCP (0x06)
Header checksum: 0x35c3 [correct]
Source: 62.77.229.87 (62.77.229.87)
Destination: 192.168.1.2 (192.168.1.2)
Transmission Control Protocol, Src Port: http (80), Dst Port: 1214 (1214), Seq: 1901, Ack: 796, Len: 161
Hypertext Transfer Protocol
Ami furcsa, hogy nem fragmentált csomagokról van szó, tehát ez nem lehet probléma. A másik, hogy minden esetben a fentiekben logolt lépések történnek:
1-2-3. a belső gép létrehozza a kapcsolatot a bank gépével;
4. a belső hálón lógó gép lekér egy csomagot a bank 80-as portjáról;
5. a banki szerver elküldi a csomagot a belső gépnek;
6. kiderül, hogy a banki szerver által küldött csomag elvész.
(Ezután a gépek szépen elbontják a kapcsolatot ahogy kell)
Kérdéseim:
- van-e valaki, aki használja az iBank nevű programot hasonló kiépítettséggel (Windows kliens, linuxos routergépen tűzfallal)?
- lát-e valaki beállítási problémát az iptables-parancsokban?
Köszönöm
- 2910 megtekintés
Hozzászólások
Ez melyik iBank kliens?
- A hozzászóláshoz be kell jelentkezni
Ha a bankot kérdezed, akkor az ELLA Banknál használom (ha jól néztem, más bank/pénzintézet is használja ezt a programot).
Ha a verziót, az 1.04-esről van szó.
És tegnap megjött az adsl-számla... :-D
- A hozzászóláshoz be kell jelentkezni
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
- A hozzászóláshoz be kell jelentkezni
Kifelé megy, befelé nem jön :-(
Ezért van az iptables-szabályok között egy olyan, amelyik a bank szerverétől a 80-as indulási portról jövő kapcsolatokat forwardolja a belső gép felé (ez a prerouting), s mint ilyen, a gépen átmenő kapcsolat, engedélyezve van a 80-as portról jövő kapcsolat befelé a gép felé (s persze kifelé is).
- A hozzászóláshoz be kell jelentkezni
Csak a pontosság kedvéért: iBanq.exe.
Én qemu-ban futó Windows-zal használom. Amíg kevés volt számára a memória (512 MB), addig produkált ilyet minden 3. kattintásra.
A bővítés óta simán megy.
Persze én közvetlenül a netre vagyok dugva.
- A hozzászóláshoz be kell jelentkezni
Nekem per pillanat mindegy, minek hívjuk :-)
Mint írtam, "rendes" Windows alatt vagyok kénytelen használni, ahol egész jól elvan a 192MB-os géppel, s ha közvetlenül van a gép a netre dugva, akkor tényleg nem csinál ilyen problémákat.
A gond onnan indul, hogy nem raknám az utalós gépet közvetlenül a netre, s nem látom, mit enged/nem enged az iptables. Hiába logolom az összes kapcsolatot az adott szerver felé, nem látok problémát. Csak az Ethereal jelez, s igaza is van, de nem tudom a megoldást, miért veszíti el a visszajövő csomagot.
- A hozzászóláshoz be kell jelentkezni
Nem értek a hálózatokhoz, de ha gyors eredményt akarsz, lehet hogy jobban jársz egy Linux+qemu-val. Sokkal erősebb gép kell neki, de egy Linuxot azért könnyebb szívvel tesz ki az ember a netre.
Főleg én, napi 15 percre (legfeljebb)... :-)
- A hozzászóláshoz be kell jelentkezni
Ha gondolod, megadom a könyvelő telefonszámát, bunyózzátok le :-)
Egyrészt ő adja a pénzt a gép(ek)re, másrészt megoldást vár a jelenlegi helyzetre, nem azt, hogy lecseréljem a teljes hálózatot egyetlen program miatt :-D
- A hozzászóláshoz be kell jelentkezni
Akkor menj át más bankhoz, és hagyd az ELLÁ-t, aki - idézem az informatikusukat - "Microsoft Java-ban fejleszt". Idióta botcsinálta bitvadászok...
- A hozzászóláshoz be kell jelentkezni
OK, tudok róla, továbbá kb. 1 éve kerestek is Java-fejlesztőt.
Természetesen a probléma megkerülése is egy megoldás, de
1. más ok miatt viszont éppen őt választotta a cég (és én is);
2. a kérdés marad, hogyan tudnám megtalálni, miért nem ér vissza az adott csomag?
Tovább görgetve a kérdést, valljuk be őszintén legalább önmagunknak, kicsit fura lenne minden probléma esetén áthárítani a felelősséget azért, mert MI nem tudjuk megoldani az adott feladatot. Ugyanis akkor ez nem megoldás, hanem struccpolitika, én meg egyenesen utálom, ha por megy a pofámba :-D
- A hozzászóláshoz be kell jelentkezni
iptables -t nat -A PREROUTING -i ppp0 -s 62.77.229.87 -d $adsl_IP -p tcp --sport 80 -j DNAT --to 192.168.1.2
sport helyett dport? mert nem a forrását, hanem a célját akarod meghatározni, bár lehet baromság amit mondok :-)
--
Slackware current mert az nekem jó...
- A hozzászóláshoz be kell jelentkezni
Vnc átirányítás nálam:
$IPT -A FORWARD -p tcp -i $INET_IFACE --destination-port 5900 --destination 192.168.1.4 -j ACCEPT
$IPT -t nat -A PREROUTING -p tcp -i $INET_IFACE --destination-port 5900 -j DNAT --to-destination 192.168.1.4:5900
--
Slackware current mert az nekem jó...
- A hozzászóláshoz be kell jelentkezni
Azt mondom neki, hogy ha bejön az adsl-csatolón egy tcp-csomag a 62.77.229.87-es IP-ről az adsl-hez tartozó IP-re, amelynek kiindulási portja a 80-as port, akkor a kapcsolatot/csomagot a beérkezés előtt "dobja tovább"/forwardolja a 192.168.1.2-es gépre.
Az --sport jó, mert a szerver erre a portra kapja és innen indítja a kapcsolatait, a belső hálón meg oda érkezik, ahova érkezik (1024 és felette bárhová).
- A hozzászóláshoz be kell jelentkezni
Ethernet II, Src: 192.168.1.1 (00:0a:0d:d4:91:9c), Dst: 192.168.1.2 (00:c0:f0:57:39:be)
Internet Protocol, Src: 62.77.229.87 (62.77.229.87), Dst: 192.168.1.2 (192.168.1.2)
Ebből láthatod, a banki szerver tökéletesen elbeszélget a belső hálós géppel, mégis elvész egy csomag :-(
Asszem este netfilter-mozit fogok nézni a dvd-n...
- A hozzászóláshoz be kell jelentkezni
Próbáld meg a pathmtu-t megnézni, mert ez olyan, mintha a 4 és 5 frame közötti csomag valahol elakadna a Neten.
- A hozzászóláshoz be kell jelentkezni
Visszajöttem szabiról és találtam egy olyan megoldást, amely még a csomag útválasztása előtt megjelöli az adott kapcsolatot. Így minden, az adott kapcsolathoz tartozó csomag kap egy jelzést (kb. mint a logban a --log-prefix kinézete), amelyből látható, mikor és melyik szabályon ment át vagy éppen nem ment át az adott csomag.
Holnapra pontosan megkeresem, hátha kellhet még valakinek.
Gondoltam a pathmtu-ra is, de azt hiszem, első körben megpróbálkozom ezzel a MARK-olással. Elvégre ha mégis valamelyik szabályban elakad a csomag, akkor először azt szeretném kiküszöbölni.
A tippet viszont köszönöm.
- A hozzászóláshoz be kell jelentkezni
Sandokan69-nek jó volt az ötlete, csak rossz helyen kerestem a problémát.
A történet ugyanis úgy szól, hogy az ADSL a 1452-es MTU-val működik, amiről viszont a belső hálón lógó Windows-gép nem tud és 1500-as (1492) méretű csomagokat próbál áttolni a linuxos gépen. Naná, hogy nem fog neki sikerülni.
Megoldás: a registry-ben megadni a Windows-os gépen, hogy az MTU-ja jóval kevesebb legyen (én pl. 1452), így könnyedén átmegy a linxuos gép 1452-es ADSL-én (aki tutira akar menni, gondolom leveheti 1412-re is :-))
- A hozzászóláshoz be kell jelentkezni
En megprobalnek felrakni egy http proxyt
- A hozzászóláshoz be kell jelentkezni