| Red Hat Enterprise Linux 4: Sicherheitshandbuch | ||
|---|---|---|
| Zurück | Kapitel 6. Virtuelle Private Netzwerke | Nach vorne |
Sie können IPsec so konfigurieren, dass ein Desktop oder eine Workstation mit einem(r) anderen über eine Host-zu-Host-Verbindung verbunden werden kann. Diese Art der Verbindung verwendet das Netzwerk, mit dem jeder Host verbunden ist, um einen sicheren Tunnel zueinander zu schaffen. Die Erfordernisse für eine Host-zu-Host-Verbindung sind minimal, wie auch die Konfiguration von IPsec bei jedem Host. Die Hosts brauchen lediglich eine bestimmte Verbindung zu einem Träger-Netzwerk (wie das Internet) und Red Hat Enterprise Linux um die IPsec-Verbindung herzustellen.
Der erste Schritt bei der Erstellung einer Verbindung ist das Einholen von System- und Netzwerkinformationen von jeder Workstation. Für eine Host- zu Host-Verbindung brauchen Sie die folgende Information:
Die IP-Adressen für beide Hosts
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.
Stellen Sie sich z.B. vor, Workstation A und Workstation B wollen sich durch einen IPsec-Tunnel miteinander verbinden. Sie wollen sich unter Verwendung eines vorher gemeinsam verwendeten Schlüssels mit dem Wert von foobarbaz. Die Benutzer kommen überein, racoon automatisch einen Schlüssel zur Authentifikation generieren zu lassen, der von beiden Hosts gemeinsam verwendet wird. Beide Hosts entscheiden sich dafür, ihre Verbindungen ipsec0 zu nennen.
Im folgenden sehen Sie die Datei ifcfg für Workstation A für eine Host-zu-Host-IPsec-Verbindung mit Workstation B. Der einmalige Name zur Identifizierung der Verbindung in diesem Beispiel ist ipsec0, der daraus resultierende Dateiname ist daher /etc/sysconfig/network-scripts/ifcfg-ipsec0:
DST=X.X.X.X TYPE=IPSEC ONBOOT=yes IKE_METHOD=PSK |
Workstation A würde X.X.X.X mit der IP Adresse von Workstation B ersetzen, während Workstation B X.X.X.X mit der IP Adresse von Workstation A ersetzen würde. Die Verbindung ist so eingestellt, dass sie beim Hochfahren startet (ONBOOT=yes) und verwendet die Authentifizierungs-Methode der vorher gemeinsam verwendeten Schlüssel (IKE_METHOD=PSK).
Im folgenden finden Sie die Datei mit den vorher gemeinsam benützten Schlüsseln (/etc/sysconfig/network-scripts/keys-ipsec0 genannt), die beide Workstations verwenden, um sich gegenseitig zu authentifizieren. Der Inhalt dieser Datei sollte auf beiden Workstations identisch sein und nur der root-Benutzer sollte die Datei lesen oder überschreiben können.
IKE_PSK=foobarbaz |
![]() | Wichtig | |
|---|---|---|
Um die keys-ipsec0 Datei zu verändern, damit sie lediglich vom root-Benutzer gelesen oder bearbeitet werden kann, führen Sie nach der Erstellung der Datei den folgenden Befehl aus:
|
Sie können den Authentifikations-Schlüssel jederzeit ändern. Bearbeiten Sie die keys-ipsec0 Datei auf beiden Workstations. Für eine ordentliche Verbindung müssen beide Schlüssel identisch sein .
Im folgenden Beispiel 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 und 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 ;
}
} |
Die Standardkonfigurationsdatei der Phase 1, die erzeugt wird, wenn eine IPsec-Verbindung initialisiert wird, beinhaltet folgenden Statements, die von der Red Hat Enterprise Linux-Implementierung von IPsec verwendet werden:
Legt fest, dass die nachfolgenden Stanzen dieser Konfigurationsdatei nur auf den entfernten Knoten zutreffen, der durch die IP-Adresse X.X.X.X identifiziert wird.
Die Standardkonfiguration für IPsec auf Red Hat Enterprise Linux benutzt einen sog. aggressiven Authentifizierungsmodus, welcher den Overhead bei der Verbindung senkt, während gleichzeitig die Konfiguration von mehreren IPsec-Verbindungen mit mehrfachen Host ermöglicht wird.
Legt die Identifikationsmethode fest, die bei der Authentifizierung von Knoten benutzt wird. Red Hat Enterprise Linux benutzt IP-Adressen, um Knoten zu identifizieren.
Legt den Verschlüsselungscode fest, der während der Authentifizierung benutzt wird. Standardmäßig wird Triple Data Encryption Standard (3DES) benutzt.
Legt den Hash-Algorithmus fest, der während der sogenannten Negotiation der Phase 1 zwischen den Knoten eingesetzt wird. Secure-Hash-Algorithmus Version 1 ist Standard.
Legt die Authentifizierungsmethode fest, die während der Knoten-Negotiation benutzt wird. Red Hat Enterprise Linux benutzt standardmäßig 'vorinstallierte' Schlüssel (pre-shared Keys) zur Authentifizierung.
Legt die Diffie-Hellman Gruppennummer zur Erstellung dynamisch generierter temporärer Schlüssel (Session Keys). Standardmäßig wird die 1024-Bit Gruppe benutzt.
Die /etc/racoon/racoon.conf Datei sollte auf allen IPsec-Knoten identisch sein, bis auf das include "/etc/racoon/X.X.X.X.conf"-Statement. Dieses Statement (und die Datei, auf die es sich bezieht) wird erstellt, wenn der IPsec-Tunnel aktiviert ist. Für Workstation A ist X.X.X.X im include-Statement die IP Adresse von Workstation B. Das Gegenteil gilt für Workstation B. Im Folgenden sehen Sie eine typische racoon.conf-Datei, wenn die IPsec Verbindung aktiviert 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" |
Diese standardmäßige racoon.conf-Datei beinhaltet festgelegte Pfade für die IPsec-Konfiguration, Dateien 'vorinstallierter' Schlüssel und Zertifikate. Die Felder in sainfo anonymous beschreiben die Phase 2 SA (Security Association) zwischen den IPsec-Knoten — die Natur der IPsec-Verbindung (inklusive den unterstützten Verschlüsselungs-Algorithmen, die Verwendung finden) und die Methode des Austauschens der Schlüssel. Die folgende Liste bestimmt die Felder der Phase 2:
Bedeutet, dass SA mit jedem Peer anonym initialisieren kann, insofern die IPsec-Attribute (Credentials) übereinstimmen.
Legt das Diffie-Hellmann Schlüsselaustauschprotokoll fest, welches die Methode bestimmt, in der die IPsec-Knoten einen beiderseitigen, temporären Sitzungsschlüssel für die Verbindungsfähigkeit von IPsec in der 2. Phase einrichten. Standardmäßig benutzt die Red Hat Enterprise Linux-Implementierung von IPsec Gruppe 2 (oder modp1024) der Diffie-Hellmann kryptographischen Schlüsselaustausch-Gruppen. Gruppe 2 benutzt eine 1024-Bit modulare Exponentiation, welche Eindringlinge davon abhalten soll, bisherige IPsec-Übertragungen zu entschlüsseln, auch wenn ein privater Schlüssel dadurch gefährdet wird.
Dieser Parameter legt den Lebenszuklus einer AS fest und kann entweder durch Zeit oder durch Datenmengen (Bytes) quantitativ bestimmt werden. Die Red Hat Enterprise Linux-Implementierung von IPsec legt eine einstündige Lebensdauer fest.
Legt den unterstützten Verschlüsselungscode für Phase 2 fest. Red Hat Enterprise Linux unterstützt 3DES, 448-Bit Blowfish und Rijndael (verwendet im Advanced Encryption Standard oder AES).
Listet die unterstützten Hash-Algorithmen für Authentifizierung. Unterstützte Modi sind sha1 und md5 Hashed Message Authentication Codes (HMAC).
Legt den Deflate-Compression-Algorithmus für IP-Payload Compression (IPCOMP) Unterstützung fest, was möglicherweise eine schnellere Übertragung von IP-Datagrammen über langsame Verbindungen ermöglicht.
Um die Verbindung zu starten, starten Sie entweder die Workstation neu oder führen Sie den folgenden Befehl als root auf jedem Host aus:
/sbin/ifup ipsec0 |
Um die IPsec-Verbindung zu testen, führen Sie dietcpdump Utility aus. Sie können so die Netzwerk-Pakete sehen, die zwischen den Hosts (oder den Netzwerken) übermittelt werden, und außerdem nachprüfen, dass sie über IPsec verschlüsselt weren. Jedes Paket sollte eine AH-Kopfzeile einhalten und als ESP-Paket angezeigt werden. EHP bedeutet, dass es verschlüsselt ist. Zum Beispiel:
17:13:20.617872 pinky.example.com > ijin.example.com: \ AH(spi=0x0aaa749f,seq=0x335): ESP(spi=0x0ec0441e,seq=0x335) (DF) |
| Zurück | Zum Anfang | Nach vorne |
| Installation von IPsec | Nach oben | Konfiguration von IPsec Netzwerk-zu-Netzwerk |