Racoon howto

Aus xinux.net
Zur Navigation springen Zur Suche springen

installation

apt-get install ipsec-tools racoon

/etc/ipsec-tools.conf

#!/usr/sbin/setkey -f
flush;
spdflush;
spdadd 192.168.254.0/24 192.168.200.0/21 any -P out ipsec
       esp/tunnel/217.91.41.188-217.89.52.3/require;

spdadd 192.168.200.0/21 192.168.254.0/24 any -P in ipsec
       esp/tunnel/217.89.52.3-217.89.52.3/require;

starten von setkey

setkey -f /etc/setkey.conf

/etc/racoon.conf

path pre_shared_key "/etc/psk.txt";
remote 217.89.52.3 {
  exchange_mode main;
  proposal {
  encryption_algorithm 3des;
  hash_algorithm md5;
  authentication_method pre_shared_key;
  dh_group modp1536;
  }
}

sainfo address 192.168.254.0/24 any address 192.168.200.0/21 any {
       pfs_group  modp1536;
       encryption_algorithm 3des;
       authentication_algorithm hmac_md5;
       compression_algorithm deflate;
}

/etc/psk.txt

217.89.52.3     schmeich-daneich-gleich

starten von racoon

racoon -Ff /etc/racoon.conf

optionen

  • -D:

Diese Option gibt sämtliche Optionen der SAD aus (Dump). Wenn zusätzlich die Option -P angegeben wird. so werden die Einträge der SPD ausgegebn

  • -F

löscht sämtliche Einträge der SAD (Flush). mit der Option -P die der SPD.

  • -P

Die Befehle beziehen sich auf die SPD anstelle der SAD


  • -a

Üblicherweise werden >>tote<< Einträge der SAD nicht angezeigt >>Tote>> Einträge sind in ihrere Gültigkeit abgelaufen, werden aber noch von der SPD referenziert. Die Option zeigt die auch diese Einträge an.

  • -d

Debugging

  • -x

Die Ausgabe von PF_KEY Nachrichten

  • -h

Die Ausgabe von PF_KEY Nachrichten (-x) erfolgt hexadezimal.

  • -l

Diese Option kann mit -D verwendet werden, um eine Endlosschleife zu ermöglichen.

  • -v

Verbose

  • -f Datei

Liest die durchzuführenden Operationen aus der Datei angegebenen Datei

  • -c

Liest die durchzuführenden Operationen von der Standardeingabe

Setkey

Beispiele

setkey -D

Es werden im gegensatz zu freeSwan pro Verbindung beide SA angezeigt

217.91.41.188 195.126.25.114
       esp mode=tunnel spi=192052657(0x0b727db1) reqid=0(0x00000000)
       E: 3des-cbc  406251c5 6af6b591 2b2e0109 ffa2f05f 423744ba 14df0774
       A: hmac-sha1  0788b440 b2dd469c 93b88012 76664bbb e2cdaa4d
       seq=0x00000000 replay=4 flags=0x00000000 state=mature
       created: Mar 10 18:40:34 2005   current: Mar 10 18:56:45 2005
       diff: 971(s)    hard: 1800(s)   soft: 1440(s)
       last: Mar 10 18:41:04 2005      hard: 0(s)      soft: 0(s)
       current: 19056(bytes)   hard: 0(bytes)  soft: 0(bytes)
       allocated: 111  hard: 0 soft: 0
       sadb_seq=1 pid=4353 refcnt=0

195.126.25.114 217.91.41.188
       esp mode=tunnel spi=191108491(0x0b64158b) reqid=0(0x00000000)
       E: 3des-cbc  04885478 40f6b5f8 4007a5ed 7154fb9c 62da3b15 9fd65fba
       A: hmac-sha1  b7451dd9 d92f96c3 6e969df6 08480060 0a5e1eef
       seq=0x00000000 replay=4 flags=0x00000000 state=mature
       created: Mar 10 18:40:34 2005   current: Mar 10 18:56:45 2005
       diff: 971(s)    hard: 1800(s)   soft: 1440(s)
       last: Mar 10 18:41:04 2005      hard: 0(s)      soft: 0(s)
       current: 15821(bytes)   hard: 0(bytes)  soft: 0(bytes)
       allocated: 122  hard: 0 soft: 0
       sadb_seq=5 pid=4353 refcnt=0

setkey -PD

Anzeige der SPD

10.10.0.0/16[any] 192.168.254.0/24[any] any
       in ipsec
       esp/tunnel/62.153.160.226-217.89.52.3/require
       created: Mar 10 18:18:40 2005  lastused:
       lifetime: 0(s) validtime: 0(s)
       spid=152 seq=13 pid=4354
       refcnt=1

10.10.0.0/16[any] 192.168.254.0/24[any] any
       fwd ipsec
       esp/tunnel/62.153.160.226-217.89.52.3/require
       created: Mar 10 18:18:40 2005  lastused: Mar 10 18:25:08 2005
       lifetime: 0(s) validtime: 0(s)
       spid=162 seq=7 pid=4354
       refcnt=1

setkey -F

Löschen der der SAD

setkey -PF

Löschen der der SPD

setkey -f /etc/setkey.conf

Konfigurieren der SAD und der SPD durch die Datei /etc/setkey.conf

setkey -x

Ausgabe des PK_KEY Kommunikationskanals

19:08:59.321550
19:08:59.322225

setkey -xH

Ausgabe des PK_KEY Kommunikationskanals Hexadezimal

19:10:24.969068
00000000: 02 0b 00 01 02 00 00 00 00 00 00 00 19 11 00 00
19:10:24.970090
00000000: 02 0b 00 01 02 00 00 00 00 00 00 00 19 11 00 00

setkey -Dl

