openswan: die Verbindung wird nicht verschlüsselt

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
E. coli
Beiträge: 33
Registriert: 30.12.2006 16:22:03

openswan: die Verbindung wird nicht verschlüsselt

Beitrag von E. coli » 06.02.2007 18:32:49

Hallo,

ich habe mir heute doch mal Zeit genommen um mein Wlan mit openswan abzusichern. Nur leider ist es nicht sicher geworden - den Ärger hatte ich schon fast befürchtet. Daher wollte ich es erst mit ssh versuchen, wie ich in einem anderen Beitrag geschrieben hatte.

Es geht um folgende Konfiguration.

Server:
Router ins Internet
mit zwei Ethernet-Interfaces
läuft unter SuSE 9.2

Client:
Notebook mit Debian Sarge
nur ein PCMCIA-Slot mit Wlan-Karte

Ich will nun über Wlan mit meinem Notebook ins Internet und auch auf den Server zugreifen z.B. mit ssh und shfs. Dabei möchte ich alles über ein verschlüsseltes VPN senden.

Also habe ich unter beiden Systemen openswan eingerichtet.

Server

Code: Alles auswählen

# /etc/ipsec.conf - Openswan IPsec configuration file
# RCSID $Id: ipsec.conf.in,v 1.13 2004/03/24 04:14:39 ken Exp $

# This file:  /usr/share/doc/packages/openswan/ipsec.conf-sample
#
# Manual:     ipsec.conf.5


version 2.0     # conforms to second version of ipsec.conf specification

# basic configuration
config setup
        # Debug-logging controls:  "none" for (almost) none, "all" for lots.
        #klipsdebug=all
        #plutodebug="control parsing"
        #plutodebug=all
        # Certificate Revocation List handling
        #crlcheckinterval=600
        #strictcrlpolicy=yes
        # Change rp_filter setting, default = 0 (switch off)
        #rp_filter=%unchanged
        # Switch on NAT-Traversal (if patch is installed)
        #nat_traversal=yes
 
# default settings for connections
conn %default
        # Default: %forever (try forever)
        #keyingtries=3
        # Sig keys (default: %dnsondemand)
        leftrsasigkey=%cert
        rightrsasigkey=%cert
        # Lifetimes, defaults are 1h/8hrs
        #ikelifetime=20m
        #keylife=1h
        #rekeymargin=8m

# Add connections here

conn wlan
        left=192.168.0.13
        leftid=@nightwish.zuhause.de
        leftrsasigkey=0sAQN.................
        leftnexthop=%defaultroute
        right=192.168.0.11
        rightsubnet=192.168.0.0/24
        rightid=@linux.zuhause.de
        rightrsasigkey=0sAQ...............
rightnexthop=%defaultroute        auto=add


# sample VPN connection
#sample#        conn sample
#sample#                # Left security gateway, subnet behind it, next hop toward right.
#sample#                left=10.0.0.1
#sample#                leftsubnet=172.16.0.0/24
#sample#                leftnexthop=10.22.33.44
#sample#                # Right security gateway, subnet behind it, next hop toward left.
#sample#                right=10.12.12.1
#sample#                rightsubnet=192.168.0.0/24#sample#                rightnexthop=10.101.102.103
#sample#                # To authorize this connection, but not actually start it, at startup,
#sample#                # uncomment this.
#sample#                #auto=start

#Disable Opportunistic Encryption
include /etc/ipsec.d/examples/no_oe.conf
Auf dem Notebook

Code: Alles auswählen

# /etc/ipsec.conf - Openswan IPsec configuration file
# RCSID $Id: ipsec.conf.in,v 1.13 2004/03/24 04:14:39 ken Exp $

# This file:  /usr/share/doc/openswan/ipsec.conf-sample
#
# Manual:     ipsec.conf.5


version	2.0	# conforms to second version of ipsec.conf specification

# basic configuration
config setup
	# Debug-logging controls:  "none" for (almost) none, "all" for lots.
	# klipsdebug=none
	# plutodebug="control parsing"

# Add connections here

conn wlan
	left=192.168.0.13
	leftid=@nightwish.zuhause.de
	leftrsasigkey=0sAQ..........
	leftnexthop=%defaultroute
	right=192.168.0.11
	rightsubnet=192.168.0.0/24
	rightid=@linux.zuhause.de
	rightrsasigkey=0sAQ...........
	rightnexthop=%defaultroute
	auto=add

# sample VPN connection
#sample#	conn sample
#sample#		# Left security gateway, subnet behind it, next hop toward right.
#sample#		left=10.0.0.1
#sample#		leftsubnet=172.16.0.0/24
#sample#		leftnexthop=10.22.33.44
#sample#		# Right security gateway, subnet behind it, next hop toward left.
#sample#		right=10.12.12.1
#sample#		rightsubnet=192.168.0.0/24
#sample#		rightnexthop=10.101.102.103
#sample#		# To authorize this connection, but not actually start it, at startup,
#sample#		# uncomment this.
#sample#		#auto=start

