6.5. Konfiguration von IPsec Netzwerk-zu-Netzwerk

Sie können IPsec auch so konfigurieren, dass ein ganzes Netzwerk (z.B. LAN oder WAN) mit einem Remote-Netzwerk mittels einer Netzwerk-zu-Netzwerk-Verbindung verbunden wird. Dafür müssen auf jeder Seite der zu verbindenden Netzwerke IPsec-Routers erstellt werden, damit Information verarbeitet werden und von einem Netzwerkknoten des Netzwerkes zu einem Knoten auf dem Remote- Netzwerk geroutet werden kann. Abbildung 6-1 zeigt eine Netzwerk-zu-Netzwerk-Verbindung mittels IPsec-Tunnel.

Abbildung 6-1. Eine Netzwerk-zu-Netzwerk-Verbindung mittels IPsec-Tunnel

Das Diagramm zeigt zwei separate LANs, die durch das Internet getrennt sind. Diese Netzwerke verwenden IPsec-Routers, um eine Verbindung in einem sicheren Tunnel im Internet zu authentifizieren und zu initialisieren. Pakete, die im Transit gefasst werden, müssten brute-force entschlüsselt werden, damit der Code geknackt werden kann, der die Pakete zwischen diesen LANs beschützt. Der Prozess der Kommunikation von einem Netzknoten in der 192.168.1.0/24 IP-Reihe zu einem anderen auf 192.169.2.0/24 ist für die Knoten vollständig transparent, da die Verarbeiteng, die Ver- und Entschlüsselung und das Routing der IPsec-Pakete komplett vom IPsec-Router gehandhabt wird.

Die Information, die für eine Netzwerk-zu-Netzwerk-Verbindung gebraucht wird, umfasst:

Nehmen Sie z.B. an, LAN A (lana.example.com) und LAN B (lanb.example.com) wollen sich miteinender durch einen IPsec-Tunnel verbinden. Die Netzwerk-Adresse für LAN A liegt in der 192.168.1.0/24-Reihe, während LAN B die 192.168.2.254-Reihe verwendet. Die Gateway-IP Adresse ist 192.168.1.254 für LAN A und 192.168.2.254 für LAN B. Die IPsec-Router sind von jedem LAN-Gateway getrennt und verwenden zwei Netzwerk-Geräte: eth0 wird eine extern zugängliche statische IP-Adresse für das Internet zugeteilt, eth1 fungiert als Routing-Punkt für das Bearbeiten und Übertragen von LAN-Paketen von einem Netzwerkknoten zu den Remote-Netzwerkknoten.

Die IPsec-Verbindung zwischen den Netzwerken verwendet einen 'vorinstallierten' Schlüssel mit dem Wert r3dh4tl1nux. Die Administratoren von A und B einigen sich, racoon automatisch einen Authentifikations-Schlüssel zwischen den beiden IPsec-Routern erstellen zu lassen. Der Administrator von LAN A entscheidet sich dafür, die IPsec-Verbindung ipsec0 zu nennen, während der Administrator von LAN B die IPsec-Verbindung ipsec1 nennt.

Im folgenden sehen Sie die ifcfg Datei für eine Netzwerk-zu-Netzwerk-Verbindung mit IPsec für LAN A. Der einmalige Name zur Identifizierung der Verbindung ist in diesem Beispiel ipsec1, die daraus resultierende Datei heißt daher /etc/sysconfig/network-scripts/ifcfg-ipsec1.

TYPE=IPSEC
ONBOOT=yes
IKE_METHOD=PSK
SRCGW=192.168.1.254
DSTGW=192.168.2.254
SRCNET=192.168.1.0/24
DSTNET=192.168.2.0/24
DST=X.X.X.X

Die Verbindung ist so eingestellt, dass sie beim Hochfahren (ONBOOT=yes) startet. Sie verwendet die Authentifikations-Methode der vorher gemeinsam verwendeten Schlüsseln (IKE_METHOD=PSK). Der Administrator für LAN A gibt sowohl den Ziel-Gateway ein, der der Gateway für LAN B ist(DSTGW=192.168.2.254), als auch den Quell- Gateway, der die Gateway-IP-Adresse von LAN A ist(SRCGW=192.168.1.254). Der Administrator gibt dann sowohl das Ziel-Netzwerk ein, dass die Netzwerk-Reihe für LAN B ist(DSTNET=192.168.2.0/24) als auch das Quell- Netzwerk (SRCNET=192.168.1.0/24). Abschließend gibt der Administrator die Ziel-IP-Adresse ein, die die extern zugängliche IP-Adresse für LAN B ist (X.X.X.X).

