IPSec ist eine Erweiterung für IPv4 (in IPv6 fest implementiert), um Authentifizierung und sichere (verschlüsselte) Übertragung auf Netzwerkprotokoll-Ebene zu realisieren. IPSec stellt aber nur ein Framework für eine verschlüsselte Verbindung bereit, es bietet eine solche nicht an.

IPSec ist auf der IP-Ebene (Network Layer) implementiert. Somit wirkt es auch auf der Transport-Ebene: TCP, UDP.

Insbesondere wird dies für VPNs und für LinuxWireless benötigt.

IPSec ist im Kernel 2.6.x implementiert. Man muss es also nicht patchen.


IPSec mit FreeSwan

Es folgt eine kleine Anleitung wie man einen externen Rechner mit fester IP bzw ein Subnet hinter einem solchen an sein Heimnetz mit dynamischer IP per IPSec koppelt. So habe ich es gemacht... bitte nach belieben kommentieren, korrigieren usw:)

Kernel patchen und FreeSwan Tools installieren

IPSec-Unterstützung gibt es im Linux kernel durch "Freeswan".. das muss allerdings erst hineingepatched werden. also: Konfigurierte Kernelquellen bereithalten

  • Patch und FreeSwan Tools herunterladen

  • Patch ausfuehren
  • Kernel konfigurieren (neue Optionen unter "networking options" ganz unten; von den Entwicklern wird empfohlen, ipsec fest in den Kernel zu kompilieren)
  • Kernel kompilieren, installieren, neu starten (...)

Tips für Debian-Benutzer

apt-get install kernel-patch-freeswan freeswan) installiert die Programme zur Konfiguration von FreeSWAN und einen von Debian um X509-Unterstützung erweiterten FreeSWAN Patch. Unter Debian baut man daraus wie folgt ein Kernel-Packet, das nachher mit dpkg -i installiert werden kann:

  • Aktuelle Kernel-Quellen besorgen (von mir mit 2.4.21 getestet) und in das Verzeichnis /usr/src entpacken

  • In das Verzeichnis wechseln
  • export PATCH_THE_KERNEL=YES ausführen

  • make-kpkg --config=menuconfig --added-patches=freeswan kernel_image aufrufen. (make-kpkg befindet sich in dem Paket kernel-package.) Dies patched die Sourcen und ruft danach make menuconfig auf. Wenn man seine Einstellungen abspeichert wird automatisch der Kernel kompiliert und es findet sich in /usr/src ein deb-Paket mit dem Kernel, das per dpkg -i installiert werden kann.

Tips für SuSE-Benutzer

Der SuSE-Standard-Kernel enthält schon Unterstützung für FreeSWAN. Es muß lediglich das entsprechende Modul geladen werden. Dies geschieht per: modprobe ipsec (root-Reche erforderlich). Zusätzlich muß natürlich auch das Paket installiert werden, das die Programme zur Konfiguration von FreeSWAN enthält.

Forwarding muss auf beiden Gateway-Rechnern aktiviert sein. Masquerading muss für das jeweilige Zielnetz deaktiviert sein (s.u.)

FreeSwan konfigurieren

Ich beschreibe die Konfiguration am Beispiel eines Netzes hinter einem Rechner mit statischer IP (hier: 217.170.168.136 (aus der Luft gegriffene IP), das per IPSec an das Heimnetz hinter einem Rechner mit dynamischer IP gekoppelt werden soll.

Das Netz hinter dem Rechner mit der statischen IP ist 10.0.2.0/24, das Heimnetz ist 10.0.0.0/24.

Erstmal brauchen beide Rechner ein Schlüsselpaar. Dieses wird in /etc/ipsec.secrets gespeichert. Wir führen auf beiden Rechnern aus:

ipsec newhostkey --output /etc/ipsec.secrets

Dann brauchen beide ein "Shared Secret" mit dem die Daten verschlüsselt werden, dazu fügen wir oben in die ipsec.secrets auf beiden Rechnern ein:

217.170.168.136 0.0.0.0: PSK "Shared secret Deiner Wahl in Anfuehrungszeichen"

statt "0.0.0.0" kann man auch "%any" schreiben.

Danach erstellen wir die ipsec.conf für beide Rechner:

Für den Rechner mit der dynamischen IP: (hier: left)

# /etc/ipsec.conf - FreeS/WAN IPsec configuration file

# basic configuration
config setup
 interfaces=%defaultroute
 klipsdebug=none
 plutodebug=none
 plutoload=%search
 plutostart=%search
 uniqueids=yes

# defaults for subsequent connection descriptions
# (mostly to fix internal defaults which, in retrospect, were badly chosen)
conn %default
 keyingtries=0
 disablearrivalcheck=no
 authby=rsasig
 compress=yes
 auto=add


# sample VPN connection
conn isis-osiris
 # Left security gateway, subnet behind it
 left=%defaultroute
 leftsubnet=10.0.0.0/24
 leftid=@isis.osiris.net
 leftrsasigkey=# hier den public key aus der ipsec.secrets von left einfuegen #
 # Right security gateway, subnet behind it, next hop toward left.
 right=217.170.168.136
 rightsubnet=10.0.2.0/24
 rightnexthop=217.170.168.1
 rightid=@osiris.net
 rightrsasigkey=# hier den public key aus der ipsec.secrets von right einfuegen #
 auto=start

diese ipsec.conf kopieren wir auf den Rechner mit der statischen IP und ändern folgendes:

in conn isis-osiris:

left=%any
auto=add
keyingtries=1

... fertig.

IPSec auf beiden Rechnern (neu)starten:

/etc/init.d/ipsec restart

Status bewundern.

ipsec whack --status

Die Maschine mit der dynamischen IP sollte die IPSec Verbindung automatisch initiieren (wegen auto=start).

Firewall/Routing Einstellungen

Damit man jetzt zwischen den beiden Netzen 10.0.0.0 und 10.0.2.0 kommunizieren kann, müssen natürlich noch entsprechende Routen gelegt werden:

auf Heimnetz-router:

route add -net 10.0.2.0 netmask 255.255.255.0 dev ipsec0

auf dem anderen Router:

route add -net 10.0.0.0 netmask 255.255.255.0 dev ipsec0

Ausserdem sollten Verbindungen zwischen diesen beiden Netzen nicht masqueraded werden.

Damit die beiden Gateways eine IPSec Verbindung aufbauen können, muss auf beiden Seiten UDP port 500 offen sein, sowie das IP Protokoll ESP (50) erlaubt sein.

Test

Es ist zu beachten, dass die beiden Gateways selbst nicht über den IPSec tunnel kommunizieren können. Das geht zwar, aber dazu ist wohl ein zusätzlicher Tunnel nötig (dazu lesen wir in der offiziellen FreeSwan Doku nach;). Wenn die Verbindung steht, sollte man einfach aus dem Heimnetz eine IP in dem Netz hinter dem anderen Router pingen können.

IPSec (zuletzt geändert am 2007年12月23日 22:48:50 durch localhost)

AltStyle によって変換されたページ (->オリジナル) /