Red Hat Enterprise Linux 3: Sicherheitshandbuch | ||
---|---|---|
Zurück | Kapitel 6. Virtuelle Private Netzwerke | Nach vorne |
Sie können IPsec auch so konfigurieren, dass ein ganzes Netzwerk (z.B. LAN oder WAN) mit einem Remote-Netzwerk verbunden wird, und zwar mittels einer Netzwerk-zu-Netzwerk-Verbindung. 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-2 zeigt 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 brutal entschlüsselt werden, damit der Cipher gecrackt 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:
Die IP-Adressen der festgesetzten IPsec-Routers, auf die extern zugegriffen werden kann
Die Netzwerk-Adressen-Reihen des LAN/WAN, die von den IPsec-Routers bedient werden (z.B. 192.168.0.0/24 or 10.0.1.0/24)
Die IP-Adressen der Gateway-Einrichtungen, die die Daten von den Netzwerkknoten zum Internet leiten
Einen einmaligen Namen, um die IPsec-Verbindung zu identifizieren und sie von anderen Geräten oder Verbindungen zu unterscheiden (z.B. ipsec0).
Einen fixen Schlüssel zur Verschlüsselung oder einen, der automatisch von racoon geschaffen wurde.
Ein bereits vorher gemeinsam verwendeter Schlüssel zu Authentifikation, der verwendet wird, um die Verbindung zu initialisieren und den Austausch von Schlüsseln zur Verschlüsselung möglich zu machen.
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 for 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 vorher gemeinsam benützten Schlüssel mit dem Wert r3dh4tl1nux. Die Administratoren von A und B stimmen überein, racoon automatisch einen Authentifikations-Schlüssel zwischen den beiden IPsec-Routern erstellen zu lassen und diesen gemeinsam zu verwenden. 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 vorher gemeinsam benützten 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 |
![]() | Wichtig | |
---|---|---|
Um die keys-ipsec0 Datei zu verändern, damit sie nurvom Root-Benutzer gelesen oder bearbeitet werden kann, führen Sie nach der Erstellung der Datei den folgenden Befehl aus:
|
Um den Authentifizierungs-Schlüssel jederzeit zu verändern, bearbeiten Siedie keys-ipsecX Datei 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 nur erscheint, wenn gerade eine Verbindung mit einem IPsec-Tunnel vorhanden ist.Die Zeile wird jedes Mal automatisch erzeugt, wenn die IPsec-Verbindung aktiviert wird.
# 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). Bachten 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:
Bearbeiten Sie /etc/sysctl.conf und stellen Sie net.ipv4.ip_forward to 1 ein.
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önne 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) |
Zurück | Zum Anfang | Nach vorne |
Konfiguration von IPsec Host-zu-Host | Nach oben | Firewalls |