Unterschiede zwischen den Revisionen 1 und 4 (über 3 Versionen hinweg)
Revision 1 vom 2004-12-16 23:47:18
Größe: 8410
Autor: anonym
Kommentar: missing edit-log entry for this revision
Revision 4 vom 2023-08-19 18:12:36
Größe: 0
Autor: phil
Kommentar: Veraltet
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 1: Zeile 1:
''Virtual Private Network mini-howto (Linux-Kernel 2.6.x && Windows 2000/XP)''

ausfuehrlich Linux: http://www.ipsec-howto.org

ausfuehrlich Windows: http://www.wiretapped.net/~fyre/ipsec/
----
= Linux Kernel 2.6.x =

Vier Schritte zum privaten IP-Verkehr (noetige Zeit 20min-1.5h)

== I. Kernel v2.6 kompilieren ==

` *`
` * Networking Options`
` * DeviceDrivers->NetworkingSupport->NetworkingOptions`
` *`
` PF_KEY sockets (NET_KEY) [Y/n/m/?] y`
` IP: AH transformation (INET_AH) [Y/n/m/?] y`
` ** bei NAT kein AH verwenden!`
` IP: ESP transformation (INET_ESP) [Y/n/m/?] y`
` IP: IPsec user configuration interface (XFRM_USER) [Y/n/m/?] y`
` `
` *`
` * Cryptographic API`
` * folgende Punkte sollten nicht veraenderbar sein, sonst y/m`
` Cryptographic API (CRYPTO) [Y/n/?] y`
` HMAC support (CRYPTO_HMAC) [Y/n/?] y`
` Null algorithms (CRYPTO_NULL) [Y/n/m/?] y`
` MD5 digest algorithm (CRYPTO_MD5) [Y/n/m/?] y`
` SHA1 digest algorithm (CRYPTO_SHA1) [Y/n/m/?] y`
` DES and Triple DES EDE cipher algorithms (CRYPTO_DES) [Y/n/m/?] y`
` AES cipher algorithms (CRYPTO_AES) [Y/n/m/?] y`

` `
== II. IPSec Tools installieren ==

 * Debian: apt-get install ipsec-tools [testing]

 * sonst:
`http://sourceforge.net/projects/ipsec-tools runterladen`
`./configure`
`make`
`make install`


== III. Konfiguration ==

 * /etc/ipsec.conf anlegen (BspIpsecConf, schlecht formatiert)
  * damit werden feste 128Bit Keys benutzt, nur zum testen verwenden!
  * eigene 128Bit Keys generierst du so: $dd if=/dev/random count=16 bs=1| xxd -ps
 * die ipsec.conf kopierst du auf beide Rechner und vertauschst bei einem "in" mit "out" in der "spdadd" Sektion
  * dabei auf die Reihenfolge achten (rechner mit ip-adresse x.x.x.1 hat "out" bei x.x.x.1 -> x.x.x.2 stehen und andersrum hat er "in" bei x.x.x.2 -> x.x.x.1 stehen)


 * racoon ist die bessere wahl (siehe IKECrack)
 * dazu kann aus der ipsec.conf der obere teil mit den statischen kennwoertern raus (es bleiben 2flushs und 2spdadds)
 * $apt-get install racoon (racoon-tool zum konfigurieren waehlen, falls du ausschliessich pre-shared-keys verwenden moechtest - ansonsten wird deine racoon.conf regelmaessig geplaettet)
 * $vi /etc/racoon/racoon.conf den remote und sainfo bereich auskommentieren und anpassen
  * "path pre_shared_key" pfad fuer psk-datei festlegen, in die du dann die ip-adresse und ein passphrase deiner wahl schreibst
  * "log notify" ist fuer den Anfang noch ganz hilfreich
  * denn gewuenschten algorithmus eintragen
  * vorerst evtl. firewalls runterfahren, das spart ne menge zeit beim fehlersuchen ;)
 * auf der gegenseite machst du das gleiche, nur "in" & "out" in der ipsec.conf werden wieder vertauscht und die ipadressen in racoon.conf und zu guter letzt auch noch der rechnername in der psk datei


== IV. letz fetz! ==

 * $setkey -f /etc/ipsec.conf (nicht vergessen, bestenfalls in bootscript schreiben)
 * $racoon -F -f /etc/racoon/racoon.conf (-F steht fuer foreground, so kannst du genau mitlesen, was abgeht)
  * beide befehle auf beiden rechnern ausfuehren
  * racoon gibt recht ausfuehrliche Meldungen, damit findet man schnell Fehler. Spaeter dann ohne "-F" starten (lassen) und "log notify" auf "debug" stellen
  * bsp-confs liegen unter /usr/share/doc/racoon oder auf oben angegebener seite
 * bei Erfolg wandern nur noch "ESP" Pakete von 1 nach 2 und selbst nfs macht wieder Spass. Fehlt nur noch Hardware AES..
 * der Kernel erkennt nun automatisch ob er zu einem Ziel verschluesseln soll und wenn ja leitet er ggf. das InternetKeyExchange Verfahren ein (racoon). D.h. zu anderen Rechnern hat man immernoch eine ungekapselte Verbindung jubelfreu
 * ein Ping kann im ersten oment 2-3 Sekunden dauern, da erst der Diffie-Hellman-Schluesselaustausch (geiles Teil) stattfindet und dann der Tunnel "gebaut" wird.
 * auf dem entfernten Rechner sollte man die verschluesselte Verbindung nur als ''use'' und nicht als ''require'' (siehe ''ipsec.conf'') definieren, um bei Problemen notfalls die Verschluesselung vom lokalen Rechner aus deaktivieren zu koennen ('''setkey -FP; setkey -F''')