Fortlaufende Anzeige der SAD

time p   s spi      ltime   src -> dst
1113 esp M 07d5e3c9 209/big 195.126.25.114 -> 217.91.41.188
1113 esp M 02e5ee9e big/big 62.153.160.226 -> 217.91.41.188
1113 esp M 095be1c4 big/big 217.89.52.3 -> 217.91.41.188
1113 esp M 28ffcdfc big/big 217.91.41.188 -> 217.89.52.3
1113 esp M 08fb1b4f 209/big 217.91.41.188 -> 195.126.25.114

Windows Roadwarrior

  • Anlegen eines Verzeichnis /var/ssl
mkdir /var/ssl
cd /var/ssl
  • Erstellen einer root-CA
CA.sh -newca
  • Erstellen eines Zertifikats
CA.sh -newreq
  • Signieren des Zertifikats
CA.sh -sign
  • Umbennnen des Zertifikats
mv newcert.pem rechnername.pem
  • Umbennnen des Keys
mv newreq.pem rechnername.key
  • Löscharbeiten
Löschen Sie beginnend mit
-----BEGIN CERTIFICATE REQUEST----- bis zum Ende
alles aus rechnername.key, so daß die Datei mit
-----BEGIN RSA PRIVATE KEY----- anfängt und mit
-----END RSA PRIVATE KEY------- endet.
  • Generieren Sie eine Certificate Revocation List mit
openssl ca -gencrl -out crl.pem
  • Anlegen eines Verzeichnis /etc/certs
mkdir /etc/certs
  • Kopieren
mkdir /etc/certs
cp rechnername.pem /etc/certs
cp rechnername.key /etc/certs
cp clr.pem /etc/certs
cp demoCA/cacert.pem /etc/certs
  • Anlegen der Links
ln -s cacert.pem $(openssl x509 -noout -hash -in cacert.pem).0
ln -s crl.pem $(openssl x509 -noout -hash -in cacert.pem).r0
  • Überprüfung
ls -F
158606c5.0@  158606c5.r0@  cacert.pem  crl.pem  duras.xinux.com.key  duras.xinux.com.pem
  • Entschlüssel des Privaten Schlüssel für Racoon
openssl rsa -in rechnername.key -out rechnername.key
  • Windows Client auf dem CA host
  • Erstellen eines Zertifikats
CA.sh -newreq
  • Signieren des Zertifikats
CA.sh -sign
  • Umbennnen des Zertifikats
mv newcert.pem windows.pem
  • Umbennnen des Keys
mv newreq.pem windows.key
  • Löscharbeiten
Löschen Sie beginnend mit
-----BEGIN CERTIFICATE REQUEST----- bis zum Ende
alles aus dem windows.key, so daß die Datei mit
-----BEGIN RSA PRIVATE KEY----- anfängt und mit
-----END RSA PRIVATE KEY------- endet.
  • Umwandeln p12 Format
openssl pkcs12 -export -in windows.pem -inkey windows.key -certfile demoCA/cacert.pem -out windows.p12
  • Der DN der CA
openssl x509 -in demoCA/cacert.pem -noout -subject

Linux Roadwarrior

  • Nach dem Erstellen der Zertifikate wie unter x509 ruckzuck beschrieben müssen die pem, key und die cacert.pem Datei auf den Roadwarrior kopiert werden. Am besten in das Verzeichnis /etc/racoon/certs.
  • Als nächstes muss die cacert.pem eine OpenSSL konforme Benennung erhalten.
ln -s cacert.pem $(openssl x509 -noout -hash -in cacert.pem).0
  • Dann muss das Passowrt aus dem Privaten Schlüssel enfernt werden.
openssl rsa -in roadwarrior.key -out-roadwarrior.key
  • Dann werden 2 Template Dateien erzeugt
#/etc/racoon/racoon.xinux.conf
path certificate "/etc/racoon/certs";
remote 217.91.41.188 {
 exchange_mode main;
 certificate_type x509 "/etc/racoon/certs/trixie.pem" "/etc/racoon/certs/trixie.key";
 verify_cert on;
 my_identifier asn1dn;
 peers_identifier asn1dn;
 proposal {
   encryption_algorithm 3des;
   hash_algorithm md5;
   authentication_method rsasig;
   dh_group modp1024;
 }
}
sainfo address x-x-x any address 192.168.254.0/24 any {
 pfs_group modp1024;
 encryption_algorithm 3des;
 authentication_algorithm hmac_md5;
 compression_algorithm deflate;
}
#!/usr/bin/setkey -f
#/etc/raccon/setkey.xinux.key
flush;
spdflush;
spdadd x-x-x 192.168.254.0/24 any -P out ipsec esp/tunnel/x-x-x-217.91.41.188/require;
spdadd 192.168.254.0/24 x-x-x any -P in  ipsec esp/tunnel/217.91.41.188-x-x-x/require;
  • Dann wird noch das Start Stop Skript erstellt /usr/local/bin/vpn
!/bin/bash
case $1 in
start)
 echo starte vpn
 IP=$(ifconfig ippp0  | grep inet | tr -s " " | cut -f 3 -d " " | cut -f 2 -d :)
 sed -e "s/x-x-x/$IP/g" /etc/racoon/setkey.xinux.conf > /tmp/setkey.conf
 sed -e "s/x-x-x/$IP/g" /etc/racoon/racoon.xinux.conf > /tmp/racoon.conf
 racoon -f /tmp/racoon.conf -l /tmp/racoon.log
 setkey -f /tmp/setkey.conf
;;
stop)
 echo stop vpn
 killall racoon
 setkey -F
 setkey -PF
;;
*)
 echo die syntax lautet $0 start|stop 
;;
esac