diff --git a/de_DE.ISO8859-1/books/handbook/security/chapter.xml b/de_DE.ISO8859-1/books/handbook/security/chapter.xml index 1a07a5da82..9828db342f 100644 --- a/de_DE.ISO8859-1/books/handbook/security/chapter.xml +++ b/de_DE.ISO8859-1/books/handbook/security/chapter.xml @@ -7,8 +7,13 @@ $FreeBSDde: de-docproj/books/handbook/security/chapter.xml,v 1.178 2012/04/30 17:07:41 bcr Exp $ basiert auf: r48921 --> - - Sicherheit + + + + Sicherheit + @@ -19,11 +24,16 @@ - MartinHeinenÜbersetzt von + + + Martin + Heinen + + Übersetzt von + - Sicherheit @@ -270,18 +280,19 @@ Passwort-Hashes Passwörter sind ein notwendiges Übel. Wenn sie verwendet - werden müssen, sollten sie sehr komplex sein und dazu sollte - eine leistungsfähige Hash-Funktion gewählt werden, um die - Version des Passworts zu verschlüsseln, die in der - Passwortdatenbank gespeichert wird. &os; unterstützt die - Hash-Funktionen DES, MD5, - SHA256, SHA512, sowie - Blowfish Hash-Funktionen in seiner - crypt()-Bibliothek. Das in der - Voreinstellung verwendete SHA512 sollte - nicht durch eine weniger sichere Hash-Funktion getauscht - werden. Es kann jedoch durch den besseren Blowfish-Algorithmus - ersetzt werden. + werden müssen, sollten sie sehr komplex sein und dazu sollte + eine leistungsfähige Hash-Funktion gewählt werden, um die + Version des Passworts zu verschlüsseln, die in der + Passwortdatenbank gespeichert wird. &os; unterstützt die + Hash-Funktionen DES, + MD5, SHA256, + SHA512, sowie + Blowfish Hash-Funktionen in seiner + crypt()-Bibliothek. Das in der + Voreinstellung verwendete SHA512 sollte + nicht durch eine weniger sichere Hash-Funktion getauscht + werden. Es kann jedoch durch den besseren + Blowfish-Algorithmus ersetzt werden. Blowfish ist nicht Bestandteil von @@ -324,8 +335,8 @@ dru:$6$pzIjSvCAn.PBYQBA$PXpSeWPx3g5kscj3IMiM7tUEUSPmGexxta.8Lt9TGSi2lNQqYGKszsBP :passwd_format=blf:\ - Führen Sie anschließend cap_mkdb - /etc/login.conf aus, wie in Führen Sie anschließend + cap_mkdb /etc/login.conf aus, wie in beschrieben. Beachten Sie, dass vorhandene Passwort-Hashes durch diese Änderung nicht beeinträchtigt werden. Das bedeutet, dass alle Passwörter neu @@ -340,7 +351,7 @@ dru:$6$pzIjSvCAn.PBYQBA$PXpSeWPx3g5kscj3IMiM7tUEUSPmGexxta.8Lt9TGSi2lNQqYGKszsBP für diesen Schlüssel). Da OpenSSH Teil des &os;-Basissystems ist, sollten alle Anmeldungen über das Netzwerk über eine verschlüsselte Verbindung mit einer - schlüsselbasierten Authentifizierung stattfinden. Passwörter + schlüsselbasierten Authentifizierung stattfinden. Passwörter sollten hier nicht verwendet werden. Weitere Informationen finden Sie in . Kerberos-Benutzer müssen eventuell zusätzliche Änderungen vornehmen, um @@ -355,8 +366,8 @@ dru:$6$pzIjSvCAn.PBYQBA$PXpSeWPx3g5kscj3IMiM7tUEUSPmGexxta.8Lt9TGSi2lNQqYGKszsBP Die Durchsetzung einer starken Passwort-Richtlinie für lokale Benutzerkonten ist ein wesentlicher Aspekt der Systemsicherheit. In &os; kann die Länge, Stärke und - Komplexität des Passworts mit den - Pluggable Authentication Modules + Komplexität des Passworts mit den Pluggable + Authentication Modules (PAM) implementiert werden. In diesem Abschnitt wird gezeigt, wie Sie die minimale und @@ -444,7 +455,7 @@ Enter new password: &prompt.root; pw usermod -p 30-apr-2015 -n trhodes Wie zu sehen ist, wird das Ablaufdatum in der Form von - Tag, Monat und Jahr angegeben. Weitere Informationen finden + Tag, Monat und Jahr angegeben. Weitere Informationen finden Sie in &man.pw.8;. @@ -509,7 +520,7 @@ Enter new password: System auf Änderungen überwacht wird Intrustion Detection System (IDS) genannt. - + &os; bietet native Unterstützung für ein einfaches IDS-System. Obwohl die täglichen Sicherheits-E-Mails den Administrator über Änderungen in @@ -579,7 +590,7 @@ Enter new password: SHA256-Hashwert. Um sicherzustellen, dass die binären Signaturen nicht - verändert wurden, vergleichen Sie den Inhalt des aktuellen + verändert wurden, vergleichen Sie den Inhalt des aktuellen Verzeichnisses mit der zuvor erstellen Spezifikation. Speichern Sie die Ergebnisse in einer Datei. Dieses Kommando benötigt den Seed, der verwendet wurde um die @@ -791,7 +802,7 @@ cat changed Tätigkeiten. Zuerst wird erläutert, wie Einmalpasswörter über eine gesicherte Verbindung konfiguriert werden. Als nächstes wird erklärt, wie opiepasswd über - eine nicht gesicherte Verbindung eingesetzt wird. Als drittes + eine nicht gesicherte Verbindung eingesetzt wird. Als drittes wird beschrieben, wie man sich über eine nicht gesicherte Verbindung anmeldet. Die vierte Tätigkeit beschreibt, wie man eine Reihe von Schlüsseln generiert, die man sich aufschreiben @@ -816,8 +827,7 @@ Enter new secret pass phrase: Again new secret pass phrase: ID unfurl OTP key is 499 to4268 -MOS MALL GOAT ARM AVID COED - +MOS MALL GOAT ARM AVID COED Die Option startet den Konsolen-Modus, der davon ausgeht, dass der Befehl von einem sicherem Ort @@ -851,13 +861,13 @@ MOS MALL GOAT ARM AVID COED Um Einmalpasswörter über eine nicht gesicherte Verbindung zu initialisieren, oder das geheime Passwort zu ändern, müssen Sie über eine gesicherte Verbindung zu einer Stelle verfügen, - an der Sie opiekey ausführen können. Dies kann etwa die - Eingabeaufforderung auf einer Maschine sein, der Sie - vertrauen. Zudem müssen Sie einen Iterationszähler vorgeben - (100 ist ein guter Wert) und einen Initialwert wählen, wobei - Sie auch einen zufällig generierten benutzen können. Benutzen - Sie &man.opiepasswd.1; über die ungesicherte Verbindung zu der - Maschine, die Sie einrichten wollen: + an der Sie opiekey ausführen können. Dies + kann etwa die Eingabeaufforderung auf einer Maschine sein, der + Sie vertrauen. Zudem müssen Sie einen Iterationszähler + vorgeben (100 ist ein guter Wert) und einen Initialwert + wählen, wobei Sie auch einen zufällig generierten benutzen + können. Benutzen Sie &man.opiepasswd.1; über die ungesicherte + Verbindung zu der Maschine, die Sie einrichten wollen: &prompt.user; opiepasswd @@ -896,7 +906,7 @@ GAME GAG WELT OUT DOWN CHAT Nachdem Sie OPIE eingerichtet haben, werden Sie beim nächsten Anmelden wie folgt begrüßt: -&prompt.user; telnet example.com + &prompt.user; telnet example.com Trying 10.0.0.1... Connected to example.com Escape character is '^]'. @@ -921,7 +931,7 @@ Password: Jetzt müssen Sie das Einmalpasswort generieren, um der Anmeldeaufforderung nachzukommen. Dies muss auf einem gesicherten System geschehen, auf dem Sie - &man.opiekey.1; ausführen können. Dieses Programm gibt es + &man.opiekey.1; ausführen können. Dieses Programm gibt es auch für &windows;, &macos; und &os;. Es benötigt den Iterationszähler sowie den Initialwert als Parameter, die Sie mittels cut-and-paste direkt von der @@ -999,9 +1009,17 @@ Enter secret pass phrase: <secret password> - TCP Wrapper + + TCP Wrapper + - TomRhodesBeigetragen von + + + Tom + Rhodes + + Beigetragen von + @@ -1039,37 +1057,34 @@ inetd_flags="-Ww" richtig konfiguriert werden. - Im Gegensatz zu anderen Implementierungen der + Im Gegensatz zu anderen Implementierungen der TCP Wrapper wird unter &os; vom Gebrauch der Datei hosts.deny abgeraten. Die Konfiguration sollte sich vollständig in /etc/hosts.allow befinden. - In der einfachsten Konfiguration werden Dienste - abhängig von den Optionen in - /etc/hosts.allow erlaubt oder - gesperrt. Unter &os; wird in der Voreinstellung + In der einfachsten Konfiguration werden Dienste abhängig + von den Optionen in /etc/hosts.allow + erlaubt oder gesperrt. Unter &os; wird in der Voreinstellung jeder von inetd gestartete Dienst - erlaubt. + erlaubt. Eine Konfigurationszeile ist wie folgt aufgebaut: - Dienst : Adresse : Aktion. - Dienst ist der von - inetd - gestartete Dienst (auch Daemon genannt). Die - Adresse ist ein gültiger - Rechnername, eine IP-Adresse oder - eine IPv6-Adresse in Klammern - ([ ]). - Der Wert allow im Feld - Aktion erlaubt Zugriffe, der Wert - deny verbietet Zugriffe. - Die Zeilen in hosts.allow - werden für jede Verbindung der Reihe nach - abgearbeitet. Trifft eine Zeile auf eine Verbindung - zu, wird die entsprechende Aktion ausgeführt - und die Abarbeitung ist beendet. + Dienst : Adresse : Aktion. + Dienst ist der von + inetd gestartete Dienst (auch + Daemon genannt). Die Adresse ist ein + gültiger Rechnername, eine IP-Adresse oder + eine IPv6-Adresse in Klammern + ([ ]). Der Wert + allow im Feld Aktion + erlaubt Zugriffe, der Wert deny verbietet + Zugriffe. Die Zeilen in hosts.allow + werden für jede Verbindung der Reihe nach abgearbeitet. + Trifft eine Zeile auf eine Verbindung zu, wird die + entsprechende Aktion ausgeführt und die Abarbeitung ist + beendet. Um beispielsweise einkommende POP3-Verbindungen für den Dienst @@ -1089,114 +1104,125 @@ qpopper : ALL : allow Erweiterte Konfiguration - TCP Wrapper besitzen - weitere Optionen, die bestimmen, wie Verbindungen - behandelt werden. In einigen Fällen ist es - gut, wenn bestimmten Rechnern oder Diensten eine - Nachricht geschickt wird. In anderen Fällen - soll vielleicht der Verbindungsaufbau protokolliert - oder eine E-Mail an einen Administrator versandt - werden. Oder ein Dienst soll nur für das - lokale Netz bereitstehen. Dies alles ist mit so genannten - Wildcards, Metazeichen und der Ausführung externer - Programme möglich. + TCP Wrapper besitzen weitere + Optionen, die bestimmen, wie Verbindungen behandelt werden. + In einigen Fällen ist es gut, wenn bestimmten Rechnern oder + Diensten eine Nachricht geschickt wird. In anderen Fällen + soll vielleicht der Verbindungsaufbau protokolliert oder eine + E-Mail an einen Administrator versandt werden. Oder ein + Dienst soll nur für das lokale Netz bereitstehen. Dies alles + ist mit so genannten Wildcards, Metazeichen und der Ausführung + externer Programme möglich. - Stellen Sie sich vor, eine Verbindung soll - verhindert werden und gleichzeitig soll dem Rechner, - der die Verbindung aufgebaut hat, eine Nachricht - geschickt werden. Solch eine Aktion ist mit - möglich. - führt beim Verbindungsaufbau ein Kommando oder ein Skript - aus. Ein Beispiel ist in hosts.allow - enthalten: + Stellen Sie sich vor, eine Verbindung soll verhindert + werden und gleichzeitig soll dem Rechner, der die Verbindung + aufgebaut hat, eine Nachricht geschickt werden. Solch eine + Aktion ist mit möglich. + führt beim Verbindungsaufbau ein + Kommando oder ein Skript aus. Ein Beispiel ist in + hosts.allow enthalten: - # Alle anderen Dienste sind geschützt + # Alle anderen Dienste sind geschützt ALL : ALL \ : severity auth.info \ : twist /bin/echo "You are not welcome to use %d from %h." - Für jeden Dienst, der nicht vorher in - hosts.allow konfiguriert wurde, wird - die Meldung You are not allowed to use - daemon name from - hostname. zurückgegeben. - Dies ist nützlich, wenn die Gegenstelle sofort - benachrichtigt werden soll, nachdem die Verbindung getrennt - wurde. Der Text der Meldung muss in - Anführungszeichen (") stehen. + Für jeden Dienst, der nicht vorher in + hosts.allow konfiguriert wurde, wird die + Meldung You are not allowed to use + daemon name from + hostname. zurückgegeben. + Dies ist nützlich, wenn die Gegenstelle sofort benachrichtigt + werden soll, nachdem die Verbindung getrennt wurde. Der Text + der Meldung muss in Anführungszeichen + (") stehen. - - Ein so konfigurierter Server ist anfällig - für Denial-of-Service-Angriffe. Ein Angreifer - kann die gesperrten Dienste mit Verbindungsanfragen - überfluten. - + + Ein so konfigurierter Server ist anfällig für + Denial-of-Service-Angriffe. Ein Angreifer kann die + gesperrten Dienste mit Verbindungsanfragen + überfluten. + - Eine weitere Möglichkeit bietet . - Wie verbietet - die Verbindung und führt externe Kommandos aus. Allerdings - sendet dem Rechner keine - Rückmeldung. Sehen Sie sich die nachstehende - Konfigurationsdatei an: + Eine weitere Möglichkeit bietet . + Wie verbietet + die Verbindung und führt externe Kommandos aus. Allerdings + sendet dem Rechner keine Rückmeldung. + Sehen Sie sich die nachstehende Konfigurationsdatei an: - # Verbindungen von example.com sind gesperrt: + # Verbindungen von example.com sind gesperrt: ALL : .example.com \ : spawn (/bin/echo %a from %h attempted to access %d >> \ /var/log/connections.log) \ : deny - Damit sind Verbindungen von der Domain - *.example.com gesperrt. - Jeder Verbindungsaufbau wird zudem in - /var/log/connections.log - protokolliert. Das Protokoll enthält den - Rechnernamen, die IP-Adresse - und den Dienst, der angesprochen wurde. In diesem Beispiel - wurden die Metazeichen %a und - %h verwendet. Eine vollständige Liste - der Metazeichen finden Sie in &man.hosts.access.5;. + Damit sind Verbindungen von der Domain *.example.com gesperrt. + Jeder Verbindungsaufbau wird zudem in + /var/log/connections.log protokolliert. + Das Protokoll enthält den Rechnernamen, die + IP-Adresse und den Dienst, der angesprochen + wurde. In diesem Beispiel wurden die Metazeichen + %a und %h verwendet. + Eine vollständige Liste der Metazeichen finden Sie in + &man.hosts.access.5;. - Die Wildcard ALL passt auf jeden - Dienst, jede Domain oder jede IP-Adresse. - Eine andere Wildcard ist PARANOID. Sie - passt auf jeden Rechner, dessen - IP-Adresse möglicherweise gefälscht ist. - Dies ist beispielsweise der Fall, wenn der Verbindungsaufbau - von einer IP-Adresse erfolgt, die nicht - zu dem übermittelten Rechnernamen passt. In diesem Beispiel - werden alle Verbindungsanfragen zu Sendmail - abgelehnt, wenn die IP-Adresse nicht zum - Rechnernamen passt: + Die Wildcard ALL passt auf jeden + Dienst, jede Domain oder jede IP-Adresse. + Eine andere Wildcard ist PARANOID. Sie + passt auf jeden Rechner, dessen + IP-Adresse möglicherweise gefälscht ist. + Dies ist beispielsweise der Fall, wenn der Verbindungsaufbau + von einer IP-Adresse erfolgt, die nicht zu + dem übermittelten Rechnernamen passt. In diesem Beispiel + werden alle Verbindungsanfragen zu + Sendmail abgelehnt, wenn die + IP-Adresse nicht zum Rechnernamen + passt: - # Block possibly spoofed requests to sendmail: + # Block possibly spoofed requests to sendmail: sendmail : PARANOID : deny - - Die Wildcard PARANOID wird - Verbindungen ablehnen, wenn der - Client oder der Server eine fehlerhafte - DNS-Konfiguration besitzt. - + + Die Wildcard PARANOID wird + Verbindungen ablehnen, wenn der Client oder der Server eine + fehlerhafte DNS-Konfiguration + besitzt. + - Weitere Informationen über Wildcards und deren Funktion - finden Sie in &man.hosts.access.5;. + Weitere Informationen über Wildcards und deren Funktion + finden Sie in &man.hosts.access.5;. - - Wenn Sie neue Einträge zur Konfiguration hinzufügen, - sollten Sie sicherstellen, dass nicht benötigte Einträge - in hosts.allow auskommentiert - werden. - + + Wenn Sie neue Einträge zur Konfiguration hinzufügen, + sollten Sie sicherstellen, dass nicht benötigte Einträge in + hosts.allow auskommentiert + werden. + - <application>Kerberos</application> + + <application>Kerberos</application> + - TillmanHodgsonBeigetragen von + + + Tillman + Hodgson + + Beigetragen von + - MarkMurrayBeruht auf einem Beitrag von + + + Mark + Murray + + Beruht auf einem Beitrag von + @@ -1306,7 +1332,7 @@ sendmail : PARANOID : deny installiert werden. Das KDC wird in - /etc/rc.conf wie folgt aktiviert: + /etc/rc.conf wie folgt aktiviert: kdc_enable="YES" kadmind_enable="YES" @@ -1331,20 +1357,20 @@ kadmind_enable="YES" Der Rechnername des KDC muss im DNS auflösbar sein. - In großen Netzwerken mit einem ordentlich - konfigurierten DNS-Server kann die Datei - aus dem obigen Beispiel verkürzt werden: + In großen Netzwerken mit einem ordentlich konfigurierten + DNS-Server kann die Datei aus dem obigen + Beispiel verkürzt werden: - [libdefaults] + [libdefaults] default_realm = EXAMPLE.ORG [domain_realm] .example.org = EXAMPLE.ORG - Die Zonendatei von example.org muss dann - die folgenden Zeilen enthalten: + Die Zonendatei von example.org muss dann die + folgenden Zeilen enthalten: - _kerberos._udp IN SRV 01 00 88 kerberos.example.org. + _kerberos._udp IN SRV 01 00 88 kerberos.example.org. _kerberos._tcp IN SRV 01 00 88 kerberos.example.org. _kpasswd._udp IN SRV 01 00 464 kerberos.example.org. _kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org. @@ -1362,7 +1388,7 @@ _kerberos IN TXT EXAMPLE.ORG Im nächsten Schritt wird die - Kerberos-Datenbank eingerichtet. + Kerberos-Datenbank eingerichtet. Die Datenbank enthält die Schlüssel aller Prinzipale und ist mit einem Passwort geschützt. Dieses Passwort brauchen Sie sich nicht merken, da ein davon abgeleiteter @@ -1617,7 +1643,7 @@ kadmin> exit class="username">webdevelopers haben beide Prinzipale auch ohne das gemeinsame Passwort Zugriff auf das Konto: - + tillmann@example.org jdoe@example.org @@ -1766,7 +1792,7 @@ kadmind5_server_enable="YES" besitzen. Wenn der Prinzipal eines Benutzers über ein Ticket verfügt, das eine Woche gültig ist, das Ticket des Host-Prinzipals aber nur neun Stunden gültig ist, - funktioniert der Ticket-Cache nicht wie erwartet. Im + funktioniert der Ticket-Cache nicht wie erwartet. Im Cache befindet sich dann ein abgelaufenes Ticket des Host-Prinzipals. @@ -1815,37 +1841,34 @@ kadmind5_server_enable="YES" Haupt-Schlüssel wiederum wird in einer Datei auf dem KDC gespeichert. - Ein kompromittierter Haupt-Schlüssel ist nicht - ganz so schlimm wie allgemein angenommen. Der - Haupt-Schlüssel wird nur zum Verschlüsseln - der Passwort-Datenbank und zum Initialisieren des - Zufallsgenerators verwendet. Solange der Zugriff - auf das KDC abgesichert ist, kann - ein Angreifer wenig mit dem Haupt-Schlüssel - anfangen. + Ein kompromittierter Haupt-Schlüssel ist nicht ganz so + schlimm wie allgemein angenommen. Der Haupt-Schlüssel wird + nur zum Verschlüsseln der Passwort-Datenbank und zum + Initialisieren des Zufallsgenerators verwendet. Solange der + Zugriff auf das KDC abgesichert ist, kann + ein Angreifer wenig mit dem Haupt-Schlüssel anfangen. - Wenn das KDC nicht zur Verfügung - steht, sind auch die Netzwerkdienste nicht benutzbar, da - eine Authentifizierung nicht durchgeführt werden kann. - Das KDC ist also ein optimales Ziel für - einen Denial-of-Service Angriff. Sie können diesem Angriff - entgegenwirken, indem Sie einen - KDC-Master und einen oder mehrere Slaves - verwenden. Der Rückfall auf ein sekundäres - KDC mittels - PAM-Authentifizierung muss sorgfältig - eingerichtet werden. + Wenn das KDC nicht zur Verfügung steht, + sind auch die Netzwerkdienste nicht benutzbar, da eine + Authentifizierung nicht durchgeführt werden kann. Das + KDC ist also ein optimales Ziel für einen + Denial-of-Service Angriff. Sie können diesem Angriff + entgegenwirken, indem Sie einen KDC-Master + und einen oder mehrere Slaves verwenden. Der Rückfall auf ein + sekundäres KDC mittels + PAM-Authentifizierung muss sorgfältig + eingerichtet werden. - Mit Kerberos können - sich Benutzer, Rechner und Dienste gegenseitig - authentifizieren. Allerdings existiert kein Mechanismus, - der das KDC gegenüber Benutzern, - Rechnern oder Diensten authentifiziert. Ein verändertes - kinit könnte beispielsweise alle - Benutzernamen und Passwörter abfangen. Die von veränderten - Programmen ausgehende Gefahr können Sie lindern, indem Sie - die Integrität von Dateien mit Werkzeugen wie - security/tripwire prüfen. + Mit Kerberos können sich + Benutzer, Rechner und Dienste gegenseitig authentifizieren. + Allerdings existiert kein Mechanismus, der das + KDC gegenüber Benutzern, Rechnern oder + Diensten authentifiziert. Ein verändertes + kinit könnte beispielsweise alle + Benutzernamen und Passwörter abfangen. Die von veränderten + Programmen ausgehende Gefahr können Sie lindern, indem Sie die + Integrität von Dateien mit Werkzeugen wie + security/tripwire prüfen. @@ -1858,39 +1881,53 @@ kadmind5_server_enable="YES" - The - Kerberos FAQ + + The Kerberos FAQ - Designing - an Authentication System: a Dialogue in Four - Scenes + + Designing an Authentication System: a Dialogue in Four + Scenes - RFC 4120, - The Kerberos Network - Authentication Service (V5) + + RFC 4120, The Kerberos + Network Authentication Service (V5) - MIT - Kerberos-Seite + + MIT + Kerberos-Seite - Heimdal - Kerberos-Seite + Heimdal + Kerberos-Seite - OpenSSL + + OpenSSL + - TomRhodesBeigetragen von + + + Tom + Rhodes + + Beigetragen von + @@ -1944,18 +1981,18 @@ kadmind5_server_enable="YES" OpenSSL wird auch eingesetzt, um Zertifikate für Anwendungen bereitzustellen. Die - Zertifikate stellen die Identität einer Firma oder - eines Einzelnen sicher. Wenn ein Zertifikat nicht von - einer Zertifizierungsstelle (Certificate - Authority, CA) - gegengezeichnet wurde, erhalten Sie normalerweise eine - Warnung. Eine Zertifizierungsstelle ist eine Firma - wie VeriSign, - die Zertifikate von Personen oder Firmen - gegenzeichnet und damit die Korrektheit der Zertifikate - bestätigt. Diese Prozedur kostet Geld, ist aber - keine Voraussetzung für den Einsatz von Zertifikaten, - beruhigt aber sicherheitsbewusste Benutzer. + Zertifikate stellen die Identität einer Firma oder eines + Einzelnen sicher. Wenn ein Zertifikat nicht von einer + Zertifizierungsstelle + (Certificate Authority, + CA) gegengezeichnet wurde, erhalten Sie + normalerweise eine Warnung. Eine Zertifizierungsstelle ist eine + Firma wie VeriSign, die + Zertifikate von Personen oder Firmen gegenzeichnet und damit die + Korrektheit der Zertifikate bestätigt. Diese Prozedur kostet + Geld, ist aber keine Voraussetzung für den Einsatz von + Zertifikaten, beruhigt aber sicherheitsbewusste Benutzer. Dieser Abschnitt beschreibt, wie Sie auf einem &os;-System Zertifikate erstellen und benutzen. @@ -2192,167 +2229,163 @@ Connection closed by foreign host. Implementierung und unterstützt sowohl IPv4 als auch IPv6. - - IPsec - ESP - + + IPsec + ESP + - - IPsec - AH - + + IPsec + AH + - IPsec besteht aus den folgenden - Protokollen: + IPsec besteht aus den folgenden + Protokollen: - - - Encapsulated Security Payload - (ESP): dieses Protokoll verschlüsselt - IP-Pakete mit einem symmetrischen - Verfahren wie Blowfish oder 3DES. - Damit werden die Pakete vor Manipulationen Dritter - geschützt. - + + + Encapsulated Security Payload + (ESP): dieses Protokoll + verschlüsselt IP-Pakete mit einem + symmetrischen Verfahren wie Blowfish oder + 3DES. Damit werden die Pakete vor + Manipulationen Dritter geschützt. + - - Authentication Header - (AH): dieses Protokoll enthält eine - kryptographische Prüfsumme, die sicher stellt, dass ein - IP-Paket nicht verändert wurde. Der - Authentication-Header folgt nach dem normalen - IP-Header und erlaubt dem Empfänger - eines IP-Paketes, dessen Integrität zu - prüfen. - + + Authentication Header + (AH): dieses Protokoll + enthält eine kryptographische Prüfsumme, die sicher stellt, + dass ein IP-Paket nicht verändert wurde. + Der Authentication-Header folgt nach dem normalen + IP-Header und erlaubt dem Empfänger eines + IP-Paketes, dessen Integrität zu + prüfen. + - - IP Payload Compression Protocol - (IPComp): dieses - Protokoll versucht durch Komprimierung der - IP-Nutzdaten die Menge der gesendeten - Daten zu reduzieren und somit die Kommunikationsleistung - zu verbessern. - - + + IP Payload Compression Protocol + (IPComp): dieses Protokoll + versucht durch Komprimierung der + IP-Nutzdaten die Menge der gesendeten + Daten zu reduzieren und somit die Kommunikationsleistung zu + verbessern. + + - Diese Protokolle können, je nach Situation, zusammen oder - einzeln verwendet werden. + Diese Protokolle können, je nach Situation, zusammen oder + einzeln verwendet werden. - - VPN - + + VPN + - - Virtual Private Network - VPN - + + Virtual Private Network + VPN + - IPsec unterstützt zwei Modi: Der - Transport-Modus verschlüsselt - die Daten zwischen zwei Systemen. Der - Tunnel-Modus verbindet zwei - Subnetze miteinander. Durch einen Tunnel können - dann verschlüsselte Daten übertragen - werden. Ein Tunnel wird auch als - Virtual-Private-Network - (VPN) bezeichnet. Detaillierte - Informationen über das IPsec-Subsystem von - &os; finden Sie in &man.ipsec.4;. + IPsec unterstützt zwei Modi: Der + Transport-Modus verschlüsselt die Daten + zwischen zwei Systemen. Der Tunnel-Modus + verbindet zwei Subnetze miteinander. Durch einen Tunnel können + dann verschlüsselte Daten übertragen werden. Ein Tunnel wird + auch als Virtual-Private-Network + (VPN) bezeichnet. Detaillierte Informationen + über das IPsec-Subsystem von &os; finden Sie + in &man.ipsec.4;. - Um die Unterstützung für IPsec im - Kernel zu aktivieren, fügen Sie folgenden Optionen in die - Kernelkonfigurationsdatei ein und erstellen Sie einen neuen - Kernel, wie in - beschrieben. + Um die Unterstützung für IPsec im Kernel + zu aktivieren, fügen Sie folgenden Optionen in die + Kernelkonfigurationsdatei ein und erstellen Sie einen neuen + Kernel, wie in + beschrieben. - - Kerneloption - IPSEC - + + Kerneloption + IPSEC + - options IPSEC #IP security + options IPSEC #IP security device crypto - - Kerneloption - IPSEC_DEBUG - + + Kerneloption + IPSEC_DEBUG + - Wenn Sie zur Fehlersuche im IPsec-Subsystem - Unterstützung wünschen, sollten Sie die - folgende Option ebenfalls aktivieren: + Wenn Sie zur Fehlersuche im + IPsec-Subsystem Unterstützung wünschen, + sollten Sie die folgende Option ebenfalls aktivieren: - options IPSEC_DEBUG #debug for IP security + options IPSEC_DEBUG #debug for IP security - Der Rest dieses Kapitels beschreibt die Einrichtung eines - IPsec-VPN zwischen einem - Heimnetzwerk und einem Firmennetzwerk. Für das folgende - Beispiel gilt: + Der Rest dieses Kapitels beschreibt die Einrichtung eines + IPsec-VPN zwischen einem + Heimnetzwerk und einem Firmennetzwerk. Für das folgende + Beispiel gilt: - - - - Beide Netzwerke sind über ein &os;-Gateway - mit dem Internet verbunden. - + + + Beide Netzwerke sind über ein &os;-Gateway mit dem + Internet verbunden. + - - Der Gateway jedes Netzwerks besitzt mindestens - eine externe IP-Adresse. In diesem - Beispiel ist die externe IP-Adresse des - Firmennetzwerks (LAN) 172.16.5.4 und das - Heimnetzwerk (LAN) hat die externe - IP-Adresse 192.168.1.12. - + + Der Gateway jedes Netzwerks besitzt mindestens eine + externe IP-Adresse. In diesem Beispiel + ist die externe IP-Adresse des + Firmennetzwerks (LAN) 172.16.5.4 und das + Heimnetzwerk (LAN) hat die externe + IP-Adresse 192.168.1.12. + - - Die intern verwendeten IP-Adressen - können private oder öffentliche Adressen sein. - Sie dürfen sich jedoch nicht überschneiden. Zum Beispiel - sollten nicht beide Netze 192.168.1.x - benutzen. In diesem Beispiel ist die interne - IP-Adresse des Firmennetzwerks - (LAN) 10.246.38.1 und das - Heimnetzwerk (LAN) hat die interne - IP-Adresse 10.0.0.5. - - + + Die intern verwendeten IP-Adressen + können private oder öffentliche Adressen sein. Sie dürfen + sich jedoch nicht überschneiden. Zum Beispiel sollten nicht + beide Netze 192.168.1.x benutzen. In + diesem Beispiel ist die interne + IP-Adresse des Firmennetzwerks + (LAN) 10.246.38.1 und das + Heimnetzwerk (LAN) hat die interne + IP-Adresse 10.0.0.5. + + Konfiguration eines <acronym>VPN</acronym> unter &os; - - TomRhodes -
trhodes@FreeBSD.org
-
Geschrieben von
-
+ + + + Tom + Rhodes + + +
trhodes@FreeBSD.org
+
+ Geschrieben von +
+
- Als erstes muss security/ipsec-tools aus der Ports-Sammlung installiert werden. Diese Software enthält einige Anwendungen, die bei der Konfiguration von IPsec hilfreich sind. - Als nächstes müssen zwei &man.gif.4;-Pseudogeräte - angelegt werden, um die Pakete zu tunneln und dafür zu sorgen, - dass beide Netzwerke richtig miteinander kommunizieren können. - Geben Sie als root + Als nächstes müssen zwei &man.gif.4;-Pseudogeräte angelegt + werden, um die Pakete zu tunneln und dafür zu sorgen, dass + beide Netzwerke richtig miteinander kommunizieren können. + Geben Sie als root die folgenden Befehle ein, wobei Sie intern und extern durch die realen internen @@ -2404,9 +2437,9 @@ PING 10.246.38.1 (10.246.38.1): 56 data bytes round-trip min/avg/max/stddev = 28.106/94.594/154.524/49.814 ms Wie erwartet, können nun beiden Seiten - ICMP-Pakete von ihren privaten Adressen - senden und empfangen. Als nächstes müssen beide - Gateways so konfiguriert werden, dass sie die Pakete des anderen + ICMP-Pakete von ihren privaten Adressen + senden und empfangen. Als nächstes müssen beide Gateways so + konfiguriert werden, dass sie die Pakete des anderen Netzwerkes richtig routen. Dazu werden folgende Befehle verwendet: @@ -2525,16 +2558,16 @@ sainfo (address 10.246.38.0/24 any address 10.0.0.0/24 any) # address $netwo /usr/local/etc/racoon/setkey.conf gespeichert werden. -flush; + flush; spdflush; # To the home network spdadd 10.246.38.0/24 10.0.0.0/24 any -P out ipsec esp/tunnel/172.16.5.4-192.168.1.12/use; spdadd 10.0.0.0/24 10.246.38.0/24 any -P in ipsec esp/tunnel/192.168.1.12-172.16.5.4/use; - Einmal abgespeichert, kann racoon - durch das folgende Kommando auf beiden Gateways gestartet - werden: + Nachdem die Datei gespeichert wurde, kann + racoon durch das folgende Kommando + auf beiden Gateways gestartet werden: &prompt.root; /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf -l /var/log/racoon.log @@ -2573,9 +2606,9 @@ Foreground mode. An diesem Punkt sollten beide Netzwerke verfügbar sein und den Anschein haben, dass sie zum selben Netzwerk gehören. Meistens sind beide Netzwerke durch eine Firewall geschützt. - Um den Netzwerkverkehr zwischen den beiden Netzwerken zu erlauben, - ist es notwendig Regeln zu erstellen. Für die &man.ipfw.8; - Firewall fügen Sie folgende Zeilen in die + Um den Netzwerkverkehr zwischen den beiden Netzwerken zu + erlauben, ist es notwendig Regeln zu erstellen. Für die + &man.ipfw.8; Firewall fügen Sie folgende Zeilen in die Firewall-Konfigurationsdatei ein: ipfw add 00201 allow log esp from any to any @@ -2584,8 +2617,8 @@ ipfw add 00203 allow log ipencap from any to any ipfw add 00204 allow log udp from any 500 to any - Die Regelnummern müssen eventuell, je nach ihrer - Hostkonfiguration, angepasst werden. + Die Regelnummern müssen eventuell, je nach + Hostkonfiguration, angepasst werden. Für Benutzer der &man.pf.4;- oder &man.ipf.8;-Firewall @@ -2615,9 +2648,17 @@ racoon_enable="yes"
- OpenSSH + + OpenSSH + - ChernLeeBeigetragen von + + + Chern + Lee + + Beigetragen von + @@ -2652,8 +2693,8 @@ racoon_enable="yes" Die SSH Client-Werkzeuge benutzen - OpenSSH - Client + OpenSSH + Client Benutzen Sie ssh zusammen mit einem @@ -2696,8 +2737,8 @@ Password for user@example.com: user_password - OpenSSH - secure copy + OpenSSH + secure copy &man.scp.1; @@ -2734,20 +2775,20 @@ COPYRIGHT 100% |*****************************| 4735 die verfügbaren Befehle, die während einer sftp-Sitzung zur Verfügung stehen. - - Schlüsselbasierte Authentifizierung + + Schlüsselbasierte Authentifizierung - Ein Client kann bei der Verbindung auch Schlüssel - anstelle von Passwörtern verwenden. Mit - ssh-keygen können DSA- - oder RSA-Schlüssel erzeugt werden. Geben - Sie das entsprechende Protokoll an, wenn Sie einen - öffentlichen und einen privaten Schlüssel erzeugen. Folgen - Sie anschließend den Anweisungen des Programms. Es wird - empfohlen, die Schlüssel mit einer einprägsamen, aber schwer - zu erratenen Passphrase zu schützen. + Ein Client kann bei der Verbindung auch Schlüssel + anstelle von Passwörtern verwenden. Mit + ssh-keygen können DSA- + oder RSA-Schlüssel erzeugt werden. Geben + Sie das entsprechende Protokoll an, wenn Sie einen + öffentlichen und einen privaten Schlüssel erzeugen. Folgen + Sie anschließend den Anweisungen des Programms. Es wird + empfohlen, die Schlüssel mit einer einprägsamen, aber schwer + zu erratenen Passphrase zu schützen. - &prompt.user; ssh-keygen -t dsa + &prompt.user; ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/user/.ssh/id_dsa): Created directory '/home/user/.ssh'. @@ -2758,185 +2799,186 @@ Your public key has been saved in /home/user/.ssh/id_dsa.pub. The key fingerprint is: bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com - Abhängig vom verwendeten Protokoll wird der private - Schlüssel in ~/.ssh/id_dsa (oder - ~/.ssh/id_rsa) und der öffentliche - Schlüssel in ~/.ssh/id_dsa.pub (oder - ~/.ssh/id_rsa.pub) gespeichert. Der - öffentliche Schlüssel muss zuerst auf - den entfernten Rechner nach - ~/.ssh/authorized_keys kopiert werden, - damit die schlüsselbasierte Authentifizierung - funktioniert. + Abhängig vom verwendeten Protokoll wird der private + Schlüssel in ~/.ssh/id_dsa (oder + ~/.ssh/id_rsa) und der öffentliche + Schlüssel in ~/.ssh/id_dsa.pub (oder + ~/.ssh/id_rsa.pub) gespeichert. Der + öffentliche Schlüssel muss zuerst auf + den entfernten Rechner nach + ~/.ssh/authorized_keys kopiert werden, + damit die schlüsselbasierte Authentifizierung + funktioniert. - - Viele Benutzer denken, dass die Verwendung von - Schlüsseln generell sicher ist. Sie verwenden dann einen - Schlüssel ohne eine Passphrase. Dies ist jedoch sehr - gefährlich. Ein Administrator kann - überprüfen, ob ein Schlüsselpaar mit einer Passphrase - geschützt ist. Wenn die Datei mit dem privaten Schlüssel - den Text ENCRYPTED enthält, dann hat - der Benutzer eine Passphrase verwendet. Um die Benutzer - zusätzlich zu schützen, kann ein - from-Feld in der Datei des öffentlichen - Schlüssels hinzugefügt werden. Zum Beispiel würde das - Hinzufügen von from="192.168.10.5" vor - dem ssh-rsa- oder - ssh-dsa-Präfix dafür sorgen, dass sich - ein bestimmter Benutzer nur noch von dieser - IP-Adresse anmelden darf. - + + Viele Benutzer denken, dass die Verwendung von + Schlüsseln generell sicher ist. Sie verwenden dann einen + Schlüssel ohne eine Passphrase. Dies ist jedoch sehr + gefährlich. Ein Administrator kann + überprüfen, ob ein Schlüsselpaar mit einer Passphrase + geschützt ist. Wenn die Datei mit dem privaten Schlüssel + den Text ENCRYPTED enthält, dann hat + der Benutzer eine Passphrase verwendet. Um die Benutzer + zusätzlich zu schützen, kann ein + from-Feld in der Datei des öffentlichen + Schlüssels hinzugefügt werden. Zum Beispiel würde das + Hinzufügen von from="192.168.10.5" vor + dem ssh-rsa- oder + ssh-dsa-Präfix dafür sorgen, dass sich + ein bestimmter Benutzer nur noch von dieser + IP-Adresse anmelden darf. + Die Optionen und Dateinamen sind abhängig von der OpenSSH-Version. Die für das System gültigen Optionen finden Sie in &man.ssh-keygen.1;. - Wenn bei der Erzeugung des Schlüssels eine Passphrase - angegeben wurde, wird der Benutzer bei jeder Anmeldung am - Server zur Eingabe der Passphrase aufgefordert. Mit - &man.ssh-agent.1; und &man.ssh-add.1; ist es möglich, - SSH-Schlüssel in den Speicher zu - laden, damit die Passphrase nicht jedes Mal eingegeben werden - muss. + Wenn bei der Erzeugung des Schlüssels eine Passphrase + angegeben wurde, wird der Benutzer bei jeder Anmeldung am + Server zur Eingabe der Passphrase aufgefordert. Mit + &man.ssh-agent.1; und &man.ssh-add.1; ist es möglich, + SSH-Schlüssel in den Speicher zu + laden, damit die Passphrase nicht jedes Mal eingegeben + werden muss. - ssh-agent übernimmt die - Authentifizierung mit den geladenen privaten Schlüsseln. - ssh-agent sollte nur dazu verwendet werden, - ein anderes Programm zu starten, beispielsweise eine Shell - oder einen Window-Manager. + ssh-agent übernimmt die + Authentifizierung mit den geladenen privaten Schlüsseln. + ssh-agent sollte nur dazu verwendet + werden, ein anderes Programm zu starten, beispielsweise eine + Shell oder einen Window-Manager. - Um ssh-agent in einer Shell zu - verwenden, muss es mit einer Shell als Argument aufgerufen - werden. Zudem muss die zu verwaltende Identität mit - ssh-add sowie deren Passphrase für den - privaten Schlüssel übergeben werden. Nachdem dies erledigt - ist, kann sich ein Benutzer mit ssh auf - jedem Rechner anmelden, der einen entsprechenden öffentlichen - Schlüssel besitzt. Dazu ein Beispiel: + Um ssh-agent in einer Shell zu + verwenden, muss es mit einer Shell als Argument aufgerufen + werden. Zudem muss die zu verwaltende Identität mit + ssh-add sowie deren Passphrase für den + privaten Schlüssel übergeben werden. Nachdem dies erledigt + ist, kann sich ein Benutzer mit ssh auf + jedem Rechner anmelden, der einen entsprechenden + öffentlichen Schlüssel besitzt. Dazu ein Beispiel: - &prompt.user; ssh-agent csh + &prompt.user; ssh-agent csh &prompt.user; ssh-add Enter passphrase for /usr/home/user/.ssh/id_dsa: type passphrase here Identity added: /usr/home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa) &prompt.user; - Um ssh-agent unter - &xorg; zu verwenden, muss ein - Eintrag für das Programm in ~/.xinitrc - aufgenommen werden. Dadurch können alle unter - &xorg; gestarteten Programme die - Dienste von ssh-agent nutzen. - ~/.xinitrc könnte etwa so - aussehen: + Um ssh-agent unter + &xorg; zu verwenden, muss ein + Eintrag für das Programm in ~/.xinitrc + aufgenommen werden. Dadurch können alle unter + &xorg; gestarteten Programme die + Dienste von ssh-agent nutzen. + ~/.xinitrc könnte etwa so + aussehen: - exec ssh-agent startxfce4 + exec ssh-agent startxfce4 - Dadurch wird bei jedem Start von - &xorg; zuerst - ssh-agent aufgerufen, das wiederum - XFCE startet. Nachdem diese - Änderung durchgeführt wurde, muss - &xorg; neu gestartet werden. - Danach können Sie mit ssh-add die - SSH-Schlüssel laden. - + Dadurch wird bei jedem Start von + &xorg; zuerst + ssh-agent aufgerufen, das wiederum + XFCE startet. Nachdem diese + Änderung durchgeführt wurde, muss + &xorg; neu gestartet werden. + Danach können Sie mit ssh-add die + SSH-Schlüssel laden. + - - <acronym>SSH</acronym>-Tunnel + + <acronym>SSH</acronym>-Tunnel - - OpenSSH - Tunnel - + + OpenSSH + Tunnel + - Mit OpenSSH ist es möglich, - einen Tunnel zu erstellen, in dem ein anderes Protokoll - verschlüsselt übertragen wird. + Mit OpenSSH ist es möglich, + einen Tunnel zu erstellen, in dem ein anderes Protokoll + verschlüsselt übertragen wird. - Im folgenden Kommando erzeugt ssh einen - Tunnel für telnet: + Im folgenden Kommando erzeugt ssh + einen Tunnel für telnet: - &prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com + &prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com &prompt.user; - Dieses Beispiel verwendet die folgenden Optionen: + Dieses Beispiel verwendet die folgenden Optionen: - - - + + + - - Zwingt ssh dazu, die Version 2 - des Protokolls zu verwenden, um sich mit dem Server zu - verbinden. - - - - - - - - Zeigt an, dass ein Tunnel erstellt werden soll. - Ohne diese Option würde ssh eine - normale Sitzung öffnen. - - - - - - - - Zwingt ssh im Hintergrund zu - laufen. - - - - - - - - Ein lokaler Tunnel wird in der Form - localport:remotehost:remoteport - angegeben. Die Verbindung wird dabei von dem lokalen Port - localport auf einen entfernten - Rechner weitergeleitet. - + + Zwingt ssh dazu, die Version 2 + des Protokolls zu verwenden, um sich mit dem Server zu + verbinden. + - - + + - - Gibt den Anmeldenamen auf dem entfernten - SSH-Server an. - - - + + Zeigt an, dass ein Tunnel erstellt werden soll. + Ohne diese Option würde ssh eine + normale Sitzung öffnen. + + - Ein SSH-Tunnel erzeugt einen Socket - auf localhost und dem angegebenen - lokalen Port. Jede Verbindung, die auf dem angegebenen - Socket aufgemacht wird, wird dann auf den spezifizierten - entfernten Rechner und Port weitergeleitet. Im Beispiel wird - der lokale Port 5023 an die entfernte - Maschine auf Port 23 weitergeleitet. Da - der Port 23 für telnet reserviert ist, - erzeugt das eine sichere &man.telnet.1;-Verbindung durch - einen SSH-Tunnel. + + - Wie in den folgenden Beispielen zu sehen ist, kann diese - Vorgehensweise genutzt werden, um jedes unsichere - TCP-Protokoll, wie - SMTP, POP3 und - FTP, weiterzuleiten. + + Zwingt ssh im Hintergrund zu + laufen. + + - - Einen sicheren Tunnel für <acronym>SMTP</acronym> - erstellen + + - &prompt.user; ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com + + Ein lokaler Tunnel wird in der Form + localport:remotehost:remoteport + angegeben. Die Verbindung wird dabei von dem lokalen + Port localport auf einen + entfernten Rechner weitergeleitet. + + + + + + + + Gibt den Anmeldenamen auf dem entfernten + SSH-Server an. + + + + + Ein SSH-Tunnel erzeugt einen Socket + auf localhost und dem angegebenen + lokalen Port. Jede Verbindung, die auf dem angegebenen + Socket aufgemacht wird, wird dann auf den spezifizierten + entfernten Rechner und Port weitergeleitet. Im Beispiel + wird der lokale Port 5023 an die + entfernte Maschine auf Port 23 + weitergeleitet. Da der Port 23 für + telnet reserviert ist, erzeugt das eine + sichere &man.telnet.1;-Verbindung durch einen + SSH-Tunnel. + + Wie in den folgenden Beispielen zu sehen ist, kann diese + Vorgehensweise genutzt werden, um jedes unsichere + TCP-Protokoll, wie + SMTP, POP3 und + FTP, weiterzuleiten. + + + Einen sicheren Tunnel für <acronym>SMTP</acronym> + erstellen + + &prompt.user; ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com user@mailserver.example.com's password: ***** &prompt.user; telnet localhost 5025 Trying 127.0.0.1... @@ -2944,12 +2986,12 @@ Connected to localhost. Escape character is '^]'. 220 mailserver.example.com ESMTP - Zusammen mit ssh-keygen und - zusätzlichen Benutzer-Accounts können leicht benutzbare - SSH-Tunnel aufgebaut werden. Anstelle - von Passwörtern können Schlüssel benutzt werden und jeder - Tunnel kann unter einem eigenen Benutzer laufen. - + Zusammen mit ssh-keygen und + zusätzlichen Benutzer-Accounts können leicht benutzbare + SSH-Tunnel aufgebaut werden. Anstelle + von Passwörtern können Schlüssel benutzt werden und jeder + Tunnel kann unter einem eigenen Benutzer laufen. + Sicherer Zugriff auf einen @@ -3001,7 +3043,7 @@ user@unfirewalled-system.example.org's password: <userinput>*******</userinput>< <systemitem>music.example.com</systemitem> Port 8000 weitergeleitet. Die Firewall wurde somit erfolgreich umgangen.</para> - </example> + </example> </sect3> </sect2> @@ -3009,8 +3051,8 @@ user@unfirewalled-system.example.org's password: <userinput>*******</userinput>< <title>Den SSH-Server aktivieren - OpenSSH - aktivieren + OpenSSH + aktivieren Neben den integrierten @@ -3067,14 +3109,14 @@ user@unfirewalled-system.example.org's password: *******< beschrieben. Es ist in der Regel ein gute Idee, festzulegen, welche - Benutzer sich von welchem Rechner aus anmelden können. - Dies lässt sich beispielsweise über die Option - AllowUsers festlegen. Soll sich etwa - nur root vom Rechner - mit der IP-Adresse AllowUsers festlegen. Soll sich etwa nur + root vom Rechner mit + der IP-Adresse 192.168.1.32 aus einwählen - dürfen, würden Sie folgenden Eintrag in - /etc/ssh/sshd_config aufnehmen: + dürfen, würden Sie folgenden Eintrag in + /etc/ssh/sshd_config aufnehmen: AllowUsers root@192.168.1.32 @@ -3085,7 +3127,7 @@ user@unfirewalled-system.example.org's password: *******< AllowUsers admin Sie können auch mehrere Benutzer in einer Zeile - aufführen: + aufführen: AllowUsers root@192.168.1.32 admin @@ -3138,8 +3180,15 @@ user@unfirewalled-system.example.org's password: *******< Zugriffskontrolllisten für Dateisysteme (<acronym>ACL</acronym>) + - TomRhodesBeigetragen von + + + Tom + Rhodes + + Beigetragen von + @@ -3175,65 +3224,68 @@ user@unfirewalled-system.example.org's password: *******< <acronym>ACL</acronym>-Unterstützung aktivieren - Die Option in - /etc/fstab aktiviert Zugriffskontrolllisten - für ein Dateisystem. Die bevorzugte Möglichkeit ist - die Verwendung von Zugriffskontrolllisten mit &man.tunefs.8; (Option - ), im Superblock des Dateisystems festzuschreiben. - Diese Möglichkeit hat mehrere Vorteile: + Die Option in + /etc/fstab aktiviert + Zugriffskontrolllisten für ein Dateisystem. Die bevorzugte + Möglichkeit ist die Verwendung von Zugriffskontrolllisten mit + &man.tunefs.8; (Option ), im Superblock des + Dateisystems festzuschreiben. Diese Möglichkeit hat mehrere + Vorteile: - - - Nochmaliges Einhängen eines Dateisystems (Option - von &man.mount.8;) verändert den Status - der Zugriffskontrolllisten nicht. Die Verwendung von - Zugriffskontrolllisten kann nur durch Abhängen und erneutes - Einhängen eines Dateisystems verändert werden. Das - heißt auch, dass Zugriffskontrolllisten nicht - nachträglich auf dem Root-Dateisystem aktiviert werden - können. - + + + Nochmaliges Einhängen eines Dateisystems (Option + von &man.mount.8;) verändert den + Status der Zugriffskontrolllisten nicht. Die Verwendung + von Zugriffskontrolllisten kann nur durch Abhängen und + erneutes Einhängen eines Dateisystems verändert werden. + Das heißt auch, dass Zugriffskontrolllisten nicht + nachträglich auf dem Root-Dateisystem aktiviert werden + können. + - - Die Zugriffskontrolllisten auf den Dateisystemen sind, - unabhängig von den Optionen in /etc/fstab - oder Namensänderungen der Geräte, immer aktiv. Dies - verhindert auch, dass Zugriffskontrolllisten aus Versehen - auf Dateisystemen ohne Zugriffskontrolllisten aktiviert - werden. - - + + Die Zugriffskontrolllisten auf den Dateisystemen sind, + unabhängig von den Optionen in + /etc/fstab oder Namensänderungen der + Geräte, immer aktiv. Dies verhindert auch, dass + Zugriffskontrolllisten aus Versehen auf Dateisystemen ohne + Zugriffskontrolllisten aktiviert werden. + + - - Es kann sein, dass sich der Status von Zugriffskontrolllisten - später durch nochmaliges Einhängen des Dateisystems - (Option von &man.mount.8;) ändern - lässt. Die momentane Variante ist aber sicherer, da der - Status der Zugriffskontrolllisten nicht versehentlich geändert - werden kann. Allgemein sollten Zugriffskontrolllisten auf einem - Dateisystem, auf dem sie einmal verwendet wurden, nicht deaktiviert - werden, da danach die Zugriffsrechte falsch sein können. - Werden Zugriffskontrolllisten auf einem solchen Dateisystem wieder - aktiviert, werden die Zugriffsrechte von Dateien, die sich - zwischenzeitlich geändert haben, überschrieben, was zu - erneuten Problemen führt. - + + Es kann sein, dass sich der Status von + Zugriffskontrolllisten später durch nochmaliges Einhängen + des Dateisystems (Option von + &man.mount.8;) ändern lässt. Die momentane Variante ist + aber sicherer, da der Status der Zugriffskontrolllisten + nicht versehentlich geändert werden kann. Allgemein sollten + Zugriffskontrolllisten auf einem Dateisystem, auf dem sie + einmal verwendet wurden, nicht deaktiviert werden, da danach + die Zugriffsrechte falsch sein können. Werden + Zugriffskontrolllisten auf einem solchen Dateisystem wieder + aktiviert, werden die Zugriffsrechte von Dateien, die sich + zwischenzeitlich geändert haben, überschrieben, was zu + erneuten Problemen führt. + - Die Zugriffsrechte einer Datei werden durch ein - + (Plus) gekennzeichnet, wenn die Datei durch - Zugriffskontrolllisten geschützt ist: + Die Zugriffsrechte einer Datei werden durch ein + + (Plus) gekennzeichnet, wenn die Datei + durch Zugriffskontrolllisten geschützt ist: - drwx------ 2 robert robert 512 Dec 27 11:54 private + drwx------ 2 robert robert 512 Dec 27 11:54 private drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1 drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2 drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3 drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html - In diesem Beispiel sind die Verzeichnisse - directory1, directory2 - und directory3 durch Zugriffskontrolllisten - geschützt, wohingegen das Verzeichnis - public_html nicht geschützt ist. + In diesem Beispiel sind die Verzeichnisse + directory1, + directory2 und + directory3 durch Zugriffskontrolllisten + geschützt, wohingegen das Verzeichnis + public_html nicht geschützt ist. @@ -3369,9 +3421,17 @@ You are advised to update or deinstall the affected package(s) immediately. - &os; Sicherheitshinweise + + &os; Sicherheitshinweise + - TomRhodesBeigesteuert von + + + Tom + Rhodes + + Beigesteuert von + @@ -3695,14 +3755,20 @@ UWWemqWuz3lAZuORQ9KX - Prozess-Überwachung + + Prozess-Überwachung + - TomRhodesBeigetragen von + + + Tom + Rhodes + + Beigetragen von + - - Prozess-Überwachung @@ -3715,9 +3781,9 @@ UWWemqWuz3lAZuORQ9KX System überwacht werden und es ist sogar möglich, zu kontrollieren, welche Befehle ein Anwender eingibt. - Die Überwachung von Prozessen hat sowohl Vor- als auch Nachteile. - Positiv ist, dass man einen Einbruchsversuch bis an den Anfang - zurückverfolgen kann. Von Nachteil ist allerdings, + Die Überwachung von Prozessen hat sowohl Vor- als auch + Nachteile. Positiv ist, dass man einen Einbruchsversuch bis an + den Anfang zurückverfolgen kann. Von Nachteil ist allerdings, dass durch diesen Prozess Unmengen an Protokolldateien erzeugt werden, die auch dementsprechenden Plattenplatz benötigen. Dieser Abschnitt beschreibt die Grundlagen der @@ -3730,12 +3796,12 @@ UWWemqWuz3lAZuORQ9KX Die Prozess-Überwachung aktivieren und - konfigurieren + konfigurieren - Bevor Sie die Prozess-Überwachung verwenden können, - müssen Sie diese über die folgenden Befehle aktivieren: + Bevor Sie die Prozess-Überwachung verwenden können, müssen + Sie diese über die folgenden Befehle aktivieren: - &prompt.root; touch /var/account/acct + &prompt.root; touch /var/account/acct &prompt.root; chmod 600 /var/account/acct &prompt.root; accton /var/account/acct &prompt.root; echo 'accounting_enable="YES"' >> /etc/rc.conf @@ -3745,12 +3811,12 @@ UWWemqWuz3lAZuORQ9KX Vorgängen begonnen. Protokolldateien werden in einem nur von Maschinen lesbaren Format gespeichert und können mit sa aufgerufen werden. Ohne Optionen - gibt sa Informationen wie die Anzahl der Aufrufe pro - Anwender, die abgelaufene Zeit in Minuten, die gesamte - CPU- und Anwenderzeit in Minuten und die - durchschnittliche Anzahl der Ein- und Ausgabeoperationen - aus. &man.sa.8; enthält eine Liste der Optionen, welche die - Ausgabe steuern. + gibt sa Informationen wie die Anzahl der + Aufrufe pro Anwender, die abgelaufene Zeit in Minuten, die + gesamte CPU- und Anwenderzeit in Minuten + und die durchschnittliche Anzahl der Ein- und + Ausgabeoperationen aus. &man.sa.8; enthält eine Liste der + Optionen, welche die Ausgabe steuern. Benutzen Sie lastcomm, um die von den Benutzern ausgeführten Befehle anzuzeigen. Dieses Beispiel @@ -4077,73 +4143,73 @@ UWWemqWuz3lAZuORQ9KX Fügen Sie dazu folgende Zeilen in die Kernelkonfigurationsdatei ein: - options RACCT + options RACCT options RCTL - Sobald das System mit dem neuen Kernel gestartet wird, kann - rctl benutzt werden, um die Regeln für das - System festzulegen. + Sobald das System mit dem neuen Kernel gestartet wird, + kann rctl benutzt werden, um die Regeln für + das System festzulegen. - Die Syntax der Regeln wird durch - subject, subject-id, - resource und action - gesteuert, wie in diesem Beispiel zu sehen ist: + Die Syntax der Regeln wird durch + subject, subject-id, + resource und action + gesteuert, wie in diesem Beispiel zu sehen ist: - user:trhodes:maxproc:deny=10/user + user:trhodes:maxproc:deny=10/user - Diese Regel zeigt den grundlegenden Aufbau, hier mit dem - Subjekt user und der Subjekt-ID - trhodes. maxproc - definiert die Anzahl der Prozesse. Die Aktion - deny verhindert, dass neue Prozesse erstellt - werden. Im vorherigen Beispiel wurde für den Benutzer - trhodes eine Beschränkung von - 10 Prozessen konfiguriert. Zu den weiteren - Aktionen zählen beispielsweise die Protokollierung auf der - Konsole, Benachrichtigungen an &man.devd.8; oder das Senden - eines SIGTERM an einen Prozess. + Diese Regel zeigt den grundlegenden Aufbau, hier mit dem + Subjekt user und der Subjekt-ID + trhodes. maxproc + definiert die Anzahl der Prozesse. Die Aktion + deny verhindert, dass neue Prozesse + erstellt werden. Im vorherigen Beispiel wurde für den + Benutzer trhodes eine Beschränkung von + 10 Prozessen konfiguriert. Zu den weiteren + Aktionen zählen beispielsweise die Protokollierung auf der + Konsole, Benachrichtigungen an &man.devd.8; oder das Senden + eines SIGTERM an einen Prozess. - Beim hinzufügen von Regeln müssen einige Dinge beachtet - werden. Das obige Beispiel würde den Benutzer sogar daran - hindern, einfachste Dinge zu tun, nachdem er sich anmeldet und - eine screen Sitzung gestartet hat. Sobald - die Begrenzung für eine Ressource erreicht ist, wird folgende - Fehlermeldung ausgegeben: + Beim hinzufügen von Regeln müssen einige Dinge beachtet + werden. Das obige Beispiel würde den Benutzer sogar daran + hindern, einfachste Dinge zu tun, nachdem er sich anmeldet und + eine screen Sitzung gestartet hat. Sobald + die Begrenzung für eine Ressource erreicht ist, wird folgende + Fehlermeldung ausgegeben: - &prompt.root; man test + &prompt.root; man test /usr/bin/man: Cannot fork: Resource temporarily unavailable eval: Cannot fork: Resource temporarily unavailable - &man.rctl.8; kann auch benutzt werden, um einer Jail - eine Speichergrenze zuzuweisen. Eine solche Regel könnte - wie folgt festgelegt werden: + &man.rctl.8; kann auch benutzt werden, um einer Jail + eine Speichergrenze zuzuweisen. Eine solche Regel könnte + wie folgt festgelegt werden: - &prompt.root; rctl -a jail:httpd:memoryuse:deny=2G/jail + &prompt.root; rctl -a jail:httpd:memoryuse:deny=2G/jail - Damit die Regeln auch nach einem Neustart erhalten bleiben, - müssen sie in /etc/rctl.conf hinzugefügt - werden. Dazu schreiben Sie einfach die Regel, ohne das - vorhergehende Kommando. Zum Beispiel: + Damit die Regeln auch nach einem Neustart erhalten + bleiben, müssen sie in /etc/rctl.conf + hinzugefügt werden. Dazu schreiben Sie einfach die Regel, + ohne das vorhergehende Kommando. Zum Beispiel: - # Block jail from using more than 2G memory: + # Block jail from using more than 2G memory: jail:httpd:memoryuse:deny=2G/jail - Mit rctl können auch Regeln entfernt - werden: + Mit rctl können auch Regeln entfernt + werden: - &prompt.root; rctl -r user:trhodes:maxproc:deny=10/user + &prompt.root; rctl -r user:trhodes:maxproc:deny=10/user - &man.rctl.8; zeigt auch eine Möglichkeit, alle Regeln zu - entfernen. Falls es erforderlich ist alle Regeln für einen - einzelnen Benutzer zu entfernen, kann dieser Befehl verwendet - werden: + &man.rctl.8; zeigt auch eine Möglichkeit, alle Regeln zu + entfernen. Falls es erforderlich ist alle Regeln für einen + einzelnen Benutzer zu entfernen, kann dieser Befehl verwendet + werden: - &prompt.root; rctl -r user:trhodes + &prompt.root; rctl -r user:trhodes - Es gibt noch viele weitere Ressourcen, die verwendet werden - können, um zusätzliche subjects zu - kontrollieren. Weitere Informationen zu diesem Thema finden Sie - in &man.rctl.8;. + Es gibt noch viele weitere Ressourcen, die verwendet + werden können, um zusätzliche subjects zu + kontrollieren. Weitere Informationen zu diesem Thema finden + Sie in &man.rctl.8;.