== V. Hilfe ==

KleinesGlossar


== VI. iptables-Regeln ==
 * ''ah'' und ''esp'' als Input erlauben:
`iptables -A INPUT -i ethX --protocol esp -j ACCEPT`
`iptables -A INPUT -i ethX --protocol ah -j ACCEPT`
 * udp-Port 500 fuer ''racoon'' oeffnen:
`iptables -A INPUT -i ethX --protocol udp --dport 500 -j ACCEPT`
`iptables -A OUTPUT -o ethX --protocol udp --dport 500 -j ACCEPT`

----

= x.509-Zertifikate =
== faxe als ca ==
 * auf faxe erstellen:
`/home/scripts/makeCert.sh ipsec-NAME`
 * Namensvorschlaege (falls du magst):
`Organizational Unit: Sektion SecureBits`
`Common Name: NAME.nodes.systemausfall.org`
 * das Systemausfall-Zertifikat: ''/home/certificates/demoCA/cacert.pem'' ins racoon-Schluesselverzeichnis kopieren
  * zusaetzlich braucht ''racoo'' auch die key-revocation-List (''crl'')
  * beide muessen im racoon-Schluesselverzeichnis per Hash verlinkt werden ('''c_rehash VERZEICHNIS''' - beachtet nur ''.pem''-Dateien)

== eigene ca ==
 * gutes gui: ''xca'' (es beruht leider auf ''libdb3++'' (stable) - also muss ''libdb3c102'' (testing/unstable) entfernt werden)
 * du musst die Zertifikate der <nowiki>CAs</nowiki>, deren Schluessel du akzeptieren willst, in dein racoon-Schluesselverzeichnis legen und dort deren Hash-Werte verlinken ('''c_rehash VERZEICHNIS''' - beachtet nur ''.pem''-Dateien)
 * alle Schluessel, die von diesen <nowiki>CAs</nowiki> signiert wurden, sind nun zulaessig

== Beispielkonfiguration ==
=== racoon.conf ===
`path certificate "/home/certificates";`
``
`remote anonymous {`
` exchange_mode main;`
` generate_policy on;`
` verify_cert on;`
` certificate_type x509 "ipsec-staub.crt" "ipsec-staub.key";`
` my_identifier asn1dn;`
` peers_identifier asn1dn;`
` proposal {`
` encryption_algorithm 3des;`
` hash_algorithm md5;`
` authentication_method rsasig;`
` dh_group modp1024;`
` }`
`}`
``
`sainfo anonymous {`
` pfs_group modp768;`
` encryption_algorithm 3des;`
` authentication_algorithm hmac_md5;`
` compression_algorithm deflate;`
`}`

=== ipsec.conf ===
`flush;`
`spdflush;`
``
`spdadd 192.168.23.1 192.168.23.21 any -P in ipsec esp/transport//require ah/transport//require;`
`spdadd 192.168.23.21 192.168.23.1 any -P out ipsec esp/transport//require ah/transport//require;`
`spdadd 192.168.23.21 0.0.0.0/0 any -P out ipsec esp/tunnel/192.168.23.21-192.168.23.1/require;`
`spdadd 0.0.0.0/0 192.168.23.21 any -P in ipsec esp/tunnel/192.168.23.1-192.168.23.21/require;`

----

= M$ Windows 2000/XP =

Infos: http://www.wiretapped.net/~fyre/ipsec/

== Kurzzusammenfassung mit den deutschen Menuepunkten ==
 1. erstmal PKCS#12-Zertifikate erstellen, mit denen Windows umgehen kann: '''openssl pkcs12 -export -inkey abyss.key -certfile ca.crt -in abyss.crt -out abyss.p12'''
 1. unter ''Start -> Ausführen'' das Programm '''mmc''' starten
 1. ''<nowiki>Konsole -> Snap-In hinzufügen/entfernen</nowiki>'' anschließend auf ''Hinzufügen''
 1. ''Zertifikate'', dann ''Dienstkonto'' und nun ''IPSEC-Richtlinienagent'' wählen
 1. zusätzlich ''IP-Sicherheitsrichtlinienverwaltung'' und dann ''lokaler Computer'' hinzufügen
 1. Snap-In-Fenster schließen
 1. den ''Zertifikate''-Baum öffnen und mit der rechten Maustaste auf den Unterpunkt ''Eigene Zertifikate'' klicken
 1. ''Alle Tasks -> Importieren'' und die vorher erstellte Datei auswählen
 1. im Unterpunkt ''Vertrauenswürdige Stammzertifizierungsstellen'' ebenfalls importieren - diesmal das Zertifikat der eigenen CA (muss wohl auch im PKCS#14-Format sein)
 1. nun den ''IP-Sicherheitsrichtlinien''-Baum öffnen und im rechten Teilfenster die rechte Maustaste drücken
 1. ''IP-Sicherheitsrichtlinie erstellen'' und einen Namen festlegen
 1. das Häkchen neben ''Standardantwortregel aktivieren'' entfernen
 1. ''Eigenschaften bearbeiten''
 1. ''Hinzufügen'' und ''Diese Regel spezifiziert keinen Tunnel'' wählen
 1. ''LAN'' und ''Verwenden eines Zertifikats von einer Zertifizierungsstelle''
 1. vorher hinzugefügte CA auswählen
 1. neue Filtrregel für alle Pakete zwischen den beiden gewünschten Rechnern herstellen


Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.