Discussion:
ipsec visszajovo csomagok
Kosa Attila
2009-02-06 11:31:13 UTC
Permalink
Hello!

---- ---- ---- ---- ----
|1 |-------|2 |__ipsec____| 3|----| 4|----| 5|
| | | | | | | | | |
---- ---- ---- ---- ----

1 - 192.168.0.23 (/16-os halozatban, a teszt idejere linuxos, de
egyebkent windowsos gep lesz)
2 - linuxos tuzfal (van meg neki par laba, de, 123-as nincs,
ipsec-bol is van tobb)
3 - Cisco router
4 - valamilyen tuzfal
5 - valamilyen gep

Az ipsec-hez kaptam egy 123.36.97.0/24 tartomanyt, amelyeket a
belso halozat nehany gepere kellene beforgatnom (az 1-gyel jelolt
egy ezek kozul). A vpn mindket oldal szerint osszeall. A 2-es
gepen az alabbi szabalyok vannak (a kapcsolatra vonatkozoan):

-A POSTROUTING -o ipsec1 -p tcp -s 192.168.0.23 -j SNAT --to-source 123.36.97.1
-A PREROUTING -d 123.36.97.1 -j DNAT --to-destination 192.168.0.23
-A FORWARD -i eth2 -o ipsec1 -p icmp -s 192.168.0.23 -j ACCEPT
-A FORWARD -i eth2 -o ipsec1 -p icmp -s 192.168.0.23 -j ACCEPT
-A FORWARD -i ipsec1 -o eth2 -p icmp -d 192.168.0.23 -j ACCEPT

A "tcpdump -ni ipsec1 -s 0" latja az 1-es geprol kiindulo
csomagokat (sima ping-gel probalkozom, az 5-os gep valaszol a
ping-re), a megfelelo forras- (123.36.97.1) es celcim latszik. A
4-es gepen (de lehet, hogy a 3-as routeren, ez nem volt
egyertelmu) szinten latszanak a csomagok, ott is megfeleloek a
cimek. Ott azonban az is latszik, hogy az 5-os gep valaszol, a
2-es gepen a tcpdump-ban viszont nem latszik semmi a visszafele
jovo csomagokbol. Az 5-os gep szerint a visszafele jovo
csomagokban is jo a source es destination cim.

Hogy lehetne kideriteni, hogy miert nem jonnek vissza a csomagok?
A tuloldalhoz nem ferek hozza.
--
Udvozlettel
Zsiga
Gabor Gombas
2009-02-06 12:00:03 UTC
Permalink
Post by Kosa Attila
A "tcpdump -ni ipsec1 -s 0" latja az 1-es geprol kiindulo
csomagokat (sima ping-gel probalkozom, az 5-os gep valaszol a
ping-re), a megfelelo forras- (123.36.97.1) es celcim latszik. A
4-es gepen (de lehet, hogy a 3-as routeren, ez nem volt
egyertelmu) szinten latszanak a csomagok, ott is megfeleloek a
cimek. Ott azonban az is latszik, hogy az 5-os gep valaszol, a
2-es gepen a tcpdump-ban viszont nem latszik semmi a visszafele
jovo csomagokbol. Az 5-os gep szerint a visszafele jovo
csomagokban is jo a source es destination cim.
A "2-es gepen a tcpdump" nem vilagos. Az ipsec1-et dumpoltad itt is,
vagy a 3-as fele nezo labat? Ha az elobbit, akkor nezd meg, hogy az
utobbin latod-e az ESP csomagokat, amiknek az echo-reply-t kellene
tartalmazniuk. Lama kerdes: ugye nem szurod a 3-as felol az ESP
protokollt?

Gabor
--
---------------------------------------------------------
MTA SZTAKI Computer and Automation Research Institute
Hungarian Academy of Sciences
---------------------------------------------------------
Kosa Attila
2009-02-06 12:27:48 UTC
Permalink
Post by Gabor Gombas
Post by Kosa Attila
A "tcpdump -ni ipsec1 -s 0" latja az 1-es geprol kiindulo
csomagokat (sima ping-gel probalkozom, az 5-os gep valaszol a
ping-re), a megfelelo forras- (123.36.97.1) es celcim latszik. A
4-es gepen (de lehet, hogy a 3-as routeren, ez nem volt
egyertelmu) szinten latszanak a csomagok, ott is megfeleloek a
cimek. Ott azonban az is latszik, hogy az 5-os gep valaszol, a
2-es gepen a tcpdump-ban viszont nem latszik semmi a visszafele
jovo csomagokbol. Az 5-os gep szerint a visszafele jovo
csomagokban is jo a source es destination cim.
A "2-es gepen a tcpdump" nem vilagos. Az ipsec1-et dumpoltad itt is,
Az ipsec1-et.
Post by Gabor Gombas
vagy a 3-as fele nezo labat? Ha az elobbit, akkor nezd meg, hogy az
utobbin latod-e az ESP csomagokat, amiknek az echo-reply-t kellene
tartalmazniuk.
Igen, latok esp forgalmat amikor pingetek.
Post by Gabor Gombas
Lama kerdes: ugye nem szurod a 3-as felol az ESP protokollt?
Be van engedve az esp.
--
Udvozlettel
Zsiga
Kosa Attila
2009-02-06 12:42:00 UTC
Permalink
Post by Kosa Attila
Post by Gabor Gombas
vagy a 3-as fele nezo labat? Ha az elobbit, akkor nezd meg, hogy az
utobbin latod-e az ESP csomagokat, amiknek az echo-reply-t kellene
tartalmazniuk.
Igen, latok esp forgalmat amikor pingetek.
Amikor az 5-os gep pingeli az 1-es gepet (123.36.97.1), akkor a
klips_debug-ban ez latszik:

