Toon posts:

IPSec ESP tunnel onder linux 2.6 - intern routing probleem?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met het opzetten van een IPsec VPN tussen 2 linux hosts, beide met kernel 2.6.5, gebruik makende van de native 2.6.x IPSec implementatie en racoon voor de keyuitwisseling.

De configuratie is als volgt:

code:
1
10.0.0.2 <-> [10.0.0.138 - 80.126.200.96 NAT] <->130.89.144.226

waarbij 80.126.200.96 het externe ip aan de ene kant is, en 130.89.144.226 het ip van de andere kant van de tunnel.

nu wil ik een VPN opzetten tussen de subnets 172.16.1.0/24, en 172.16.2.0/24. Hiervoor heeft de host 10.0.0.2 een interface met als IP 172.16.1.1, en host 130.89.144.226 heeft een interface met adres 172.16.2.1, beide met een netmask van 255.255.255.0.

Als ik de boel volgens de configuratie onderaan deze post configureer kan ik racoon starten. Als ik dan vanaf host 10.0.0.2/172.16.1.1 ping naar 172.16.2.1 wordt de tunnel opgezet. Racoon meldt dat de tunnel er is:
code:
1
2
3
4
2004-05-01 13:48:04: INFO: pfkey.c:1185:pk_recvupdate(): IPsec-SA established: 
ESP/Tunnel 130.89.144.226->10.0.0.2 spi=207284167(0xc5ae7c7)
2004-05-01 13:48:04: INFO: pfkey.c:1425:pk_recvadd(): IPsec-SA established:
ESP/Tunnel 10.0.0.2->130.89.144.226 spi=168420393(0xa09e429)


Maar ping meldt geen ping replies. Als ik de ping packets met ethereal analyseer op 10.0.0.2, zie ik per ping request/reply 3 packets:

code:
1
2
3
10.0.0.2 -> 130.89.144.226 ESP [het request in IPsec verpakt]
130.89.144.226 -> 10.0.0.2 ESP [ping reply in IPsec]
172.16.2.1 -> 172.16.1.1 ICMP [het decrypted ICMP reply packet]


Zoals te zien lijkt de tunnel te werken, alleen komt het reply packet niet meer aan bij ping. Weet iemand wat hiervan de oorzaak kan zijn?

--------- configuratie -----------


De setkey security policies:

op host 10.0.0.2:
code:
1
2
spdadd 172.16.1.0/24 172.16.2.0/24 any -P out ipsec esp/tunnel/10.0.0.2-130.89.144.226/require;
spdadd 172.16.2.0/24 172.16.1.0/24 any -P in ipsec esp/tunnel/130.89.144.226-10.0.0.2/require;


op host 130.89.144.226:
code:
1
2
spdadd 172.16.1.0/24 172.16.2.0/24 any -P in ipsec esp/tunnel/80.126.200.96-130.89.144.226/require;
spdadd 172.16.2.0/24 172.16.1.0/24 any -P out ipsec esp/tunnel/130.89.144.226-80.126.200.96/require;


Vervolgens de racoon configuratie, op beide hosts hetzelfde:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
path certificate "/etc/racoon/certs";
path pre_shared_key "/etc/racoon/psk.txt";

listen {
        # gewone poort
        isakmp 0.0.0.0[500];
        # NAT-T poort
        isakmp_natt 0.0.0.0[4500];
}


timer {
        natt_keepalive 20 sec;
}

remote anonymous {
        exchange_mode main,base,aggressive;
        nat_traversal force;
        proposal {
                # tijdelijk pre-shared-key totdat het werkt
                # de pre-shared-keys zijn voor alle betrokken ip's gelijk
                authentication_method pre_shared_key;
                hash_algorithm sha1;
                encryption_algorithm 3des;
                dh_group modp1024;
        }
        proposal_check obey;
}

# Phase 2 proposal (for IPsec SA)
sainfo anonymous {
        pfs_group modp768;
        lifetime time 12 hour;
        encryption_algorithm 3des, rijndael;
        authentication_algorithm hmac_sha1;
        compression_algorithm deflate;
}


De routing table op 10.0.0.2:

code:
1
2
3
4
5
6
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.2.0      172.16.1.1      255.255.255.0   UG    0      0        0 eth1
172.16.1.0      0.0.0.0         255.255.255.0   U     0      0        0 eth1
10.0.0.0        0.0.0.0         255.255.0.0     U     0      0        0 eth0
0.0.0.0         10.0.0.138      0.0.0.0         UG    0      0        0 eth0



De routing table op 130.89.144.226

code:
1
2
3
4
5
6
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.2.0      *               255.255.255.0   U     0      0        0 eth0
172.16.1.0      172.16.2.1      255.255.255.0   UG    0      0        0 eth0
130.89.144.0    *               255.255.254.0   U     0      0        0 eth0
default         130.89.144.225  0.0.0.0         UG    0      0        0 eth0


(172.16.2.1 zit op eth0:0, vandaar dat alles op dezelfde interface zit)

De iptables policies staan allemaal open op beide systemen, uiteraard is ipv4 forwarding in de kernel enabled:

code:
1
2
3
4
5
6
7
8
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

[ Voor 21% gewijzigd door Verwijderd op 01-05-2004 15:10 ]


  • PolarWolf
  • Registratie: November 2001
  • Laatst online: 11-01 19:37

PolarWolf

Debian, of course.

Niet de meest eenvoudige setup, maar ik geloof dat ik het kan volgen :-)

Van voor tot achter alles nalopend kom ik zo geen overduidelijke fouten tegen.
Alleen het laatste blokje iptables -L output vindt ik een beetje summier.
Zet ook de output van iptables -nvL -t nat er eens bij, of beter nog, de echte regels die je gebruikt voor iptables (indien van toepassing). Voor de rest moet ik er nog even op studeren om tot een logische conclusie te komen.

Oh ja, en kun je er ook wat tcpdump output bij zetten die genomen is op zowel eth0 and eth1 van 10.0.0.2? (tcpdump -ni eth0 en tcpdump -ni eth1)...uiteraard alleen het relevante verkeer :-)

[ Voor 18% gewijzigd door PolarWolf op 03-05-2004 13:10 ]

Undernet #linux, Undernet #ipsec


  • KrL
  • Registratie: Oktober 2001
  • Laatst online: 29-04 11:08

KrL

Doe maar duurzaam..

Het is welliswaar een oud topic maar ik heb precies hetzelfde probleem: tunnel wordt goed opgezet, ping replies komen terug (tcpdump) maar toch krijgt ping geen reply..

Heeft de topicstarter er inmiddels al iets op gevonden of zijn er anderen die weten wat er aan de hand is ?

Ik heb overigens (nog) geen firewall geconfigureerd..

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

heb je zowel je main mode als je quick mode gecontroleerd?
Als je phase 2 (quick mode) niet goed staat lijkt het of je tunnel op is maar stiekum werkt ie dan niet.

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • KrL
  • Registratie: Oktober 2001
  • Laatst online: 29-04 11:08

KrL

Doe maar duurzaam..

Nop, ook phase 2 gaat goed.. Ping komt terug en wordt netjes gedecode (je ziet op je externe interface netjes zowel de ESP pakketjes als de gedecode pakketjes binnenkomen).. Maar ik heb gevonden wat het was: kernel spoofing protectie. Uitzetten dus en het werkt !

Heeft me een dag gekost om daar achter te komen :S