7.3. IPSec-Tunnel

Bisher haben wir nur IPSec im so genannten 'Transport'-Modus gesehen, bei dem beide Endpunkte IPSec verstehen. Dies ist selten der Fall, so muss der Router IPSec verstehen und für die Hosts hinter ihm die Arbeit übernehmen. Dies wird als 'Tunnel-Modus' bezeichnet.

Das Einrichten dieser Funktion ist ein Kinderspiel. Um allen Traffic zu 130.161.0.0/16 von 10.0.0.216 über 10.0.0.11 zu Tunneln, wir machen folgendes auf 10.0.0.216:

#!/sbin/setkey -f
flush;
spdflush;

add 10.0.0.216 10.0.0.11 esp 34501
	-m tunnel
	-E 3des-cbc "123456789012123456789012";

spdadd 10.0.0.0/24 130.161.0.0/16 any -P out ipsec
           esp/tunnel/10.0.0.216-10.0.0.11/require;
Beachte das '-m tunnel', es ist äußerst wichtig! Das Erste konfiguriert eine ESP-Verschlüsselungs-SA zwischen unseren Tunnelendpunkte 10.0.0.216 und 10.0.0.11.

Als nächstes wird der tatsächliche Tunnel konfiguriert. Der Kernel wird angewiesen, der gesamte Datenverkehr mit der Route von 10.0.0.0/24 zu 130.161.0.0 muss verschlüsselt werden. Zusätzlich wird festgelegt, den Traffic danach an 10.0.0.11 zu senden.

10.0.0.11 benötigt diese Konfiguration:

#!/sbin/setkey -f
flush;
spdflush;

add 10.0.0.216 10.0.0.11 esp 34501
	-m tunnel
	-E 3des-cbc "123456789012123456789012";

spdadd 10.0.0.0/24 130.161.0.0/16 any -P in ipsec
           esp/tunnel/10.0.0.216-10.0.0.11/require;
Wie man sieht ist dies genau identisch, mit Ausnahme der Änderung von '-P out' zu '-P in'. Wie bei den früheren Beispielen haben wir jetzt nur Datenverkehr in eine Richtung konfiguriert. Die Komponenten der anderen Tunnelseite soll dem Leser als Übung überlassen sein.

Ein anderer Name dafür ist "Proxy ESP", was etwas einfacher ist.

Note

Der IPSec-Tunnel benötigt die Aktivierung von IP-Weiterleitung (IP Forwarding) im Kernel!