Im folgenden finden Sie die Datei mit den 'vorinstallierten' Schlüsseln (/etc/sysconfig/network-scripts/keys-ipsecX genannt, wobei X die 0 für LAN A und die 1 für LAN B ist), die beide Netzwerke verwenden, um sich gegenseitig zu authentifizieren. Der Inhalt dieser Datei sollte identisch sein und nur der root-Benutzer sollte die Datei lesen oder überschreiben können.

IKE_PSK=r3dh4tl1nux

WichtigWichtig
 

Um die Datei keys-ipsec zu verändern, damit sie nur vom root-Benutzer gelesen oder bearbeitet werden kann, führen Sie nach der Erstellung der Datei den folgenden Befehl aus:

chmod 600 /etc/sysconfig/network-scripts/keys-ipsec1

Um den Authentifizierungs-Schlüssel jederzeit zu verändern, bearbeiten Sie die Datei keys-ipsecX bei beiden IPsec-Routern. Für eine ordentliche Verbindung müssen beide Schlüssel gleich sein.

Das ist die /etc/racoon/racoon.conf-Konfigurationsdatei für die IPsec-Verbindung. Beachten Sie, dass die include-Zeile am unteren Ende der Datei automatisch erstellt wird und nur dann erscheint, wenn gerade eine Verbindung mit einem IPsec-Tunnel vorhanden ist.

# Racoon IKE daemon configuration file.
# See 'man racoon.conf' for a description of the format and entries.

path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";

sainfo anonymous
{
	pfs_group 2;
	lifetime time 1 hour ;
	encryption_algorithm 3des, blowfish 448, rijndael ;
	authentication_algorithm hmac_sha1, hmac_md5 ;
	compression_algorithm deflate ;
}
include "/etc/racoon/X.X.X.X.conf"

Im folgenden sehen Sie die Konfigurationsdatei für die Verbindung zum Remote-Netzwerk. Die Datei trägt den Namen X.X.X.X.conf (ersetzen Sie X.X.X.X mit der IP Adresse des Remote-IPsec-Routers). Beachten Sie, dass diese Datei automatisch erzeugt wird, wenn der IPsec-Tunnel aktiviert wird. Sie sollte nicht direkt bearbeitet werden.

;
remote X.X.X.X
{
        exchange_mode aggressive, main;
        my_identifier address;
        proposal {
                encryption_algorithm 3des;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group 2 ;
        }
}

Bevor die IPsec-Verbindung gestartet wird, sollte IP-Forwarding beim Kernel eingestellt werden. Aktivieren Sie IP-Forwarding als root bei einem Shell Prompt:

  1. Bearbeiten Sie /etc/sysctl.conf und stellen Sie net.ipv4.ip_forward to 1 ein.

  2. Führen Sie den folgenden Befehl aus, damit die Änderung wirksam wird:

    sysctl -p /etc/sysctl.conf

Starten Sie die IPsec-Verbindung, indem Sie entweder die IPsec-Router neu starten oder den folgenden Befehl als root bei jedem Router eingeben:

/sbin/ifup ipsec0

Die Verbindungen sind nun aktiviert und LAN A und LAN B sind in der Lage, miteinander zu kommunizieren. Die Routen werden automatisch durch das Aufrufen des Initialisierungs-Skriptes mit ifup bei der IPsec-Verbindung erzeugt. Um eine Liste der Routen für das Netzwerk anzuzeigen, führen Sie folgenden Befehl aus:

/sbin/ip route list

Um die IPsec-Verbindung zu testen, führen Sie die tcpdump Utility auf dem extern routbaren Gerät aus (eth0 in diesem Beispiel). So können Sie die Netzwerk-Pakete sehen, die zwischen den Hosts (oder Netzwerken) übertragen werden, und überprüfen, dass sie über IPsec verschlüsselt werden. Um die IPsec-Verbindungsqualität z.B. für LAN A zu prüfen, geben sie folgendes ein:

tcpdump -n -i eth0 host lana.example.com

Das Paket sollte eine AH-Kopfzeile enthalten und sollte als ESP-Paket angezeigt werden. ESP heißt, dass es verschlüsselt ist. Zum Beispiel (ein inverser Schrägstrich kennzeichnet die Fortsetzung einer Zeile):

12:24:26.155529 lanb.example.com > lana.example.com: AH(spi=0x021c9834,seq=0x358): \
	  lanb.example.com > lana.example.com: ESP(spi=0x00c887ad,seq=0x358) (DF) \
	  (ipip-proto-4)