Dieser Abschnitt enthält Verfahren, mit denen Sie den Datenverkehr zwischen zwei Systemen und einen Webserver sichern können. Informationen zum Schützen eines VPN finden Sie unter Schützen eines VPN mit IPsec (Übersicht der Schritte) . Zusätzliche Verfahren bieten Schlüsselmaterial und Sicherheitszuordnungen und stellen sicher, dass IPsec gemäß der Konfiguration arbeitet.
Die folgenden Informationen gelten für alle Aufgaben bei der Konfiguration von IPsec:
IPsec und Zonen – Um die IPsec-Richtlinie und -Schlüssel für eine nicht-globale Zone mit gemeinsamer IP zu verwalten, erstellen Sie die IPsec-Richtliniendatei in der globalen Zone und führen die IPsec-Konfigurationsbefehle von der globalen Zone aus. Verwenden Sie die Quelladresse, die der von Ihnen konfigurierten nicht-globalen Zone entspricht. Sie können die IPsec-Richtlinie und -Schlüssel auch in der globalen Zone für die globale Zone konfigurieren. Für eine exklusive IP-Zone konfigurieren Sie die IPsec-Richtlinie in der nicht-globalen Zone. Ab Solaris 10 7/07 können Sie die Schlüssel in einer nicht-globalen Zone mit IKE verwalten.
IPsec und RBAC – Informationen zum Verwenden von Rollen zur Verwaltung von IPsec finden Sie in Kapitel 9, Using Role-Based Access Control (Tasks) in System Administration Guide: Security Services. Ein Beispiel finden Sie unter How to Configure a Role for Network Security.
IPsec und SCTP – IPsec kann zum Schützen der Streams Control Transmission Protocol (SCTP)-Assoziationen verwendet werden, jedoch ist hier Vorsicht geboten. Weitere Informationen finden Sie unter IPsec und SCTP.
Dieses Verfahren nimmt das folgende Setup an:
Die beiden Systeme heißen enigma und partym.
Jedes System besitzt zwei Adressen, eine IPv4-Adresse und eine IPv6-Adresse.
Jedes System erfordert eine ESP-Verschlüsselung mit dem AES-Algorithmus, was einen 128 Bit-Schlüssel erfordert, und ESP-Authentifizierung mit SHA1-Nachrichtendigest, was einen 160 Bit-Schlüssel erfordert.
Jedes System verwendet gemeinsam genutzte Sicherheitszuordnungen.
Bei gemeinsam genutzten SAs ist nur ein SA-Paar zum Schutz von zwei Systemen erforderlich.
Sie müssen sich in der globalen Zone befinden, um die IPsec-Richtlinie für das System oder für eine gemeinsame IP-Zone zu konfigurieren. Für eine exklusive IP-Zone konfigurieren Sie die IPsec-Richtlinie in der nicht-globalen Zone.
Nehmen Sie über die Systemkonsole die Rolle eines Primäradministrators an, oder melden Sie sich als Superuser an.
Die Rolle des Primäradministrators enthält das Primary Administrator-Profil. Informationen zum Erstellen von Rollen und Zuweisen von Rollen zu Benutzern finden Sie in Kapitel 2, Working With the Solaris Management Console (Tasks) in System Administration Guide: Basic Administration.
Eine Remoteanmeldung führt zu sicherheitskritischem Datenverkehr, der abgehört werden könnte. Auch wenn Sie eine remote Anmeldung schützen, wird die Sicherheit des Systems auf die Sicherheit der remoten Anmeldesitzung reduziert. Verwenden Sie den Befehl ssh für eine sichere remote Anmeldung. Ein Beispiel finden Sie unter Beispiel 20–1.
Prüfen Sie auf jedem System Host-Einträge.
In der aktuellen Version fügen Sie die Hosteinträge der Datei /etc/inet/hosts hinzu.
Bei einem System, das ein älteres Release als Solaris 10 7/07 ausführt, fügen Sie die IPv4- und IPv6-Einträge zur Datei /etc/inet/ipnodes hinzu. Die Einträge für ein System müssen untereinander in der Datei stehen. TCP/IP-KonfigurationsdateienKapitel 11IPv6 im Detail (Referenz).
Wenn Sie die Systeme nur mit IPv4-Adressen verbinden, nehmen Sie die Änderungen an der /etc/inet/hosts-Datei vor. In diesem Beispiel führen die zu verbindenden Systeme ein früheres Solaris-Release aus und verwenden IPv6-Adressen.
Geben Sie auf dem System enigma Folgendes in die Datei hosts bzw. ipnodes ein:
# Secure communication with partym 192.168.13.213 partym 2001::eeee:3333:3333 partym |
Geben Sie auf dem System partym Folgendes in die Datei hosts bzw. ipnodes ein:
# Secure communication with enigma 192.168.116.16 enigma 2001::aaaa:6666:6666 enigma |
Es ist unsicher, die Namensdienste für symbolische Namen zu verwenden.
Erstellen Sie auf jedem System die IPsec-Richtliniendatei.
Der Dateiname lautet /etc/inet/ipsecinit.conf. Ein Beispiel finden Sie in der Datei /etc/inet/ipsecinit.sample.
Fügen Sie einen IPsec-Richtlinieneintrag in die Datei ipsecinit.conf ein.
Fügen Sie die folgende Richtlinie auf dem System enigma hinzu:
{laddr enigma raddr partym} ipsec {encr_algs aes encr_auth_algs sha1 sa shared} |
Fügen Sie eine identische Richtlinie auf dem System partym hinzu:
{laddr partym raddr enigma} ipsec {encr_algs aes encr_auth_algs sha1 sa shared} |
Informationen zur Syntax der IPsec-Richtlinieneinträge finden Sie in der Manpage ipsecconf(1M).
Fügen Sie auf jedem System ein IPsec SA-Paar zwischen den zwei Systemen ein.
Sie können Internet Key Exchange (IKE) konfigurieren, um die SAs automatisch zu erstellen. Die SAs können auch manuell hinzugefügt werden.
Sie sollten IKE verwenden, es sei denn, Sie haben einen triftigen Grund, Ihre Schlüssel manuell zu erzeugen und zu verwalten. Das IKE-Schlüsselmanagement ist sicherer als das manuelle Schlüsselmanagement.
Konfigurieren Sie IKE mithilfe eines der unter Konfiguration von IKE (Übersicht der Schritte) beschriebenen Konfigurationsverfahren. Informationen zur Syntax der IKE-Konfigurationsdatei finden Sie in der Manpage ike.config(4).
Wie SAs manuell hinzugefügt werden, können Sie unter So erstellen Sie manuell IPsec-Sicherheitszuordnungen nachlesen.
Aktivieren Sie die IPsec-Richtlinie.
Wenn Sie eine ältere Version als Solaris 10 4/09 verwenden, starten Sie das System neu.
# init 6 |
Fahren Sie anschließend mit den Erläuterungen unter So prüfen Sie, ob Pakete mit IPsec geschützt sind fort.
Aktualisieren Sie ab Solaris 10 4/09 den IPsec-Service, und aktivieren Sie den Schlüsselmanagement-Service.
Führen Sie Schritt 7 bis Schritt 10 durch.
Überprüfen Sie die Syntax der IPsec-Richtliniendatei.
# ipsecconf -c -f /etc/inet/ipsecinit.conf |
Beheben Sie alle Fehler, überprüfen Sie die Syntax der Datei, und fahren Sie fort.
Aktualisieren Sie die IPsec-Richtlinie.
# svcadm refresh svc:/network/ipsec/policy:default |
Die IPsec-Richtlinie wird standardmäßig aktiviert, daher sollten Sie sie aktualisieren. Falls Sie die IPsec-Richtlinie deaktiviert haben, aktivieren Sie sie.
# svcadm enable svc:/network/ipsec/policy:default |
Aktivieren Sie die Schlüssel für IPsec.
Prüfen Sie, ob die Pakete geschützt werden.
Informationen hierzu finden Sie unter So prüfen Sie, ob Pakete mit IPsec geschützt sind.
In diesem Beispiel konfiguriert der Administrator als Superuser die IPsec-Richtlinie und die Schlüssel auf zwei Systemen mithilfe des Befehls ssh, um das zweite System zu erreichen. Weitere Informationen finden Sie in der Manpage ssh(1).
Zunächst konfiguriert der Administrator das erste System durch Ausführen von Schritt 2 bis Schritt 5 des vorangegangenen Verfahrens.
Dann verwendet der Administrator in einem anderen Terminal-Fenster den Befehl ssh zur Anmeldung am zweiten System.
local-system # ssh other-system other-system # |
Im Terminal-Fenster der ssh-Sitzung konfiguriert der Administrator die IPsec-Richtlinie und die Schlüssel des zweiten Systems durch Ausführen von Schritt 2 bis Schritt 6.
Dann beendet der Administrator die ssh-Sitzung.
other-system # exit local-system # |
Schließlich aktiviert der Administrator die IPsec-Richtlinie auf dem ersten System durch Ausführen von Schritt 6.
Bei der nächsten Kommunikation der beiden Systeme, einschließlich einer ssh-Verbindung, wird die Kommunikation durch IPsec geschützt.
Das folgende Beispiel ist nützlich, wenn Sie mit einer älteren Version als Solaris 10 4/09 arbeiten. Zumindest, wenn in Ihrer Version IPsec nicht als Service verwaltet wird. Im Beispiel wird beschrieben, wie Sie IPsec in einer Testumgebung implementieren. In einer Produktionsumgebung ist erneutes Booten des Systems sicherer als das Ausführen des Befehls ipsecconf. Informationen zu den Sicherheitsbetrachtungen finden Sie am Ende dieses Beispiels.
Anstatt in Schritt 6 neu zu booten, wählen Sie eine der folgenden Optionen:
Wenn Sie IKE zum Erstellen des Schlüsselmaterials verwenden, müssen Sie den in.iked-Daemon zunächst stoppen und dann neu starten.
# pkill in.iked # /usr/lib/inet/in.iked |
Wenn Sie die Schlüssel manuell hinzugefügt haben, verwenden Sie den Befehl ipseckey, um die SAs zur Datenbank hinzuzufügen.
# ipseckey -c -f /etc/inet/secret/ipseckeys |
Dann aktivieren Sie die IPsec-Richtlinie mit dem Befehl ipsecconf.
# ipsecconf -a /etc/inet/ipsecinit.conf |
Sicherheitsbetrachtungen – Lesen Sie die Warnung, wenn Sie den Befehl ipsecconf ausführen. Ein bereits gesperrtes Socket, das heißt, ein Socket das bereits verwendet wird, stellt eine ungesicherte Hintertür zum System dar. For more extensive discussion, see Sicherheitsbetrachtungen für ipsecinit.conf und ipsecconf.
Ein sicherer Webserver gestattet es Webclients, Daten untereinander über den Webservice auszutauschen. Auf einem sicheren Webserver muss Datenverkehr, bei dem es sich nicht um Webverkehr handelt, Sicherheitsprüfungen durchlaufen. Das folgende Verfahren beinhaltet Umgehungen für Webverkehr. Darüber hinaus kann dieser Webserver nicht sichere DNS-Client-Anforderungen stellen. Der gesamte verbleibende Verkehr erfordert ESP mit AES- und SHA-1-Algorithmen.
Zur Konfiguration der IPsec-Richtlinie müssen Sie sich in der globalen Zone befinden. Für eine exklusive IP-Zone konfigurieren Sie die IPsec-Richtlinie in der nicht-globalen Zone. Sie haben den Abschnitt So sichern Sie Datenverkehr zwischen zwei Systemen mit IPsec abgeschlossen, d. h. folgende Bedingungen sind wirksam:
Die Kommunikation zwischen den beiden Systemen ist durch IPsec geschützt.
Schlüsselmaterial wird manuell oder durch IKE generiert.
Sie haben sichergestellt, dass Pakete geschützt werden.
Nehmen Sie über die Systemkonsole die Rolle eines Primäradministrators an, oder melden Sie sich als Superuser an.
Die Rolle des Primäradministrators enthält das Primary Administrator-Profil. Informationen zum Erstellen von Rollen und Zuweisen von Rollen zu Benutzern finden Sie in Kapitel 2, Working With the Solaris Management Console (Tasks) in System Administration Guide: Basic Administration.
Eine remote Anmeldung führt zu sicherheitskritischem Datenverkehr, der abgehört werden könnte. Auch wenn Sie eine remote Anmeldung schützen, wird die Sicherheit des Systems auf die Sicherheit der remoten Anmeldesitzung reduziert. Verwenden Sie den Befehl ssh für eine sichere remote Anmeldung.
Stellen Sie fest, welche Services Prüfungen der Sicherheitsrichtlinien umgehen müssen.
Bei einem Webserver umfassen diese Services TCP-Ports 80 (HTTP) und 443 (Secure HTTP). Wenn der Webserver DNS-Namenssuchen bereitstellt, muss der Server auch Port 53 für TCP und UDP umfassen.
Erstellen Sie die IPsec-Richtlinie für den Webserver, und aktivieren Sie sie.
Wenn Sie mit einer älteren Version als Solaris 10 4/09 arbeiten, befolgen Sie die Schritte von Schritt 8 bis Schritt 11.
Schritt 12 ist in allen Solaris-Versionen optional.
Fügen Sie der IPsec-Richtlinendatei die Webserver-Richtlinie hinzu.
Fügen Sie der Datei /etc/inet/ipsecinit.conf folgende Zeilen hinzu:
# Web traffic that web server should bypass. {lport 80 ulp tcp dir both} bypass {} {lport 443 ulp tcp dir both} bypass {} # Outbound DNS lookups should also be bypassed. {rport 53 dir both} bypass {} # Require all other traffic to use ESP with AES and SHA-1. # Use a unique SA for outbound traffic from the port {} ipsec {encr_algs aes encr_auth_algs sha1 sa shared} |
Bei dieser Konfiguration ist nur bei sicherem Verkehr ein Zugriff auf das System möglich. Dabei gelten die in Schritt 4 beschriebenen Ausnahmen für die Umgehung.
Überprüfen Sie die Syntax der IPsec-Richtliniendatei.
# ipsecconf -c -f /etc/inet/ipsecinit.conf |
Aktualisieren Sie die IPsec-Richtlinie.
# svcadm refresh svc:/network/ipsec/policy:default |
Aktualisieren Sie die Schlüssel für IPsec.
Wenn Sie IKE in Schritt 5 von So sichern Sie Datenverkehr zwischen zwei Systemen mit IPsec konfiguriert haben, starten Sie den ike-Service neu.
# svcadm restart svc:/network/ipsec/ike |
Wenn Sie Schlüssel in Schritt 5 von So sichern Sie Datenverkehr zwischen zwei Systemen mit IPsec manuell konfiguriert haben, starten Sie den manual-key-Service neu.
# svcadm refresh svc:/network/ipsec/manual-key:default |
Ihre Einrichtung ist abgeschlossen. Sie können Schritt 12 optional durchführen.
Erstellen Sie eine Datei im Verzeichnis /etc/inet für die Webserver-Richtlinie.
Durch die folgenden Schritte wird ein Webserver konfiguriert, auf der eine ältere Version als Solaris 10 4/09 ausgeführt wird.
Benennen Sie die Datei mit einem aussagekräftigen Namen, z. B. IPsecWebInitFile. Geben Sie die folgenden Zeilen in diese Datei ein:
# Web traffic that web server should bypass. {lport 80 ulp tcp dir both} bypass {} {lport 443 ulp tcp dir both} bypass {} # Outbound DNS lookups should also be bypassed. {rport 53 dir both} bypass {} # Require all other traffic to use ESP with AES and SHA-1. # Use a unique SA for outbound traffic from the port {} ipsec {encr_algs aes encr_auth_algs sha1 sa shared} |
Diese Konfiguration gestattet nur sicherem Verkehr den Zugriff auf das System. Dabei gelten die in Schritt 4 beschriebenen Ausnahmen für die Umgehung.
Kopieren Sie den Inhalt der von Ihnen in Schritt 8 erstellten Datei in die /etc/inet/ipsecinit.conf-Datei.
Schützen Sie die Datei IPsecWebInitFile, indem Sie Nur-Lese-Berechtigungen zuweisen.
# chmod 400 IPsecWebInitFile |
Sichern Sie den Webserver, ohne ihn erneut zu booten.
Wählen Sie eine der folgenden Optionen:
Wenn Sie IKE zum Schlüsselmanagement verwenden, stoppen Sie den in.iked-Daemon und starten ihn neu.
# pkill in.iked # /usr/lib/inet/in.iked |
Wenn Sie die Schlüssel manuell verwalten, verwenden Sie die Befehle ipseckey und ipsecconf.
Verwenden Sie IPsecWebInitFile als Argument für den Befehl ipsecconf. Wenn Sie die Datei ipsecinit.conf als Argument verwenden, erzeugt der Befehl ipsecconf Fehlermeldungen, wenn die Richtlinien in der Datei bereits auf dem System implementiert sind.
# ipseckey -c -f /etc/inet/secret/ipseckeys # ipsecconf -a /etc/inet/IPsecWebInitFile |
Lesen Sie die Warnmeldung, wenn Sie den Befehl ipsecconf ausführen. Ein bereits gesperrtes Socket, das heißt, ein Socket das bereits verwendet wird, stellt eine ungesicherte Hintertür zum System dar. Ausführlichere Informationen finden Sie unter Sicherheitsbetrachtungen für ipsecinit.conf und ipsecconf. Die gleiche Warnmeldung gilt für den Neustart des in.iked-Daemon.
Sie können auch erneut booten. Durch erneutes Booten wird sichergestellt, dass die IPsec-Richtlinie für alle TCP-Verbindungen übernommen wird. Bei erneutem Booten verwenden die TCP-Verbindungen die Richtlinie in der IPsec-Richtliniendatei.
(Optional) Konfigurieren Sie ein Remote-System so, dass es für NonWeb-Verkehr mit dem Webserver kommuniziert.
Geben Sie die folgende Richtlinie die Datei ipsecinit.conf auf einem Remote-System ein:
# Communicate with web server about nonweb stuff # {laddr webserver} ipsec {encr_algs aes encr_auth_algs sha1 sa shared} |
Ein remotes System kann nur dann sicher mit dem Webserver NonWeb-Verkehr austauschen, wenn die IPsec-Richtlinien der Systeme übereinstimmen.
Geben Sie den Befehl ipsecconf ohne weitere Argumente ein, um die auf dem System konfigurierten Richtlinien anzuzeigen.
Sie müssen den Befehl ipsecconf in der globalen Zone ausführen. Führen Sie für eine exklusive IP-Zone den Befehl ipsecconf in der nicht-globalen Zone aus.
Nehmen Sie eine Rolle an, die das Network IPsec Management-Profil beinhaltet, oder melden Sie sich als Superuser an.
Wenn Sie eine ältere Version als Solaris 10 4/09 ausführen, ist das Profil für die Netzwerk-IPsec-Verwaltung nicht verfügbar. Verwenden Sie das Profil für Netzwerksicherheit.
Informationen zum Erstellen einer Rolle, die das Network Security-Profil beinhaltet und zum Zuweisen dieser Rolle zu einem Benutzer finden Sie unter How to Configure a Role for Network Security.
Anzeigen der IPsec-Richtlinien.
Zeigen Sie die Einträge in der globalen IPsec-Richtlinie in der Reihenfolge an, in der sie wurden.
$ ipsecconf |
Mit diesem Befehl wird jedem Eintrag ein Index gefolgt von einer Zahl zugeordnet.
Zeigen Sie die Einträge der IPsec-Richtlinie in der Reihenfolge an, in der eine Übereinstimmung auftritt.
$ ipsecconf -l |
Zeigen Sie die Einträge der IPsec-Richtlinie, einschließlich der für einen Tunnel geltenden Einträge, in der Reihenfolge an, in der eine Übereinstimmung auftritt.
$ ipsecconf -L |
Wenn Sie die Schlüssel manuell eingeben, muss das Schlüsselmaterial zufällig erzeugt worden sein. Bei einem Solaris-System muss das Schlüsselmaterial im hexadezimalen Format vorliegen. Andere Betriebssysteme erfordern Schlüsselmaterial im ASCII-Format. Informationen zum Erzeugen von Schlüsselmaterial für ein Solaris-System, das mit einem Betriebssystem kommuniziert, für das ASCII-Daten erforderlich sind, finden Sie in Beispiel 23–1.
Falls Ihr Standort über einen Generator für Zufallszahlen verfügt, verwenden Sie diesen. Andernfalls können Sie den Befehl od mit dem Solaris-Gerät /dev/random als Eingabe verwenden. Weitere Informationen finden Sie in der Manpage od(1).
In der Solaris 10 4/09-Version können Sie auch den Befehl pktool verwenden. Die Syntax dieses Befehls ist einfacher als die Syntax des Befehls od. Weitere Informationen finden Sie unter How to Generate a Symmetric Key by Using the pktool Command in System Administration Guide: Security Services
Erzeugen Sie hexadezimale Zufallszahlen.
% od -x|-X -A n file | head -n |
Zeigt das oktale Abbild im hexadezimalen Format an. Das hexadezimale Format eignet sich für das Schlüsselmaterial. Der hexadezimale Wert wird in 4-Zeichen-Chunks gedruckt.
Zeigt das oktale Abbild im hexadezimalen Format an. Der hexadezimale Wert wird in 8-Zeichen-Chunks gedruckt.
Löscht die Eingabe-Offsetbasis vom Bildschirm.
Dient als Quelle für die Zufallszahlen.
Beschränkt die Anzeige auf die ersten n Zeilen der Ausgabe.
Verbinden Sie die Ausgabe, um einen Schlüssel in der angegebenen Länge zu erzeugen.
Löschen Sie die Leerzeichen zwischen den Zahlen auf einer Zeile, um einen Schlüssel mit 32 Zeichen zu erzeugen. Ein 32-Zeichen-Schlüssel hat eine Länge von 128 Bit. Für den Security Parameter Index (SPI) sollten Sie einen 8-Zeichen-Schlüssel verwenden. Der Schlüssel sollte das Präfix 0x verwenden.
Im folgenden Beispiel werden zwei Zeilen mit Schlüsseln in Gruppen von jeweils acht hexadezimalen Zeichen angezeigt.
% od -X -A n /dev/random | head -2 d54d1536 4a3e0352 0faf93bd 24fd6cad 8ecc2670 f3447465 20db0b0c c83f5a4b |
Durch Verbinden der vier Zeichengruppen in der ersten Zeile können Sie einen 32-Zeichen-Schlüssel erstellen. Eine 8-Zeichen-Zahl, die mit dem Präfix 0x beginnt, ergibt einen geeigneten SPI-Wert, z. B. 0xf3447465.
Im folgenden Beispiel werden zwei Zeilen mit Schlüsseln in Gruppen von jeweils vier hexadezimalen Zeichen angezeigt.
% od -x -A n /dev/random | head -2 34ce 56b2 8b1b 3677 9231 42e9 80b0 c673 2f74 2817 8026 df68 12f4 905a db3d ef27 |
Durch Verbinden der acht Zeichengruppen in der ersten Zeile können Sie einen 32-Zeichen-Schlüssel erstellen.
Im folgenden Verfahren wird das Schlüsselmaterial für das Verfahren So sichern Sie Datenverkehr zwischen zwei Systemen mit IPsec erstellt. Sie generieren Schlüssel für die beiden Systeme partym und enigma. Sie generieren die Schlüssel auf einem System und verwenden dann die Schlüssel des ersten Systems auf beiden Systemen.
Sie müssen sich in der globalen Zone befinden, um das Schlüsselmaterial für eine Zone mit gemeinsamer IP manuell verwalten zu können.
Erzeugen Sie das Schlüsselmaterial für die SAs.
Sie benötigen drei hexadezimale Zufallszahlen für den abgehenden Verkehr und drei hexadezimale Zufallszahlen für den eingehenden Verkehr.
Somit muss ein System die folgenden Zahlen erzeugen:
Zwei hexadezimale Zufallszahlen als Wert für das Schlüsselwort spi. Eine Zahl für den abgehenden Verkehr, eine Zahl für den eingehenden Verkehr. Jede Zahl kann bis zu acht Zeichen umfassen.
Zwei hexadezimale Zufallszahlen für den SHA1-Algorithmus für die Authentifizierung. Bei einem 160-Bit-Schlüssel muss jede Zahl 40 Zeichen umfassen. Eine Zahl für dst enigma, eine Zahl für dst partym.
Zwei hexadezimale Zufallszahlen für den AES-Algorithmus für die ESP-Verschlüsselung. Bei einem 256-Bit-Schlüssel muss jede Zahl 64 Zeichen umfassen. Eine Zahl für dst enigma, eine Zahl für dst partym.
Wenn Sie über einen Generator für Zufallszahlen an Ihren Standort verfügen, verwenden Sie diesen. Alternativ verwenden Sie den Befehl od. Anleitungen dazu finden Sie unter So erzeugen Sie Zufallszahlen auf einem Solaris-System.
Nehmen Sie über die Systemkonsole eines der Systeme die Rolle eines Primäradministrators an, oder melden Sie sich als Superuser an.
Die Rolle des Primäradministrators enthält das Primary Administrator-Profil. Informationen zum Erstellen von Rollen und Zuweisen von Rollen zu Benutzern finden Sie in Kapitel 2, Working With the Solaris Management Console (Tasks) in System Administration Guide: Basic Administration.
Eine remote Anmeldung führt zu sicherheitskritischem Datenverkehr, der abgehört werden könnte. Auch wenn Sie eine remote Anmeldung schützen, wird die Sicherheit des Systems auf die Sicherheit der remoten Anmeldesitzung reduziert. Verwenden Sie den Befehl ssh für eine sichere remote Anmeldung.
Erstellen Sie die SAs
Befolgen Sie ab Solaris 10 4/09 Schritt 8 bis Schritt 10.
Wenn Sie mit einer älteren Version als Solaris 10 4/09 arbeiten, befolgen Sie Schritt 4 bis Schritt 9.
Aktivieren Sie den ipseckey-Befehlsmodus.
# ipseckey > |
Die Eingabeaufforderung > kennzeichnet, dass sich das System im ipseckey-Befehlsmodus befindet.
Wenn Sie vorhandere SAs ersetzen, leeren Sie die aktuellen SAs.
> flush > |
Um zu verhindern, dass ein potentieller Angreifer die Zeit hat, Ihre SAs zu entschlüsseln, müssen Sie das Schlüsselmaterial ersetzen.
Sie müssen den Schlüsselaustausch jedoch bei kommunizierenden Systemen koordinieren. Wenn Sie die SAs auf einem System ersetzen, müssen sie auch auf dem remoten System ersetzt werden.
Zum Erstellen von SAs geben Sie den folgenden Befehl ein.
> add protocol spi random-hex-string \ src addr dst addr2 \ protocol-prefix_alg protocol-algorithm \ protocol-prefixkey random-hex-string-of-algorithm-specified-length |
Sie verwenden diese Syntax auch zum Ersetzen der gerade geleerten SAs.
Geben Sie entweder esp oder ah an.
Gibt eine Zufallszahl mit bis zu acht Zeichen in hexadezimalem Format an. Stellen Sie den Zeichen das Präfix 0x voran. Wenn Sie mehr Zahlen eingeben, als der Security Parameter Index (SPI) akzeptiert, so ignoriert das System die überflüssigen Zahlen. Wenn Sie weniger Zahlen eingeben als der Security Parameter Index (SPI) akzeptiert, so füllt das System Ihren Eintrag auf.
Gibt die IP-Adresse eines Systems an.
Gibt die IP-Adresse des Peer-Systems von adr an.
Gibt entweder encr oder auth an. Das Präfix encr wird mit dem esp-Protokoll verwendet. Das Präfix auth wird mit dem ah-Protokoll und zur Authentifizierung des esp-Protokolls verwendet.
Gibt einen Algorithmus für ESP oder AH an. Jeder Algorithmus erfordert einen Schlüssel mit einer bestimmten Länge.
Die Authentifizierungsalgorithmen umfassen MD5 und SHA1. Ab Version Solaris 10 4/09 werden SHA256 und SHA512 unterstützt. Verschlüsselungsalgorithmen beinhalten DES, 3DES, AES und Blowfish.
Gibt eine zufällige hexadezimale Zahl der Länge an, die für den Algorithmus erforderlich ist. Beispielsweise erfordert der MD5-Algorithmus einen 32-Zeichen-String für den 128-Bit-Schlüssel. Der 3DES-Algorithmus erfordert einen 48-Zeichen-String für den 192-Bit-Schlüssel.
Schützen Sie z. B. abgehende Pakete auf dem System enigma.
Verwenden Sie die in Schritt 1 erzeugten Zufallszahlen.
Unter Solaris 10 1/06:
> add esp spi 0x8bcd1407 \ src 192.168.116.16 dst 192.168.13.213 \ encr_alg aes \ auth_alg sha1 \ encrkey c0c65b888c2ee301c84245c3da63127e92b2676105d5330e85327c1442f37d49 \ authkey 6fab07fec4f2895445500ed992ab48835b9286ff > |
Das Peer-System muss das gleiche Schlüsselmaterial und den gleichen SPI verwenden.
Bleiben Sie auf dem enigma-System im ipseckey-Befehlsmodus, und schützen Sie die eingehenden Pakete.
Geben Sie die folgenden Befehle ein, um die Pakete zu schützen:
> add esp spi 0x122a43e4 \ src 192.168.13.213 dst 192.168.116.16 \ encr_alg aes \ auth_alg sha1 \ encrkey a2ea934cd62ca7fa14907cb2ad189b68e4d18c976c14f22b30829e4b1ea4d2ae \ authkey c80984bc4733cc0b7c228b9b74b988d2b7467745 > |
Die Schlüssel und der SPI können für jede SA unterschiedlich sein. Sie sollten für jede SA andere Schlüssel und einen anderen SPI zuweisen.
Um den ipseckey-Befehlsmodus zu beenden, drücken Sie Strg-D oder geben quit ein.
Fügen Sie der /etc/inet/secret/ipseckeys-Datei das Schlüsselmaterial hinzu.
In älteren Versionen als Solaris 10 4/09 wird durch diesen Schritt sichergestellt, dass IPsec das Schlüsselmaterial beim Neustart zur Verfügung steht.
Die Zeilen in der /etc/inet/secret/ipseckeys sind identisch mit der Befehlszeilensprache ipseckey.
Beispielsweise ähnelt die Datei /etc/inet/secret/ipseckeys auf dem enigma-System dem Folgenden:
# ipseckeys - This file takes the file format documented in # ipseckey(1m). # Note that naming services might not be available when this file # loads, just like ipsecinit.conf. # # for outbound packets on enigma add esp spi 0x8bcd1407 \ src 192.168.116.16 dst 192.168.13.213 \ encr_alg aes \ auth_alg sha1 \ encrkey c0c65b888c2ee301c84245c3da63127e92b2676105d5330e85327c1442f37d49 \ authkey 6fab07fec4f2895445500ed992ab48835b9286ff # # for inbound packets add esp spi 0x122a43e4 \ src 192.168.13.213 dst 192.168.116.16 \ encr_alg aes \ auth_alg sha1 \ encrkey a2ea934cd62ca7fa14907cb2ad189b68e4d18c976c14f22b30829e4b1ea4d2ae \ authkey c80984bc4733cc0b7c228b9b74b988d2b7467745 |
Schützen Sie die Datei, indem Sie Nur-Lese-Berechtigungen zuweisen.
# chmod 400 /etc/inet/secret/ipseckeys |
Wiederholen Sie den Vorgang auf dem System partym.
Verwenden Sie das gleiche Schlüsselmaterial wie für enigma.
Das Schlüsselmaterial muss auf den beiden Systemen identisch sein. Wie in dem folgenden Beispiel gezeigt, unterscheiden sich lediglich die Kommentare in der ipseckeys-Datei. Dies ist der Fall, weil dstenigma auf dem enigma-System für eingehenden Verkehr und auf dem partym-System für ausgehenden Verkehr gilt.
# partym ipseckeys file # # for inbound packets add esp spi 0x8bcd1407 \ src 192.168.116.16 dst 192.168.13.213 \ encr_alg aes \ auth_alg sha1 \ encrkey c0c65b888c2ee301c84245c3da63127e92b2676105d5330e85327c1442f37d49 \ authkey 6fab07fec4f2895445500ed992ab48835b9286ff # # for outbound packets add esp spi 0x122a43e4 \ src 192.168.13.213 dst 192.168.116.16 \ encr_alg aes \ auth_alg sha1 \ encrkey a2ea934cd62ca7fa14907cb2ad189b68e4d18c976c14f22b30829e4b1ea4d2ae \ authkey c80984bc4733cc0b7c228b9b74b988d2b7467745 |
Aktivieren Sie den Service manual-key.
# svcadm enable svc:/network/ipsec/manual-key |
Informationen zum Ersetzen von Schlüsseln in der aktuellen Version finden Sie in Beispiel 20–4.
In diesem Beispiel konfiguriert der Administrator ein System, auf dem die aktuelle VersionSolaris 10 ausgeführt wird. Der Administrator generiert neue Schlüssel, ändert die Schlüsselinformationen in der Datei ipseckeys und startet den Service dann neu.
Zunächst generiert der Administrator die Schlüssel nach dem unter So erzeugen Sie Zufallszahlen auf einem Solaris-System beschriebenen Verfahren.
Dann verwendet der Administrator die generierten Schlüssel in der Datei /etc/inet/secret/ipseckeys.
Der Administrator hat dieselben Algorithmen verwendet. Darum ändert der Administrator nur die Werte von SPI, encrkey und authkey:
add esp spi 0x8xzy1492 \ src 192.168.116.16 dst 192.168.13.213 \ encr_alg aes \ auth_alg sha1 \ encrkey 0a1f3886b06ebd7d39f6f89e4c29c93f2741c6fa598a38af969907a29ab1b42a \ authkey a7230aabf513f35785da73e33b064608be41f69a # # add esp spi 0x177xce34\ src 192.168.13.213 dst 192.168.116.16 \ encr_alg aes \ auth_alg sha1 \ encrkey 4ef5be40bf93498017b2151d788bb37e372f091add9b11149fba42435fefe328 \ authkey 0e1875d9ff8e42ab652766a5cad49f38c9152821 |
Schließlich startet der Administrator den manual-key-Service neu. Der Neustartbefehl löscht die alten Schlüssel, bevor die neuen Schlüssel hinzugefügt werden.
# svcadm restart manual-key |
Um zu Überprüfen, ob die Pakete geschützt sind, testen Sie die Verbindung mit dem Befehl snoop. In der Ausgabe des Befehls snoop können die folgenden Präfixe erscheinen:
AH: Dieses Präfix kennzeichnet, dass die Header durch den AH geschützt sind. Die Ausgabe enthält AH: , wenn Sie auth_alg zum Schützen des Verkehrs gewählt haben.
ESP: Dieses Präfix kennzeichnet, dass verschlüsselte Daten gesendet werden. Die Ausgabe enthält ESP: , wenn Sie encr_auth_alg oder encr_alg zum Schützen des Verkehrs gewählt haben.
Zum Erstellen einer Ausgabe des Befehls snoop müssen Sie als Superuser angemeldet sein oder eine entsprechende Rolle angenommen haben. Sie müssen Zugriff auf beide Systeme haben, um die Verbindung zu testen.
Melden Sie sich auf einem System, z. B. partym, als Superuser an.
% su - Password: Type root password # |
Bereiten Sie vom partym-System aus das Snoopen der Pakete von einem remoten System vor.
Snoopen Sie in einem Terminal-Fenster auf partym die Pakete vom enigma-System.
# snoop -v enigma Using device /dev/hme (promiscuous mode) |
Senden Sie ein Paket vom remoten System.
Melden Sie sich in einem anderen Terminal-Fenster remote beim enigma-System an. Geben Sie Ihr Passwort ein. Melden der Sie sich dann als Superuser an und senden Sie ein Paket vom enigma-System an das partym-System. Das Paket soll von dem Befehl snoop -venigma erfasst werden.
% ssh enigma Password: Type your password % su - Password: Type root password # ping partym |
Zeigen Sie die Ausgabe des Befehls snoop an.
Auf dem partym-die System sollten Sie eine Ausgabe sehen, die AH- und ESP-Informationen nach den einleitenden IP-Header-Informationen enthält. AH- und ESP-Informationen, die dem Folgenden ähneln, sind geschützte Pakete:
IP: Time to live = 64 seconds/hops IP: Protocol = 51 (AH) IP: Header checksum = 4e0e IP: Source address = 192.168.116.16, enigma IP: Destination address = 192.168.13.213, partym IP: No options IP: AH: ----- Authentication Header ----- AH: AH: Next header = 50 (ESP) AH: AH length = 4 (24 bytes) AH: <Reserved field = 0x0> AH: SPI = 0xb3a8d714 AH: Replay = 52 AH: ICV = c653901433ef5a7d77c76eaa AH: ESP: ----- Encapsulating Security Payload ----- ESP: ESP: SPI = 0xd4f40a61 ESP: Replay = 52 ESP: ....ENCRYPTED DATA.... ETHER: ----- Ether Header ----- ... |
Wenn Sie die rollenbasierte Zugriffskontrolle (RBAC) zur Verwaltung Ihrer Systeme einsetzen, können Sie mit dem folgenden Verfahren eine Rolle für die Netzwerkverwaltung oder Netzwerksicherheit erstellen.
Suchen Sie das Network-Rechteprofil in der lokalen prof_attr-Datenbank.
In der aktuellen Version sieht die Ausgabe ungefähr folgendermaßen aus:
% cd /etc/security % grep Network prof_attr Network IPsec Management:::Manage IPsec and IKE... Network Link Security:::Manage network link security... Network Management:::Manage the host and network configuration... Network Security:::Manage network and host security... Network Wifi Management:::Manage wifi network configuration... Network Wifi Security:::Manage wifi network security... |
Wenn Sie mit einer älteren Version von Solaris 10 4/09 arbeiten, sieht die Ausgabe ungefähr folgendermaßen aus:
% cd /etc/security % grep Network prof_attr Network Management:::Manage the host and network configuration Network Security:::Manage network and host security System Administrator::: Network Management |
Das Network Management-Profil ist ein ergänzendes Profil im System Administrator-Profil. Wenn Sie das System Administrator-Rechteprofil in eine Rolle aufgenommen haben, kann diese Rolle die Befehle im Network Management-Profil ausführen.
Stellen Sie fest, welche Befehle im Network Management-Rechteprofil zulässig sind.
% grep "Network Management" /etc/security/exec_attr Network Management:solaris:cmd:::/usr/sbin/ifconfig:privs=sys_net_config … Network Management:suser:cmd:::/usr/sbin/snoop:uid=0 |
Die Richtlinienbefehle solaris werden mit einer Berechtigung (privs=sys_net_config) ausgeführt. Die Richtlinienbefehle suser werden als Superuser (uid=0) ausgeführt.
Legen Sie den Umfang der Netzwerksicherheitsrollen an Ihrem Standort fest.
Verwenden Sie die Definitionen der Rechteprofile in Schritt 1, um eine Entscheidung zu treffen.
Zum Erstellen einer Rolle, die sich um die gesamte Netzwerksicherheit kümmert, verwenden Sie das Rechteprofil für Netzwerksicherheit.
In der aktuellen Version verwenden Sie zum Erstellen einer Rolle zur ausschließlichen Verwaltung von IPsec und IKE das Rechteprofil für die Netzwerk-IPsec-Verwaltung.
Erstellen Sie eine Netzwerksicherheitsrolle, die das Rechteprofil für die Netzwerkverwaltung enthält.
Mit einer Rolle mit dem Rechteprofil für Netzwerksicherheit bzw. Netzwerk-IPsec-Verwaltung können zusätzlich zum Profil für die Netzwerkverwaltung unter anderem die Befehle ifconfig, snoop, ipsecconf und ipseckey mit entsprechenden Berechtigungen ausgeführt werden.
Zum Erstellen einer Rolle weisen Sie die Rolle einem Benutzer zu und registrieren die Änderungen beim Namen-Service. Lesen Sie dazu Configuring RBAC (Task Map) in System Administration Guide: Security Services .
In diesem Beispiel teilt der Administrator Netzwerk-Sicherheitsverantwortlichkeiten zwischen zwei Rollen auf. Eine Rolle verwaltet die Wifi- und Linksicherheit, während die andere Rolle IPsec und IKE verwaltet. Jede Rolle ist drei Personen zugewiesen, d. h. einer Person pro Schicht.
Die Rollen werden vom Administrator wie folgt erstellt:
Die erste Rolle erhält die Bezeichnung "LinkWifi".
Der Administrator weist der Rolle die Rechteprofile für Netzwerk-Wifi, Netzwerk-Linksicherheit und Netzwerkverwaltung zu.
Dann weist der Administrator die LinkWifi-Rolle den entsprechenden Benutzern zu.
Die zweite Rolle lautet "IPsec-Administrator".
Der Administrator weist der Rolle die Rechteprofile für Netzwerk-IPsec-Verwaltung und Netzwerkverwaltung zu.
Dann weist der Administrator die IPsec-Administrator-Rolle den entsprechenden Benutzern zu.
In den folgenden Schritten werden die wahrscheinlichsten Verwendungsmöglichkeiten der SMF-Services für IPsec, IKE und der manuellen Schlüsselverwaltung beschrieben. Die policy- und ipsecalgs-Services werden standardmäßig aktiviert. Außerdem werden die ike- und manual-key-Services standardmäßig deaktiviert.
Führen Sie eine der folgenden Aktionen zum Verwalten der IPsec-Richtlinie aus:
Aktualisieren Sie nach dem Hinzufügen neuer Richtlinien zur Datei ipsecinit.conf den policy-Service.
# svcadm refresh svc:/network/ipsec/policy |
Zeigen Sie nach dem Ändern des Wertes einer Serviceeigenschaft den Eigenschaftswert an, und führen Sie eine Aktualisierung und einen Neustart des policy-Services durch.
# svccfg -s policy setprop config/config_file=/etc/inet/MyIpsecinit.conf # svcprop -p config/config_file policy /etc/inet/MyIpsecinit.conf # svcadm refresh svc:/network/ipsec/policy # svcadm restart svc:/network/ipsec/policy |
Führen Sie eine der folgenden Aktionen zum automatischen Verwalten von Schlüsseln durch:
Aktivieren Sie nach dem Hinzufügen von Einträgen zur Datei /etc/inet/ike/config den ike-Service.
# svcadm enable svc:/network/ipsec/ike |
Aktualisieren Sie nach dem Ändern von Einträgen in der Datei /etc/inet/ike/config den ike-Service.
# svcadm refresh svc:/network/ipsec/ike |
Zeigen Sie nach dem Ändern des Wertes einer Serviceeigenschaft den Eigenschaftswert an, und führen Sie eine Aktualisierung und einen Neustart des Services durch.
# svccfg -s ike setprop config/admin_privilege=modkeys # svcprop -p config/admin_privilege ike modkeys # svcadm refresh svc:/network/ipsec/ike # svcadm restart svc:/network/ipsec/ike |
Deaktivieren Sie den ike-Service, um ihn anzuhalten.
# svcadm disable svc:/network/ipsec/ike |
Führen Sie eine der folgenden Aktionen zum manuellen Verwalten von Schlüsseln durch:
Aktivieren Sie nach dem Hinzufügen von Einträgen zur Datei /etc/inet/secret/ipseckeys den manual-key-Service.
# svcadm enable svc:/network/ipsec/manual-key |
Aktualisieren Sie den Service nach dem Ändern der Datei ipseckeys.
# svcadm refresh manual-key |
Zeigen Sie nach dem Ändern des Wertes einer Serviceeigenschaft den Eigenschaftswert an, und führen Sie eine Aktualisierung und einen Neustart des Services durch.
# svccfg -s manual-key setprop config/config_file=/etc/inet/secret/MyIpseckeyfile # svcprop -p config/config_file manual-key /etc/inet/secret/MyIpseckeyfile # svcadm refresh svc:/network/ipsec/manual-key # svcadm restart svc:/network/ipsec/manual-key |
Zum Verhindern der manuellen Schlüsselverwaltung deaktivieren Sie den manual-key-Service.
# svcadm disable svc:/network/ipsec/manual-key |
Wenn Sie die IPsec-Protokolle und die Algorithmustabelle ändern, aktualisieren Sie den ipsecalgs-Service.
# svcadm refresh svc:/network/ipsec/ipsecalgs |
Verwenden Sie den Befehl svcs Service, um den Status eines Service zu ermitteln. Wenn sich der Service im maintenance-Modus befindet, folgen Sie den Debugging-Vorschlägen in der Ausgabe des Befehls svcs -x Service.