Herzlichen Dank an den Author Noel Kuntze ***************************************** How to: strongSwan IPsec-VPN zur HS-Offenburg Inhaltsverzeichnis: 1 Installation 1.1 Via Packetmanager 1.2 Selbst kompilieren und installieren 2 Konfiguration 2.1 ipsec.conf 2.2 ipsec.secrets 2.3 strongswan.conf 3 Benutzung 3.1 Manueller Verbindungsaufbau 3.2 Automatischer Verbindungsaufbau 3.2.1 Aufbauen beim Systemstart 3.2.2 Aufbauen bei Verkehr 4 Unterstützung Inhalt: 1 Installation Die zum Zeitpunkt der Verfassung dieses How-Tos aktuelle stabile Version ist 5.1.0. Die Einstellungen funktionieren für diese Version definitiv. 1.1 Via Packetmanager: Suchen und installieren Sie strongSwan über ihre Paketverwaltung. Die entsprechenden Packete sollten in den Paketlagern verfügbar sein, mit Ausnahme von Arch Linux. Unter Arch Linux muss man strongSwan über das AUR installieren. (Die Pakete heißen dort strongswan, strongswan-privdrop und strongswan-git. Nutzen Sie am Besten "strongswan".) Hier gibt es eine Ãœbersicht der Pakete: http://wiki.strongswan.org/projects/strongswan/wiki/InstallationDocumentation 1.2 Selbst kompilieren und installieren Siehe http://wiki.strongswan.org/projects/strongswan/wiki/InstallationDocumentation Dort werden Installationsanleitungen für alle Versionen gepflegt. Folgende Optionen müssen ./configure zusätzlich mitgegeben werden: --enable-openssl --enable-xauth-generic --enable-unity --enable-aes --enable-kernel-netlink \ --enable-socket-default --enable-random --enable-nonce --enable-charon Fehlende Abhängigkeiten werden vom Konfigurationsskript bemängelt und das Skript wird an dieser Stelle abbrechen. Falls Abhängigkeiten fehlen, müssen Sie sie nachinstallieren und das Skript nochmals ausführen. Bei manchen Distributionen ist der Kernel ohne XFRM-Unterstützung kompiliert. Falls das der Fall ist, muss an den Befehl noch --enable-kernel-libipsec angehängt werden und das "libipsec" Modul geladen werden. Dazu lassen Sie sich alle momentan in strongSwan geladenen Module ausgeben und in charon.load gesetzt werden. Daran wird dann libipsec angehängt. Alle Module müssen in eine einzelne Zeile geschrieben werden. Das sieht dann in etwa so aus: charon { load=charon test-vectors curl random nonce x509 revocation constraints pubkey pkcs1 pem openssl af-alg gmp xcbc cmac hmac fips-pfr ccm attr kernel-netlink socket-default farp stroke updown eap-identity eap-gtc eap-mschapv2 eap-radius xauth-generic xauth-eap unity libipsec } 2 Konfiguration 2.1 ipsec.conf In /etc/ipsec.conf müssen folgende Einstellungen gemacht werden: conn hs closeaction=restart dpdaction=restart dpdaction=restart dpdtimeout=10 dpdtimeout=60 # Ersetzen Sie hier durch ihren Campus-Benutzeraccountname. xauth_identity= left=%defaultroute leftauth=psk leftauth2=xauth # Hier ersetzen Sie durch die "Group", die in den Zugangsdaten für alle Third Party Clients zufinden ist. Im weiteren Text als "Zugangsdaten" bezeichnet. # (http://www.hs-offenburg.de/rz/servicekatalog/campus-netz/vpn/vpn-client/#c10128) leftid= leftsourceip=%config rightauth=psk rightid=asa.rz.hs-offenburg.de # Hier ersetzen Sie durch den "VPN-Router", der in den Zungangsdaten zu finden ist. right= # Falls Sie Split-Tunneling nutzen möchten, entfernen Sie die Raute vor der folgenden Zeile: # rightsubnet=141.79.0.0/16 # Falls Sie kein Split-Tunneling möchten, entfernen Sie die Raute vor der folgenden Zeile: # rightsubnet=0.0.0.0/0 keyexchange=ikev1 ike=aes256-sha1-modp1024 esp=aes256-sha1 aggressive=yes compress=no auto=add inactivity=0 rekey=no 2.2 ipsec.secrets In /etc/ipsec.secrets müssen folgende Einträge vorhanden sein: # Hier muss und durch ihren Benutzernamen und ihr Passwort ersetzt werden. @asa.rz.hs-offenburg.de : XAUTH "" # In der folgenden Zeile muss durch "Passw> aus den Zugangsdaten ersetzt werden. @asa.rz.hs-offenburg.de : PSK "" 2.3 strongswan.conf In /etc/strongswan.conf muss der folgende Eintrag vorhanden sein: charon.cisco_unity=yes Falls er vorhanden ist, sieht er in Etwa so aus: charon { cisco_unity = yes } Um eingehende Verbindungen abzulehnen, kann man charon.initiator_only=yes setzen. Für mehr Sicherheit kann man strongSwan mit --with-capabilities=libcap kompilieren, einen unprivilegierten systembenutzer erstellen, /usr/local/lib/strongswan/charon die File capability "net_admin" geben und in /etc/strongswan.conf charon.user auf den unprivilegierten Nutzer setzen. 3 Benutzung 3.1 Manueller Verbindungsaufbau Um eine Verbindung aufzubauen, muss zuerst der Daemon und danach die Verbindung "hs" gestartet werden. # ipsec start # ipsec up hs Die Ausgabe der Befehle gibt Auskunft darüber, ob sie erfolgreich ausgeführt wurde. 3.2 Automatischer Verbindungsaufbau 3.2.1 Aufbauen beim Systemstart Um die Verbindung beim Systemstart aufzubauen, muss die Zeile "auto=add" durch die Zeile "auto=start" ersetzt und als root der Systemdienst für strongSwan aktiviert werden. Für Informationen darüber, wie es in der Distribution gemacht wird, informieren Sie sich entweder im Wiki für die Distribution und suchen sie den entsprechenden Dienst heraus. Unter Arch und Fedora: # systemctl enable strongswan Unter Debian (vermutlich): # update-rc.d strongswan enable defaults 3.2.2 Aufbauen bei Verkehr Hierfür muss die Zeile "auto=add" durch "auto=route" ersetzt werden. 4 Unterstützung Unterstützung gibt es auf strongswan.org/support.html. der schreiber dieses how-tos ist regulã¤r im irc-kanal von strongswan anzutreffen.