#Disable Opportunistic Encryption
include /etc/ipsec.d/examples/no_oe.conf
Wenn ich das VPN auf dem Notebook mit "ipsec auto --up wlan" start kommt folgende Ausgabe:

Code: Alles auswählen

104 "wlan" #8: STATE_MAIN-I1: initiate
106 "wlan" #8: STATE_MAIN-I2: sent MI2, expecting MR2
108 "wlan" #8: STATE_MAIN-I3: sent MI3, expecting MR3
004 "wlan" #8: STATE_MAIN-I4: ISAKMP SA established
112 "wlan" #9: STATE_QUICK_I1: initiate
004 "wlan" #9: STATE_QUICK_I2: sent Q12, IPsec SA established {ESP=>0x8aa2cfac < 0x995528af}
Vorgegangen bin ich nach diesem Tutorial: http://wiki.openswan.org/index.php/Openswan/Tutorial

Dann habe ich mit Kismet mein eigenes Netzwerk abgehört und in der Dumpdatei ist der HTML-Code von http://www.pro-linux.de ohne Probleme zu lesen. Also keine Verschlüsselung.

ipsec auto --status sag:

Code: Alles auswählen

000 interface lo/lo 127.0.0.1
000 interface eth0/eth0 192.168.0.13
000 %myid = (none)
000 debug none
000  
000 algorithm ESP encrypt: id=2, name=ESP_DES, ivlen=8, keysizemin=64, keysizemax=64
000 algorithm ESP encrypt: id=3, name=ESP_3DES, ivlen=8, keysizemin=192, keysizemax=192
000 algorithm ESP encrypt: id=7, name=ESP_BLOWFISH, ivlen=8, keysizemin=40, keysizemax=448
000 algorithm ESP encrypt: id=11, name=ESP_NULL, ivlen=0, keysizemin=0, keysizemax=0
000 algorithm ESP encrypt: id=12, name=ESP_AES, ivlen=8, keysizemin=128, keysizemax=256
000 algorithm ESP encrypt: id=252, name=ESP_SERPENT, ivlen=8, keysizemin=128, keysizemax=256
000 algorithm ESP encrypt: id=253, name=ESP_TWOFISH, ivlen=8, keysizemin=128, keysizemax=256
000 algorithm ESP auth attr: id=1, name=AUTH_ALGORITHM_HMAC_MD5, keysizemin=128, keysizemax=128
000 algorithm ESP auth attr: id=2, name=AUTH_ALGORITHM_HMAC_SHA1, keysizemin=160, keysizemax=160
000 algorithm ESP auth attr: id=5, name=AUTH_ALGORITHM_HMAC_SHA2_256, keysizemin=256, keysizemax=256
000 algorithm ESP auth attr: id=251, name=(null), keysizemin=0, keysizemax=0
000  
000 algorithm IKE encrypt: id=7, name=OAKLEY_AES_CBC, blocksize=16, keydeflen=128
000 algorithm IKE encrypt: id=5, name=OAKLEY_3DES_CBC, blocksize=8, keydeflen=192
000 algorithm IKE hash: id=2, name=OAKLEY_SHA, hashsize=20
000 algorithm IKE hash: id=1, name=OAKLEY_MD5, hashsize=16
000 algorithm IKE dh group: id=2, name=OAKLEY_GROUP_MODP1024, bits=1024
000 algorithm IKE dh group: id=5, name=OAKLEY_GROUP_MODP1536, bits=1536
000 algorithm IKE dh group: id=14, name=OAKLEY_GROUP_MODP2048, bits=2048
000 algorithm IKE dh group: id=15, name=OAKLEY_GROUP_MODP3072, bits=3072
000 algorithm IKE dh group: id=16, name=OAKLEY_GROUP_MODP4096, bits=4096
000 algorithm IKE dh group: id=17, name=OAKLEY_GROUP_MODP6144, bits=6144
000 algorithm IKE dh group: id=18, name=OAKLEY_GROUP_MODP8192, bits=8192
000  
000 stats db_ops.c: {curr_cnt, total_cnt, maxsz} :context={0,18,36} trans={0,18,336} attrs={0,18,224} 
000  
000 "wlan": 192.168.0.13[@nightwish.zuhause.de]...192.168.0.11---192.168.0.11[@linux.zuhause.de]===192.168.0.0/24; erouted; eroute owner: #9
000 "wlan":   ike_life: 3600s; ipsec_life: 28800s; rekey_margin: 540s; rekey_fuzz: 100%; keyingtries: 0
000 "wlan":   policy: RSASIG+ENCRYPT+TUNNEL+PFS+UP; prio: 32,24; interface: eth0; 
000 "wlan":   newest ISAKMP SA: #8; newest IPsec SA: #9; 
000 "wlan":   IKE algorithms wanted: 5_000-1-5, 5_000-1-2, 5_000-2-5, 5_000-2-2, flags=-strict
000 "wlan":   IKE algorithms found:  5_192-1_128-5, 5_192-1_128-2, 5_192-2_160-5, 5_192-2_160-2, 
000 "wlan":   IKE algorithm newest: 3DES_CBC_192-MD5-MODP1536
000 "wlan":   ESP algorithms wanted: 3_000-1, 3_000-2, flags=-strict
000 "wlan":   ESP algorithms loaded: 3_000-1, 3_000-2, flags=-strict
000 "wlan":   ESP algorithm newest: 3DES_0-HMAC_MD5; pfsgroup=<Phase1>
000  
000 #9: "wlan" STATE_QUICK_I2 (sent QI2, IPsec SA established); EVENT_SA_REPLACE in 27503s; newest IPSEC; eroute owner
000 #9: "wlan" esp.8aa2cfac@192.168.0.11 esp.995528af@192.168.0.13 tun.0@192.168.0.11 tun.0@192.168.0.13
000 #8: "wlan" STATE_MAIN_I4 (ISAKMP SA established); EVENT_SA_REPLACE in 2546s; newest ISAKMP
000  

