Index: head/de_DE.ISO8859-1/books/handbook/security/chapter.xml =================================================================== --- head/de_DE.ISO8859-1/books/handbook/security/chapter.xml +++ head/de_DE.ISO8859-1/books/handbook/security/chapter.xml @@ -5,7 +5,7 @@ $FreeBSD$ $FreeBSDde: de-docproj/books/handbook/security/chapter.xml,v 1.178 2012/04/30 17:07:41 bcr Exp $ - basiert auf: r41320 + basiert auf: r42014 --> Sicherheit @@ -25,22 +25,19 @@ Übersicht Dieses Kapitel bietet eine Einführung in die Konzepte - der Systemsicherheit. Neben einigen Daumenregeln werden - weiterführende Themen wie S/Key, OpenSSL und Kerberos - diskutiert. Die meisten der hier besprochenen Punkte treffen - sowohl auf die Systemsicherheit sowie die Internetsicherheit zu. - Das Internet hat aufgehört ein friedlicher - Ort zu sein, an dem Sie nur nette Leute finden werden. Es ist - unumgänglich, dass Sie Ihre Daten, Ihr geistiges Eigentum, - Ihre Zeit und vieles mehr vor dem Zugriff von Hackern - schützen. - - &os; besitzt eine Reihe von Werkzeugen und Mechanismen, um die - Integrität und die Sicherheit Ihrer Systeme und Netzwerke - zu gewährleisten. + der Systemsicherheit. Des weiteren werden einige allgemeine + Daumenregeln und einige fortgeschrittene Themen unter &os; + behandelt. Viele der hier besprochenen Punkte treffen sowohl + auf die Systemsicherheit als auch auf die Internetsicherheit zu. + Die Absicherung eines Systems ist unumgänglich, um Daten, + geistiges Eigentum, Zeit und vieles mehr vor Hackern und + dergleichen zu schützen. + + &os; besitzt eine Reihe von Werkzeugen und Mechanismen, um + die Integrität und die Sicherheit des Systems und des Netzwerks + zu schützen. - Nachdem Sie dieses Kapitel durchgearbeitet haben, werden - Sie: + Nachdem Sie dieses Kapitel gelesen haben, werden Sie: @@ -50,8 +47,7 @@ Die verschiedenen Verschlüsselungsmechanismen - von &os;, wie DES oder - MD5, kennen. + von &os; kennen. @@ -60,36 +56,33 @@ - TCP-Wrapper für - inetd einrichten können. + TCP-Wrapper für &man.inetd.8; + einrichten können. - Wissen, wie Sie Kerberos5 + Wissen, wie Sie Kerberos unter &os; einrichten. - Firewalls mit IPFW - erstellen können. + Wissen, wie Sie IPsec konfigurieren und ein + VPN einrichten. - Wissen, wie Sie IPsec konfigurieren und ein - VPN zwischen &os;/&windows; - Systemen einrichten, + Wissen, wie Sie OpenSSH unter + &os; konfigurieren und benutzen. - OpenSSH, &os;s - Implementierung von SSH, konfigurieren - und benutzen können. + Wissen, wie Sie ACLs für Dateisysteme + benutzen. Portaudit anwenden können, - um Softwarepakete Dritter, die Sie über die - Ports-Sammlung installieren, auf bekannte + um Softwarepakete aus der Ports-Sammlung auf bekannte Sicherheitslücken hin zu überprüfen. @@ -99,8 +92,13 @@ Eine Vorstellung davon haben, was Prozessüberwachung - (Process Accounting) ist und wie - Sie diese Funktion unter &os; aktivieren können. + (Process Accounting) ist und + wie Sie diese Funktion unter &os; aktivieren können. + + + + Wissen, wie Sie die Ressourcen-Datenbank benutzt, um die + Ressourcen für Benutzer zu steuern. @@ -114,33 +112,26 @@ Dieses Buch behandelt weitere Sicherheitsthemen. - Beispielsweise werden vorgeschriebene Zugriffskontrollen - in und Firewalls in + Beispielsweise werden verbindliche Zugriffskontrollen + im und Firewalls im besprochen. Einführung - Sicherheit ist ein Konzept, das beim Systemadministrator anfängt - und aufhört. Obwohl alle BSD &unix; Mehrbenutzersysteme über - Sicherheitsfunktionen verfügen, ist es wohl eine der - größten Aufgaben eines Systemadministrators zusätzliche - Sicherheitsmechanismen zu erstellen und zu pflegen. Maschinen sind - nur so sicher wie sie gemacht werden und Sicherheitsanforderungen - stehen oft der Benutzerfreundlichkeit entgegen. Auf &unix; Systemen - können sehr viele Prozesse gleichzeitig laufen und viele dieser - Prozesse sind Server, das heißt von außen kann auf sie - zugegriffen werden. In einer Zeit, in der die Minicomputer und - Mainframes von gestern die Desktops von heute sind und Rechner - immer mehr vernetzt werden, kommt der Sicherheit eine große - Bedeutung zu. + Sicherheit ist ein Konzept, das beim Systemadministrator + anfängt und aufhört. Obwohl &os; über Sicherheitsfunktionen + verfügt, ist die Erstellung und Pflege von zusätzlichen + Sicherheitsmechanismen wohl eine der größten Aufgaben eines + Systemadministrators. Zur Systemsicherheit gehört auch die Beschäftigung mit verschiedenen Arten von Angriffen, auch solchen, die versuchen, ein System still zu legen, oder sonst unbrauchbar zu machen ohne - root zu kompromittieren. Sicherheitsaspekte - lassen sich in mehrere Kategorien unterteilen: + root zu + kompromittieren. Sicherheitsaspekte lassen sich in mehrere + Kategorien unterteilen: @@ -152,8 +143,9 @@ - Kompromittierter root-Account durch - zugreifbare Server. + Kompromittierter root-Account durch + zugängliche Server. @@ -167,32 +159,30 @@ - DoS Angriffe + DoS-Angriffe Denial-of-Service (DoS) Sicherheit - DoS Angriffe + DoS-AAngriffe Denial-of-Service (DoS) Denial-of-Service (DoS) - Ein Denial-of-Service (Verhinderung von Diensten, DoS) Angriff + Ein Denial-of-Service DoS-Angriff entzieht einer Maschine Ressourcen, die sie zur Bereitstellung - von Diensten benötigt. Meist versuchen Denial-of-Service Angriffe - die Dienste oder den Netzwerkstack einer Maschine zu überlasten, - um so die Maschine auszuschalten oder nicht nutzbar zu machen. Einige - Angriffe versuchen, Fehler im Netzwerkstack auszunutzen, und die - Maschine mit einem einzigen Paket auszuschalten. Diese Art des - Angriffs kann nur verhindert werden, indem der entsprechende Fehler - im Kernel behoben wird. Oft können Angriffe auf Dienste durch - die Angabe von Optionen verhindert werden, die die Last, die ein - Dienst auf das System unter widrigen Umständen ausüben kann, - begrenzt. Angriffen auf das Netzwerk ist schwerer zu begegnen. - Außer durch Trennen der Internetverbindung ist zum Beispiel - einem Angriff mit gefälschten Paketen nicht zu begegnen. - Diese Art von Angriff wird Ihr System zwar nicht unbrauchbar machen, - kann aber die Internetverbindung sättigen. + von Diensten benötigt. Meist versuchen + DoS-Angriffe die Dienste oder den + Netzwerkstack einer Maschine zu überlasten, um so die Maschine + auszuschalten oder nicht nutzbar zu machen. Oft können + Angriffe auf Dienste durch die Angabe von Optionen verhindert + werden, die die Last, die ein Dienst auf das System unter + widrigen Umständen ausüben kann, begrenzt. Angriffen auf das + Netzwerk ist schwerer zu begegnen. Außer durch Trennen der + Internetverbindung ist zum Beispiel einem Angriff mit + gefälschten Paketen nicht zu begegnen. Diese Art von Angriff + wird das System zwar nicht unbrauchbar machen, kann aber die + Internetverbindung sättigen. Sicherheit @@ -200,25 +190,20 @@ Kompromittierte Accounts kommen noch häufiger als - DoS Angriffe vor. Viele Systemadministratoren lassen auf ihren - Maschinen noch die Dienste telnetd, - rlogind, rshd - und ftpd laufen. Verbindungen zu diesen - Servern werden nicht verschlüsselt. Wenn Sie eine - größere Benutzerzahl auf Ihrem System haben, die sich von - einem entfernten System anmelden, ist die Folge davon, dass - das Passwort eines oder mehrerer Benutzer ausgespäht wurde. - Ein aufmerksamer Systemadministrator wird die Logs über Anmeldungen - von entfernten Systemen auf verdächtige Quelladressen, auch - für erfolgreiche Anmeldungen, untersuchen. - - Es ist immer davon auszugehen, dass ein Angreifer, der - Zugriff auf einen Account hat, Zugang zum - root-Account erlangt. Allerdings gibt der - Zugriff auf einen Account auf einem gut gesicherten und - gepflegten System nicht notwendig Zugriff auf den - root-Account. Diese Unterscheidung ist wichtig, - da ein Angreifer, der keinen Zugang zu root + DoS-Angriffe vor. Viele + Systemadministratoren lassen immer noch unverschlüsselte Dienste + laufen, was zur Folge hat, dass das Passwort von Benutzern, die + sich von einem entfernten Standort anmelden, leicht ausgespäht + werden kann. Ein aufmerksamer Systemadministrator wird die + Logdateien über Anmeldungen von entfernten Systemen auf + verdächtige Quelladressen, auch für erfolgreiche Anmeldungen, + untersuchen. + + Allerdings gibt der Zugriff auf einen Account auf einem gut + gesicherten und gepflegten System nicht notwendig Zugriff auf + den root-Account. + Diese Unterscheidung ist wichtig, da ein Angreifer, der keinen + Zugang zu root besitzt, seine Spuren nicht verwischen kann. Er kann höchstens die Dateien des betreffenden Benutzers verändern oder die Maschine stilllegen. Kompromittierte Accounts sind sehr @@ -240,21 +225,7 @@ ihm erlaubt, root zu werden, wenn er einmal einen Account kompromittiert hat. Wenn ein Angreifer einen Weg gefunden hat, root zu werden, braucht er - vielleicht keine Hintertür auf dem System installieren. - Viele der heute - bekannten und geschlossenen Sicherheitslöcher, die zu einem - root Zugriff führen, verlangen vom Angreifer - einen erheblichen Aufwand, um seine Spuren zu verwischen. Aus diesem - Grund wird er sich wahrscheinlich entschließen, eine Hintertür - (engl. Backdoor) zu installieren. - Eine Hintertür erlaubt es - dem Angreifer leicht auf den root-Account - zuzugreifen. Einem klugen Systemadministrator erlaubt sie allerdings - auch, den Einbruch zu entdecken. Wenn Sie es einem Angreifer verwehren, - Hintertüren zu installieren, kann das schädlich für - Ihre Sicherheit sein, da es vielleicht verhindert, dass die - Lücke, die der Angreifer für den Einbruch ausgenutzt hat, - entdeckt wird. + vielleicht keine Hintertür auf dem System installieren. Sicherheitsmaßnahmen sollten immer in mehreren Schichten angelegt werden. Die Schichten können wie folgt eingeteilt @@ -262,8 +233,8 @@ - Absichern von root und - Accounts. + Absichern von root-Accounts. @@ -272,7 +243,7 @@ - Absichern von Accounts. + Absichern von Benutzer-Accounts. @@ -306,91 +277,69 @@ &os; absichern - - Kommandos und Protokolle - In diesem Abschnitt werden Anwendungen - fett gekennzeichnet, spezifische - Kommandos werden in einer Fixschrift - dargestellt und Protokolle verwenden die normale Schriftart. - Diese typographische Konvention hilft, Begriffe wie ssh - zu unterscheiden, die sowohl Protokoll als auch Kommando - sein können. - - - Die folgenden Abschnitte behandeln die im - letzten Abschnitt erwähnten - Methoden Ihr &os;-System zu sichern. + Dieser Abschnitt behandelt die im + letzten Abschnitt + erwähnten Methoden zur Absicherung eines &os;-Systems. Absichern von <systemitem class="username">root</systemitem> und Accounts - su + &man.su.1; - Zuallererst, kümmern Sie sich nicht um die Absicherung - von Accounts, wenn Sie root - noch nicht abgesichert haben. Auf den meisten Systemen ist - root ein Passwort zugewiesen. Sie - sollten immer davon ausgehen, dass - dieses Passwort kompromittiert ist. Das heißt nicht, - dass Sie das Passwort entfernen sollten, da es meist - für den Konsolenzugriff notwendig ist. Vielmehr heißt - es, dass Sie das Passwort nicht außerhalb der - Konsole, auch nicht zusammen mit &man.su.1;, verwenden sollten. - Stellen Sie sicher, dass Ihre PTYs in ttys als - unsicher markiert sind und damit Anmeldungen von - root mit telnet oder - rlogin verboten sind. Wenn Sie andere - Anwendungen wie SSH zum Anmelden - benutzen, vergewissern Sie sich, dass dort ebenfalls - Anmeldungen als root verboten sind. Für - SSH editieren Sie - /etc/ssh/sshd_config und überprüfen, - dass PermitRootLogin auf no - gesetzt ist. Beachten Sie jede Zugriffsmethode – Dienste - wie FTP werden oft vergessen. Nur an der Systemkonsole sollte - ein direktes Anmelden als root möglich - sein. + Auf den meisten Systemen ist root ein Passwort zugewiesen. + Sie sollten immer davon ausgehen, dass + dieses Passwort kompromittiert ist. Das heißt nicht, dass Sie + das Passwort entfernen sollten, da es meist für den + Konsolenzugriff notwendig ist. Vielmehr heißt es, dass Sie + das Passwort nicht außerhalb der Konsole, auch nicht zusammen + mit &man.su.1;, verwenden sollten. Stellen Sie sicher, dass + die PTYs in ttys als + insecure markiert sind und damit + Anmeldungen von root + verboten sind. In &os; ist die Anmeldung für root über &man.ssh.1; in der + Voreinstellung deaktiviert, da in + /etc/ssh/sshd_config + PermitRootLogin auf no + gesetzt ist. Beachten Sie jede Zugriffsmethode – + Dienste wie FTP werden oft vergessen. Nur an der + Systemkonsole sollte ein direktes Anmelden als root möglich sein. wheel - Natürlich müssen Sie als Systemadministrator - root-Zugriff erlangen können. Dieser - sollte aber durch zusätzliche Passwörter - geschützt sein. Ein Weg, Zugang zu root - zu ermöglichen, ist es, berechtigte Mitarbeiter in - /etc/group in die Gruppe - wheel aufzunehmen. Die Personen, die - Mitglieder in der Gruppe wheel sind, - können mit su zu root - wechseln. Ihre Mitarbeiter sollten niemals die Gruppe - wheel als primäre Gruppe in - /etc/passwd besitzen. Mitarbeiter sollten - der Gruppe staff angehören und über - /etc/group in wheel - aufgenommen werden. Es sollten auch nur die Mitarbeiter, die - wirklich root Zugriff benötigen in - wheel aufgenommen werden. Mit anderen - Authentifizierungsmethoden müssen Sie niemanden in - wheel aufnehmen. Wenn Sie z.B. - Kerberos benutzen, wechseln Sie mit - &man.ksu.1; zu root und der Zugriff wird - mit der Datei .k5login geregelt. Dies ist - vielleicht eine bessere Lösung, da es der - wheel-Mechanismus einem Angreifer immer - noch möglich macht, den root-Account - zu knacken, nachdem er einen Mitarbeiter-Account geknackt hat. - Obwohl der wheel-Mechanismus besser als - gar nichts ist, ist er nicht unbedingt die sicherste Lösung. + Natürlich muss ein Systemadministrator + root-Zugriff + erlangen können. Dieser sollte aber durch zusätzliche + Passwörter geschützt sein. Ein Weg, Zugang zu root zu ermöglichen, ist es, + berechtigte Mitarbeiter in /etc/group in + die Gruppe wheel + aufzunehmen. Die Personen dieser Gruppe können mit + su zu root wechseln. Nur die + Mitarbeiter, die tatsächlich root-Zugriff benötigen, + sollten in die Gruppe wheel aufgenommen werden. + Wenn Sie Kerberos für die Authentifizierung benutzen, + erstellen Sie .k5login im + Heimatverzeichnis von root, damit &man.su.1; + verwendet werden kann, ohne jemanden in wheel aufnehmen zu + müssen. - Um ein Konto komplett zu sperren, verwenden Sie den Befehl + Um ein Konto komplett zu sperren, verwenden Sie &man.pw.8;: - &prompt.root;pw lock staff + &prompt.root;pw lock staff Danach ist es diesem Benutzer nicht mehr möglich (auch nicht mit &man.ssh.1;), sich anzumelden. @@ -404,32 +353,30 @@ foobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh - wie folgt abgeändert werden: + mit &man.vipw.8; wie folgt abgeändert werden: foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh - Durch diese Änderung wird der Benutzer - foobar daran gehindert, sich auf - konventionellem Wege am System anzumelden. Diese - Maßnahmen greifen allerdings nicht, wenn das betroffene - System auch eine Anmeldung über - Kerberos oder &man.ssh.1; erlaubt. - - Diese Sicherheitsmechanismen setzen voraus, dass - Sie sich von einer restriktiven Maschine auf einer weniger restriktiven - Maschine anmelden. Wenn zum Beispiel auf Ihrem Hauptrechner alle - möglichen Arten von Servern laufen, so sollten auf Ihrer - Workstation keine Server laufen. Um Ihre Workstation vernünftig - abzusichern, sollten auf Ihr so wenig Server wie möglich bis hin - zu keinem Server laufen. Sie sollten zudem über einen - Bildschirmschoner verfügen, der mit einem Passwort - gesichert ist. Natürlich kann ein Angreifer, der physikalischen - Zugang zu einer Maschine hat, jede Art von Sicherheitsmechanismen - umgehen. Dieses Problem sollten Sie daher auch in Ihren - Überlegungen berücksichtigen. Beachten Sie dabei aber, - dass der Großteil der Einbrüche über das - Netzwerk erfolgt und die Einbrecher keinen Zugang zu der Maschine - besitzen. + Diese Änderung hindert den Benutzer foobar daran, sich auf + konventionellem Wege am System anzumelden. Diese Maßnahmen + greifen allerdings nicht, wenn das betroffene System auch + eine Anmeldung über Kerberos oder + &man.ssh.1; erlaubt. + + Diese Sicherheitsmechanismen setzen voraus, dass sich + Benutzer von einer restriktiven Maschine auf einer weniger + restriktiven Maschine anmelden. Wenn zum Beispiel auf dem + Hauptrechner alle möglichen Arten von Servern laufen, so + sollten auf der Workstation keine Server laufen. Um die + Workstation vernünftig abzusichern, sollten darauf so wenig + Server wie möglich bis hin zu keinem Server laufen. Sie + sollten zudem über einen Bildschirmschoner verfügen, der mit + einem Passwort gesichert ist. Natürlich kann ein Angreifer, + der physikalischen Zugang zu einer Maschine hat, jede Art von + Sicherheitsmechanismen umgehen. Beachten Sie, dass der + Großteil der Einbrüche über das Netzwerk erfolgt und die + Einbrecher keinen Zugang zu der Maschine besitzen. Mit Kerberos können Sie das Passwort eines Mitarbeiters an einer Stelle ändern @@ -443,8 +390,7 @@ Beschränkungen für Passwörter festlegen: Nicht nur das Ticket kann nach einiger Zeit ungültig werden, Sie können auch festlegen, dass ein Benutzer nach einer - bestimmten Zeit, z.B. nach einem Monat, das Passwort wechseln - muss. + bestimmten Zeit das Passwort wechseln muss. @@ -452,112 +398,39 @@ Servern und SUID/SGID Programmen - ntalk - - - comsat - - - finger - - Sandkästen - sshd - - - telnetd - - - rshd - - - rlogind - - - Ein kluger Systemadministrator lässt nur die - Dienste, die er wirklich braucht, laufen; nicht mehr und auch - nicht weniger. Beachten Sie, dass Server von Dritten die - fehleranfälligsten sind. Wenn Sie z.B. eine alte Version von - imapd oder popper - laufen lassen, ist das so, als würden Sie der ganzen Welt - freien Zugang zu root geben. Lassen Sie keine - Server laufen, die Sie vorher nicht genau überprüft haben. - Viele Server müssen nicht unter root - laufen, zum Beispiel können ntalk, - comsat und finger - in speziellen Sandkästen unter - einem Benutzer laufen. Ein Sandkasten ist keine perfekte Lösung, - wenn Sie nicht eine Menge Arbeit in die Konfiguration investieren, - doch bewährt sich hier das Prinzip, die Sicherheit in Schichten - aufzubauen. Wenn es einem Angreifer gelingt, in einen Server, - der in einem Sandkasten läuft, einzubrechen, dann muss - er immer noch aus dem Sandkasten selber ausbrechen. Je mehr Schichten - der Angreifer zu durchbrechen hat, desto kleiner sind seine Aussichten - auf Erfolg. In der Vergangenheit wurden praktisch in jedem - Server, der unter root läuft, Lücken - gefunden, die zu einem root Zugriff führten. - Dies betrifft selbst die grundlegenden Systemdienste. Wenn Sie eine - Maschine betreiben, auf der man sich nur mit - SSH anmelden kann, dann stellen Sie die - Dienste telnetd, - rshd oder rlogind - ab! - - In der Voreinstellung laufen unter &os; - ntalkd, comsat - und finger nun in einem Sandkasten. Ein - weiteres Programm, das in einem Sandkasten laufen sollte, ist - &man.named.8;. In /etc/defaults/rc.conf sind - die notwendigen Argumente, um named in - einem Sandkasten laufen zu lassen, in kommentierter Form schon - enthalten. Abhängig davon, ob Sie ein neues System installieren - oder ein altes System aktualisieren, sind die hierfür - benötigten Benutzer noch nicht installiert. - Ein kluger Systemadministrator sollte immer nach Möglichkeiten - suchen, Server in einem Sandkasten laufen zu lassen. - - sendmail + &man.sshd.8; - Einige Server wie sendmail, - popper, imapd - und ftpd werden normalerweise nicht in - Sandkästen betrieben. Zu einigen Servern gibt es Alternativen, - aber diese wollen Sie vielleicht wegen der zusätzlich nötigen - Arbeit nicht installieren (ein weiteres Beispiel für den - Widerspruch zwischen Sicherheit und Benutzerfreundlichkeit). - In diesem Fall müssen Sie die - Server unter root laufen lassen und auf die - eingebauten Mechanismen vertrauen, Einbrüche zu entdecken. - - Weitere potentielle Löcher, die zu einem - root-Zugriff führen können, sind - die auf dem System installierten SUID- und SGID-Programme. Die - meisten dieser Programme wie rlogin stehen - in /bin, - /sbin, - /usr/bin, oder - /usr/sbin. - Obwohl nichts 100% sicher ist, können Sie davon ausgehen, - dass die SUID- und SGID-Programme des Basissystems ausreichend - sicher sind. Allerdings werden ab und an in diesen Programmen - Löcher gefunden. 1998 wurde in Xlib ein - Loch gefunden, das xterm, der - normal mit SUID installiert wird, verwundbar machte. Es ist besser - auf der sicheren Seite zu sein, als sich später zu beklagen, - darum wird ein kluger Systemadministrator den Zugriff auf - SUID-Programme mit einer Gruppe, auf die nur Mitarbeiter zugreifen - können, beschränken. SUID-Programme, die niemand benutzt, - sollten mit chmod 000 deaktiviert werden. Zum - Beispiel braucht ein Server ohne Bildschirm kein - xterm Programm. SGID-Programme sind + Ein kluger Systemadministrator lässt nur die wirklich + benötigten Dienste laufen und ist sich darüber im Klaren, dass + Server von Dritten oft die fehleranfälligsten sind. Lassen + Sie keine Server laufen, die Sie vorher nicht genau überprüft + haben. Denken Sie zweimal darüber nach, bevor Sie einen + Dienst als root + laufen lassen. Viele Daemonen können unter einem separaten + Dienstkonto, oder in einem Sandkasten ausgeführt werden. + Aktivieren Sie keine unsicheren Dienste, wie &man.telnetd.8; + oder &man.rlogind.8;. + + Ein weiteres potentielles Risiko sind SUID- und + SGID-Programme. Die meisten dieser Programme, wie + &man.rlogin.1; stehen in /bin, + /sbin, /usr/bin, + oder /usr/sbin zur Verfügung. Obwohl + nichts 100% sicher ist, können Sie davon ausgehen, dass die + SUID- und SGID-Programme des Basissystems ausreichend + sicher sind. Es wird empfohlen, den Zugriff auf + SUID-Programme mit einer Gruppe, auf die nur Mitarbeiter + zugreifen können, zu beschränken. SUID-Programme, die niemand + benutzt, sollten gelöscht werden. SGID-Programme sind vergleichbar gefährlich. Wenn ein Einbrecher Zugriff auf - SGID-kmem Programm erhält, kann er - vielleicht /dev/kmem und damit die - verschlüsselte Passwortdatei lesen. Dies kompromittiert - unter Umständen jeden Account, der mit einem Passwort + SGID-kmem Programm + erhält, kann er vielleicht /dev/kmem und + damit die verschlüsselte Passwortdatei lesen. Dies + kompromittiert unter Umständen jeden Account, der mit einem Passwort geschützt ist. Alternativ kann ein Einbrecher, der in die Gruppe kmem eingebrochen ist, die Tastendrücke auf PTYs verfolgen. Dies schließt @@ -571,29 +444,22 @@ - Absichern von Accounts + Absichern von Benutzer-Accounts Accounts sind für gewöhnlich sehr schwierig - abzusichern. Während Sie drakonische Beschränkungen - für Ihre Mitarbeiter einrichten und deren Passwörter - als ungültig markieren können, werden Sie das - vielleicht bei den normalen Accounts nicht durchsetzen. - Wenn Sie über ausreichend Macht verfügen, gelingt es Ihnen - vielleicht doch, ansonsten müssen Sie diese Accounts - aufmerksam überwachen. Wegen der zusätzlichen - Administrationsarbeit und der nötigen technischen - Unterstützung ist die Verwendung von - SSH und Kerberos - mit normalen Accounts erschwert, obwohl das natürlich - sicherer als die Verwendung von verschlüsselten - Passwörtern ist. + abzusichern. Seien Sie daher aufmerksam bei der Überwachung + der Benutzerkonten. Die Verwendung von &man.ssh.1; und + Kerberos erfordert zwar zusätzliche + Administration und technische Unterstützung, ist aber + verglichen mit der verschlüsselten Passwort-Datei die bessere + Lösung. Absichern der Passwort-Datei - Der einzig sichere Weg ist, so viele Accounts wie möglich als - ungültig zu markieren und SSH oder + Der einzig sichere Weg ist, so viele Accounts wie möglich + als ungültig zu markieren und &man.ssh.1; oder Kerberos zu benutzen, um auf sie zuzugreifen. Obwohl die Datei /etc/spwd.db, die die verschlüsselten Passwörter enthält, @@ -601,88 +467,79 @@ Angreifer lesenden Zugriff auf diese Datei erlangen, ohne die Fähigkeit sie auch zu beschreiben. - Ihre Überwachungsskripten sollten Änderungen - an der Passwort-Datei melden (siehe Überprüfen der - Integrität von Dateien weiter unten). + Überwachungsskripten sollten Änderungen + an der Passwort-Datei melden. Dies wird in Überprüfen der Integrität von + Dateien beschrieben. Absichern des Kernels, der Geräte und von Dateisystemen - Wenn ein Angreifer root-Zugriff erlangt, - kann er so ziemlich alles mit Ihrem System anstellen, doch sollten Sie - es ihm nicht zu leicht machen. Die meisten modernen Kernel haben - zum Beispiel einen Gerätetreiber, der es erlaubt, Pakete - abzuhören. Unter &os; wird das Gerät - bpf genannt. Für gewöhnlich - wird ein Angreifer versuchen, dieses Gerät zu nutzen, um - Pakete abzuhören. Sie sollten ihm diese Gelegenheit nicht - geben und auf den meisten Systemen ist das Gerät - bpf nicht nötig. + Die meisten modernen Kernel haben einen Gerätetreiber, + der es erlaubt, Pakete abzuhören. Unter &os; wird das Gerät + bpf genannt. Dieses Gerät ist für + DHCP erforderlich, kann aber in der + Kernelkonfigurationsdatei entfernt werden, wenn das System + kein DHCP anbietet. - sysctl + &man.sysctl.8; - Auch wenn Sie bpf nicht verwenden, + + Auch wenn bpf deaktiviert ist, müssen Sie sich immer noch um /dev/mem und /dev/kmem sorgen. Außerdem kann der Angreifer immer noch auf die rohen Geräte (raw devices) - schreiben. Weiterhin gibt es ein Programm zum Nachladen von - Modulen in den Kernel: &man.kldload.8;. Ein unternehmungslustiger - Angreifer kann dies benutzen, um sein eigenes + schreiben. Ein Angreifer könnte &man.kldload.8; benutzen, um + sein eigenes bpf oder ein anderes zum Abhören geeignetes Gerät in den laufenden Kernel einzubringen. Um - dieses Problem zu vermeiden, müssen Sie den Kernel auf - einem höheren Sicherheitslevel laufen lassen, mindestens + diese Probleme zu vermeiden, lassen Sie den Kernel auf + einem höheren Sicherheitslevel laufen, mindestens auf securelevel 1. Das Securelevel des Kernels kann auf verschiedene Wege - gesetzt werden. Der einfachste Weg ist das erhöhen des - Securelevel des laufenden Kernels durch ein - sysctl der kern.securelevel - Kernel Variablen: + gesetzt werden. Der einfachste Weg, den Securelevel des + laufenden Kernels zu erhöhen, ist das Setzen von + kern.securelevel: &prompt.root; sysctl kern.securelevel=1 - Standardmässig bootet der &os; Kernel mit einem + In der Voreinstellung bootet der &os; Kernel mit einem Securelevel von -1. Der Securelevel wird solange bei -1 bleiben, bis er entweder durch den Administrator oder von &man.init.8; - durch einen Eintrag im Startup Script verändert wird. Der + durch einen Eintrag im Startskript verändert wird. Der Securelevel kann während des Systemstarts durch das Setzen - der Variable kern_securelevel_enable auf + von kern_securelevel_enable auf YES und der Wert der Variable kern_securelevel auf den gewünschten Securelevel in der /etc/rc.conf erhöht werden. - Der Standard Securelevel von einem &os;-System direkt nach - dem Start ist -1. Dies wird insecure mode genannt, - da zum Beispiel unverändeliche Dateiflags abgeschaltet werden - könnten, von allen Geräten gelesen und auf alle geschrieben - werden kann. - Sobald der Securelevel auf den Wert 1 oder höher gesetzt ist, werden die append-only und die unveränderlichen Dateien geschützt, die Flags können nicht abgeschaltet werden und der Zugriff auf raw Devices ist verboten. Höhere Levels - verbieten mehr Aktionen. Eine vollständige Liste - aller Securelevels finden Sie in &man.security.7;. + verbieten sogar noch weitere Aktionen. Eine vollständige + Beschreibung aller Securelevels finden Sie in &man.security.7; + und &man.init.8;. Das Erhöhen des Securelevels auf 1 oder höher - kann einige Probleme mit X11 verursachen (Zugriff auf - /dev/io wird geblockt), ebenso die Installation - von &os; aus den Quellen (der installworld - Teil muss zeitweilig die append-only und die - unveränderlichen Flags einiger Dateien zurücksetzen), - und auch noch in einigen anderen Fällen. Manchmal kann es, - wie bei X11, durch das sehr frühe Starten von &man.xdm.1; - im Boot Prozess möglich sein, dies zu umgehen, wenn der - Securelevel noch niedrig genug ist. - Workarounds wie dieser sind nicht f¨r alle Securelevels - und für alle Einschränkungen, die sie schaffen, + kann einige Probleme mit &xorg;, + verursachen, da der Zugriff auf /dev/io + geblockt wird, ebenso die Installation von &os; aus den + Quellen, da der installworld + Teil zeitweilig die append-only und die unveränderlichen + Flags einiger Dateien zurücksetzen muss. Manchmal kann es, + wie bei &xorg;, durch das sehr + frühe Starten von &man.xdm.1; im Boot Prozess möglich sein, + dies zu umgehen, wenn der Securelevel noch niedrig genug + ist. Workarounds wie dieser sind nicht für alle + Securelevels und für alle Einschränkungen, die sie schaffen, möglich. Ein bisschen Vorausplanung ist eine gute Idee. Das Verständnis für die Beschränkungen, die durch jedes Securelevel verursacht werden, ist wichtig, da sie @@ -694,20 +551,15 @@ Wenn das Securelevel des Kernel auf einen Wert von 1 oder höher gesetzt ist, kann es sinnvoll sein das schg Flag auf kritische Startdateien, - Verzeichnisse und Scripte (z.B. alles was läuft bis zu - dem Punkt auf dem das Securelevel gesetzt ist) zu setzen. Dies - könnte etwas übertrieben sein, und auch das Upgrade - des Systems ist sehr viel schwerer, wenn es auf einem hohen - Securelevel läuft. Ein strengerer Kompromiss ist es, das - System auf einem höheren Securelevel laufen zu lassen, aber - keine schg Flags für alle Systemdateien - und Verzeichnisse zu setzen. Eine andere Möglichkeit ist es, - einfach die Verzeichnisse / und - /usr read-only zu mounten. - Es sei darauf hingewiesen, dass Sie nicht vor lauter Überlegen - das Wichtigste, nämlich die Entdeckung eines Eindringens, - vergessen. - + Verzeichnisse und Skripte zu setzen. Ein weniger strenger + Kompromiss ist es, das System auf einem höheren Securelevel + laufen zu lassen, aber keine schg Flags für + alle Systemdateien und Verzeichnisse zu setzen. Eine andere + Möglichkeit ist es, die Verzeichnisse / + und /usr read-only zu mounten. Es sei + darauf hingewiesen, dass Sie nicht vor lauter Überlegen das + Wichtigste, nämlich die Entdeckung eines Eindringens, + vergessen. @@ -722,14 +574,12 @@ Arbeit mehr behindern als nützen. Die Maßnahme schützt zwar die Dateien, schließt aber auch eine Möglichkeit, - Veränderungen zu entdecken, aus. Die letzte Schicht des - Sicherheitsmodells – das Aufdecken von Einbrüchen – - ist sicherlich die wichtigste. Alle Sicherheitsmaßnahmen sind - nichts wert, oder wiegen Sie in falscher Sicherheit, wenn Sie - nicht in der Lage sind, einen möglichen Einbruch zu entdecken. - Die Hälfte der Sicherheitsmaßnahmen hat die Aufgabe, - einen Einbruch zu verlangsamen, um es zu ermöglichen, den - Einbrecher auf frischer Tat zu ertappen. + Veränderungen zu entdecken, aus. Sicherheitsmaßnahmen + sind nutzlos, oder schlimmer noch, vermitteln ein falsches + Gefühl von Sicherheit, wenn der potentielle Angreifer nicht + entdeckt wird. Die Aufgabe besteht nicht darin, den Angreifer + aufzuhalten, sondern seine Angriffe zu verzögern, um ihn dann + auf frischer Tat zu ertappen. Der beste Weg, einen Einbruch zu entdecken, ist es, nach veränderten, fehlenden oder unerwarteten Dateien zu suchen. @@ -890,14 +740,14 @@ Sendmail besitzt die Option , die besser als die eingebauten Optionen zur Begrenzung der Systemauslastung funktioniert. - Sie sollten beim Start von sendmail + Sie sollten beim Start von Sendmail MaxDaemonChildren so hoch setzen, dass Sie die erwartete Auslastung gut abfangen können. Allerdings sollten Sie den Wert nicht so hoch setzen, dass der Rechner über seine eigenen Füße fällt. Es ist auch klug, Sendmail im Queue-Modus () laufen zu - lassen. Der Dæmon (sendmail -bd) sollte + lassen. Der Daemon (sendmail -bd) sollte getrennt von den Queue-Läufen (sendmail -q15m) laufen. Wenn Sie trotzdem eine sofortige Auslieferung der Post wünschen, können Sie die Queue in einem geringeren @@ -931,7 +781,7 @@ named, wenn Sie den primären Namensdienst für eine Zone anbieten, ntalkd oder - sendmail erlauben. Wenn Sie die + Sendmail erlauben. Wenn Sie die Firewall so konfigurieren, das sie in der Voreinstellung alle Zugriffe erlaubt, ist es sehr wahrscheinlich, dass Sie vergessen, eine Reihe von Diensten zu blockieren bzw. einen @@ -1172,6 +1022,7 @@ Einmalpasswörter + Einmalpasswörter Sicherheit @@ -1179,98 +1030,89 @@ In der Voreinstellung unterstützt &os; - OPIE (One-time Passwords in - Everything), das in der Regel MD5-Hash-Funktionen - einsetzt. - - Im Folgenden werden drei verschiedene - Passwörter verwendet. Das erste ist Ihr normales System- oder - Kerberos-Passwort und wird im Folgenden System-Passwort - genannt. Das zweite ist das Einmalpasswort, das bei OPIE von - opiekey generiert und von - opiepasswd und dem Login-Programm akzeptiert wird. - Im Folgenden wird es Einmalpasswort genannt. Das dritte - Passwort ist das geheime Passwort, das Sie mit + One-time Passwords in Everything + (OPIE), das in der Voreinstellung + MD5-Hash-Funktionen einsetzt. + + Es gibt drei verschiedene Arten von Passwörtern. Das erste + ist das normales &unix;- oder Kerberos-Passwort. Das zweite ist + das Einmalpasswort, das von opiekey generiert + und von opiepasswd und dem Anmeldeprompt + akzeptiert wird. Das dritte Passwort ist das + geheime Passwort, das mit opiekey (manchmal auch mit - opiepasswd) zum Erstellen - der Einmalpasswörter verwenden. Dieses Passwort - werden wir im Folgenden geheimes Passwort - oder schlicht Passwort nennen. + opiepasswd) zum Erstellen der + Einmalpasswörter verwendet wird. - Das geheime Passwort steht in keiner Beziehung zu Ihrem - System-Passwort, beide können gleich sein, obwohl das nicht + Das geheime Passwort steht in keiner Beziehung zum + &unix;-Passwort. Beide können gleich sein, obwohl das nicht empfohlen wird. Die geheimen Passwörter von - OPIE sind nicht auf eine Länge von 8 Zeichen, + OPIE sind nicht auf eine Länge von 8 Zeichen, wie alte &unix; Passwörter Unter &os; darf das System-Passwort maximal - 128 Zeichen lang sein., beschränkt. - Sie können so lang sein, wie Sie wollen. Gebräuchlich sind - Passwörter, die sich aus sechs bis sieben Wörtern - zusammensetzen. Das OPIE-System arbeitet - größtenteils unabhängig von den - auf &unix;-Systemen verwendeten Passwort-Mechanismen. + 128 Zeichen lang sein., beschränkt. + Gebräuchlich sind Passwörter, die sich aus sechs bis sieben + Wörtern zusammensetzen. Das OPIE-System + arbeitet vollständig unabhängig von den auf &unix;-Systemen + verwendeten Passwort-Mechanismen. Neben dem Passwort gibt es noch zwei Werte, die für - OPIE wichtig sind. Der erste ist der - Initialwert (engl. seed - oder key), der aus zwei Buchstaben - und fünf Ziffern besteht. Der zweite Wert ist der - Iterationszähler, eine Zahl zwischen - 1 und 100. OPIE generiert das Einmalpasswort, indem + OPIE wichtig sind. Der erste ist der + Initialwert (engl. + seed oder + key), der aus zwei Buchstaben und + fünf Ziffern besteht. Der zweite Wert ist der + Iterationszähler, eine Zahl zwischen 1 und 100. + OPIE generiert das Einmalpasswort, indem es den Initialwert und das geheime Passwort aneinander hängt und dann die MD5-Hash-Funktion so oft, wie durch den Iterationszähler gegeben, anwendet. Das Ergebnis wird in - sechs englische Wörter umgewandelt, die Ihr Einmalpasswort - sind. Das Authentifizierungssystem (meistens PAM) merkt sich das - zuletzt benutzte Einmalpasswort und Sie sind authentisiert, - wenn die Hash-Funktion des Passworts dem vorigen Passwort - entspricht. Da nicht umkehrbare Hash-Funktionen benutzt werden, - ist es unmöglich, aus einem bekannten Passwort weitere - gültige Einmalpasswörter zu berechnen. Der - Iterationszähler wird nach jeder erfolgreichen Anmeldung um - eins verringert und stellt so die Synchronisation zwischen Benutzer - und Login-Programm sicher. Wenn der Iterationszähler den - Wert 1 erreicht, muss OPIE neu initialisiert werden. - - In jedem System werden mehrere Programme verwendet, die weiter - unten beschrieben werden. opiekey verlangt - einen Iterationszähler, einen Initialwert und ein geheimes - Passwort. Daraus generiert es ein Einmalpasswort oder eine Liste - von Einmalpasswörtern. opiepasswd wird - dazu benutzt, um OPIE zu initialisieren. Mit diesem Programm - können Passwörter, Iterationszähler oder - Initialwerte geändert werden. Als Parameter verlangt es + sechs englische Wörter umgewandelt, die das Einmalpasswort + ergeben. Das Authentifizierungssystem (meistens PAM) merkt sich + das zuletzt benutzte Einmalpasswort und der Benutzer ist + authentifiziert, wenn die Hash-Funktion des Passworts dem + vorigen Passwort entspricht. Da nicht umkehrbare + Hash-Funktionen benutzt werden, ist es unmöglich, aus einem + bekannten Passwort weitere gültige Einmalpasswörter zu + berechnen. Der Iterationszähler wird nach jeder erfolgreichen + Anmeldung um eins verringert und stellt so die Synchronisation + zwischen Benutzer und Login-Programm sicher. Wenn der + Iterationszähler den Wert 1 erreicht, muss + OPIE neu initialisiert werden. + + Es gibt ein paar Programme, die in diesen Prozess einbezogen + werden. &man.opiekey.1; akzeptiert einen Iterationszähler, + einen Initialwert und ein geheimes Passwort. Daraus generiert + es ein Einmalpasswort oder eine Liste von Einmalpasswörtern. + &man.opiepasswd.1; wird benutzt, um Passwörter, Iterationszähler + oder Initialwerte zu ändern. Als Parameter verlangt es entweder ein geheimes Passwort oder einen Iterationszähler oder einen Initialwert und ein Einmalpasswort. - opieinfo hingegen gibt den momentanen - Iterationszähler und Initialwert eines Benutzers aus. Diese - werden aus der Datei /etc/opiekeys - ermittelt. + &man.opieinfo.1; hingegen gibt den momentanen Iterationszähler + und Initialwert eines Benutzers aus, den es aus + /etc/opiekeys ermittelt. - Im Folgenden werden vier verschiedene Tätigkeiten beschrieben. - Zuerst wird erläutert, wie - opiepasswd über eine gesicherte Verbindung - eingesetzt werden, um Einmalpasswörter das erste Mal - zu konfigurieren oder das Passwort oder den Initialwert - zu ändern. Als nächstes wird erklärt, wie - opiepasswd über eine nicht gesicherte - Verbindung, oder zusammen mit opiekey über - eine gesicherte Verbindung eingesetzt werden, um dasselbe zu - erreichen. Als drittes wird beschrieben, wie - opiekey genutzt wird, - um sich über eine nicht gesicherte Verbindung anzumelden. - Die vierte Tätigkeit beschreibt, wie mit - opiekey eine Reihe von Schlüsseln - generiert wird, die Sie sich aufschreiben oder ausdrucken können, - um sich von Orten anzumelden, die über keine gesicherten + Es gibt vier verschiedene Arten von Tätigkeiten. Zuerst + wird erläutert, wie &man.opiepasswd.1; über eine gesicherte + Verbindung eingesetzt werden, um Einmalpasswörter das erste Mal + zu konfigurieren oder das Passwort oder den Initialwert zu + ändern. Als nächstes wird erklärt, wie &man.opiepasswd.1; über + eine nicht gesicherte Verbindung, oder zusammen mit + &man.opiekey.1; über eine gesicherte Verbindung eingesetzt + werden, um dasselbe zu erreichen. Als drittes wird beschrieben, + wie &man.opiekey.1; genutzt wird, um sich über eine nicht + gesicherte Verbindung anzumelden. Die vierte Tätigkeit + beschreibt, wie mit &man.opiekey.1; eine Reihe von Schlüsseln + generiert wird, die Sie sich aufschreiben oder ausdrucken + können, um sich von Orten anzumelden, die über keine gesicherten Verbindungen verfügen. Einrichten über eine gesicherte Verbindung - Um OPIE erstmals zu initalisieren, rufen Sie - opiepasswd auf: + Um OPIE erstmals zu initialisieren, + rufen Sie &man.opiepasswd.1; auf: &prompt.user; opiepasswd -c [grimreaper] ~ $ opiepasswd -f -c @@ -1292,27 +1134,27 @@ anmelden, sondern es wird genutzt, um das Einmalpasswort zu generieren. Die Zeile, die mit ID anfängt, enthält Ihren Login-Namen, den Iterationszähler und den - Initialwert. Diese Werte müssen Sie sich nicht behalten, da + Initialwert. Diese Werte müssen Sie sich nicht merken, da das System sie zeigen wird, wenn Sie sich anmelden. In der letzten Zeile steht das Einmalpasswort, das aus diesen Parametern - und Ihrem geheimen Passwort ermittelt wurde. Wenn sie sich jetzt - wieder anmelden wollten, dann müssten Sie dieses - Passwort benutzen. + und Ihrem geheimen Passwort ermittelt wurde. Bei der nächsten + Anmeldung müssen Sie dann dieses Einmalpasswort + benutzen. Einrichten über eine nicht gesicherte Verbindung - Um Einmalpasswörter über eine nicht gesicherte - Verbindung einzurichten, oder das geheime Passwort zu ändern, - müssen Sie über eine gesicherte Verbindung zu einer Stelle - verfügen, an der Sie opiekey ausführen. - Dies kann etwa die Eingabeaufforderung auf einer Maschine, der Sie - vertrauen, sein. 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 opiepasswd über die ungesicherte - Verbindung zu der Maschine, die Sie einrichten wollen: + Um Einmalpasswörter über eine nicht gesicherte Verbindung + einzurichten, oder das geheime Passwort zu ändern, müssen Sie + über eine gesicherte Verbindung zu einer Stelle verfügen, an + der Sie &man.opiekey.1; 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 @@ -1337,19 +1179,19 @@ &prompt.user; opiekey 498 to4268 Using the MD5 algorithm to compute response. -Reminder: Don't use opiekey from telnet or dial-in sessions. +Reminder: Don not use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT - Gehen Sie nun zurück zu der nicht gesicherten Verbindung + Gehen Sie zurück zu der nicht gesicherten Verbindung und geben dort das eben generierte Einmalpasswort ein. Erzeugen eines einzelnen Einmalpasswortes - Nachdem Sie OPIE eingerichtet haben, werden Sie beim - nächsten Anmelden wie folgt begrüßt: + Nachdem Sie OPIE eingerichtet haben, + werden Sie beim nächsten Anmelden wie folgt begrüßt: &prompt.user; telnet example.com Trying 10.0.0.1... @@ -1362,52 +1204,49 @@ otp-md5 498 gr4269 ext Password: - Anmerkung: OPIE besitzt eine nützliche Eigenschaft, - die hier nicht gezeigt ist. Wenn Sie an der Eingabeaufforderung - Return eingeben, wird die echo-Funktion eingeschaltet, - das heißt Sie sehen, was Sie tippen. Dies ist besonders - nützlich, wenn Sie ein generiertes Passwort von einem - Ausdruck abtippen müssen. + OPIE besitzt eine nützliche + Eigenschaft. Wenn Sie an der Eingabeaufforderung + Return drücken, wird die echo-Funktion + eingeschaltet, das heißt Sie sehen, was Sie tippen. Dies ist + besonders nützlich, wenn Sie ein generiertes Passwort von + einem Ausdruck abtippen müssen. MS-DOS Windows MacOS - Jetzt müssen Sie Ihr Einmalpasswort generieren, + Jetzt müssen Sie das Einmalpasswort generieren, um der Anmeldeaufforderung nachzukommen. Dies muss auf einem gesicherten System geschehen, auf dem Sie - oder opiekey ausführen können. - Dieses Programm gibt es übrigens auch für DOS, &windows; und - &macos;. Es benötigt den Iterationszähler - sowie den Initialwert als Parameter, die Sie mittels - cut-and-paste direkt von der Login-Aufforderung - nehmen können. + &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 + Login-Aufforderung nehmen können. Auf dem sicheren System: &prompt.user; opiekey 498 to4268 Using the MD5 algorithm to compute response. -Reminder: Don't use opiekey from telnet or dial-in sessions. +Reminder: Do not use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT - Mit dem jetzt generierten Einmalpasswort können - Sie die Anmeldeprozedur fortsetzen. + Sobald das Einmalpasswort generiert wurde, können Sie die + Anmeldeprozedur fortsetzen. Erzeugen von mehreren Einmalpasswörtern - Manchmal müssen Sie sich an Orte begeben, an denen - Sie keinen Zugriff auf eine sichere Maschine oder eine - sichere Verbindung haben. In diesem Fall können Sie - vorher mit opiekey - einige Einmalpasswörter generieren, die Sie sich - ausdrucken und mitnehmen können. Zum Beispiel: + Manchmal haben Sie keinen Zugriff auf eine sichere + Maschine oder eine sichere Verbindung. In diesem Fall können + Sie vorher mit &man.opiekey.1; einige Einmalpasswörter + generieren. Zum Beispiel: &prompt.user; opiekey -n 5 30 zz99999 Using the MD5 algorithm to compute response. -Reminder: Don't use opiekey from telnet or dial-in sessions. +Reminder: Do not use opiekey from telnet or dial-in sessions. Enter secret pass phrase: <secret password> 26: JOAN BORE FOSS DES NAY QUIT 27: LATE BIAS SLAY FOLK MUCH TRIG @@ -1420,39 +1259,39 @@ Iterationszähler wird durch gegeben. Beachten Sie bitte, dass die Passwörter in der umgekehrten Reihenfolge, in der sie - zu benutzen sind, ausgeben werden. Wenn Sie wirklich paranoid - sind, schreiben Sie sich jetzt die Passwörter auf, - ansonsten drucken Sie sie mit lpr aus. - Beachten Sie, dass jede Zeile den Iterationszähler - und das Einmalpasswort zeigt, trotzdem finden Sie es - vielleicht hilfreich, eine Zeile nach Gebrauch durchzustreichen. + zu benutzen sind, ausgeben werden. Wirklich paranoide + Benutzer können sich jetzt die Passwörter aufschreiben oder + ausdrucken. Sie sollten die Passwörter nach Gebrauch + durchstreichen. Einschränken der Benutzung von System-Passwörtern - OPIE kann die Verwendung von System-Passwörtern - abhängig von der Quell-IP-Adresse einschränken. - Die dazu nötigen Einstellungen werden in der Datei - /etc/opieaccess vorgenommen, die - bei der Installation des Systems automatisch erzeugt wird. - Weitere Informationen über diese Datei und - Sicherheitshinweise zu ihrer Verwendung entnehmen Sie bitte - der Hilfeseite &man.opieaccess.5;. + OPIE kann die Verwendung von + &unix;-Passwörtern abhängig von der + IP-Adresse einschränken. Die dazu nötigen + Einstellungen werden in /etc/opieaccess + vorgenommen, die bei der Installation des Systems automatisch + erzeugt wird. Weitere Informationen über diese Datei und + Sicherheitshinweise zu ihrer Verwendung finden Sie in + &man.opieaccess.5;. - Die Datei opieaccess könnte + opieaccess könnte beispielsweise die folgende Zeile enthalten: permit 192.168.0.0 255.255.0.0 Diese Zeile erlaubt es Benutzern, die sich von einer der - angegebenen Quell-IP-Adressen anmelden, ihr System-Passwort - zu verwenden. Beachten Sie bitte, dass eine Quell-IP-Adresse - leicht gefälscht werden kann. + angegebenen IP-Adressen anmelden, ihr + &unix;-Passwort zu verwenden. Beachten Sie bitte, dass eine + IP-Adresse leicht gefälscht werden + kann. Findet sich in opieaccess kein - passender Eintrag, muss die Anmeldung mit OPIE erfolgen. + passender Eintrag, muss die Anmeldung mit + OPIE erfolgen. @@ -1469,64 +1308,31 @@ TCP-Wrapper - Wahrscheinlich hat jeder, der &man.inetd.8; kennt, - schon mal von den TCP-Wrappern gehört. Die - wenigsten erkennen den vollen Nutzen der TCP-Wrapper - in einer Netzumgebung. Es scheint, dass die meisten - Leute Netzverbindungen mit einer Firewall absichern - wollen. Auch wenn eine Firewall ein mächtiges - Instrument ist, gibt es Sachen, die eine Firewall - nicht kann. Eine Firewall kann beispielsweise keine - Nachricht an den Verbindungsursprung senden. Genau - das und mehr können aber die - TCP-Wrapper. Im Folgenden werden - die Funktionen der TCP-Wrapper - und Beispiele für deren Konfiguration vorgestellt. - - Die TCP-Wrapper erweitern die - Steuerungsmöglichkeiten, die inetd - über die Dienste unter seiner Kontrolle hat. - Beispielsweise können Verbindungen protokolliert, - Nachrichten zurückgesandt oder nur interne Verbindungen - angenommen werden. Die TCP-Wrapper - bieten nicht nur eine weitere Sicherheitsschicht, die - teilweise auch von Firewalls geboten wird, sie bieten - darüber hinaus Funktionen zur Steuerung von - Verbindungen, die eine Firewall nicht bietet. - - Die erweiterten Funktionen der - TCP-Wrapper sind kein Firewall-Ersatz. - Sie sollten zusammen mit einer Firewall und anderen - Sicherheitsvorkehrungen eingesetzt werden. Die - TCP-Wrapper sind eine weitere - Sicherheitsschicht zum Schutz eines Systems. - - Da die Wrapper die Funktion von inetd - erweitern, wird im Folgenden vorausgesetzt, dass Sie den - Abschnitt über die - inetd-Konfiguration - schon gelesen haben. - - - Streng genommen handelt es sich bei den von &man.inetd.8; - gestarteten Programmen nicht um Daemonen. Da - sich diese Bezeichnung aber eingebürgert hat, wird sie auch - in diesem Abschnitt verwendet. - + TCP-Wrapper erweitern die Fähigkeiten von + . Beispielsweise können + Verbindungen protokolliert, Nachrichten zurückgesandt oder nur + interne Verbindungen angenommen werden. Einige dieser + Fähigkeiten können auch über eine Firewall implementiert werden, + TCP-Wrapper fügen jedoch noch eine weitere + Sicherheitsschicht und Kontrollmöglichkeiten hinzu, die eine + Firewall nicht bieten kann. + + TCP-Wrapper sollten nicht als Ersatz für + eine ordentlich konfigurierte Firewall angesehen werden, sondern + stattdessen in Verbindung mit einer Firewall und anderen + Sicherheitsmechanismen eingesetzt werden. TCP-Wrapper einrichten - Um die TCP-Wrapper unter &os; - zu benutzen, muss nur der inetd - aus rc.conf mit den voreingestellten - Optionen gestartet werden. - Die Konfigurationsdatei /etc/hosts.allow - darf keine Fehler enthalten; falls doch, werden die - Fehler mit &man.syslogd.8; protokolliert. + Um TCP-Wrapper unter &os; zu benutzen, + muss der &man.inetd.8;-Server aus rc.conf + mit den Optionen gestartet werden. + Anschließend muss /etc/hosts.allow + richtig konfiguriert werden. - Im Gegensatz zu anderen Implementationen der + Im Gegensatz zu anderen Implementierungen der TCP-Wrapper wird vom Gebrauch der Datei hosts.deny abgeraten. Die Konfiguration sollte sich vollständig in der @@ -1537,18 +1343,17 @@ abhängig vom Inhalt der Datei /etc/hosts.allow erlaubt oder gesperrt. Unter &os; wird in der Voreinstellung - jeder von inetd gestartete Dienst - erlaubt. Sehen wir uns zunächst die Grundkonfiguration - an. + jeder von &man.inetd.8; gestartete Dienst + erlaubt. Eine Konfigurationszeile ist wie folgt aufgebaut: Dienst : Adresse : Aktion. - Dienst ist der von inetd + Dienst ist der von &man.inetd.8; gestartete Dienst (auch Daemon genannt). Die - Adresse kann ein gültiger + Adresse ist ein gültiger Rechnername, eine IP-Adresse oder - eine IPv6-Adresse in Klammern - ([ ]) sein. + eine IPv6-Adresse in Klammern + ([ ]). Der Wert allow im Feld Aktion erlaubt Zugriffe, der Wert deny verbietet Zugriffe. @@ -1558,53 +1363,47 @@ zu, wird die entsprechende Aktion ausgeführt und die Abarbeitung ist beendet. - Es gibt noch weitere Konfigurationsoptionen, die - gleich erläutert werden. Das bisher Gesagte - reicht, um eine einfache Regel aufzustellen. Wenn - Sie einkommende POP3-Verbindungen - für den Dienst - mail/qpopper - erlauben wollen, erweitern Sie - hosts.allow um die nachstehende Zeile: + Um beispielsweise einkommende + POP3-Verbindungen für den Dienst + mail/qpopper zu erlauben, sollte + hosts.allow um die nachstehende Zeile + erweitert werden: # This line is required for POP3 connections: qpopper : ALL : allow Nachdem Sie die Zeile hinzugefügt haben, muss - inetd mithilfe von &man.service.8; - neu gestartet werden: + &man.inetd.8; neu gestartet werden: &prompt.root; service inetd restart - Erweiterte Konfiguration der TCP-Wrapper + Erweiterte Konfiguration - Die TCP-Wrapper besitzen + 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 + 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 und wird in den nächsten - zwei Abschnitten erläutert. + Programme möglich. - Externe Kommandos ausführen + Externe Kommandos Stellen Sie sich vor, eine Verbindung soll verhindert werden und gleichzeitig soll demjenigen, der die Verbindung aufgebaut hat, eine Nachricht - geschickt werden. Auf welche Art müssen - die TCP-Wrapper konfiguriert werden? - Die Option führt beim - Verbindungsaufbau ein Kommando aus. In der Datei - hosts.allow ist ein Beispiel - für diese Option enthalten: + 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 ALL : ALL \ @@ -1612,16 +1411,14 @@ : twist /bin/echo "You are not welcome to use %d from %h." Für jeden Dienst, der nicht vorher in - der Datei hosts.allow konfiguriert - wurde, wird die Meldung You are not allowed to use - daemon from - hostname. zurückgegegeben. - Dies ist besonders nützlich, wenn Sie die - Gegenstelle sofort benachrichtigen wollen, nachdem - die Verbindung getrennt wurde. Beachten Sie, dass - der Text der Meldung in Anführungszeichen - (") stehen muss, - es gibt keine Ausnahmen zu dieser Regel. + hosts.allow konfiguriert wurde, wird + die Meldung You are not allowed to use + daemon 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 @@ -1630,14 +1427,12 @@ überfluten. - Um einem Denial-of-Service-Angriff zu entgehen, - benutzen Sie die Option . - Wie die Option verbietet die Option - die Verbindung und führt - externe Kommandos aus. Allerdings sendet die - Option der Gegenstelle - 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 der Gegenstelle keine + Rückmeldung. Sehen Sie sich die nachstehende + Konfigurationsdatei an: # Verbindungen von example.com sind gesperrt: ALL : .example.com \ @@ -1647,44 +1442,36 @@ Damit sind Verbindungen von der Domain *.example.com gesperrt. - Jeder Verbindungsaufbau wird zudem in der Datei + 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 der Konfigurationsdatei wurde beispielsweise - das Metazeichen %a verwendet. Es gibt weitere - Metazeichen, die in der Hilfeseite &man.hosts.access.5; - beschrieben werden. + In diesem Beispiel wurden die Metazeichen + %a und %h verwendet. + Eine vollständige Liste der Metazeichen finden Sie in + &man.hosts.access.5;. Wildcards - Bisher verwendeten die Beispiele immer die - Wildcard ALL. Es gibt andere Wildcards, - welche die Funktionalität ein bisschen erweitern. Die Wildcard - ALL passt beispielsweise 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 dann - der Fall, wenn der Verbindungsaufbau von einer - IP-Adresse erfolgt, die nicht - zu dem übermittelten Rechnernamen passt. Das folgende - Beispiel sollte das ganze etwas klarer werden lassen: - + 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 &man.sendmail.8; + abgelehnt, wenn die IP-Adresse nicht zum + Rechnernamen passt: # Block possibly spoofed requests to sendmail: sendmail : PARANOID : deny - In diesem Beispiel werden alle Verbindungen zu - sendmail verboten, die von einer - IP-Adresse ausgehen, die nicht zum - Rechnernamen passt. - Die Wildcard PARANOID kann einen Dienst unbrauchbar machen, wenn der @@ -1694,14 +1481,13 @@ in Ihre Konfiguration aufnehmen wollen. - Weiteres über Wildcards und deren Funktion - lesen Sie bitte in der Hilfeseite &man.hosts.access.5; - nach. - - - Damit die gezeigten Beispiele funktionieren, müssen - Sie die erste Konfigurationszeile in der Datei - hosts.allow auskommentieren. + Weitere Informationen über Wildcards und deren Funktion + finden Sie in &man.hosts.access.5;. + + Damit die gezeigten Beispiele funktionieren, muss die + erste Konfigurationszeile in + hosts.allow auskommentiert + werden. @@ -1720,27 +1506,25 @@ Kerberos ist ein Netzwerk-Protokoll, das Benutzer mithilfe eines sicheren Servers authentifiziert. - Mit Risiken behaftete Dienste, wie das Anmelden an entfernten - Systemen oder das Kopieren von Daten auf entfernte Systeme, - werden durch Kerberos erheblich - sicherer und lassen sich leichter steuern. + Die Daten einer Kommunikation können verschlüsselt werden, + nachdem die Kommunikationspartner mit + Kerberos ihre Identität geprüft + haben. - Kerberos hat eine Aufgabe: + Kerberos hat nur eine Aufgabe: Die sichere Prüfung der Identität eines Benutzers (Authentifizierung) über das Netzwerk. Das System überprüft weder die Berechtigungen der Benutzer (Autorisierung), noch verfolgt es die durchgeführten - Aktionen (Audit). Daher sollte Kerberos - zusammen mit anderen Sicherheits-Systemen eingesetzt werden, die - diese Funktionen bereitstellen. Die Daten einer Kommunikation - können verschlüsselt werden, nachdem die - Kommunikationspartner mit Kerberos - ihre Identität geprüft haben. + Aktionen (Audit). Daher sollte + Kerberos zusammen mit anderen + Sicherheits-Systemen eingesetzt werden, die diese Funktionen + bereitstellen. Die folgenden Anweisungen beschreiben, wie Sie das mit &os; gelieferte Kerberos einrichten. - Eine vollständige Beschreibung des Systems entnehmen - Sie bitte den entsprechenden Hilfeseiten. + Eine vollständige Beschreibung des Systems entnehmen Sie den + entsprechenden Hilfeseiten. Die Beschreibung der Kerberos-Installation benutzt @@ -1748,13 +1532,14 @@ - Die DNS-Domain (Zone) heißt - example.org. + Die DNS-Domain (Zone) + heißt example.org. Das Kerberos-Realm - heißt EXAMPLE.ORG. + heißt EXAMPLE.ORG. @@ -1773,9 +1558,9 @@ Geschichte - Das MIT entwickelte - Kerberos, um Sicherheitsprobleme - auf dem Netzwerk zu lösen. Das + Das MIT hat + Kerberos entwickelt, um + Sicherheitsprobleme auf dem Netzwerk zu lösen. Das Kerberos-Protokoll verwendet starke Kryptographie, sodass ein Server die Identität eines Clients (der umgekehrte Vorgang ist auch möglich) @@ -1783,8 +1568,8 @@ Der Begriff Kerberos wird sowohl für das Protokoll als auch für Programme verwendet, die - Kerberos benutzen (wie - Kerberos-Telnet). Die aktuelle + Kerberos benutzen, wie + Kerberos-Telnet. Die aktuelle Protokollversion ist 5 und wird in RFC 1510 beschrieben. @@ -1798,18 +1583,17 @@ eingesetzt, unterlag aber Export-Beschränkungen, da sie in den USA entwickelt wurde. Die MIT-Version von - Kerberos befindet sich im Port - security/krb5. + Kerberos ist als Port oder Paket + security/krb5 verfügbar. Heimdal ist eine weitere Implementierung der Protokollversion 5. Sie wurde außerhalb der USA entwickelt und unterliegt daher keinen Export-Beschränkungen. Heimdal-Kerberos befindet sich - im Port security/heimdal + im Port oder Paket security/heimdal und das Basissystem von &os; enthält eine minimale Installation von Heimdal. - Um möglichst viele Benutzer anzusprechen, verwenden - die folgenden Beispiele die in &os; enthaltene + Die folgenden Beispiele verwenden die in &os; enthaltene Heimdal-Distribution. @@ -1830,9 +1614,9 @@ das KDC erhöhte Sicherheitsanforderungen. - Obwohl das KDC wenig Ressourcen eines - Rechners benötigt, sollte es wegen der - Sicherheitsanforderungen auf einem separaten Rechner + Obwohl der Kerberos-Server + wenig Ressourcen benötigt, sollte das KDC + wegen der Sicherheitsanforderungen auf einem separaten Rechner installiert werden. Das KDC wird in @@ -1841,9 +1625,8 @@ kerberos5_server_enable="YES" kadmind5_server_enable="YES" - Danach wird die Konfigurationsdatei von - Kerberos, - /etc/krb5.conf, erstellt: + Danach wird /etc/krb5.conf + wie folgt bearbeitet: [libdefaults] default_realm = EXAMPLE.ORG @@ -1857,16 +1640,17 @@ Diese Einstellungen setzen voraus, dass der voll qualifizierte Name des KDCs - kerberos.example.org ist. - Wenn Ihr KDC einen anderen Namen hat, - müssen Sie in der DNS-Zone einen Alias-Eintrag (CNAME-Record) - für das KDC hinzufügen. + kerberos.example.org ist. + Wenn das KDC einen anderen Namen hat, + muss in der DNS-Zone ein Alias-Eintrag + (CNAME-Record) für das KDC hinzugefügt + werden. - Auf großen Netzwerken mit einem ordentlich - konfigurierten BIND - DNS-Server kann die Datei verkürzt - werden: + In großen Netzwerken mit einem ordentlich + konfigurierten DNS-Server kann die Datei + aus dem obigen Beispiel verkürzt werden: [libdefaults] default_realm = EXAMPLE.ORG @@ -1882,42 +1666,39 @@ - Damit Klienten die + Damit die Clients die Kerberos-Dienste benutzen - können, muss die Datei /etc/krb5.conf + können, muss /etc/krb5.conf entweder die vollständige Konfiguration enthalten oder eine minimale Konfiguration enthalten - und zusätzlich ein DNS-Server - richtig eingerichtet sein. + und zusätzlich ein + DNS-Server richtig eingerichtet + sein. Im nächsten Schritt wird die Kerberos-Datenbank eingerichtet. Die Datenbank enthält die Schlüssel aller Prinzipale und ist mit einem Passwort geschützt. Dieses Passwort - brauchen Sie nicht zu behalten, da ein davon abgeleiteter - Schlüssel in der Datei /var/heimdal/m-key - gespeichert wird. Den Schlüssel erstellen Sie, indem - Sie das Programm kstash aufrufen und - ein Passwort eingeben. - - Nachdem Sie den Schlüssel in - /var/heimdal/m-key erstellt haben, - können Sie die Datenbank mit dem Kommando - kadmin initialisieren. Verwenden - Sie hierbei die Option (lokal). Mit - dieser Option wird die Datenbank lokal modifiziert. Normal - würde der kadmind-Dienst benutzt, - der aber zu diesem Zeitpunkt noch nicht läuft. An - der Eingabeaufforderung von kadmin - können Sie mit dem Kommando init - die Datenbank des Realms einrichten. - - Zuletzt erstellen Sie mit dem Kommando add - Ihren ersten Prinzipal. Benutzen Sie die voreingestellten - Optionen; Sie können die Einstellungen später - mit dem Kommando modify ändern. - An der Eingabeaufforderung zeigt das Kommando + brauchen Sie sich nicht merken, da ein davon abgeleiteter + Schlüssel in /var/heimdal/m-key + gespeichert wird. Um den Schlüssel zu erstellen, rufen Sie + &man.kstash.8; auf und geben Sie ein Passwort ein. + + Nachdem der Schlüssel erstellt wurde, sollte die + Datenbank initialisiert werden. Das + Kerberos-Werkzeug &man.kadmin.8; + kann mit kadmin -l im lokalen Modus benutzt + werden, ohne den Netzwerkdienst, welcher zu diesem Zeitpunkt + noch nicht läuft, zu verwenden. An der Eingabeaufforderung + von &man.kadmin.8; kann mit init + die Datenbank des Realms initialisiert werden. + + Zuletzt wird mit add das erste + Prinzipal erstellt. Benutzen Sie die voreingestellten + Optionen. Die Einstellungen können später + modify verändert werden. An der + Eingabeaufforderung von &man.kadmin.8; zeigt ? Hilfetexte an. Zusammengefasst wird die Datenbank wie folgt @@ -1938,14 +1719,14 @@ Verifying password - Password: xxxxxxxx Jetzt kann das KDC gestartet werden. - Führen Sie zum Start der Dienste die Kommandos - /etc/rc.d/kerberos start und - /etc/rc.d/kadmind start aus. Obwohl + Führen Sie zum Start der Dienste + service kerberos start und + service kadmind start aus. Obwohl zu diesem Zeitpunkt noch keine kerberisierten Dienste - laufen, können Sie die Funktion des KDCs - schon überprüfen. Für den eben angelegten + laufen, kann die Funktion des KDCs + schon überprüft werden. Für den eben angelegten Benutzer können Sie sich vom KDC - Tickets holen und diese Tickets anzeigen: + Tickets holen und anzeigen lassen: &prompt.user; kinit tillman tillman@EXAMPLE.ORG's Password: @@ -1957,8 +1738,8 @@ Issued Expires Principal Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG - Dieses Ticket kann, nachdem Sie Ihre Arbeit beendet haben, - zurückgezogen werden: + Nachdem der Test abgeschlossen ist, kann das temporäre + Ticket zurückgezogen werden: &prompt.user; kdestroy @@ -1971,56 +1752,68 @@ Dienste einrichten - Alle Rechner, die kerberisierte Dienste anbieten, - müssen eine Kopie der - Kerberos-Konfigurationsdatei - /etc/krb5.conf besitzen. Sie - können die Datei einfach vom KDC - kopieren. - - Anschließend müssen Sie die Datei - /etc/krb5.keytab erzeugen. Im - Gegensatz zu normalen Workstations benötigt jeder - Server eine keytab. - Diese Datei enthält den Schlüssel des - Servers, mit dem sich der Server und das - KDC gegenseitig authentifizieren - können. Die Datei muss sicher auf den Server - transportiert werden (beispielsweise mit &man.scp.1; - oder einer Diskette). Unter keinen Umständen - darf die Datei im Klartext, zum Beispiel mit - FTP, übertragen werden, - da sonst die Sicherheit des Servers gefährdet - ist. - - Sie können die keytab auch - mit dem Programm kadmin übertragen. - Da Sie mit kadmin sowieso einen Host-Prinzipal - für den Server einrichten müssen, ist das ganz - praktisch. - - Sie müssen allerdings schon ein Ticket - besitzen und berechtigt sein, kadmin - auszuführen. Die Berechtigung erhalten Sie durch - einen Eintrag in der Zugriffskontrollliste - kadmind.acl. Weitere Informationen - über Zugriffskontrolllisten erhalten Sie in den - Heimdal-Info-Seiten (info heimdal) - im Abschnitt Remote administration. Wenn - der Zugriff auf kadmin von entfernten - Maschinen verboten ist, müssen Sie sich sicher - auf dem KDC anmelden (lokale Konsole, - &man.ssh.1; oder kerberisiertes Telnet) und die - keytab lokal mit - kadmin -l erzeugen. - - Nachdem Sie die Datei /etc/krb5.conf - installiert haben, können Sie das Kommando - kadmin benutzen. An der Eingabeaufforderung - von kadmin erstellt das Kommando - add --random-key den Host-Prinzipal - und das Kommando ext extrahiert den - Schlüssel des Prinzipals in eine Datei: + Bei der Konfiguration eines Servers für die + Kerberos-Authentifizierung muss + zuerst sichergestellt werden, dass + /etc/krb5.conf richtig konfiguriert ist. + Die Datei kann entweder vom KDC kopiert, + oder auf dem neuen System regeneriert werden. + + Als nächstes muss auf dem Server die + /etc/krb5.keytab erzeugt werden. Dies + ist der Hauptbestandteil um Dienste zu + kerberisieren und entspricht der Erzeugung + eines geheimen Schlüssels zwischen dem Dienst und dem + KDC. Das Geheimnis ist ein + kryptographischer Schlüssel, der in einem + keytab> abgelegt wird. Diese Datei + enthält den Schlüssel des Servers, mit dem sich der Server und + das KDC gegenseitig authentifizieren + können. Sie muss in einer sicheren Art und Weise an den + Server übertragen werden, da ansonsten die Sicherheit des + Servers gefährdet ist, wenn z.B. die Schlüssel öffentlich + werden. In der Regel wird die keytab auf + einem vertrauenswürdigen Rechner mit kadmin + erzeugt und anschließend sicher auf den Server übertragen, + beispielsweise mit &man.scp.1;. Wenn die + Sicherheitsrichtlinien es erlauben, kann die Datei auch direkt + auf dem Server erzeugt werden. Es ist sehr wichtig, dass die + keytab auf sichere Weise auf den Server + übertragen wird. Wenn der Schlüssel einer anderen Partei + bekannt wird, kann sich diese Partei den Benutzern als + Server ausgeben! Da der Eintrag für das Host-Prinzipal für + die KDC-Datenbank auch mit + kadmin erstellt wird, ist es praktisch, + kadmin direkt auf dem Server zu + benutzen. + + Natürlich ist auch kadmin ein + kerberisierter Dienst: ein + Kerberos-Ticket ist erforderlich, + um sich gegenüber dem Netzwerkdienst zu authentifizieren und + um sicherzustellen, dass der Benutzer, der + kadmin ausführt, tatsächlich vorhanden ist. + kadmin wird nach dem Passwort fragen, um + ein neues Ticket zu generieren. Das Prinzipal, das sich mit + dem kadmin-Dienst authentifiziert, muss über die + Zugriffskontrollliste kadmin.acl dazu + berechtigt sein. Weitere Informationen über + Zugriffskontrolllisten finden Sie in den Heimdal-Info-Seiten + (info heimdal) im Abschnitt + Remote administration. Wenn der Zugriff auf + kadmin von entfernten Rechnern verboten + ist, kann sich der Administrator entweder über die lokale + Konsole oder über &man.ssh.1; mit dem KDC + verbinden, um die lokale Administration mit + kadmin -l durchzuführen. + + Nach der Installation von + /etc/krb5.conf, können Sie das Kommando + add --random-key in + kadmin ausführen, um das Host-Prinzipal in + die Datenbank zu schreiben. Das Kommando + ext extrahiert den Schlüssel des Prinzipals + in eine eigene keytab: &prompt.root; kadmin kadmin> add --random-key host/myserver.example.org @@ -2030,105 +1823,82 @@ kadmin> ext host/myserver.example.org kadmin> exit - Das Kommando ext (von - extract) speichert den - extrahierten Schlüssel in der Datei - /etc/krb5.keytab. - - Wenn auf dem KDC, vielleicht aus - Sicherheitsgründen, kadmind - nicht läuft, können Sie das Kommando - kadmin von entfernten Rechnern nicht - benutzen. In diesem Fall legen Sie den Host-Prinzipal - host/myserver.EXAMPLE.ORG direkt - auf dem KDC an. Den Schlüssel - extrahieren Sie in eine temporäre Datei (damit - die Datei /etc/krb5.keytab nicht - überschrieben wird): + Beachten Sie, dass ext den + extrahierten Schlüssel standardmäßig in + /etc/krb5.keytab speichert. Das ist + gut, wenn das Kommando auf dem kerberisierten Server + ausgeführt wird, ansonsten sollte das Argument + --keytab + pfad/zur/datei + benutzt werden, wenn die keytab an einen anderen Ort + extrahiert wird: &prompt.root; kadmin -kadmin> ext --keytab=/tmp/example.keytab host/myserver.example.org +kadmin> ext --keytab=/tmp/example.keytab host/myserver.example.org kadmin> exit - Anschließend müssen Sie die erzeugte - example.keytab sicher auf den - Server kopieren (mit scp oder - mithilfe einer Diskette). Geben Sie auf jeden Fall - einen anderen Namen für die keytab - an, weil sonst die keytab des - KDCs überschrieben würde. + Anschließend kann die erzeugte keytab sicher mit + scp auf Server oder auf einen + Wechseldatenträger kopiert werden. Geben Sie auf jeden Fall + einen anderen Namen für die keytab an, weil sonst die keytab + des KDCs überschrieben würde. Wegen der Datei krb5.conf kann der Server nun mit dem KDC kommunizieren und seine Identität mithilfe der Datei krb5.keytab nachweisen. Jetzt - können wir kerberisierte Dienste aktivieren. - Für telnet muss die folgende - Zeile in /etc/inetd.conf eingefügt - werden: - - telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a user - - Ausschlaggebend ist, dass die Authentifizierungs-Methode - mit auf user gesetzt - wird. Weitere Details entnehmen Sie bitte der Hilfeseite - &man.telnetd.8;. - - Nachdem sie die Zeile in /etc/inetd.conf - eingefügt haben, starten Sie &man.inetd.8; mit - dem Kommando /etc/rc.d/inetd restart - durch. + können die kerberisierten Dienste aktiviert werden. Einer der + gebräuchlichsten Dienste ist &man.sshd.8;, der + Kerberos über + GSS-API unterstützt. Fügen Sie folgende + Zeile in /etc/ssh/sshd_config ein: + + GSSAPIAuthentication yes + + Nach dieser Änderung muss &man.sshd.8; mit + service sshd restart neu gestartet werden, + damit die neue Konfiguration wirksam wird. Heimdal <application>Kerberos</application>-Clients einrichten + Kerberos5 Clients einrichten - Ein Client lässt sich leicht einrichten. - Sie benötigen nur die - Kerberos-Konfigurationsdatei - /etc/krb5.conf. Kopieren Sie - die Konfigurationsdatei einfach vom KDC - auf den Client. - - Sie können jetzt mit kinit - Tickets anfordern, mit klist Tickets - anzeigen und mit kdestroy Tickets - löschen. Sie können mit - Kerberos-Anwendungen kerberisierte - Server ansprechen. Wenn das nicht funktioniert, - Sie aber Tickets anfordern können, hat wahrscheinlich - der kerberisierte Server ein Problem und nicht der - Client oder das KDC. - - Wenn Sie eine Anwendung wie telnet - testen, können Sie mit einem Paket-Sniffer - (beispielsweise &man.tcpdump.1;) überprüfen, - dass Passwörter verschlüsselt übertragen - werden. Probieren Sie auch die Option - von telnet, die den gesamten Datenverkehr - verschlüsselt (analog zu ssh). - - Zu Heimdal gehören noch weitere Anwendungen. - Allerdings enthält das &os;-Basissystem nur eine - minimale Heimdal-Installation mit nur einer - kerberisierten Anwendung: telnet. - - Der Heimdal-Port enthält noch mehr kerberisierte - Anwendungen wie ftp, rsh, - rcp und rlogin. - Der MIT-Port enthält ebenfalls - weitere kerberisierte Anwendungen. - - - - Die Benutzerkonfigurationsdateien - <filename>.k5login</filename> und - <filename>.k5users</filename> + Genau wie der Server, benötigt auch der Client eine + Konfiguration in /etc/krb5.conf. + Kopien Sie die Datei (sicher) vom KDC + auf den Client, oder schreiben Sie die Datei bei Bedarf + einfach neu. Testen Sie den Client, indem Sie mit + kinit Tickets anfordern, mit + klist Tickets anzeigen und mit + kdestroy Tickets löschen. + Kerberos-Anwendungen sollten auch + kerberisierte Server ansprechen können. Wenn das nicht + funktioniert, Sie aber Tickets anfordern können, hat + wahrscheinlich der kerberisierte Server ein Problem und nicht + der Client oder das KDC. Im Falle eines + kerberisierten &man.ssh.1; ist GSS-API in + der Voreinstellung deaktiviert. Testen Sie daher mit + ssh -o GSSAPIAuthentication=yes + hostname. + + Wenn Sie die kerberisierten Anwendungen testen, können Sie + einen Paket-Sniffer wie tcpdump benutzen, + um sicherzustellen, dass keine sensiblen Informationen im + Klartext übertragen werden. + + Es stehen verschiedene + Kerberos-Anwendungen zur Verfügung. + Die Anwendungen, die SASL benutzen, können + dann auch GSS-API benutzen. Viele Arten + von Anwendungen können Kerberos zur + Authentifizierung verwenden, vom Jabber-Client bis zum + IMAP-Client. .k5login @@ -2138,42 +1908,30 @@ Normalerweise wird ein - Kerberos-Prinzipal wie - tillman@EXAMPLE.ORG auf ein lokales - Benutzerkonto, beispielsweise tillman, - abgebildet. Daher benötigen Client-Anwendungen (zum - Beispiel telnet) keinen Benutzernamen. - - Manchmal wird aber Zugriff auf ein lokales Benutzerkonto - benötigt, zu dem es keinen passenden + Kerberos-Prinzipal auf ein lokales + Benutzerkonto abgebildet. Manchmal wird aber Zugriff auf ein + lokales Benutzerkonto benötigt, zu dem es keinen passenden Kerberos-Prinzipal gibt. - Der Prinzipal tillman@EXAMPLE.ORG - bräuchte beispielsweise Zugriff auf das Konto - webdevelopers. Ebenso könnten + Der Prinzipal tillman@EXAMPLE.ORG bräuchte + beispielsweise Zugriff auf das Konto webdevelopers. Ebenso könnten andere Prinzipale auf dieses Konto zugreifen wollen. Die Dateien .k5login und .k5users im Heimatverzeichnis eines - Benutzerkontos gewähren Zugriffe ähnlich wie - die Dateien .hosts und - .rhosts. Um den Prinzipalen - tillman@example.org und - jdoe@example.org auf das Konto - webdevelopers zu geben, wird im - Heimatverzeichnis von webdevelopers - die Datei .k5login mit folgendem - Inhalt angelegt: - - tillman@example.org -jdoe@example.org - - Die angegebenen Prinzipale haben nun ohne ein gemeinsames - Passwort Zugriff auf das Konto. - - Einzelheiten entnehmen Sie bitte den Hilfeseiten - zu diesen Dateien. Die Datei .k5users - wird in der Hilfeseite des Kommandos ksu - beschrieben. + Benutzers können verwendet werden, um dieses Problem zu lösen. + Mit der folgenden .k5login im + Heimatverzeichnis des Benutzers webdevelopers haben beide + Prinzipale auch ohne das gemeinsame Passwort Zugriff auf das + Konto: + + tillmann@example.org +jdoe@example.org + + Weitere Informationen zu .k5users + finden Sie in &man.ksu.1;. @@ -2188,14 +1946,13 @@ Wenn Sie den Heimdal-Port oder den MIT-Port benutzen, muss in der Umgebungsvariable PATH der Pfad zu - den Programmen des Ports vor dem Pfad zu den - Kerberos-Programmen des Systems - stehen. + den Kerberos-Programmen vor dem + Pfad zu den Programmen des Systems stehen. - Sind die Uhrzeiten der Systeme synchronisiert? - Wenn nicht, schlägt vielleicht die Authentifizierung + Wenn die Clients im Realm ihre Uhrzeit nicht + synchronisieren, schlägt vielleicht die Authentifizierung fehl. beschreibt, wie Sie mithilfe von NTP die Uhrzeiten synchronisieren. @@ -2203,24 +1960,24 @@ Die MIT- und Heimdal-Systeme - arbeiten bis auf kadmin gut zusammen. - Für kadmin wurde das Protokoll - nicht normiert. + arbeiten bis auf kadmin, welches nicht + standardisiert ist, gut zusammen. Wenn Sie den Namen eines Rechners ändern, - müssen Sie auch den host/-Prinzipal - ändern und die Datei keytab - aktualisieren. Dies betrifft auch spezielle Einträge - wie den Prinzipal für Apaches www/mod_auth_kerb. + müssen Sie auch den host/-Prinzipal ändern und + die keytab aktualisieren. Dies + betrifft auch spezielle Einträge wie den Prinzipal für + Apaches www/mod_auth_kerb. - Die Rechnernamen müssen vor- und - rückwärts aufgelöst werden (im - DNS oder in - /etc/hosts). + Alle Rechner in einem Realm müssen vor- und + rückwärts aufgelöst werden können. Entweder über + DNS, zumindest aber über + /etc/hosts. CNAME-Einträge im DNS funktionieren, aber die entsprechenden A- und PTR-Einträge müssen @@ -2234,10 +1991,11 @@ Einige Betriebssysteme installieren ksu mit falschen Zugriffsrechten; - es fehlt das Set-UID-Bit für root. - Das mag aus Sicherheitsgründen richtig sein, - doch funktioniert ksu dann nicht. - Dies ist kein Fehler des KDCs. + es fehlt das Set-UID-Bit für root. Das hat zur Folge, + dass ksu nicht funktioniert. Dies ist + ein Fehler in den Zugriffsrechten und kein Fehler des + KDCs. @@ -2249,8 +2007,11 @@ Sie das modify_principal von kadmin, um die maximale Gültigkeitsdauer für den Prinzipal selbst - und den Prinzipal krbtgt - zu erhöhen. + und den Prinzipal krbtgt + zu erhöhen. Das Prinzipal kann dann mit + kinit -l ein Ticket mit einer + längeren Gültigkeit beantragen. @@ -2272,7 +2033,7 @@ erhält der Benutzer einen Sitzungs-Schlüssel für die künftige verschlüsselte Kommunikation mit dem KDC und das - Ticket-Granting-Ticket. Das Ticket-Granting-Ticket + TGT. Das TGT wiederum ist mit dem Schlüssel des KDCs verschlüsselt. Diese Verschlüsselung ist für den Benutzer völlig transparent und @@ -2284,15 +2045,15 @@ Wenn Sie OpenSSH verwenden und Tickets mir einer langen Gültigkeit - (beispielsweise einer Woche) benutzen, setzen Sie die Option - in der Datei + (beispielsweise einer Woche) benutzen, setzen Sie + in sshd_config auf no. - Ansonsten werden Ihre Tickets gelöscht, wenn Sie + Ansonsten werden die Tickets gelöscht, wenn Sie sich abmelden. - Host-Prinzipale können ebenfalls Tickets mit + Host-Prinzipale können Tickets mit längerer Gültigkeit besitzen. Wenn der Prinzipal eines Benutzers über ein Ticket verfügt, das eine Woche gültig ist, das Ticket des @@ -2304,15 +2065,13 @@ Wenn Sie mit krb5.dict die - Verwendung schlechter Passwörter verhindern wollen, - geht das nur mit Prinzipalen, denen eine Passwort-Policy - zugewiesen wurde. Die Hilfeseite von - kadmind beschreibt kurz, wie - krb5.dict verwendet wird. Das - Format von krb5.dict ist - einfach: Die Datei enthält pro Zeile ein Wort. - Sie können daher einen symbolischen Link auf - /usr/share/dict/words erstellen. + Verwendung schlechter Passwörter verhindern wollen, wie + in &man.kadmin.8; beschrieben, geht das nur mit + Prinzipalen, denen eine Passwort-Policy zugewiesen wurde. + Das Format von krb5.dict enthält pro + Zeile ein Wort. Sie können daher einen symbolischen Link + auf /usr/share/dict/words + erstellen. @@ -2335,8 +2094,8 @@ Client-Anwendungen leicht geänderte Kommandozeilenoptionen besitzen. Folgen Sie bitte der Anleitung auf der Kerberos-Seite - (http://web.mit.edu/Kerberos/www/) des - MITs. Achten Sie besonders auf den + http://web.mit.edu/Kerberos/www/ + des MITs. Achten Sie besonders auf den Suchpfad für Anwendungen. Der MIT-Port wird standardmäßig in /usr/local/ @@ -2351,7 +2110,7 @@ erscheint bei der Anmeldung mit telnetd und klogind die Fehlermeldung incorrect permissions on cache file. - Lesen Sie dazu bitte die im Port enthaltene Datei + Lesen Sie dazu die im Port enthaltene Datei /usr/local/share/doc/krb5/README.FreeBSD. Wichtig ist, dass zur Authentifizierung die Binärdatei login.krb5 verwendet wird, die @@ -2359,7 +2118,9 @@ korrekt ändert. - In der Datei rc.conf müssen + Wird + MIT-Kerberos auf + &os; eingesetzt, sollten in rc.conf folgende Zeilen aufgenommen werden: kerberos5_server="/usr/local/sbin/krb5kdc" @@ -2368,8 +2129,9 @@ kadmind5_server_enable="YES" Diese Zeilen sind notwendig, weil die Anwendungen - von MIT-Kerberos Binärdateien - unterhalb von /usr/local installieren. + von MIT-Kerberos die + Binärdateien unterhalb von /usr/local + installieren. @@ -2384,17 +2146,17 @@ <application>Kerberos</application> muss ganzheitlich verwendet werden - Jeder über das Netzwerk angebotetene Dienst + Jeder über das Netzwerk angebotene Dienst muss mit Kerberos zusammenarbeiten oder auf anderen Wegen gegen Angriffe aus dem Netzwerk geschützt sein. Andernfalls können Berechtigungen gestohlen und wiederverwendet werden. Es ist beispielsweise nicht sinnvoll, für - Anmeldungen mit rsh und - telnet Kerberos + Remote-ShellsKerberos zu benutzen, dagegen aber POP3-Zugriff - auf einen Mail-Server zu erlauben, da POP3 - Passwörter im Klartext versendet. + auf einen Mail-Server zu erlauben, da + POP3-Passwörter im Klartext + versendet. @@ -2407,13 +2169,13 @@ lesbaren Verzeichnis /tmp gespeichert werden. Wenn ein Rechner von mehreren Benutzern verwendet wird, ist es möglich, dass - Tickets gestohlen werden. + Tickets von einem anderen Benutzer gestohlen oder + kopiert werden. Dieses Problem können Sie lösen, indem Sie mit der Kommandozeilenoption oder besser mit der Umgebungsvariablen KRB5CCNAME einen - Ort für die Tickets vorgeben. Diese Vorgehensweise - wird leider selten benutzt. Es reicht, die Tickets + Ort für die Tickets vorgeben. Es reicht, die Tickets im Heimatverzeichnis eines Benutzers zu speichern und mit Zugriffsrechten zu schützen. @@ -2423,7 +2185,7 @@ Das KDC muss genauso abgesichert werden wie die auf ihm befindliche Passwort-Datenbank. - Auf dem KDC dürfen keine anderen + Auf dem KDC sollten absolut keine anderen Dienste laufen und der Rechner sollte physikalisch gesichert sein. Die Gefahr ist groß, da Kerberos alle Passwörter @@ -2442,17 +2204,15 @@ anfangen. Wenn das KDC nicht zur Verfügung - steht, vielleicht wegen eines Denial-of-Service Angriffs - oder wegen eines Netzwerkproblems, ist eine Authentifizierung - unmöglich. Damit können die Netzwerk-Dienste - nicht benutzt werden; das KDC ist - also ein optimales Ziel für einen Denial-of-Service - Angriff. Sie können diesem Angriff ausweichen, - indem Sie mehrere KDCs (einen Master - und einen oder mehrere Slaves) verwenden. Der Rückfall - auf ein sekundäres KDC oder - eine andere Authentifizierungs-Methode (dazu ist - PAM bestens geeignet) muss sorgfältig + 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. @@ -2465,7 +2225,7 @@ authentifizieren. Allerdings existiert kein Mechanismus, der das KDC gegenüber Benutzern, Rechnern oder Diensten authentifiziert. Ein verändertes - kinit könnte beispielsweise alle + &man.kinit.1; 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 @@ -2527,9 +2287,9 @@ OpenSSL - Es wird oft übersehen, dass - OpenSSL Teil des &os;-Basissystems - ist. OpenSSL bietet eine + OpenSSL ist eine freie + Implementierung der SSL und + TLS-Protokolle. Es bietet eine verschlüsselte Transportschicht oberhalb der normalen Kommunikationsschicht und kann daher zusammen mit vielen Netzdiensten benutzt werden. @@ -2551,9 +2311,9 @@ security/openssl. - Das OpenSSL von &os; stellt - die Protokolle Secure Sockets Layer v2/v3 (SSLv2/SSLv3) und - Transport Layer Security v1 (TLSv1) zur Verfügung. + Das in &os; integrierte OpenSSL + stellt die Protokolle Secure Sockets Layer v2/v3 (SSLv2/SSLv3) + und Transport Layer Security v1 (TLSv1) zur Verfügung. Die OpenSSL-Bibliotheken stellen kryptographische Funktionen bereit. @@ -2565,7 +2325,7 @@ IDEA-Lizenz akzeptieren, können Sie den IDEA-Algorithmus aktivieren, indem Sie die Variable MAKE_IDEA - in make.conf setzen. + in /etc/make.conf setzen. Meist wird OpenSSL eingesetzt, @@ -2582,7 +2342,6 @@ bestätigt. Diese Prozedur kostet Geld, ist aber keine Voraussetzung für den Einsatz von Zertifikaten, beruhigt aber sicherheitsbewusste Benutzer. - Zertifikate erzeugen @@ -2608,36 +2367,36 @@ For some fields there will be a default value, If you enter '.', the field will be left blank. ----- -Country Name (2 letter code) [AU]:US -State or Province Name (full name) [Some-State]:PA -Locality Name (eg, city) []:Pittsburgh -Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company -Organizational Unit Name (eg, section) []:Systems Administrator -Common Name (eg, YOUR name) []:localhost.example.org -Email Address []:trhodes@FreeBSD.org +Country Name (2 letter code) [AU]:US +State or Province Name (full name) [Some-State]:PA +Locality Name (eg, city) []:Pittsburgh +Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company +Organizational Unit Name (eg, section) []:Systems Administrator +Common Name (eg, YOUR name) []:localhost.example.org +Email Address []:trhodes@FreeBSD.org Please enter the following 'extra' attributes to be sent with your certificate request -A challenge password []:SOME PASSWORD -An optional company name []:Another Name +A challenge password []: +An optional company name []:Another Name - Beachten Sie bitte, dass die Eingabe bei + Beachten Sie, dass die Eingabe bei Common Name ein gültiger Domain-Name sein muss. Eine andere Eingabe erzeugt ein unbrauchbares Zertifikat. Das Zertifikat kann mit einer Gültigkeitsdauer und anderen Verschlüsselungsalgorithmen erzeugt werden. - Die Hilfeseite &man.openssl.1; beschreibt die zur + &man.openssl.1; beschreibt die zur Verfügung stehenden Optionen. Das Verzeichnis, in dem Sie den letzten Befehl ausgeführt haben, enthält nun zwei Dateien: Die Anforderung für ein neues Zertifikat wurde in req.pem gespeichert. Diese Datei können Sie an eine - Zertifizierungsstelle senden, wo Ihre Angaben geprüft werden. - Nach erfolgreicher Prüfung wird das Zertifikat an Sie - zurückgesandt. Die zweite Datei, cert.pem, - enthält den privaten Schlüssel für Ihr Zertifikat + CA senden, wo die Angaben geprüft werden. + Nach erfolgreicher Prüfung wird das Zertifikat unterschrieben + und an Sie zurückgesandt. Die zweite Datei, cert.pem, + enthält den privaten Schlüssel für das Zertifikat und darf auch keine Fall in fremde Hände geraten, da ein Angreifer sonst in der Lage ist, anderen Personen oder Rechnern vorzugaukeln, dass es sich bei ihm um Sie handelt. @@ -2663,33 +2422,29 @@ myca.key und das Zertifikat selbst, new.crt. Sie sollten in einem Verzeichnis, vorzugsweise unterhalb von - /etc abgelegt + /etc/ssl abgelegt werden, das nur von root lesbar - ist. Setzen Sie die Zugriffsrechte der Dateien mit - chmod auf 0700. + ist. Die Zugriffsrechte der Dateien können mit &man.chmod.1; + auf 0700 gesetzt werden. - Beispiel für Zertifikate + Zertifikate benutzen - Was fangen Sie mit einem Zertifikat an? Sie - könnten damit beispielsweise die Verbindungen zu - Sendmail verschlüsseln. - Dies würde die Klartext-Authentifizierung - für Benutzer des lokalen MTA - überflüssig machen. + Mit einem Zertifikat können beispielsweise die + Verbindungen zu Sendmail + verschlüsselt werden, um eine Klartext-Authentifizierung + zu verhindern. - Das ist nicht unbedingt die beste Lösung, - da einige MUAs Warnungen ausgeben, - wenn ein Zertifikat nicht lokal installiert ist. - Die Installation von Zertifikaten wird in der - Dokumentation der MUAs - beschrieben. + Einige E-Mail-Programme geben Warnungen aus, wenn ein + Zertifikat nicht lokal installiert ist. Weitere + Informationen zur Installation von Zertifikaten finden Sie + in der Dokumentation der entsprechenden Software. Ergänzen Sie die Konfigurationsdatei von - sendmail (.mc) + Sendmail (.mc) um die nachstehenden Zeilen: dnl SSL Options @@ -2699,22 +2454,20 @@ define(`confSERVER_KEY',`/etc/certs/myca.key')dnl define(`confTLS_SRV_OPTIONS', `V')dnl - Im Verzeichnis /etc/certs - befindet sich der Schlüssel und das Zertifikat. Bauen Sie danach - im Verzeichnis /etc/mail - mit dem Kommando make - install die - .cf-Datei und starten Sie anschließend - sendmail mit make - restart neu. + Im Verzeichnis /etc/certs befindet + sich der Schlüssel und das Zertifikat. Bauen Sie danach im + Verzeichnis /etc/mail + mit dem Kommando make install die + .cf-Datei. Starten Sie anschließend + Sendmail mit + make restart neu. Wenn alles gut ging, erscheinen keine Fehlermeldungen - in der Datei /var/log/maillog und - Sie sehen sendmail in der + in /var/log/maillog und + Sie sehen Sendmail in der Prozessliste. - Testen Sie nun den Mailserver mit dem Kommando - &man.telnet.1;: + Testen Sie nun den Mailserver mit &man.telnet.1;: &prompt.root; telnet example.com 25 Trying 192.0.34.166... @@ -2737,13 +2490,13 @@ 221 2.0.0 example.com closing connection Connection closed by foreign host. - Wenn in einer Zeile STARTTLS + Wenn die Zeile STARTTLS erscheint, hat alles funktioniert. - VPNs mit IPsec + <acronym>VPN</acronym> mit IPsec NikClayton
nik@FreeBSD.org
@@ -2751,18 +2504,10 @@
- - IPsec - Dieser Abschnitt beschreibt, wie Sie mit &os;-Gateways - ein Virtual-Private-Network - (VPN) einrichten. Als Beispiel wird ein - VPN zwischen zwei Netzen verwendet, - die über das Internet miteinander verbunden sind. - IPsec Grundlagen @@ -2772,15 +2517,13 @@ - - - Dieser Abschnitt zeigt Ihnen, wie Sie IPsec einrichten. Um IPsec - einzurichten, sollten Sie einen neuen Kernel bauen können (siehe + Dieser Abschnitt beschreibt die Einrichtung von IPsec. Um + IPsec einzurichten, sollten Sie einen neuen Kernel bauen können (siehe ). - IPsec ist ein Protokoll, das auf dem Internet-Protokoll - (IP) aufbaut. Mit IPsec können mehrere Systeme - geschützt miteinander kommunizieren. Das in + IPsec ist ein Protokoll, das auf dem + Internet-Protokoll (IP) aufbaut. Mit IPsec + können mehrere Systeme geschützt miteinander kommunizieren. Das in &os; realisierte IPsec-Protokoll baut auf der KAME-Implementierung auf und unterstützt sowohl IPv4 als auch IPv6. @@ -2798,18 +2541,19 @@ - Encapsulated Security Payload (ESP) - verschlüsselt IP-Pakete mit einem symmetrischen Verfahren - (beispielsweise Blowfish oder 3DES). Damit werden - die Pakete vor Manipulationen Dritter geschützt. + Encapsulated Security Payload + (ESP) verschlüsselt + IP-Pakete mit einem symmetrischen Verfahren wie Blowfish + oder 3DES. Damit werden die Pakete vor Manipulationen + Dritter geschützt. - Der Authentication Header (AH) - enthät 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 + Der Authentication Header + (AH) 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. @@ -2834,10 +2578,11 @@ Tunnel-Modus verbindet zwei Subnetze miteinander. Durch einen Tunnel können dann beispielsweise verschlüsselte Daten übertragen - werden. Ein Tunnel wird auch als Virtual-Private-Network (VPN) - bezeichnet. Detaillierte Informationen über - das IPsec-Subsystem von &os; enthält die - Hilfeseite &man.ipsec.4;. + 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;. Die folgenden Optionen in der Kernelkonfiguration aktivieren IPsec: @@ -2863,35 +2608,25 @@ - Was ist ein VPN? - - Es gibt keinen Standard, der festlegt, was ein - Virtual-Private-Network ist. VPNs können mit - verschiedenen Techniken, die jeweils eigene Vor- und - Nachteile besitzen, implementiert werden. - Dieser Abschnitt stellt eine Möglichkeit vor, - ein VPN aufzubauen. - - - - Das Szenario: Zwei Netzwerke, ein Heim- und ein - Firmennetzwerk. Beide sind mit dem Internet verbunden und - verhalten sich dank <acronym>VPN</acronym> wie ein Netzwerk. + VPN zwischen einem Heim- und Firmennetzwerk + einrichten VPN einrichten - Dieses Szenario hat die folgenden Vorausetzungen: + Es gibt keinen Standard, der festlegt, was ein + Virtual-Private-Network ist. VPNs können mit + verschiedenen Techniken, die jeweils eigene Vor- und + Nachteile besitzen, implementiert werden. + Dieser Abschnitt stellt Möglichkeiten vor, um ein VPN + für das folgende Szenario aufzubauen: - Es müssen zwei Netzwerke vorhanden sein. - - - - Beide Netzwerke müssen intern IP benutzen. + Es müssen mindestens zwei Netzwerke vorhanden sein, + welche intern IP benutzen. @@ -2907,14 +2642,14 @@ Die intern verwendeten IP-Adressen können private oder öffentliche Adressen sein. - Sie dürfen sich nicht überlappen; zum Beispiel: - nicht beide sollten 192.168.1.x + Sie dürfen sich jedoch nicht überlappen. Zum Beispiel + sollten nicht beide Netze 192.168.1.x benutzen. - - + Konfiguration von IPsec in &os; TomRhodes @@ -2923,38 +2658,40 @@ - - Als erstes muss security/ipsec-tools aus - der Ports-Sammlung installiert werden. Dieses Softwarepaket - Dritter enthält einige Anwendungen, die ihnen bei der - Konfiguration von IPsec helfen. + 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 Benutzer root die folgenden Befehle - ein: Austausch der internen und - externen Werte durch die realen internen - und externen Gateways: + Geben Sie als root + die folgenden Befehle ein, wobei Sie + intern und + extern durch die realen internen + und externen IP-Adressen der Gateways + ersetzen müssen: &prompt.root; ifconfig gif0 create - &prompt.root; ifconfig gif0 internal1 internal2 - &prompt.root; ifconfig gif0 tunnel external1 external2 + &prompt.root; ifconfig gif0 intern1 intern2 + &prompt.root; ifconfig gif0 tunnel extern1 extern2 - Beispiel: Die öffentliche IP-Adresse - des Firmennetzwerkes (LAN) ist: - 172.16.5.4 mit einer internen - IP-Adresse von - 10.246.38.1. Das Heimnetzwerk - (LAN) hat die öffentliche - IP-Adresse - 192.168.1.12 mit der internen - privaten IP-Adresse - 10.0.0.5. + In diesem Beispiel ist die externe + IP-Adresse des Firmennetzwerkes + (LAN) 172.16.5.4 und die interne + IP-Adresse ist 10.246.38.1. Das + Heimnetzwerk (LAN) hat die externe + IP-Adresse 192.168.1.12 mit der internen + privaten IP-Adresse 10.0.0.5. - Dies mag verwirrend erscheinen, schauen Sie sich deshalb - das folgende Beispiel aus dem &man.ifconfig.8;-Befehl an: + Wenn dies verwirrend erscheint, schauen Sie sich die + folgende Ausgabe von &man.ifconfig.8;an: Gateway 1: @@ -2970,9 +2707,8 @@ inet 10.0.0.5 --> 10.246.38.1 netmask 0xffffff00 inet6 fe80::250:bfff:fe3a:c1f%gif0 prefixlen 64 scopeid 0x4 - Wenn Sie fertig sind, sollten beide privaten - IPs mit dem &man.ping.8; Befehl, wie die folgende - Darstellung zeigt, erreichbar sein: + Wenn Sie fertig sind, sollten beide internen Adressen über + &man.ping.8; erreichbar sein: priv-net# ping 10.0.0.5 PING 10.0.0.5 (10.0.0.5): 56 data bytes @@ -3008,9 +2744,9 @@ &prompt.root; priv-net# route add 10.246.38.0 10.246.38.1 255.255.255.0 &prompt.root; priv-net# route add host 10.246.38.0: gateway 10.246.38.1 - Ab jetzt sollten die Rechner von den Gateways sowie von den - Rechnern hinter den Gateways erreichbar sein. Dies wird an dem - folgendem Beispiel deutlich: + Ab jetzt sollten die Rechner von den Gateways sowie von + den Rechnern hinter den Gateways erreichbar sein. Dies können + Sie wieder mit &man.ping.8; überprüfen: corp-net# ping 10.0.0.8 PING 10.0.0.8 (10.0.0.8): 56 data bytes @@ -3035,12 +2771,12 @@ round-trip min/avg/max/stddev = 21.145/31.721/53.491/12.179 ms Das Konfigurieren der Tunnel ist der einfache Teil. Die - Konfiguration einer sicheren Verbindung geht sehr viel mehr in + Konfiguration einer sicheren Verbindung geht viel mehr in die Tiefe. Die folgende Konfiguration benutzt pre-shared (PSK) RSA-Schlüssel. Abgesehen von den IP-Adressen, sind beide - /usr/local/etc/racoon/racoon.conf identisch - und sehen ähnlich aus wie: + /usr/local/etc/racoon/racoon.conf + identisch und sehen ähnlich aus: path pre_shared_key "/usr/local/etc/racoon/psk.txt"; #location of pre-shared key file log debug; #log verbosity setting: set to 'notify' when testing and debugging is complete @@ -3100,22 +2836,22 @@ compression_algorithm deflate; } - Die Erklärung einer jeden verfügbaren Option würde - den Rahmen dieses Textes sprengen. Es gibt sehr viele - relevante Informationen in der - racoon-Konfigurationsanleitung. + Eine Beschreibung der verfügbaren Optionen finden Sie in + der Manualpage von racoon.conf. - Die SPD-Methoden müssn noch konfiguriert - werden so dass, &os; und racoon in der + Die + Security Policy Database + (SPD) muss noch konfiguriert werden, so + dass &os; und racoon in der Lage sind den Netzwerkverkehr zwischen den Hosts zu ver- und entschlüsseln. - Dies wird durch ein einfaches Shellscript ähnlich wie das + Dies wird durch ein Shellskript ähnlich wie das folgende, das auf dem Firmennetzwerk-Gateway liegt, ausgeführt. Diese Datei wird während der Systeminitialisierung ausgeführt und sollte unter /usr/local/etc/racoon/setkey.conf - abgespeichert werden. + gespeichert werden. flush; spdflush; @@ -3148,10 +2884,11 @@ Um sicherzustellen, dass der Tunnel richtig funktioniert, wechseln Sie auf eine andere Konsole und benutzen Sie &man.tcpdump.1; mit dem folgenden Befehl, um sich den - Netzwerkverkehr anzusehen. Tauschen Sie em0 - durch die richtige Netzwerkkarte aus. + Netzwerkverkehr anzusehen. Tauschen Sie + em0 durch die richtige Netzwerkkarte + aus: - &prompt.root; tcpdump -i em0 host 172.16.5.4 and dst 192.168.1.12 + &prompt.root; tcpdump -i em0 host 172.16.5.4 and dst 192.168.1.12 Die Ausgabe der Konsole sollte dem hier ähneln. Wenn nicht, gibt es ein Problem und ein Debuggen der ausgegebenen @@ -3166,7 +2903,7 @@ 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 ihre + Firewall fügen Sie folgende Zeilen in die Firewall-Konfigurationsdatei ein: ipfw add 00201 allow log esp from any to any @@ -3202,6 +2939,7 @@ ipsec_program="/usr/local/sbin/setkey" ipsec_file="/usr/local/etc/racoon/setkey.conf" # allows setting up spd policies on boot racoon_enable="yes" +
@@ -3213,7 +2951,6 @@
- OpenSSH Sicherheit @@ -3221,28 +2958,24 @@ OpenSSH stellt Werkzeuge bereit, - um sicher auf entfernte - Maschinen zuzugreifen. Die Kommandos rlogin, - rsh, rcp und - telnet können durch - OpenSSH ersetzt werden. - Zusätzlich können TCP/IP-Verbindungen sicher durch - SSH weitergeleitet (getunnelt) werden. Mit SSH werden alle - Verbindungen verschlüsselt, dadurch wird verhindert, dass - die Verbindung zum Beispiel abgehört oder übernommen + um sicher auf entfernte Maschinen zuzugreifen. Zusätzlich + können TCP/IP-Verbindungen sicher durch SSH + weitergeleitet (getunnelt) werden. Mit SSH + werden alle Verbindungen verschlüsselt, dadurch wird verhindert, + dass die Verbindung zum Beispiel abgehört oder übernommen (Hijacking) werden kann. OpenSSH wird vom OpenBSD-Projekt - gepflegt und basiert auf SSH v1.2.12 mit allen aktuellen - Fixen und Aktualisierungen. OpenSSH - ist mit den SSH-Protokollen der Versionen 1 und 2 kompatibel. + gepflegt und wird in der Voreinstellung von &os; installiert. + OpenSSH ist mit den + SSH-Protokollen der Versionen 1 und 2 + kompatibel. - Vorteile von OpenSSH + Vorteile von <application>OpenSSH</application> - Mit &man.telnet.1; oder &man.rlogin.1; werden Daten in - einer unverschlüsselten Form über das Netzwerk - gesendet. Daher besteht die Gefahr, das Benutzer/Passwort + Wenn Daten unverschlüsselt über das Netzwerk gesendet + werden, besteht die Gefahr, das Benutzer/Passwort Kombinationen oder alle Daten an beliebiger Stelle zwischen dem Client und dem Server abgehört werden. Mit OpenSSH stehen eine Reihe von @@ -3258,64 +2991,59 @@ aktivieren - Unter &os; entscheidet der - Anwender bei einer Standard-Installation, ob - der sshd-Daemon aktiviert werden soll. - Um zu überprüfen, ob sshd - auf Ihrem System aktiviert ist, suchen Sie in - rc.conf nach der folgenden Zeile: + Um zu überprüfen, ob &man.sshd.8; auf dem System aktiviert + ist, suchen Sie in rc.conf nach der + folgenden Zeile: sshd_enable="YES" Ist diese Zeile vorhanden, wird &man.sshd.8;, der - OpenSSH-Dæmon, beim - Systemstart automatisch aktiviert. Alternativ können Sie - OpenSSH auch über das - &man.rc.8;-Skript /etc/rc.d/sshd - starten: + OpenSSH-Daemon, beim + Systemstart automatisch aktiviert. Alternativ kann + OpenSSH auch über &man.service.8; + gestartet werden: - &prompt.root; /etc/rc.d/sshd start + &prompt.root; service sshd start SSH Client + OpenSSH Client - &man.ssh.1; arbeitet ähnlich wie &man.rlogin.1;: + Benutzen Sie &man.ssh.1; um sich mit einem System zu + verbinden, auf dem &man.sshd.8; läuft. Verwenden Sie dazu + den Benutzernamen und den Namen des Rechners, mit dem Sie + sich verbinden möchten: - &prompt.root; ssh user@example.com + &prompt.root; ssh user@example.com Host key not found from the list of known hosts. Are you sure you want to continue connecting (yes/no)? yes Host 'example.com' added to the list of known hosts. user@example.com's password: ******* - Der Anmeldevorgang wird danach, wie von - rlogin oder telnet gewohnt, - weiterlaufen. SSH speichert einen Fingerabdruck des + SSH speichert einen Fingerabdruck des Serverschlüssels. Die Aufforderung, yes einzugeben, erscheint nur bei der ersten Verbindung zu einem Server. Weitere Verbindungen zu dem Server werden gegen den gespeicherten Fingerabdruck des Schlüssels geprüft und der Client gibt eine Warnung aus, wenn sich der empfangene Fingerabdruck von dem gespeicherten unterscheidet. Die - Fingerabdrücke der Version 1 werden in - ~/.ssh/known_hosts, die der Version 2 in - ~/.ssh/known_hosts2 gespeichert. - - In der Voreinstellung akzeptieren aktuelle - OpenSSH-Server nur SSH v2 - Verbindungen. Wenn möglich, wird Version 2 verwendet, - ist dies nicht möglich, fällt der Server auf - Version 1 zurück. Der Client kann gezwungen werden, - nur eine der beiden Versionen zu verwenden, indem die Option - (für die Version 1) oder - (für die Version 2) übergeben - wird. Die Unterstützung für Version 1 ist nur - noch aus Kompatibilitätsgründen zu älteren - Versionen enthalten. + Fingerabdrücke werden in + ~/.ssh/known_hosts gespeichert. + + In der Voreinstellung akzeptieren aktuelle Versionen von + &man.sshd.8; nur SSH v2 Verbindungen. + Wenn möglich, wird der Client versuchen Version 2 zu + verwenden, ist dies nicht möglich, fällt er auf Version 1 + zurück. Der Client kann gezwungen werden, nur eine der beiden + Versionen zu verwenden, indem die Option + oder übergeben wird. Die Unterstützung + für Version 1 ist nur noch aus Kompatibilitätsgründen zu + älteren Versionen enthalten. @@ -3324,14 +3052,12 @@ OpenSSH secure copy - scp + &man.scp.1; - Mit &man.scp.1; lassen sich Dateien analog wie mit - &man.rcp.1; auf entfernte Maschinen kopieren. Mit - scp werden die Dateien allerdings in einer - sicheren Weise übertragen. + Mit &man.scp.1; lassen sich Dateien in einer sicheren + Weise auf entfernte Maschinen übertragen. - &prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT + &prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT user@example.com's password: COPYRIGHT 100% |*****************************| 4735 00:00 @@ -3342,13 +3068,12 @@ diesem Beispiel überprüft. Da die Fingerabdrücke übereinstimmen, wird keine Warnung ausgegeben. - Die Argumente, die scp übergeben - werden, gleichen denen von cp in der Beziehung, - dass die ersten Argumente die zu kopierenden Dateien sind und - das letzte Argument den Bestimmungsort angibt. Da die Dateien - über das Netzwerk kopiert werden, können ein oder mehrere - Argumente die Form - + Die Argumente, die &man.scp.1; übergeben werden, gleichen + denen von &man.cp.1; in der Beziehung, dass die ersten + Argumente die zu kopierenden Dateien sind und das letzte + Argument den Bestimmungsort angibt. Da die Dateien über das + Netzwerk kopiert werden, können ein oder mehrere Argumente die + Form besitzen. @@ -3359,31 +3084,26 @@ Konfiguration - Die für das ganze System gültigen - Konfigurationsdateien des - OpenSSH-Dæmons und des Clients - finden sich in dem Verzeichnis - /etc/ssh. + Die für das ganze System gültigen Konfigurationsdateien + des OpenSSH-Daemons und des + Clients befinden sich in /etc/ssh. Die Client-Konfiguration befindet sich in - ssh_config, die des Servers befindet sich in - sshd_config. - - Das SSH-System lässt sich weiterhin über die - Anweisungen (Vorgabe ist - /usr/sbin/sshd) und - in /etc/rc.conf - konfigurieren. + ssh_config, die des Servers befindet sich + in sshd_config. Für beide Dateien + existieren Manualpages, welche die einzelnen + Konfigurationsoptionen beschreiben. - <application>ssh-keygen</application> + &man.ssh-keygen.1; - Mit &man.ssh-keygen.1; können DSA- oder RSA-Schlüssel - für einen Benutzer erzeugt werden, die anstelle von - Passwörtern verwendet werden können: + Mit &man.ssh-keygen.1; können DSA- oder + RSA-Schlüssel für einen Benutzer erzeugt + werden, die anstelle von Passwörtern verwendet werden + können: - &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'. @@ -3411,32 +3131,51 @@ funktioniert. Damit werden Verbindungen zu der entfernten Maschine über - SSH-Schlüsseln anstelle von Passwörtern + SSH-Schlüsseln anstelle von Passwörtern authentifiziert. + + 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. + + Wenn bei der Erstellung der Schlüssel mit - &man.ssh-keygen.1; ein Passwort angegeben wurde, wird der + &man.ssh-keygen.1; eine Passphrase angegeben wurde, wird der Benutzer bei jeder Anmeldung zur Eingabe des Passworts - aufgefordert. Um den Umgang mit SSH-Schlüsseln zu - erleichtern, kann &man.ssh-agent.1; die Verwaltung dieser - Schlüssel für Sie übernehmen. Lesen Sie dazu - den weiter unten. + aufgefordert. Um den Umgang mit + SSH-Schlüsseln zu erleichtern, kann + &man.ssh-agent.1; die Verwaltung dieser Schlüssel für Sie + übernehmen. Lesen Sie dazu den . - Die Kommandozeilenoptionen und Dateinamen sind + Die Optionen und Dateinamen sind abhängig von der OpenSSH-Version. - Die für Ihr System gültigen Optionen finden Sie - in der Hilfeseite &man.ssh-keygen.1;. + Die für das System gültigen Optionen finden Sie in + &man.ssh-keygen.1;. - <application>ssh-agent</application> und - <application>ssh-add</application> + Verwendung von SSH-Agent 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 jedesmal + in den Speicher zu laden, damit die Passphrase nicht jedes Mal eingegeben werden muss. &man.ssh-agent.1; übernimmt die Authentifizierung @@ -3446,13 +3185,12 @@ einen Window-Manager. Um &man.ssh-agent.1; in einer Shell zu verwenden, muss - es mit einer Shell als Argument aufgerufen werden. - Zusätzlich müssen die zu verwaltende Identität - (durch &man.ssh-add.1;) sowie deren Passphrase für den - privaten Schlüssel übergeben werden. Nachdem dies - erledigt ist, kann sich ein Benutzer über &man.ssh.1; - auf jedem Rechner anmelden, der einen entsprechenden - öffentlichen Schlüssel besitzt. Dazu ein + es mit einer Shell als Argument aufgerufen werden. Zudem muss + die zu verwaltende Identität mit &man.ssh-add.1; sowie deren + Passphrase für den privaten Schlüssel übergeben werden. + Nachdem dies erledigt ist, kann sich ein Benutzer über + &man.ssh.1; auf jedem Rechner anmelden, der einen + entsprechenden öffentlichen Schlüssel besitzt. Dazu ein Beispiel: &prompt.user; ssh-agent csh @@ -3461,25 +3199,29 @@ Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa) &prompt.user; - Um &man.ssh-agent.1; unter X11 zu verwenden, müssen - Sie &man.ssh-agent.1; in Ihre ~/.xinitrc - aufnehmen. Dadurch können alle unter X11 gestarteten - Programme die Dienste von &man.ssh-agent.1; nutzen. Ihre - ~/.xinitrc könnte dazu etwas so - aussehen: + Um &man.ssh-agent.1; unter + &xorg; zu verwenden, muss + &man.ssh-agent.1; in ~/.xinitrc + aufgenommen werden. Dadurch können alle unter + &xorg; gestarteten Programme die + Dienste von &man.ssh-agent.1; nutzen. + ~/.xinitrc könnte etwa so + aussehen: exec ssh-agent startxfce4 - Dadurch wird bei jedem Start von X11 zuerst - &man.ssh-agent.1; aufgerufen, das wiederum - XFCE startet. Nachdem Sie diese - Änderung durchgeführt haben, müssen Sie X11 - neu starten. Danach können Sie mit &man.ssh-add.1; - Ihre SSH-Schlüssel laden. + Dadurch wird bei jedem Start von + &xorg; zuerst &man.ssh-agent.1; + aufgerufen, das wiederum XFCE + startet. Nachdem diese Änderung durchgeführt wurde, muss + &xorg; neu gestartet werden. + Danach können Sie mit &man.ssh-add.1; die + SSH-Schlüssel laden. - SSH-Tunnel + <acronym>SSH</acronym>-Tunnel + OpenSSH Tunnel @@ -3490,22 +3232,21 @@ verschlüsselt übertragen wird. Das folgende Kommando erzeugt einen Tunnel für - telnet: + &man.telnet.1;: - &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; - Dabei wurden die folgenden Optionen von ssh - verwendet: + Dieses Beispiel verwendet die folgenden Optionen: - Erzwingt die Version 2 des Protokolls (Benutzen Sie die - Option nicht mit langsamen - SSH-Servern). + Zwingt &man.ssh.1; dazu, die Version 2 des + Protokolls zu verwenden, um sich mit dem Server zu + verbinden. @@ -3514,8 +3255,8 @@ Zeigt an, dass ein Tunnel erstellt werden soll. - Ohne diese Option würde ssh eine - normale Sitzung öffnen. + Ohne diese Option würde &man.ssh.1; eine normale Sitzung + öffnen. @@ -3523,8 +3264,7 @@ - Zwingt ssh im Hintergrund zu - laufen. + Zwingt &man.ssh.1; im Hintergrund zu laufen. @@ -3544,33 +3284,36 @@ - Gibt den entfernten SSH-Server an. + Gibt den Anmeldenamen auf dem entfernten + SSH-Server an. + Ein SSH-Tunnel erzeugt einen Socket + auf localhost und dem angegebenen + Port. Jede Verbindung, die auf dem angegebenen Socket + aufgemacht wird, wird dann auf den spezifizierten entfernten + Rechner und Port weitergeleitet. + + Im Beispiel wird der Port 5023 + auf die entfernte Maschine und dort auf + localhost Port + 23 weitergeleitet. Da der Port + 23 für &man.telnet.1; reserviert + ist, erzeugt das eine sichere &man.telnet.1;-Verbindung durch + einen SSH-Tunnel. + + Diese Vorgehensweise kann genutzt werden, um jedes + unsichere TCP-Protokoll wie + SMTP, POP3 und + FTP weiterzuleiten. + + + Mit &man.ssh.1; einen sicheren Tunnel für + <acronym>SMTP</acronym> erstellen - Ein SSH-Tunnel erzeugt ein Socket auf - localhost und dem angegebenen Port. Jede - Verbindung, die auf dem angegebenen Socket aufgemacht wird, wird - dann auf den spezifizierten entfernten Rechner und Port - weitergeleitet. - - Im Beispiel wird der Port 5023 auf - die entfernte Maschine und dort auf localhost - Port 23 weitergeleitet. Da der Port - 23 für - Telnet reserviert ist, - erzeugt das eine sichere - Telnet-Verbindung durch einen - SSH-Tunnel. - - Diese Vorgehensweise kann genutzt werden, um jedes unsichere - TCP-Protokoll wie SMTP, POP3, FTP, usw. weiterzuleiten. - - - Mit SSH einen sicheren Tunnel für SMTP erstellen - &prompt.user; ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com + &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... @@ -3578,66 +3321,64 @@ Escape character is '^]'. 220 mailserver.example.com ESMTP - Zusammen mit &man.ssh-keygen.1; und zusätzlichen - Benutzer-Accounts können Sie leicht benutzbare SSH-Tunnel - aufbauen. Anstelle von Passwörtern können Sie - Schlüssel benutzen und jeder Tunnel kann unter einem eigenen - Benutzer laufen. - + Zusammen mit &man.ssh-keygen.1; 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. + - Beispiel für SSH-Tunnel + Praktische Beispiele für + <acronym>SSH</acronym>-Tunnel - Sicherer Zugriff auf einen POP3-Server + Sicherer Zugriff auf einen + <acronym>POP3</acronym>-Server - Nehmen wir an, an Ihrer Arbeitsstelle gibt es einen - SSH-Server, der Verbindungen von außen akzeptiert. Auf - dem Netzwerk Ihrer Arbeitsstelle soll sich zudem noch ein - Mail-Server befinden, der POP3 spricht. Das Netzwerk oder die - Verbindung von Ihrem Haus zu Ihrer Arbeitsstelle ist unsicher - und daher müssen Sie Ihre E-Mail über eine gesicherte - Verbindung abholen können. Die Lösung zu diesem - Problem besteht darin, eine SSH-Verbindung von Ihrem Haus zu - dem SSH-Server an Ihrer Arbeitsstelle aufzubauen, und von dort - weiter zum Mail-Server zu tunneln. + In diesem Beispiel gibt es einen + SSH-Server, der Verbindungen von außen + akzeptiert. Im selben Netzwerk befindet sich zudem + noch ein Mail-Server, der POP3 spricht. + Um E-Mails auf sichere Weise abzurufen, bauen Sie eine + SSH-Verbindung zu dem + SSH-Server im Netzwerk auf und tunneln + von dort zum Mail-Server weiter. - &prompt.user; ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com + &prompt.user; ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com user@ssh-server.example.com's password: ****** - Wenn Sie den Tunnel eingerichtet haben, konfigurieren Sie - Ihren Mail-Client so, dass er POP3 Anfragen zu - localhost Port 2110 sendet. Die Verbindung - wird dann sicher zu mail.example.com + Wenn Sie den Tunnel eingerichtet haben, konfigurieren + Sie den Mail-Client so, dass er POP3 + Anfragen zu localhost auf Port + 2110 sendet. Diese Verbindung wird dann über den + gesicherten Tunnel zu + mail.example.com weitergeleitet. Umgehen einer strengen Firewall - Einige Netzwerkadministratoren stellen sehr drakonische - Firewall-Regeln auf, die nicht nur einkommende Verbindungen - filtern, sondern auch ausgehende. Es kann sein, dass Sie - externe Maschinen nur über die Ports 22 und 80 (SSH und - Web) erreichen. - - Sie wollen auf einen Dienst, der vielleicht nichts mit - Ihrer Arbeit zu tun hat, wie einen Ogg Vorbis Musik-Server, - zugreifen. Wenn der Ogg Vorbis Server nicht auf den Ports 22 - oder 80 läuft, können Sie aber nicht auf ihn - zugreifen. - - Die Lösung hier ist es, eine SSH-Verbindung zu einer - Maschine außerhalb der Firewall aufzumachen und durch - diese zum Ogg Vorbis Server zu tunneln. + Einige Netzwerkadministratoren stellen sehr + drakonische Firewall-Regeln auf, die nicht nur einkommende + Verbindungen filtern, sondern auch ausgehende. Es kann + sein, dass Sie externe Maschinen nur über die Ports 22 und + 80 (SSH und Web) erreichen. + + Die Lösung hier ist es, eine + SSH-Verbindung zu einer Maschine + außerhalb der Firewall aufzumachen und durch diese zum + gewünschten Dienst zu tunneln. - &prompt.user; ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org + &prompt.user; ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org user@unfirewalled-system.example.org's password: ******* - Konfigurieren Sie Ihren Client so, dass er - localhost und Port 8888 benutzt. Die Verbindung - wird dann zu music.example.com Port 8000 - weitergeleitet und Sie haben die Firewall erfolgreich + In diesem Beispiel benutzt ein Ogg Vorbis Client + localhost und Port 8888. Die + Verbindung wird dann zu + music.example.com Port 8000 + weitergeleitet. Die Firewall wurde somit erfolgreich umgangen. @@ -3650,15 +3391,17 @@ 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 - 192.168.1.32 aus einwählen + 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: AllowUsers root@192.168.1.32 - Damit sich admin von jedem Rechner aus - anmelden kann, geben Sie nur den Benutzernamen an: + Damit sich admin + von jedem Rechner aus anmelden kann, geben Sie nur den + Benutzernamen an: AllowUsers admin @@ -3668,8 +3411,8 @@ AllowUsers root@192.168.1.32 admin - Nur ein Benutzer, der in dieser Liste aufgeführt ist, - darf sich auf diesem Rechner anmelden. + Nur Benutzer, die in dieser Liste aufgeführt ist, + dürfen sich auf diesem Rechner anmelden. Nachdem Sie /etc/ssh/sshd_config @@ -3681,10 +3424,16 @@ Weiterführende Informationen - OpenSSH + + OpenSSH + &man.ssh.1; &man.scp.1; &man.ssh-keygen.1; - &man.ssh-agent.1; &man.ssh-add.1; &man.ssh.config.5; - &man.sshd.8; &man.sftp-server.8; &man.sshd.config.5; + &man.ssh-agent.1; &man.ssh-add.1; &man.ssh.config.5; für + Client Optionen. + + &man.sshd.8; &man.sftp-server.8; &man.sshd.config.5; für + Server Optionen. @@ -3695,43 +3444,41 @@ - ACL - Zusammen mit anderen Verbesserungen des Dateisystems wie - Schnappschüsse bietet &os; auch - Zugriffskontrolllisten (access - control list, ACL). - - Zugriffskontrolllisten erweitern die normalen Zugriffsrechte + Zugriffskontrolllisten + (Access Control Lists, + ACL) erweitern die normalen Zugriffsrechte von &unix; Systemen auf eine kompatible (&posix;.1e) Weise und bieten feiner granulierte Sicherheitsmechanismen. - Zugriffskontrolllisten für Dateisysteme werden mit der - nachstehenden Zeile in der Kernelkonfiguration aktiviert: + Der GENERIC-Kernel von &os; bietet + ACL-Unterstützung für + UFS-Dateisysteme. Benutzer, die es vorziehen + einen eigenen Kernel zu übersetzen, müssen die folgende Option + in die Kernelkonfigurationsdatei aufnehmen: options UFS_ACL - Diese Option ist in der GENERIC-Konfiguration - aktiviert. Das System gibt eine Warnung aus, wenn ein Dateisystem mit + Das System gibt eine Warnung aus, wenn ein Dateisystem mit ACLs eingehangen werden soll und die Unterstützung für ACLs nicht im Kernel - aktiviert ist. Das Dateisystem muss weiterhin erweiterte Attribute - zur Verfügung stellen, damit ACLs verwendet - werden können. Das neue UNIX-Dateisystem - UFS2 stellt diese Attribute - standardmäßig zur Verfügung. - - Die Konfiguration erweiterter Attribute auf - UFS1 ist mit einem höheren Aufwand als die - Konfiguration erweiterter Attribute auf UFS2 - verbunden. Zudem ist UFS2 mit erweiterten - Attributen leistungsfähiger als UFS1. - Zugriffskontrolllisten sollten daher mit UFS2 - verwendet werden. + aktiviert ist. Das Dateisystem muss weiterhin erweiterte + Attribute zur Verfügung stellen, damit ACLs + verwendet werden können. UFS2 stellt diese + Attribute standardmäßig zur Verfügung. + + + Die Konfiguration erweiterter Attribute auf + UFS1 ist mit einem höheren Aufwand als die + Konfiguration erweiterter Attribute auf + UFS2 verbunden. Zugriffskontrolllisten + sollten daher mit UFS2 verwendet + werden. + Die Angabe der Option in /etc/fstab aktiviert Zugriffskontrolllisten @@ -3754,11 +3501,12 @@ Die Zugriffskontrolllisten auf den Dateisystemen sind, - unabhängig von den Option in /etc/fstab + unabhängig von den Optionen in /etc/fstab oder Namensänderungen der Geräte, immer aktiv. Dies verhindert auch, dass Zugriffskontrolllisten aus Versehen - auf Dateisystem ohne Zugriffskontrolllisten aktiviert werden und - durch falsche Zugriffsrechte Sicherheitsprobleme entstehen. + auf Dateisystemen ohne Zugriffskontrolllisten aktiviert + werden und durch falsche Zugriffsrechte Sicherheitsprobleme + entstehen. @@ -3787,11 +3535,11 @@ drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3 drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html - Die Verzeichnisse directory1, - directory2 und - directory3 - sind durch Zugriffskontrolllisten geschützt, das Verzeichnis - public_html nicht. + In diesem Beispiel sind die Verzeichnisse + directory1, directory2 + und directory3 durch Zugriffskontrolllisten + geschützt, wohingegen das Verzeichnis + public_html nicht geschützt ist. Zugriffskontrolllisten benutzen @@ -3841,7 +3589,7 @@ - Portaudit + portaudit In den letzten Jahren wurden zahlreiche Verbesserungen in @@ -3859,7 +3607,7 @@ Lage, dies auch für die zahlreichen Softwarepakete von Dritten zu tun. Dennoch gibt es einen Weg, auch diese Programmpakete zu überwachen. Das in der Ports-Sammlung - enthaltene Programm Portaudit wurde + enthaltene Programm portaudit wurde gezielt dafür entwickelt. Der Port ports-mgmt/portaudit @@ -3867,7 +3615,7 @@ den Ports-Entwicklern aktualisiert und gewartet wird, auf bekannte Sicherheitsprobleme ab. - Bevor Sie Portaudit verwenden + Bevor Sie portaudit verwenden können, müssen Sie es über die Ports-Sammlung installieren: @@ -3875,7 +3623,7 @@ Während der Installation werden die Konfigurationsdateien für &man.periodic.8; aktualisiert, was - es Portaudit erlaubt, seine Ausgabe + es portaudit erlaubt, seine Ausgabe in den täglichen Sicherheitsbericht einzufügen. Stellen Sie auf jeden Fall sicher, dass diese (an das E-Mail-Konto von root gesendeten) @@ -3905,7 +3653,7 @@ &prompt.root; portaudit -a Existiert in Ihren installierten Softwarepaketen eine - Sicherheitslücke, wird Portaudit + Sicherheitslücke, wird portaudit eine Ausgabe ähnlich der folgenden produzieren: Affected package: cups-base-1.1.22.0_1 @@ -3936,10 +3684,8 @@ - - - Sicherheitshinweise + &os; Sicherheitshinweise Wie für andere hochwertige Betriebssysteme auch @@ -3952,8 +3698,7 @@ Wie sieht ein Sicherheitshinweis aus? - Der nachstehende Sicherheitshinweis stammt von - der Mailingliste &a.security-notifications.name;: + &os; Sicherheitshinweise haben das folgende Format: ============================================================================= FreeBSD-SA-XX:XX.UTIL Security Advisory @@ -4020,7 +3765,7 @@ des &os;-Betriebssystems, die Kategorie contrib beschreibt zum Basissystem gehörende Software Dritter beispielsweise - sendmail. Die Kategorie + Sendmail. Die Kategorie ports beschreibt Software, die Teil der Ports-Sammlung ist. @@ -4052,7 +3797,7 @@ Welche &os;-Releases betroffen sind, ist im Feld Affects angegeben. Die Version einer Datei, die zum Kernel gehört, können Sie - schnell mit ident ermitteln. Bei Ports + schnell mit &man.ident.1; ermitteln. Bei Ports ist die Versionsnummer angegeben, die Sie im Verzeichnis /var/db/pkg finden. Wenn Sie Ihr System nicht täglich aktualisieren, @@ -4066,8 +3811,9 @@ Reserviert für Informationen, über die - in der Common Vulnerabilities Database - nach Sicherheitslücken gesucht werden kann. + in der Common + Vulnerabilities Database nach Sicherheitslücken + gesucht werden kann. @@ -4160,8 +3906,7 @@ konfigurieren Bevor Sie die Prozess-Überwachung verwenden können, - müssen Sie diese aktivieren. Dazu führen Sie als - root die folgenden Befehle aus: + müssen Sie diese über die folgenden Befehle aktivieren: &prompt.root; touch /var/account/acct &prompt.root; accton /var/account/acct @@ -4170,29 +3915,144 @@ Einmal aktiviert, wird sofort mit der Überwachung von CPU-Statistiken, Befehlen und anderen Vorgängen begonnen. Protokolldateien werden in einem - nur von Maschinen lesbaren Format gespeichert, daher müssen - Sie diese über &man.sa.8; aufrufen. Geben Sie keine - Optionen an, gibt sa Informationen wie - die Anzahl der Aufrufe pro Anwender, die abgelaufene Zeit in - Minuten, die gesamte CPU- und Anwenderzeit - in Minuten, die durchschnittliche Anzahl der Ein- und - Ausgabeoperationen und viel andere mehr aus. + nur von Maschinen lesbaren Format gespeichert und können + über &man.sa.8; aufgerufen werden. Ohne Optionen gibt + &man.sa.8; 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. Um Informationen über ausgeführte Befehle zu erhalten, verwenden Sie &man.lastcomm.1;. So können Sie - etwa ermittlen, welche Befehle von wem auf welchem &man.ttys.5; - ausgeführt wurden: + etwa ermitteln, welche Befehle von wem auf welchem &man.ttys.5; + ausgeführt wurden. Dieses Beispiel zeigt die Nutzung von + &man.ls.1; durch trhodes auf dem Terminal + ttyp1: &prompt.root; lastcomm ls trhodes ttyp1 - Das Ergebnis sind alle bekannten Einsätze von - ls durch trhodes - auf dem Terminal ttyp1. - - Zahlreiche weitere nützliche Optionen finden Sie in den - Manualpages zu &man.lastcomm.1;, &man.acct.5; sowie - &man.sa.8;. + Zahlreiche weitere nützliche Optionen finden Sie + &man.lastcomm.1;, &man.acct.5; sowie &man.sa.8;. + + + Einschränkung von Ressourcen + + + + + + Tom + Rhodes + + Beigetragen von + + + + + + Ressourcen einschränken + + + Seit Jahren benutzt &os; die Datenbank + /etc/login.conf um Ressourcen zu + beschränken. Obwohl dies immer noch unterstützt wird, ist es + nicht die optimale Methode um die Beschränkung von Ressourcen zu + steuern, da Benutzer in verschiedene Gruppen (Login-Klassen) + aufgeteilt werden müssen und bei Änderungen immer die Datei und + die Passwortdatenbank bearbeitet werden muss. Möglicherweise + benötigt ein eingeschränkter Benutzer eine zusätzliche Klasse, + dann müsste die Datenbank mit cap_mkdb neu + gebaut werden und /etc/master.passwd müsste + ebenfalls bearbeitet werden. Zusätzlich müsste die + Passwortdatenbank mit pwd_mkdb neu gebaut + werden. Dieser Prozess kann sehr zeitaufwendig sein, abhängig + davon, wie viele Benutzer bearbeitet werden müssen. + + Mit &man.rctl.8; können Ressourcen für Benutzer sehr + detailliert gesteuert werden. Die Befehl unterstützt nicht + nur die Kontrolle der Ressourcen für Benutzer, sondern auch + die Beschränkung auf Prozesse, Jails und den ursprünglichen + Login-Klassen. Diese erweiterten Funktionen bieten + Administratoren und Benutzern die Möglichkeit, Ressourcen über + die Kommandozeile oder über eine Konfigurationsdatei zu + steuern. + + Um diese Eigenschaft zu aktivieren, fügen Sie folgende Zeile + in die Kernelkonfigurationsdatei: + + options RACCT +options RCTL + + Das System muss nun neu übersetzt werden. Dieser Vorgang + wird in beschrieben. + Anschließend kann rctl benutzt werden, um + die Regeln für das System festzulegen. + + Die Syntax der Regeln ist einfach und wird durch + subject, subject-id, + resource und action + gesteuert. Hier ein Beispiel für eine Regel: + + 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 (zehn) Prozessen konfiguriert. Es sind + noch weitere Aktionen verfügbar, 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 + Meldung ausgegeben: + + &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: + + &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: + + # Block jail from using more than 2G memory: +jail:httpd:memoryuse:deny=2G/jail + + Mit rctl können auch Regeln entfernt + werden: + + &prompt.root; rctl -r user:trhodes:maxproc:deny=10/user + + Die Manualpage 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 + + 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;. +