klips_debug: IP: ihl:20 ver:4 tos:0 tlen:60 id:25390 frag_off:0 ttl:126 proto:1 (ICMP) chk:65322 saddr:xx.xx.120.12 daddr:123.36.97.1 type :code=8:0

Az 5-os gep cime van az saddr mezoben, es az 1-es gep cime a
daddr mezoben. Latom az esp csomagokat, azonban a tunnelben nem
jelenik meg semmi.
--
Udvozlettel
Zsiga
Kosa Attila
2009-02-06 14:51:28 UTC
Permalink
Post by Kosa Attila
Post by Gabor Gombas
Post by Kosa Attila
A "tcpdump -ni ipsec1 -s 0" latja az 1-es geprol kiindulo
csomagokat (sima ping-gel probalkozom, az 5-os gep valaszol a
ping-re), a megfelelo forras- (123.36.97.1) es celcim latszik. A
4-es gepen (de lehet, hogy a 3-as routeren, ez nem volt
egyertelmu) szinten latszanak a csomagok, ott is megfeleloek a
cimek. Ott azonban az is latszik, hogy az 5-os gep valaszol, a
2-es gepen a tcpdump-ban viszont nem latszik semmi a visszafele
jovo csomagokbol. Az 5-os gep szerint a visszafele jovo
csomagokban is jo a source es destination cim.
A "2-es gepen a tcpdump" nem vilagos. Az ipsec1-et dumpoltad itt is,
Az ipsec1-et.
Veletlenul beleneztem az ipsec0 forgalmaba, es meglepetten
lattam, hogy ott mennek a valaszcsomagok. De hiaba nezem a
routing tablat, nem latom, hogy mi indokolja azt, hogy arrafele
kuldje... Ha leallitom az egesz ipsec-et, kikapcsolom a teljes
ipsec0-ra vonatkozo konfigot (az interfeszt sem definialom),
akkor szepen mukodik a ping.

Ha kikapcsolom azt a vpn kapcsolatot, de az ipsec0 interfeszt
felhuzom, akkor sem mukodik az ipsec1-en at a ping. Csak akkor,
ha az ipsec0 nem is letezik.

Neztem az ip route show paranccsal is, nem csak a route -n-nel,
de semmi sem indokolja, hogy az ipsec0 fele kuldje az ipsec1-en
bejovo valaszcsomagokat, es ne a belso halozat fele...

Probalkoztam azzal is, hogy definialtam egy route bejegyzest,
mintha a 123... alhalo a belso halozat fele nezo lab fele lenne,
de ekkor is az ipsec0 interfesz fele mentek a csomagok.
--
Udvozlettel
Zsiga
BUCHMULLER Norbert
2009-02-07 10:36:45 UTC
Permalink
Post by Kosa Attila
Neztem az ip route show paranccsal is, nem csak a route -n-nel,
de semmi sem indokolja, hogy az ipsec0 fele kuldje az ipsec1-en
bejovo valaszcsomagokat, es ne a belso halozat fele...
Azt hiszem, az a probléma, hogy az IP output routing döntés hamarabb
történik meg, mint az SNAT szabály alkalmazása. (Tehát már kész tény,
hogy ipsec0-n fog kiemenni a csomag, amikor az iptables szabályod
meglátja - ezt le tudod ellenőrizni, ha megnézed az ipsec0-n kimenő csomag
forrás címét, vagyis hogy SNAT-olódott-e.) Sajnos már nem frissek az
emlékeim, és nem találok neked pointer sem doksira, ami ezt leírja. :-(

Próbálj meg ezekre Google-zni:

KPTD
"output routing" decision POSTROUTING

Most sajnos nincs időm végiggondolni, de elvileg ha routing rule-lal (ip
rule) másik routing táblába tereled azokat a csomagokat, amelyek 1-es
géptől jönnek, (és ott route-olsz be az ipsec1-be explicite) akkor előrébb
vagy.

norbi

Loading...