Vielleicht weiss ja hier jemand etwas mehr.

Gruss
E. coli

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 06.02.2007 18:52:36

Seltsam, spontan kann ich keinen Fehler entdecken, die Config sieht meiner Meinung nach ok aus und auch der Tunnel scheint ja zu stehen ("IPsec SA established"). Wenn Du "tcpdump -i eth0" machst, siehst Du auch keine ESP-Pakete?

Gruss, mistersixt.

PS: Ich habe bisher immer OpenSwan genutzt, um Rechner aus 2 verschiedenen(!) Netzen miteinander zu verbinden, so dass schon ein ping erst gar nicht funktioniert, wenn der Tunnel nicht(!) korrekt stehen würde. Da bei Dir ja alles im Netz 192.168.0.0/24 ist, kann es vielleicht sein, dass die Pakete irgendwie am Tunnel vorbeilaufen (reine Spekulation)?
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

Benutzeravatar
uljanow
Beiträge: 529
Registriert: 20.09.2005 21:14:00

Beitrag von uljanow » 06.02.2007 19:23:44

Das kein unverschlüsselter Traffic stattfindet, kannst du mit "dpdaction=hold" bei der Verbindungsbeschreibung einstellen.

Aber ich schätze mal, dass du den IPSEC-Stack des 2.6er Kernels benutzt, wegen...

Code: Alles auswählen

000 interface lo/lo 127.0.0.1
000 interface eth0/eth0 192.168.0.13 
Dadurch kommen alle Packete verschlüsselt aufs interface eth0 und landen, wenn sie gültig sind, auch direkt auf eth0.

E. coli
Beiträge: 33
Registriert: 30.12.2006 16:22:03

Beitrag von E. coli » 06.02.2007 20:27:48

Danke für die Antworten.

Ich habe mal "dpdaction=hold" in meine beiden /etc/ipsec.conf-Dateien eingefügt, nach "auto=add". Bringt aber leider auch nichts.

Im Moment würde ich zu der Annahme von mistersixt tendieren: die Pakete laufen irgendwie am Tunnel vorbei. Ich dachte, dass ich openswan einrichte und dadurch automatisch alle Pakete durch den Tunnel geleitet werden. So hatte ich die Anleitung jedenfalls verstanden. Gibt es da noch etwas, was ich einrichten muss?

Hier noch meine Kernel:
SuSE 2.6.8
Sarge 2.4.27

tcpdump -i eth0 auf dem Notebook sagt mir bei ping linux (also direkt an den Server):

Code: Alles auswählen

20:26:57.799033 IP nightwish.zuhause.de > linux.zuhause.de: ESP (spi=0x8636f6b2,seq=0x4)
...
wenn ich den ping an eine Adresse im Internet absetze:

Code: Alles auswählen

20:26:57.799033 IP nightwish.zuhause.de.1025 > www-proxy.F2.srv.t-online.de.domain: 2009+ A? www.uni-giessen.de. (36)
...
Die Anfrage geht wohl über Port 1025, wenn ich das jetzt nicht falsch interpretiere. Also wohl nicht durch den Tunnel. Warum? Ich versteh es nicht.

Gruss
E. coli

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 07.02.2007 08:20:50

Mmmh, Du hast Kernel 2.4.27? Da gibt es doch noch das eigene ipsec0-Interface, oder? Wie sehen denn die Routing-Tabellen aus (vielleicht ist es so, dass die Pakete zum Server via ipsec0-Interface rausgeschickt werden und Pakete ins Internet via eth0 - und damit unverschlüsselt)?

Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

E. coli
Beiträge: 33
Registriert: 30.12.2006 16:22:03

Beitrag von E. coli » 07.02.2007 12:55:59

Bislang hatte ich kein ipsec0-Interface. Unter Debian mit 2.4.27 habe ich in die ipsec.conf nun noch etwas hinzugefügt (war so auf der Seite von openswan.org angegeben):

Code: Alles auswählen

config setup
         interfaces=%defaultroute
Jetzt bekomme ich nicht mal mehr eine Verbindung aufgebaut. Wie bekomme ich denn nun ein ipsec0-Interface und wie gebe ich an, dass es eth0 verwenden soll. Die Doku von openswan.org hilft mir leider nicht viel.

Dann habe ich noch mal versucht unter beiden Systemen die Opportunistic Encryption zu aktivieren:

Code: Alles auswählen

#include /etc/ipsec.d/examples/no_oe.conf
Damit komme ich aber unter SuSE nicht mal mehr ins Internet. Wenn ich die Zeil aber nicht auskommentiere, dann beschwert sich SuSE, dass Pluto nicht gestartet wird. Mir scheint es so, alsob unter SuSE alle Interfaces mit openswan abersichert werden. Kann ich nicht nur eine spezielles in der Konfiguration angeben?

Grüsse
E. coli

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 08.02.2007 07:49:06

E. coli hat geschrieben:Bislang hatte ich kein ipsec0-Interface.
Seltsam, ich habe leider keinen Rechner mehr mit 2.4.27 und FreeSwan/OpenSwan, aber ich bin mir ganz sicher, dass ich immer ein neues Interfaces ipsec0 hatte, über das dann auch geroutet wurde.

Kannst Du vielleicht mal auf 2.6.8 upgraden (ich vermute, Du hast Debian Sarge laufen) ? Dann hättest Du zumindest schon mal zwischen der SuSE- und der Debian-Maschine den gleichen Kernel-Stand.

Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

Benutzeravatar
uljanow
Beiträge: 529
Registriert: 20.09.2005 21:14:00

Beitrag von uljanow » 08.02.2007 09:03:46

Versuch es mal mit der Zeile

Code: Alles auswählen

interfaces="ipsec0=eth0"
. Zeigt dann ifconfig -a immer noch kein ipsec interface?

Könntest du ein "dmesg | grep -i klips" posten?

E. coli
Beiträge: 33
Registriert: 30.12.2006 16:22:03

Beitrag von E. coli » 08.02.2007 13:12:38

Einen neuen Kernel zu installieren macht im Moment nicht viel Sinn. Das Notebook ist schon ein ziemlicher Spezialfall bei dem, soweit ich weiss, die Unterstützung der Hardware unter der 2.4er Reihe besser ist als mit den 2.6ern.

Ich hab die angegebene Zeil zu meiner ipsec.conf hinzugefügt. Im Moment will es gar nicht mehr!

Folgendes ist passiert.

1. PCMCIA-Karte eingesteckt: das Interface geht erscheint gar nicht mehr.
2. daher /etc/init.d/ipsec stop
3. PCMCIA-Karte neu eingesteckt: Interface eth0 wieder da
4. /etc/init.d/ipsec start
5. ipsec auto --up wlan, gibt foldende Ausgabe:

Code: Alles auswählen

021 no connection named "wlan"
:?:

Ich raff nix mehr und bin langsam auch kurz davor aufzugeben, da ich auch nicht so viel Zeit über habe. Daher noch mal zu meiner ursprünglichen Idee: Kann man ein Wlan nicht auch mittels eines Tunnels über ssh absichern? Oder ist die Idee unsinnig? Mit ssh kann man doch auch VPNs aufbauen.

Den Befehl

Code: Alles auswählen

dmesg | grep -i klips
habe ich jetzt auch mal eingegeben. Ausgabe dazu ist exakt nix, gar nix.

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 08.02.2007 15:54:42

Ehrlich gesagt weiss ich da auch nicht mehr richtig weiter. Es ist halt sehr seltsam, dass Du überhaupt kein ipsec0-Interfaces hast.

Klar, mit ssh kann man sowas Ähnliches machen, mit Port-Forwarding beispielsweise. Oder probier mal mit openvpn, das soll angeblich wesentlich einfacher zu konfigurieren sein (wobei ich selbst noch nie so richtig verwendet habe).

Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

Antworten