Anleitung zum Absichern von Debian ---------------------------------- Javier Ferna'ndez-Sanguino Pen~a Abschnitt 1.1, `Autoren' Version: 3.11, Mon, 07 Jan 2008 19:32:42 +0100 ------------------------------------------------------------------------------- Zusammenfassung --------------- Dieses Dokument handelt von der Sicherheit im Debian-Projekt und im Betriebssystem Debian. Es beginnt mit dem Prozess, eine Standardinstallation der Debian GNU/Linux-Distribution abzusichern und abzuhärten. Es deckt die gewöhnliche Arbeit ab, eine sichere Netzwerkumgebung mit Debian GNU/Linux zu schaffen, und liefert zusätzliche Informationen über die verfügbaren Sicherheitswerkzeuge. Es befasst sich auch damit, wie die Sicherheit in Debian vom Sicherheits- und Auditteam gewährleistet wird. Copyright-Hinweis ----------------- Copyright (C) 2002-2007 Javier Fernández-Sanguino Peña Copyright (C) 2001 Alexander Reelsen, Javier Fernández-Sanguino Peña Copyright (C) 2000 Alexander Reelsen An manchen Abschnitten besteht ein Copyright (C) der jeweiligen Autoren. Genaueres erfahren Sie unter Abschnitt 1.7, `Danksagungen'. Es ist erlaubt, dieses Dokument unter den Bedingungen der GNU General Public License, Version 2 (http://www.gnu.org/copyleft/gpl.html) oder jeder späteren Version, die von der Free Software Foundation veröffentlicht wird, zu kopieren, zu verbreiten und/oder zu verändern. Es wird in der Hoffnung veröffentlicht, dass es sich als nützlich erweisen könnte, aber OHNE JEDE GEWÄHRLEISTUNG. Es ist erlaubt, unveränderte Kopien dieses Dokuments zu erstellen und zu vertreiben, vorausgesetzt der Copyright-Hinweis und diese Genehmigung bleiben auf allen Kopien erhalten. Es ist erlaubt, veränderte Kopien dieses Dokuments unter den Voraussetzungen für unverändertes Kopieren, zu erstellen und zu vertreiben, sofern die gesamte resultierende Arbeit unter den Bedingungen einer Genehmigung identisch zu dieser, vertrieben wird. Es ist erlaubt, Übersetzungen dieses Dokuments in eine andere Sprache, unter den obigen Bedingungen für veränderte Versionen zu kopieren und zu verteilen, mit der Ausnahme, dass diese Genehmigung übersetzt, statt im ursprünglichem Englisch, eingebunden werden kann, sofern diese Übersetzung (des Copyrights) von der Free Software Foundation genehmigt ist. ------------------------------------------------------------------------------- Inhalt ------ 1. Einleitung 1.1. Autoren 1.2. Wo Sie diese Anleitung bekommen (und verfügbare Formate) 1.3. Organisatorisches / Feedback 1.4. Vorwissen 1.5. Dinge, die noch geschrieben werden müssen (FIXME/TODO) 1.6. Änderungsübersicht/Changelog/Geschichte 1.7. Danksagungen 2. Bevor Sie beginnen ... 2.1. Wofür möchten Sie dieses System benutzen? 2.2. Seien Sie wachsam gegenüber generellen Sicherheitsproblemen! 2.3. Wie geht Debian mit der Sicherheit um? 3. Vor und während der Installation 3.1. Setzen Sie ein Passwort im BIOS 3.2. Partitionieren des Systems 3.3. Gehen Sie nicht ins Internet, bevor Sie nicht bereit sind 3.4. Setzen Sie ein Passwort für root 3.5. Aktivieren Sie Shadow-Passwörter und MD5-Passwörter 3.6. Lassen Sie so wenige Dienste wie möglich laufen 3.7. Installieren Sie möglichst wenig Software 3.8. Lesen Sie Debians Sicherheits-Mailinglisten 4. Nach der Installation 4.1. Abonnement der Security-Announce-Mailingliste von Debian 4.2. Ausführen von Sicherheitsupdates 4.3. Änderungen im BIOS (noch einmal) 4.4. Ein Passwort für LILO oder GRUB einstellen 4.5. Entfernen des Root-Prompts von Initramfs 4.6. Entfernen des Root-Promptes aus dem Kernel 4.7. Einschränkender Konsolen-Zugang 4.8. System-Neustart von der Konsole aus einschränken 4.9. Partitionen auf die richtige Art einbinden 4.10. Den Benutzern einen sicheren Zugang bereitstellen 4.11. Die Nutzung von tcpwrappers 4.12. Die Wichtigkeit von Logs und Alarmen 4.13. Den Kernel patchen 4.14. Schutz vor Pufferüberläufen 4.15. Sichere Übertragung von Dateien 4.16. Einschränkung und Kontrolle des Dateisystems 4.17. Absicherung des Netzwerkzugangs 4.18. Einen Schnappschuss des Systems erstellen 4.19. Andere Empfehlungen 5. Absichern von Diensten, die auf Ihrem System laufen 5.1. Absichern von ssh 5.2. Absichern von Squid 5.3. Absichern von FTP 5.4. Zugriff auf das X-Window-System absichern 5.5. Absichern des Druckerzugriffs (die lpd- und lprng-Problematik) 5.6. Absichern des Mail-Dienstes 5.7. Sichern von BIND 5.8. Absichern von Apache 5.9. Absichern von Finger 5.10. Allgemeine chroot- und suid-Paranoia 5.11. Allgemeine Klartextpasswort-Paranoia 5.12. NIS deaktivieren 5.13. Sichern von RPC-Diensten 5.14. Hinzufügen von Firewall-Fähigkeiten 6. Automatisches Abhärten von Debian-Systemen 6.1. Harden 6.2. Bastille Linux 7. Die Infrastruktur für Sicherheit in Debian 7.1. Das Sicherheitsteam von Debian 7.2. Debian-Sicherheits-Ankündigungen 7.3. Die Infrastruktur der Sicherheit bei der Paketerstellung in Debian 7.4. Paketsignierung in Debian 8. Sicherheitswerkzeuge in Debian 8.1. Programme zur Fernprüfung der Verwundbarkeit 8.2. Werkzeuge zum Scannen von Netzwerken 8.3. Interne Prüfungen 8.4. Testen des Quellcodes 8.5. Virtual Private Networks (virtuelle private Netzwerke) 8.6. Infrastruktur für öffentliche Schlüssel (Public Key Infrastructure, PKI) 8.7. SSL Infrastruktur 8.8. Antiviren-Programme 8.9. GPG-Agent 9. Der gute Umgang von Entwicklern mit der Sicherheit des OS 9.1. Das richtige Vorgehen für die Nachprüfung der Sicherheit und Gestaltung 9.2. Benutzer und Gruppen für Daemons erstellen 10. Vor der Kompromittierung 10.1. Halten Sie Ihr System sicher 10.2. Periodische Überprüfung der Integrität 10.3. Aufsetzen einer Eindringlingserkennung 10.4. Vermeiden von Root-Kits 10.5. Geniale/paranoide Ideen --- was Sie tun können 11. Nach einer Kompromittierung (Reaktion auf einem Vorfall) 11.1. Allgemeines Verhalten 11.2. Anlegen von Sicherheitskopien Ihres Systems 11.3. Setzen Sie sich mit dem lokal CERT in Verbindung 11.4. Forensische Analyse 12. Häufig gestellte Fragen / Frequently asked Questions (FAQ) 12.1. Sicherheit im Debian Betriebssystem 12.2. Mein System ist angreifbar! (Sind Sie sich sicher?) 12.3. Fragen zum Sicherheitsteam von Debian A. Der Abhärtungsprozess Schritt für Schritt B. Checkliste der Konfiguration C. Aufsetzen eines autonomen IDS D. Aufsetzen einer überbrückenden Firewall (bridge Firewall) D.1. Eine Bridge mit NAT- und Firewall-Fähigkeiten D.2. Eine Bridge mit Firewall-Fähigkeiten D.3. Grundlegende Iptables-Regeln E. Beispielskript, um die Standard-Installation von Bind zu ändern F. Schutz der Sicherheitsaktualisierung durch eine Firewall G. `Chroot'-Umgebung für `SSH' G.1. SSH-Benutzer in ein Chroot-Gefängnis einsperren G.2. Einsperren des SSH-Servers in einem Chroot-Gefängnis H. `Chroot'-Umgebung für `Apache' H.1. Einleitung H.2. Installation des Servers H.3. Weiterführende Informationen ------------------------------------------------------------------------------- 1. Einleitung ------------- Eines der schwierigsten Dinge beim Schreiben über Sicherheit ist, dass jeder Fall einzigartig ist. Sie müssen zwei Dinge beachten: Die Gefahr aus der Umgebung und das Bedürfnis an Sicherheit Ihrer Seite, Ihres Hosts oder Ihres Netzwerkes. So unterscheiden sich zum Beispiel die Sicherheitsbedürfnisse eines Heimanwenders komplett von den Sicherheitsbedürfnissen des Netzwerkes einer Bank. Während die Hauptgefahr eines Heimanwenders von "Script-Kiddies" ausgeht, muss sich das Netzwerk einer Bank um direkte Angriffe sorgen. Zusätzlich muss eine Bank die Daten ihrer Kunden mit mathematischer Präzision beschützen. Um es kurz zu machen: Jeder Nutzer muss selbst zwischen Benutzerfreundlichkeit und Sicherheit/Paranoia abwägen. Beachten Sie bitte, dass diese Anleitung nur Software-Themen behandelt. Die beste Software der Welt kann Sie nicht schützen, wenn jemand direkten Zugang zu Ihrem Rechner hat. Sie können ihn unter Ihren Schreibtisch stellen, oder Sie können ihn in einen starken Bunker mit einer ganzen Armee davor stellen. Trotzdem kann der Rechner unter Ihrem Schreibtisch weitaus sicherer sein -- von der Software-Seite aus gesehen -- als der eingebunkerte, wenn Ihr Schreibtisch-Rechner richtig konfiguriert und die Software des eingebunkerten Rechners voller Sicherheitslöcher ist. Sie müssen beide Möglichkeiten betrachten. Dieses Dokument gibt Ihnen lediglich einen kleinen Überblick, was Sie tun können, um die Sicherheit Ihres Debian GNU/Linux Systems zu erhöhen. Wenn Sie bereits andere Dokumente über Sicherheit unter Linux gelesen haben, werden Sie feststellen, dass es einige Überschneidungen geben wird. Wie auch immer: Dieses Dokument versucht nicht, die ultimative Informationsquelle zu sein, es versucht nur, die gleichen Informationen so zu adaptieren, dass sie gut auf ein Debian GNU/Linux System passen. Unterschiedliche Distributionen erledigen manche Dinge auf unterschiedliche Art (zum Beispiel den Aufruf von Daemons); hier finden Sie Material, das zu Debians Prozeduren und Werkzeugen passt. 1.1. Autoren ------------ Der aktuelle Betreuer dieses Dokuments ist Javier Fernández-Sanguino Peña (mailto:jfs@debian.org). Falls Sie Kommentare, Ergänzungen oder Vorschläge haben, schicken Sie ihm diese bitte. Sie werden dann in künftigen Ausgaben dieses Handbuchs berücksichtigt werden. Dieses Handbuch wurde als _HOWTO_ von Alexander Reelsen (mailto:ar@rhwd.de) ins Leben gerufen. Nachdem es im Internet veröffentlicht wurde, gliederte es Javier Fernández-Sanguino Peña (mailto:jfs@debian.org) in das Debian-Dokumentations-Projekt (http://www.debian.org/doc) ein. Zahlreiche Menschen haben etwas zu diesem Handbuch beigesteuert (alle Beiträge sind im Changelog aufgeführt), aber die folgenden haben gesonderte Erwähnung verdient, da sie bedeutende Beiträge geleistet haben (ganze Abschnitte, Kapitel oder Anhänge): * Stefano Canepa * Era Eriksson * Carlo Perassi * Alexandre Ratti * Jaime Robles * Yotam Rubin * Frederic Schutz * Pedro Zorzenon Neto * Oohara Yuuma * Davor Ocelic Bei Fehlern in dieser Übersetzung wenden Sie sich bitte an den aktuellen deutschen Übersetzer Simon Brandmair (mailto:sbrandmair@gmx.net) oder (wenn dieser nicht erreichbar ist) an die Mailingliste (mailto:debian-l10n-german@lists.debian.org).[1] [1] Es würde eine Menge Arbeit ersparen, wenn die Verbesserungen in die SGML-Dateien eingearbeitet werden. Diese sind mittels CVS abrufbar und können auch über die Webschnittstelle (http://cvs.debian.org/ddp/manuals.sgml/securing-howto/?cvsroot=debian-doc) abgerufen werden. d.Ü. 1.2. Wo Sie diese Anleitung bekommen (und verfügbare Formate) ------------------------------------------------------------- Sie können sich die neueste Version der "Anleitung zum Absichern von Debian" beim Debian-Dokumentationsprojekt (http://www.de.debian.org/doc/manuals/securing-debian-howto/) herunterladen oder anschauen. Wenn Sie eine Kopie von einer anderen Seite lesen, überprüfen Sie bitte die Hauptversion, ob sie neue Informationen enthält. Wenn Sie eine Übersetzung lesen (was Sie im Moment tun, d.Ü.), vergleichen Sie bitte die Version der Übersetzung mit der neuesten Version. Falls Sie feststellen, dass die Übersetzung veraltet ist, sollten Sie in Betracht ziehen, die Originalversion zu verwenden oder zumindest die Abschnitt 1.6, `Änderungsübersicht/Changelog/Geschichte' durchsehen, um zu wissen, was geändert wurde. Wenn Sie eine vollständige Kopie des Handbuchs wollen, können Sie die Text-Version (http://www.de.debian.org/doc/manuals/securing-debian-howto/securing-debian-howto.de.txt) oder die PDF-Version (http://www.de.debian.org/doc/manuals/securing-debian-howto/securing-debian-howto.de.pdf) von der Seite des Debian-Dokumentationsprojektes herunterladen. Diese Versionen können sinnvoller sein, wenn Sie das Dokument auf ein tragbares Medium kopieren oder ausdrucken wollen. Seien Sie aber gewarnt, das Dokument ist über 200 Seiten lang und einige Abschnitte von Code ist in der PDF-Version wegen den eingesetzten Formatierungswerkzeugen nicht richtig umgebrochen und könnte daher nur unvollständig ausgedruckt werden. Das Dokument ist auch in den Formaten HTML, txt und PDF im Paket harden-doc (http://packages.debian.org/harden-doc) enthalten. Beachten Sie allerdings, dass das Paket nicht genauso aktuell sein muss wie das Dokument, das Sie auf der Debian-Seite finden (Sie können sich aber immer eine aktuelle Version aus dem Quellpaket bauen). Sie können auch die Veränderungen durchforsten, die am Dokument vorgenommen wurden, indem Sie die Protokolle der Versionskontrolle mit dem CVS-Server (http://cvs.debian.org/ddp/manuals.sgml/securing-howto/?cvsroot=debian-doc) durchsehen. 1.3. Organisatorisches / Feedback --------------------------------- Nun kommt der offizielle Teil. Derzeit sind die meisten Teile dieser Anleitung noch von mir (Alexander Reelsen) geschrieben, aber meiner Meinung nach sollte dies nicht so bleiben. Ich wuchs mit freier Software auf und lebe mit ihr, sie ist ein Teil meiner alltäglichen Arbeit und ich denke, auch von Ihrer. Ich ermutige jedermann, mir Feedback, Tipps für Ergänzungen oder andere Vorschläge, die Sie haben könnten, zuzuschicken. Wenn Sie denken, dass Sie einen bestimmten Abschnitt oder Paragraphen besser pflegen können, dann schreiben Sie dem Dokumenten-Betreuer und Sie dürfen es gerne erledigen. Insbesondere, wenn Sie eine Stelle finden, die mit "FIXME" markiert wurde -- was bedeutet, dass die Autoren noch nicht die Zeit hatten oder sich noch Wissen über das Thema aneignen müssen -- schicken Sie ihnen sofort eine E-Mail. Für diese Anleitung ist es natürlich äußerst wichtig, dass sie weiter gepflegt und auf dem neusten Stand gehalten wird. Auch Sie können Ihren Teil dazu beitragen. Bitte unterstützen Sie uns. 1.4. Vorwissen -------------- Die Installation von Debian GNU/Linux ist nicht wirklich schwer, und Sie sollten in der Lage gewesen sein, es zu installieren. Wenn Ihnen andere Linux-Distributionen, Unixe oder die grundsätzliche Sicherheitskonzepte ein wenig vertraut sind, wird es Ihnen leichter fallen, diese Anleitung zu verstehen, da nicht auf jedes winzige Detail eingegangen werden kann (oder dies wäre ein Buch geworden und keine Anleitung). Wenn Sie jedoch mit diesen Dingen noch nicht so vertraut sind, sollten Sie vielleicht einen Blick in die Abschnitt 2.2, `Seien Sie wachsam gegenüber generellen Sicherheitsproblemen!' für tiefer gehende Informationen werfen. 1.5. Dinge, die noch geschrieben werden müssen (FIXME/TODO) ----------------------------------------------------------- Dieses Kapitel beschreibt die Dinge, welche in diesem Handbuch noch verbessert werden müssen. Einige Abschnitte beinhalten _FIXME_- oder _TODO_-Markierungen, in denen beschrieben wird, welche Dinge fehlen (oder welche Aufgaben erledigt werden müssen). Der Zweck dieses Kapitels ist es, die Dinge, die zukünftig in dieses Handbuch aufgenommen werden könnten, und die Verbesserungen, die durchgeführt werden müssen (oder bei denen es interessant wäre, sie einzufügen) zu beschreiben. Wenn Sie glauben, dass Sie Hilfe leisten könnten, den auf dieser Liste aufgeführten Punkten (oder solchem im Text) abzuhelfen, setzen Sie sich mit dem Hauptautor (Abschnitt 1.1, `Autoren') in Verbindung. * Erweiterung der Informationen zur Reaktion auf einen Zwischenfall, unter Umständen auch mit einigen Vorschlägen von Red Hats Sicherheitsanleitung chapter on incident response (http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/security-guide/ch-response.html). * Vorstellen von entfernten Überwachungswerkzeugen (um die Erreichbarkeit des Systems zu überprüfen) wie `monit', `daemontools' und `mon'. Vergleiche http://linux.oreillynet.com/pub/a/linux/2002/05/09/sysadminguide.html. * Überprüfung, ob http://www.giac.org/practical/gsec/Chris_Koutras_GSEC.pdf wichtige Informationen hat, die hier noch nicht behandelt werden. * Informationen, wie man einen Laptop mit Debian einrichtet http://www.giac.org/practical/gcux/Stephanie_Thomas_GCUX.pdf. * Informationen, wie man unter Debian GNU/Linux eine Firewall aufsetzt. Der Firewalls betreffende Abschnitt orientiert sich derzeit an Einzelplatz-Systemen (die keine anderen System schützen müssen); auch auf das Testen des Setups eingehen. * Wie man eine Proxy-Firewall unter Debian GNU/Linux aufsetzt, unter der Angabe, welche Pakete Proxy-Dienste anbieten (zum Beispiel `xfwp', `ftp-proxy', `redir', `smtpd', `dnrd', `jftpgw', `oops', `pdnsd', `perdition', `transproxy', `tsocks'). Sollte zu einer Anleitung mit weiteren Informationen verweisen. Erwähnenswert ist, dass `zorp' jetzt Teil von Debian ist und eine Proxy-Firewall _ist_ (und auch der Programmautor Debian-Pakete zur Verfügung stellt.) * Informationen über die Service-Konfiguration mit file-rc * Alle Referenzen und URLs prüfen und die nicht mehr verfügbaren aktualisieren oder entfernen * Informationen über möglichen Ersatz (unter Debian) für häufig eingesetzte Server, die bei eingeschränktem Funktionsumfang nützlich sind. Beispiele: * lokaler lpr mit cups (Paket)? * remote lrp mit lpr * bind mit dnrd/maradns * apache mit dhttpd/thttpd/wn (tux?) * exim/sendmail mit ssmtpd/smtpd/postfix * squid mit tinyproxy * ftpd mit oftpd/vsftp * ... * Mehr Informationen über die sicherheitsrelevanten Patches des Kernels unter Debian einschließlich der oben aufgeführten, und insbesondere wie man diese Patches unter einem Debian-System benutzt. * Erkennung von Eindringlingen (Linux Intrusion Detection `kernel-patch-2.4-lids') * Linux Trustees (im Paket `trustees') * NSA Enhanced Linux (http://wiki.debian.org/SELinux) * `linux-patch-openswan' * Details, wie man unnötige Netzwerkdienste deaktiviert (abgesehen von `inetd'), dies ist teilweise Teil des Abhärtungsprozesses, könnte aber etwas ausgeweitet werden. * Informationen über Passwort-Rotation, was sehr nah an grundsätzliche Regeln (Policies) herankommt * Policies und die Aufklärung der Nutzer über die Policy * Mehr über tcpwrapper und wrapper im Allgemeinen? * `hosts.equiv' und andere wichtige Sicherheitslöcher * mögliche Probleme bei der Dateifreigabe, wie Samba und NFS? * suidmanager/dpkg-statoverrides. * lpr und lprng. * Abschalten der GNOME-IP-Dinge. * Erwähnen von pam_chroot (siehe http://lists.debian.org/debian-security/2002/debian-security-200205/msg00011.html) und seine Nützlichkeit, um Nutzer einzuschränken. Einführende Informationen in Verbindung mit http://online.securityfocus.com/infocus/1575. `pdmenu' sind zum Beispiel bereits unter Debian verfügbar (während flash das nicht ist). * Darüber reden, Dienste mit einer chroot-Umgebung zu versehen, mehr Informationen dazu unter http://www.linuxfocus.org/English/January2002/article225.shtml, http://www.nuclearelephant.com/papers/chroot.html und http://www.linuxsecurity.com/feature_stories/feature_story-99.html. * Programme erwähnen, die Chroot-Gefängnisse (chroot jails) herstellen. `compartment' und `chrootuid' warten noch in incoming. Einige andere (makejail, jailer) könnten ebenfalls eingeführt werden. * Mehr Informationen über Software zur Analyse von Protokoll-Dateien (log-Dateien, logs; zum Beispiel `logcheck' und logcolorise). * "Fortgeschrittenes" Routing (Traffic-Regelungen sind sicherheitsrelevant) * Zugang über `SSH' so einschränken, dass man nur bestimmte Kommandos ausführen kann * Die Benutzung von dpkg-statoverride. * Sichere Wege, mehreren Nutzern den Zugriff auf CD-Brenner zu erlauben * Sichere Wege, um Sound zusammen mit einem Display über ein Netzwerk zu leiten (so dass die Sounds eines X-Clients über die Hardware eines X-Servers abgespielt werden) * Absichern von Web-Browsern * Aufsetzen von ftp über `ssh' * Die Benutzung von verschlüsselten Loopback-Dateisystemen * Verschlüsselung eines ganzen Dateisystems * Steganographie-Tools * Aufsetzen eines PKA für eine Organisation * LDAP benutzen zur Verwaltung der User. Es gibt ein HOWTO zu ldap+kerberos für Debian auf http://www.bayour.com von Turbo Fredrikson. * Wie man Informationen mit begrenztem Nutzen wie z.B. `/usr/share/doc' oder `/usr/share/man' auf Produktivsystemen entfernt (jawohl, security by obscurity). * Mehr Informationen über lcap, die sich auf die README-Datei des Pakets stützen (gut, die Datei ist noch nicht vorhaben, vergleiche Bug #169465 (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=169465)) und diesen Artikel von LWN: Kernel development (http://lwn.net/1999/1202/kernel.php3). * Füge Colins Artikel hinzu, wie man eine Chroot-Umgebung für ein komplettes Sid-System aufsetzt (http://people.debian.org/~walters/chroot.html). * Informationen darüber, wie man mehrere `snort'-Sensoren in einem System betreibt (beachte die Fehlerberichte zu `snort'). * Informationen, wie man einen Honigtopf (honeypot) einrichtet (`honeyd') * Darstellung der Situation von FreeSwan (verwaist) und OpenSwan. Der Abschnitt über VPN muss überarbeitet werden. * Füge einen gesonderten Abschnitt über Datenbanken hinzu, ihre Standardwerte und, wie man den Zugriff absichert. * Füge einen Abschnitt über den Nutzen von virtuellen Servern (wie Xen u.a.) hinzu. * Erkläre, wie Programme zur Überprüfung der Integrität verwendet werden (AIDE, integrit oder samhain). Die Grundlagen sind einfach und könnten auch einige Verbesserungen der Konfiguration enthalten. 1.6. Änderungsübersicht/Changelog/Geschichte -------------------------------------------- 1.6.1. Version 3.11 (Januar 2007) --------------------------------- Änderung von Javier Fernández-Sanguino Peña. Vielen Dank an Francesco Poli für die umfangreiche Durchsicht dieses Dokuments. * Entfernte die meisten Verweise auf Woody, da es nicht länger im Archiv verfügbar ist und es dafür auch keine Unterstützung der Sicherheit mehr gibt. * Beschrieb, wie Benutzer eingeschränkt werden, so dass sie nur Dateiübertragungen durchführen können. * Fügte einen Hinweis auf die Entscheidung zur Umstufung vertraulicher Meldungen an Debian ein. * Aktualisierte den Verweis auf die Anleitung zum Umgang mit Vorfällen. * Fügte einen Hinweis darauf ein, dass Entwicklerwerkzeuge (wie Compiler) nicht mehr standardmäßig in Etch installiert werden. * Korrigierte den Verweis auf den Master-Security-Server. * Fügte einen Hinweis auf die Dokumentation zu APT-secure ein. * Verbesserte die Erläuterung der APT-Signaturen * Kommentierte einige Stellen aus, die auf noch nicht fertig gestellte Abschnitte der offiziellen öffentlichen Schlüssel von Spiegelservern bezogen. * Korrigierte den Namen des Debian-Testing-Sicherheitsteams. * Entfernte in einem Beispiel den Verweis auf Sarge. * Aktualisierte die Abschnitt über Antivirus: clamav ist jetzt in der Veröffentlichung enthalten. Erwähne auch den Installer für f-prot. * Entfernte alle Verweise auf freeswan, da es veraltet ist. * Beschrieb Probleme, die beim Verändern der Firewall-Regeln aus der Ferne auftreten können, und gab einige Tipps (in Fußnoten). * Schrieb den Abschnitt "Bind nicht als Root laufen lassen" neu, da dies nicht mehr auf Bind9 zutrifft. Entfernte auch Verweise auf das init.d-Skript, da die Änderungen in /etc/default vorgenommen werden müssen. * Entfernte eine veraltete Möglichkeit, Regeln für die Firewall einzurichten, da Woody nicht länger unterstützt wird. * Kehrte zu dem früheren Hinweis bezüglich LOG_UNKFAIL_ENAB zurück, nämlich dass es auf 'no' (wie es standardmäßig ist) gesetzt werden sollte. * Fügte Informationen hinzu, wie das System mit Werkzeugen für den Desktop (einschließlich update-notifier) aktualisiert wird, und beschrieb, wie man mit aptitude das System aktualisiert. * Aktualisierte das FAQ und entfernte überflüssige Abschnitte. * Überarbeitete und aktualisierte den Abschnitt über die forensische Analyse von Malware. * Entfernte oder korrigierte einige tote Links. * Verbesserte viele Tipp- und Grammatikfehler, die von Francesco Poli mitgeteilt wurden. 1.6.2. Version 3.10 (November 2006) ----------------------------------- Änderung von Javier Fernández-Sanguino Peña * Gab Beispiele, wie rdepends von apt-cache verwendet wird. Wurde von Ozer Sarilar vorgeschlagen. * Korrigierte den Verweis auf das Benutzerhandbuch von Squid auf Grund seines Umzugs. Wurde von Oskar Pearson (dem Herausgeber) mitgeteilt. * Korrigierte Informationen über umask, seine logins.defs (nicht limits.conf), wo dies für einen Anmeldungen konfiguriert werden kann. Stellte den Standard von Debian und strengere Werte für Benutzer und Root dar. Vielen Dank an Reinhard Tartler für das Auffinden des Fehlers. 1.6.3. Version 3.9 (Oktober 2006) --------------------------------- Änderung von Javier Fernández-Sanguino Peña * Fügte Informationen hinzu, wie man Sicherheitslücken verfolgt. Hinweis auf den Debian-Testing-Sicherheits-Tracker. * Fügte weitere Informationen über die Sicherheitsunterstützung für Testing hinzu. * Korrigierte eine große Anzahl von Tippfehlern mit einem Patch von Simon Brandmair. * Fügte einen Abschnitt hinzu, wie das Root-Prompt bei initramfs abgestellt wird. Wurde von Max Attems beigesteuert. * Entfernte Verweise auf queso. * Hinweis in der Einleitung, dass nun auch Testing vom Sicherheitsteam unterstützt wird. 1.6.4. Version 3.8 (Juli 2006) ------------------------------ Änderung von Javier Fernández-Sanguino Peña * Schrieb die Hinweise neu, wie man SSH in einer Chroot-Umgebung einsperrt, um die verschiedenen Optionen deutlicher herauszustellen. Vielen Dank an Bruce Park, der auf verschiedene Fehler in diesem Anhang hinwies. * Verbesserte den Aufruf von lsof, wie es von Christophe Sahut vorgeschlagen wurde. * Fügte einen Patch von Uwe Hermann zur Verbesserung von Tippfehlern ein. * Verbesserte einen Tippfehler, der von Moritz Naumann entdeckt wurde. 1.6.5. Version 3.7 (April 2006) ------------------------------- Änderung von Javier Fernández-Sanguino Peña * Fügte einen Abschnitt über den besten Umgang der Entwickler von Debian mit Sicherheitsfragen hinzu. * Fügte eine Firewall-Skript mit Kommentaren von WhiteGhost an. 1.6.6. Version 3.6 (März 2006) ------------------------------ Änderung von Javier Fernández-Sanguino Peña * Fügte einen Patch von Thomas Sjögren ein, der beschreibt, dass `noexec' wie erwartet mit »neuen« Kernel arbeitet, der Informationen über den Umgang mit temporären Dateien hinzufügt und einige Verweise auf externe Dokumentationen. * Fügte nach einem Vorschlag von Freek Dijkstra einen Verweis auf Dan Farmers und Wietse Venemas Webseite über forensische Entdeckungen ein und erweiterte den Abschnitt über forensische Analyse etwas mit weiteren Verweisen. * Verbesserte dank Christoph Auer die URL des italienischen CERT. * Verwendete wieder Joey Hess' Informationen aus dem Wiki über Secure Apt und fügte sie in den Infrastrukturabschnitt ein. 1.6.7. Version 3.5 (November 2005) ---------------------------------- Änderung von Javier Fernández-Sanguino Peña * Hinweis im SSH-Abschnitt, dass chroot nicht funktioniert, wenn die Option nodev mit der Partition verwendet wird, und auf das aktuelle ssh-Paket mit dem chroot-Patch. Vielen Dank an Lutz Broedel für diese Hinweise. * Ausbesserung eines Tippfehlers, der von Marcos Roberto Greiner entdeckt wurde (md5sum sollte sha1sum im Code-Schnipsel sein) * Fügte Jens Seidels Patch ein, der eine Anzahl von Paketnamen und Tippfehlern verbesserte. * Kleine Aktualisierung des Werkzeugabschnitts, entfernte Werkzeuge, die nicht länger verfügbar sind, und fügte einige neue hinzu. * Schrieb Teile des Abschnitts neu, in dem es darum geht, wo und in welchen Formaten dieses Dokument erhältlich ist (die Webseite stellt eine PDF-Version zur Verfügung). Merkte auch an, dass Kopien auf anderen Seiten und Übersetzungen veraltet sein könnten (viele der Treffer auf Google für dieses Handbuch auf anderen Seiten sind veraltet). 1.6.8. Version 3.4 (August-September 2005) ------------------------------------------ Änderung von Javier Fernández-Sanguino Peña * Verbesserte die Erhöhung der Sicherheit nach der Installation im Zusammenhang mit der Kernelkonfiguration für den Schutz der Netzwerkebene mit der Datei sysctl.conf. Wurde von Will Moy zur Verfügung gestellt. * Verbesserte den Abschnitt über gdm mit Hilfe von Simon Brandmair. * Ausbesserungen von Tippfehlern, die von Frédéric Bothamy und Simon Brandmair entdeckt wurden. * Verbesserungen im Abschnitt "Nach der Installation" im Zusammenhang, wie MD5-Summen (oder SHA-1-Summen) für periodische Überprüfungen erstellt werden. * Aktualisierte den Abschnitt "Nach der Installation" in Hinblick auf die Konfiguration von checksecurity (war veraltet). 1.6.9. Version 3.3 (Juni 2005) ------------------------------ Änderung von Javier Fernández-Sanguino Peña * Fügte einen Code-Fetzen hinzu, um mit grep-available eine Liste von Paketen zu erstellen, die von Perl abhängen. Wurde in #302470 nachgefragt. * Schrieb den Abschnitt über Netzwerkdienste neu (welche installiert sind und wie man sie abschaltet). * Fügte weitere Informationen zum Abschnitt über die Entwicklung eines Honigtopfs hinzu, indem nützliche Debian-Pakete erwähnt werden. 1.6.10. Version 3.2 (März 2005) ------------------------------- Änderung von Javier Fernández-Sanguino Peña * Erweiterte den Abschnitt über die Konfiguration von Limits mit PAM. * Fügte Informationen hinzu, wie pam_chroot für openssh eingesetzt wird (auf Grundlage der README von pam_chroot). * Verbesserte einige kleinere Dinge, die von Dan Jacobson gemeldet wurden. * Aktualisierte die Informationen über Kernelpatches, basiert teilweise auf einem Patch von Carlo Perassi, auf den Anmerkungen zu aufgegebenen Teilen des Kernels und auf den neuen Kernelpatches (adamantix). * Fügte einen Patch von Simon Brandmair ein, der einen Satz im Zusammenhang mit Login-Fehlern auf dem Terminal ausbesserte. * Fügte Mozilla/Thunderbird zu den gültigen GPG-Agenten hinzu, wie von Kapolnai Richard vorgeschlagen wurde. * Erweiterte den Abschnitt über Sicherheitsaktualisierungen, die Aktualisierung von Bibliotheken und des Kernels betreffen, und wie man herausfindet, ob Dienste neu gestartet werden müssen. * Schrieb den Abschnitt über die Firewall neu, habe die Informationen, die Woody betreffen, nach unten verschoben und die übrigen Abschnitte erweitert, einschließlich Hinweisen dazu, wie man von Hand eine Firewall einrichtet (mit einem Beispielsskript) und wie man die Konfiguration der Firewall testen kann. * Fügte einige Informationen hinzu bezüglich der Veröffentlichung von Debian 3.1. * Fügte ausführlichere Hinweise zu Kernelupgrades hinzu, die sich besonders an diejenigen richten, die das alte Installationssystem verwenden. * Fügte einen kurzen Abschnitt über die experimentelle Veröffentlichung von apt 0.6, die die Überprüfung von Paketsignaturen enthält. Verschob den alten Inhalt in den Abschnitt und fügte auch einen Verweis auf die Veränderungen, die in aptitude vorgenommen wurden, hinzu. * Ausbesserungen von Tippfehlern, die von Frédéric Bothamy entdeckt wurden. 1.6.11. Version 3.1 (January 2005) ---------------------------------- Changes by Javier Fernández-Sanguino Peña * Added clarification to ro /usr with patch from Joost van Baal * Apply patch from Jens Seidel fixing many typos. * FreeSWAN is dead, long live OpenSWAN. * Added information on restricting access to RPC services (when they cannot be disabled) also included patch provided by Aarre Laakso. * Update aj's apt-check-sigs script. * Apply patch Carlo Perassi fixing URLs. * Apply patch from Davor Ocelic fixing many errors, typos, urls, grammar and FIXMEs. Also adds some additional information to some sections. * Rewrote the section on user auditing, highlight the usage of script which does not have some of the issues associated to shell history. 1.6.12. Version 3.0 (December 2004) ----------------------------------- Changes by Javier Fernández-Sanguino Peña * Rewrote the user-auditing information and include examples on how to use script. 1.6.13. Version 2.99 (March 2004) --------------------------------- Changes by Javier Fernández-Sanguino Peña * Added information on references in DSAs and CVE-Compatibility. * Added information on apt 0.6 (apt-secure merge in experimental) * Fixed location of Chroot daemons HOWTO as suggested by Shuying Wang. * Changed APACHECTL line in the Apache chroot example (even if its not used at all) as suggested by Leonard Norrgard. * Added a footnote regarding hardlink attacks if partitions are not setup properly. * Added some missing steps in order to run bind as named as provided by Jeffrey Prosa. * Added notes about Nessus and Snort out-of-dateness in woody and availability of backported packages. * Added a chapter regarding periodic integrity test checks. * Clarified the status of testing regarding security updates. (Debian bug 233955) * Added more information regarding expected contents in securetty (since it's kernel specific). * Added pointer to snoopylogger (Debian bug 179409) * Added reference to guarddog (Debian bug 170710) * Apt-ftparchive is in apt-utils, not in apt (thanks to Emmanuel Chantreau for pointing this out) * Removed jvirus from AV list. 1.6.14. Version 2.98 (December 2003) ------------------------------------ Changes by Javier Fernández-Sanguino Peña * Fixed URL as suggested by Frank Lichtenheld. * Fixed PermitRootLogin typo as suggested by Stefan Lindenau. 1.6.15. Version 2.97 (September 2003) ------------------------------------- Changes by Javier Fernández-Sanguino Peña * Added those that have made the most significant contributions to this manual (please mail me if you think you should be in the list and are not). * Added some blurb about FIXME/TODOs * Moved the information on security updates to the beginning of the section as suggested by Elliott Mitchell. * Added grsecurity to the list of kernel-patches for security but added a footnote on the current issues with it as suggested by Elliott Mitchell. * Removed loops (echo to 'all') in the kernel's network security script as suggested by Elliott Mitchell. * Added more (up-to-date) information in the antivirus section. * Rewrote the buffer overflow protection section and added more information on patches to the compiler to enable this kind of protection. 1.6.16. Version 2.96 (august 2003) ---------------------------------- Changes by Javier Fernández-Sanguino Peña * Removed (and then re-added) appendix on chrooting Apache. The appendix is now dual-licensed. 1.6.17. Version 2.95 (June 2003) -------------------------------- Changes by Javier Fernández-Sanguino Peña * Fixed typos spotted by Leonard Norrgard. * Added a section on how to contact CERT for incident handling (#after-compromise) * More information on setting up a Squid proxy. * Added a pointer and removed a FIXME thanks to Helge H. F. * Fixed a typo (save_inactive) spotted by Philippe Faes. * Fixed several typos spotted by Jaime Robles. 1.6.18. Version 2.94 (April 2003) --------------------------------- Changes by Javier Fernández-Sanguino Peña * Following Maciej Stachura's suggestions I've expanded the section on limiting users. * Fixed typo spotted by Wolfgang Nolte. * Fixed links with patch contributed by Ruben Leote Mendes. * Added a link to David Wheeler's excellent document on the footnote about counting security vulnerabilities. 1.6.19. Version 2.93 (march 2003) --------------------------------- Changes made by Frédéric Schütz. * rewrote entirely the section of ext2 attributes (lsattr/chattr) 1.6.20. Version 2.92 (February 2003) ------------------------------------ Changes by Javier Fernández-Sanguino Peña and Frédéric Schütz. * Merge section 9.3 ("useful kernel patches") into section 4.13 ("Adding kernel patches"), and added some content. * Added a few more TODOs * Added information on how to manually check for updates and also about cron-apt. That way Tiger is not perceived as the only way to do automatic update checks. * Slightly rewrite of the section on executing a security updates due to Jean-Marc Ranger comments. * Added a note on Debian's installation (which will suggest the user to execute a security update right after installation) 1.6.21. Version 2.91 (January/February 2003) -------------------------------------------- Changes by Javier Fernández-Sanguino Peña (me). * Added a patch contributed by Frédéric Schütz. * Added a few more references on capabilities thanks to Frédéric. * Slight changes in the bind section adding a reference to BIND's 9 online documentation and proper references in the first area (Hi Pedro!) * Fixed the changelog date - new year :-) * Added a reference to Colin's articles for the TODOs. * Removed reference to old ssh+chroot patches. * More patches from Carlo Perassi. * Typo fixes (recursive in Bind is recursion), pointed out by Maik Holtkamp. 1.6.22. Version 2.9 (December 2002) ----------------------------------- Changes by Javier Fernández-Sanguino Peña (me). * Reorganized the information on chroot (merged two sections, it didn't make much sense to have them separated) * Added the notes on chrooting Apache provided by Alexandre Ratti. * Applied patches contributed by Guillermo Jover. 1.6.23. Version 2.8 (November 2002) ----------------------------------- Changes by Javier Fernández-Sanguino Peña (me). * Applied patches from Carlo Perassi, fixes include: re-wrapping the lines, URL fixes, and fixed some FIXMEs * Updated the contents of the Debian security team FAQ. * Added a link to the Debian security team FAQ and the Debian Developer's reference, the duplicated sections might (just might) be removed in the future. * Fixed the hand-made auditing section with comments from Michal Zielinski. * Added links to wordlists (contributed by Carlo Perassi) * Fixed some typos (still many around). * Fixed TDP links as suggested by John Summerfield. 1.6.24. Version 2.7 (October 2002) ---------------------------------- Changes by Javier Fernández-Sanguino Peña (me). Note: I still have a lot of pending changes in my mailbox (which is currently about 5 Mbs in size). * Some typo fixes contributed by Tuyen Dinh, Bartek Golenko and Daniel K. Gebhart. * Note regarding /dev/kmem rootkits contributed by Laurent Bonnaud * Fixed typos and FIXMEs contributed by Carlo Perassi. 1.6.25. Version 2.6 (September 2002) ------------------------------------ Changes by Chris Tillman, tillman@voicetrak.com. * Changed around to improve grammar/spelling. * s/host.deny/hosts.deny/ (1 place) * Applied Larry Holish's patch (quite big, fixes a lot of FIXMEs) 1.6.26. Version 2.5 (September 2002) ------------------------------------ Changes by Javier Fernández-Sanguino Peña (me). * Fixed minor typos submitted by Thiemo Nagel. * Added a footnote suggested by Thiemo Nagel. * Fixed an URL link. 1.6.27. Version 2.5 (August 2002) --------------------------------- Changes by Javier Fernández-Sanguino Peña (me). There were many things waiting on my inbox (as far back as february) to be included, so I'm going to tag this the _back from honeymoon_ release :) * Added some information on how to setup the Xscreensaver to lock automatically the screen after the configured timeout. * Add a note related to the utilities you should not install in the system. Including a note regarding Perl and why it cannot be easily removed in Debian. The idea came after reading Intersect's documents regarding Linux hardening. * Added information on lvm and journaling filesystems, ext3 recommended. The information there might be too generic, however. * Added a link to the online text version (check). * Added some more stuff to the information on firewalling the local system triggered by a comment made by Hubert Chan in the mailing list. * Added more information on PAM limits and pointers to Kurt Seifried's documents (related to a post by him to Bugtraq on April 4th 2002 answering a person that had ``discovered'' a vulnerability in Debian GNU/Linux related to resource starvation) * As suggested by Julián Muñoz, provided more information on the default Debian umask and what a user can access if he has been given a shell in the system (scary, huh?) * Included a note in the BIOS password section due to a comment from from Andreas Wohlfeld. * Included patches provided by Alfred E. Heggestad fixing many of the typos still present in the document. * Added a pointer to the changelog in the Credits section since most people who contribute are listed here (and not there) * Added a few more notes to the chattr section and a new section after installation talking about system snapshots. Both ideas were contributed by Kurt Pomeroy. * Added a new section after installation just to remember users to change the boot-up sequence. * Added some more TODO items provided by Korn Andras. * Added a pointer to the NIST's guidelines on how to secure DNS provided by Daniel Quinlan. * Added a small paragraph regarding Debian's SSL certificates infrastructure. * Added Daniel Quinlan's suggestions regarding ssh authentication and exim's relay configuration. * Added more information regarding securing bind including changes suggested by Daniel Quinlan and an appendix with a script to make some of the changes commented on that section. * Added a pointer to another item regarding Bind chrooting (needs to be merged) * Added a one liner contributed by Cristian Ionescu-Idbohrn to retrieve packages with tcpwrappers support. * Added a little bit more info on Debian's default PAM setup. * Included a FAQ question about using PAM to give services w/o shell accounts. * Moved two FAQ items to another section and added a new FAQ regarding attack detection (and compromised systems). * Included information on how to setup a bridge firewall (including a sample Appendix). Thanks to Francois Bayart who sent me this on march. * Added a FAQ regarding the syslogd's _MARK_ _heartbeat_ from a question answered by Noah Meyerhans and Alain Tesio on December 2001. * Included information on buffer overflow protection as well as some information on kernel patches. * Added more information (and reorganised) the firewall section. Updated the information regarding the iptables package and the firewall generators available. * Reorganized the information regarding logchecking, moved logcheck information from host intrusion detection to that section. * Added some information on how to prepare a static package for bind for chrooting (untested). * Added a FAQ item (could be expanded with some of the recomendations from the debian-security list regarding some specific servers/services). * Added some information on RPC services (and when it's necessary). * Added some more information on capabilities (and what lcap does). Is there any good documentation on this? I haven't found any on my 2.4 kernel. * Fixed some typos. 1.6.28. Version 2.4 ------------------- Changes by Javier Fernández-Sanguino Peña. * Rewritten part of the BIOS section. 1.6.29. Version 2.3 ------------------- Changes by Javier Fernández-Sanguino Peña. * Wrapped most file locations with the file tag. * Fixed typo noticed by Edi Stojicevi. * Slightly changed the remote audit tools section. * Added some todo items. * Added more information regarding printers and cups config file (taken from a thread on debian-security). * Added a patch submitted by Jesus Climent regarding access of valid system users to Proftpd when configured as anonymous server. * Small change on partition schemes for the special case of mail servers. * Added Hacking Linux Exposed to the books section. * Fixed directory typo noticed by Eduardo Pérez Ureta. * Fixed /etc/ssh typo in checklist noticed by Edi Stojicevi. 1.6.30. Version 2.3 ------------------- Changes by Javier Fernández-Sanguino Peña. * Fixed location of dpkg conffile. * Remove Alexander from contact information. * Added alternate mail address. * Fixed Alexander mail address (even if commented out). * Fixed location of release keys (thanks to Pedro Zorzenon for pointing this out). 1.6.31. Version 2.2 ------------------- Changes by Javier Fernández-Sanguino Peña. * Fixed typos, thanks to Jamin W. Collins. * Added a reference to apt-extracttemplate manpage (documents the APT::ExtractTemplate config). * Added section about restricted SSH. Information based on that posted by Mark Janssen, Christian G. Warden and Emmanuel Lacour on the debian-security mailing list. * Added information on anti-virus software. * Added a FAQ: su logs due to the cron running as root. 1.6.32. Version 2.1 ------------------- Changes by Javier Fernández-Sanguino Peña. * Changed FIXME from lshell thanks to Oohara Yuuma. * Added package to sXid and removed comment since it *is* available. * Fixed a number of typos discovered by Oohara Yuuma. * ACID is now available in Debian (in the acidlab package) thanks to Oohara Yuuma for noticing. * Fixed LinuxSecurity links (thanks to Dave Wreski for telling). 1.6.33. Version 2.0 ------------------- Changes by Javier Fernández-Sanguino Peña. I wanted to change to 2.0 when all the FIXMEs were, er, fixed but I run out of 1.9X numbers :( * Converted the HOWTO into a Manual (now I can properly say RTFM) * Added more information regarding tcp wrappers and Debian (now many services are compiled with support for them so it's no longer an inetd issue). * Clarified the information on disabling services to make it more consistent (rpc info still referred to update-rc.d) * Added small note on lprng. * Added some more info on compromised servers (still very rough) * Fixed typos reported by Mark Bucciarelli. * Added some more steps in password recovery to cover the cases when the admin has set paranoid-mode=on. * Added some information to set paranoid-mode=on when login in console. * New paragraph to introduce service configuration. * Reorganised the _After installation_ section so it is more broken up into several issues and it's easier to read. * Written information on howto setup firewalls with the standard Debian 3.0 setup (iptables package). * Small paragraph explaining why installing connected to the Internet is not a good idea and how to avoid this using Debian tools. * Small paragraph on timely patching referencing to IEEE paper. * Appendix on how to setup a Debian snort box, based on what Vladimir sent to the debian-security mailing list (September 3rd 2001) * Information on how logcheck is setup in Debian and how it can be used to setup HIDS. * Information on user accounting and profile analysis. * Included apt.conf configuration for read-only /usr copied from Olaf Meeuwissen's post to the debian-security mailing list * New section on VPN with some pointers and the packages available in Debian (needs content on how to setup the VPNs and Debian-specific issues), based on Jaroslaw Tabor's and Samuli Suonpaa's post to debian-security. * Small note regarding some programs to automatically build chroot jails * New FAQ item regarding identd based on a discussion in the debian-security mailing list (February 2002, started by Johannes Weiss). * New FAQ item regarding inetd based on a discussion in the debian-security mailing list (February 2002). * Introduced note on rcconf in the "disabling services" section. * Varied the approach regarding LKM, thanks to Philipe Gaspar * Added pointers to CERT documents and Counterpane resources 1.6.34. Version 1.99 -------------------- Changes by Javier Fernández-Sanguino Peña. * Added a new FAQ item regarding time to fix security vulnerabilities. * Reorganised FAQ sections. * Started writing a section regarding firewalling in Debian GNU/Linux (could be broadened a bit) * Fixed typos sent by Matt Kraai * Fixed DNS information * Added information on whisker and nbtscan to the auditing section. * Fixed some wrong URLs 1.6.35. Version 1.98 -------------------- Changes by Javier Fernández-Sanguino Peña. * Added a new section regarding auditing using Debian GNU/Linux. * Added info regarding finger daemon taken from the security mailing list. 1.6.36. Version 1.97 -------------------- Changes by Javier Fernández-Sanguino Peña. * Fixed link for Linux Trustees * Fixed typos (patches from Oohara Yuuma and Pedro Zorzenon) 1.6.37. Version 1.96 -------------------- Changes by Javier Fernández-Sanguino Peña. * Reorganized service installation and removal and added some new notes. * Added some notes regarding using integrity checkers as intrusion detection tools. * Added a chapter regarding package signatures. 1.6.38. Version 1.95 -------------------- Changes by Javier Fernández-Sanguino Peña. * Added notes regarding Squid security sent by Philipe Gaspar. * Fixed rootkit links thanks to Philipe Gaspar. 1.6.39. Version 1.94 -------------------- Changes by Javier Fernández-Sanguino Peña. * Added some notes regarding Apache and Lpr/lpng. * Added some information regarding noexec and read-only partitions. * Rewritten how can users help in Debian security issues (FAQ item). 1.6.40. Version 1.93 -------------------- Changes by Javier Fernández-Sanguino Peña. * Fixed location of mail program. * Added some new items to the FAQ. 1.6.41. Version 1.92 -------------------- Changes by Javier Fernández-Sanguino Peña. * Added a small section on how Debian handles security * Clarified MD5 passwords (thanks to `rocky') * Added some more information regarding harden-X from Stephen van Egmond * Added some new items to the FAQ 1.6.42. Version 1.91 -------------------- Changes by Javier Fernández-Sanguino Peña. * Added some forensics information sent by Yotam Rubin. * Added information on how to build a honeynet using Debian GNU/Linux. * Added some more TODOS. * Fixed more typos (thanks Yotam!) 1.6.43. Version 1.9 ------------------- Changes by Javier Fernández-Sanguino Peña. * Added patch to fix misspellings and some new information (contributed by Yotam Rubin) * Added references to other online (and offline) documentation both in a section (see Abschnitt 2.2, `Seien Sie wachsam gegenüber generellen Sicherheitsproblemen!') by itself and inline in some sections. * Added some information on configuring Bind options to restrict access to the DNS server. * Added information on how to automatically harden a Debian system (regarding the harden package and bastille). * Removed some done TODOs and added some new ones. 1.6.44. Version 1.8 ------------------- Changes by Javier Fernández-Sanguino Peña. * Added the default user/group list provided by Joey Hess to the debian-security mailing list. * Added information on LKM root-kits (Abschnitt 10.4.1, `Ladbare Kernel-Module (LKM)') contributed by Philipe Gaspar. * Added information on Proftp contributed by Emmanuel Lacour. * Recovered the checklist Appendix from Era Eriksson. * Added some new TODO items and removed other fixed ones. * Manually included Era's patches since they were not all included in the previous version. 1.6.45. Version 1.7 ------------------- Changes by Era Eriksson. * Typo fixes and wording changes Changes by Javier Fernández-Sanguino Peña. * Minor changes to tags in order to keep on removing the tt tags and substitute them for prgn/package tags. 1.6.46. Version 1.6 ------------------- Changes by Javier Fernández-Sanguino Peña. * Added pointer to document as published in the DDP (should supersede the original in the near future) * Started a mini-FAQ (should be expanded) with some questions recovered from my mailbox. * Added general information to consider while securing. * Added a paragraph regarding local (incoming) mail delivery. * Added some pointers to more information. * Added information regarding the printing service. * Added a security hardening checklist. * Reorganized NIS and RPC information. * Added some notes taken while reading this document on my new Visor :) * Fixed some badly formatted lines. * Fixed some typos. * Added a Genius/Paranoia idea contributed by Gaby Schilders. 1.6.47. Version 1.5 ------------------- Changes by Josip Rodin and Javier Fernández-Sanguino Peña. * Added paragraphs related to BIND and some FIXMEs. 1.6.48. Version 1.4 ------------------- * Small setuid check paragraph * Various minor cleanups * Found out how to use `sgml2txt -f' for the txt version 1.6.49. Version 1.3 ------------------- * Added a security update after installation paragraph * Added a proftpd paragraph * This time really wrote something about XDM, sorry for last time 1.6.50. Version 1.2 ------------------- * Lots of grammar corrections by James Treacy, new XDM paragraph 1.6.51. Version 1.1 ------------------- * Typo fixes, miscellaneous additions 1.6.52. Version 1.0 ------------------- * Initial release 1.7. Danksagungen ----------------- * Alexander Reelsen schrieb die ursprüngliche Version. * Javier Fernández-Sanguino fügte der Originalversion einiges an Informationen hinzu. * Robert van der Meulen stellte den Abschnitt über Quota und viele seiner guten Ideen zur Verfügung. * Ethan Benson korrigierte den PAM-Abschnitt und hatte einige gute Ideen. * Dariusz Puchalak trug Information zu verschiedenen Kapiteln bei. * Gaby Schilders trug eine nette Genius/Paranoia Idee bei. * Era Eriksson gab dem Ganzen an vielen Stellen den sprachlichen Feinschliff und trug zur Checkliste im Anhang bei. * Philipe Gaspar schrieb die LKM-Informationen. * Yotam Rubin trug sowohl Korrekturen für viele Tippfehler bei als auch Informationen über die Versionen von Bind und MD5-Passwörter. * Francois Bayart stellte den Anhang zur Verfügung, in dem beschrieben wird, wie man eine Bridge-Firewall aufsetzt. * Joey Hess schrieb im Debian-Wiki (http://wiki.debian.org/SecureApt) den Abschnitt, der erklärt, wie Secure Apt funktioniert. * Martin F. Krafft schrieb in seinem Blog etwas darüber, wie die Verifizierung von Fingerprints funktioniert. Dies wurde im Abschnitt über Secure Apt verwendet. * All den Leuten, die Verbesserungen vorschlugen, die (letzten Endes) eingeflossen sind (siehe Abschnitt 1.6, `Änderungsübersicht/Changelog/Geschichte'). * Francesco Poli sah dieses Dokument umfassend durch und stellte eine große Anzahl von Fehlerberichten und Tippfehlern zur Verfügung, mit denen dieses Dokument verbessert und aktualisiert werden konnte. * (Alexander) All den Leuten, die mich ermutigten dieses HOWTO zu schreiben (die später zu einer ganzen Anleitung wurde). * Dem ganzen Debian-Projekt. 1.7.1. Danksagungen des Übersetzers ----------------------------------- Auch der Übersetzer Simon Brandmair () hat einigen Leuten zu danken, die mit Verbesserungen, Korrekturen und Ratschlägen zum Gelingen der Übersetzung beigetragen haben: * Christoph Haas * Mirko Jahn * Frank Loeffler * Andreas Marc Klingler * Elisabeth Bauer * Jens Kubieziel * Uli Martens * Jens Schuessler * Marcel Schaal * Jens Seidel * Constantin Hagemeier Besonders möchte ich Alexander Schmehl danken, der die erste deutsche Übersetzung angefertigt hat. Insbesondere sei den Mitglieder der debian-l10n-german (http://lists.debian.org/debian-l10n-german/) Mailingliste gedankt, für gute Ideen und fruchtbare Diskussionen. VIELEN DANK! Ohne euch hätte ich zwar nur halb so viel Arbeit gehabt, aber viel mehr Leute könnten sich jetzt über meine mangelhaften Orthographiekenntnisse amüsieren! ------------------------------------------------------------------------------- 2. Bevor Sie beginnen ... ------------------------- 2.1. Wofür möchten Sie dieses System benutzen? ---------------------------------------------- Das Absichern von Debian ist nicht viel anders als das Absichern von irgendeinem anderen System. Um es richtig zu machen müssen Sie zunächst entscheiden, was Sie damit machen möchten. Anschließend müssen Sie sich klarmachen, dass Sie die folgenden Schritte sorgfältig ausgeführt werden müssen, um ein wirklich sicheres System zu bekommen. Sie werden feststellen, dass diese Anleitung von der Pike auf geschrieben ist. Sie werden die Informationen zu einer Aufgabe, die Sie vor, während und nach der Debian-Installation ausführen sollten, in der entsprechenden Reihenfolge vorgestellt bekommen. Die einzelnen Aufgaben können wie folgt beschrieben werden: * Entscheiden Sie, welche Dienste Sie benötigen, und beschränken Sie Ihr System auf selbige. Dies schließt das Deaktivieren / Deinstallieren von nicht benötigten Diensten und das Installieren von Firewall-ähnlichen Filtern oder TCP-Wrappern ein. * Einschränken der Nutzer- und Zugriffsrechte auf Ihrem System. * Abhärten der angebotenen Dienste, damit der Einfluss auf Ihr System im Falle einer Kompromittierung möglichst gering ist. * Benutzen Sie die passenden Tools, um sicherzustellen, dass ein unautorisierter Zugriff auf Ihrem System entdeckt wird, so dass Sie geeignete Gegenmaßnahmen ergreifen können. 2.2. Seien Sie wachsam gegenüber generellen Sicherheitsproblemen! ----------------------------------------------------------------- Diese Anleitung geht (normalerweise) nicht im Detail darauf ein, warum bestimmte Sachen als Sicherheitsrisiko betrachtet werden. Es wäre aber sicherlich von Vorteil, wenn Sie mehr Hintergrundwissen von der Sicherheit in Unix im Allgemeinen und von der in Linux im Besonderen haben. Nehmen Sie sich die Zeit, um sicherheitsrelevante Dokumente zu lesen, um Entscheidungen informiert treffen zu können, wenn Sie eine Auswahl treffen müssen. Debian GNU/Linux basiert auf dem Linux-Kernel, so dass viele Informationen über Linux, und sogar über andere Distributionen und allgemeine UNIX-Sicherheit, auch hierauf zutreffen (sogar wenn sich die benutzten Werkzeuge oder die verfügbaren Programme unterscheiden). Ein Paar nützliche Dokumente sind: * Das Linux Security HOWTO (http://www.tldp.org/HOWTO/Security-HOWTO/) (auch unterLinuxSecurity (http://www.linuxsecurity.com/docs/LDP/Security-HOWTO.html) verfügbar) ist eine der besten Referenzen über allgemeine Linux-Sicherheit. * Das Security Quick-Start HOWTO for Linux (http://www.tldp.org/HOWTO/Security-Quickstart-HOWTO/) ist ein sehr guter Anfang für unerfahrene Nutzer (sowohl über Linux als auch zum Thema Sicherheit). * Der Linux Security Administrator's Guide (http://seifried.org/lasg/) ist eine komplette Anleitung, die alle Sicherheitsangelegenheiten von Linux behandelt, von Sicherheit im Kernel bis hin zu VPNs. Beachten Sie bitte, dass er seit 2001 nicht mehr aktualisiert wurde, trotzdem sind einige Informationen immer noch sachdienlich. [1] * Kurt Seifried's Securing Linux Step by Step (http://seifried.org/security/os/linux/20020324-securing-linux-step-by-step.html). * In Securing and Optimizing Linux: RedHat Edition (http://www.tldp.org/links/p_books.html#securing_linux) finden Sie eine Dokumentation ähnlich zu dieser, bezogen auf Red Hat. Manche behandelten Sachen sind nicht distributionsspezifisch, passen also auch auf Debian. * Ein anderes Red Hat bezogenes Dokument ist der EAL3 Evaluated Configuration Guide for Red Hat Enterprise (http://ltp.sourceforge.net/docs/RHEL-EAL3-Configuration-Guide.pdf). * IntersectAlliance hat einige Dokumente veröffentlicht, die als Referenz benutzt werden können, wie man einen Linux-Server (und seine Dienste) abhärtet. Diese Dokumente sind auf ihrer Seite (http://www.intersectalliance.com/projects/index.html) verfügbar. * Für Netzwerk-Administratoren ist das Securing your Domain HOWTO (http://www.linuxsecurity.com/docs/LDP/Securing-Domain-HOWTO/) ein gutes Handbuch, wie man sein Netzwerk absichert. * Wenn Sie die Programme, die Sie benutzen möchten (oder die Sie neu schreiben wollen), bezüglich Sicherheit auswerten wollen, sollten Sie das Secure Programs HOWTO (http://www.tldp.org/HOWTO/Secure-Programs-HOWTO/) durchlesen (die Vorlage ist unter http://www.dwheeler.com/secure-programs/ verfügbar. Es beinhaltet Präsentationen und Kommentare des Autors David Wheeler. * Wenn Sie es in Betracht ziehen, eine Firewall zu installieren, sollten Sie das Firewall HOWTO (http://www.tldp.org/HOWTO/Firewall-HOWTO.html) und das IPCHAINS HOWTO (http://www.tldp.org/HOWTO/IPCHAINS-HOWTO.html) (bei Kerneln vor Version 2.4) lesen. * Schließlich ist die Linux Security ReferenceCard (http://www.linuxsecurity.com/docs/QuickRefCard.pdf) eine gute Kurzübersicht, um in Sachen Sicherheit auf dem aktuellen Stand zu bleiben. In jedem Fall gibt es mehr Informationen über die hier behandelten Dienste (NFS, NIS, SMB, ...) in den vielen HOWTOs, die Sie beim Linux-Dokumentations-Projekt (http://www.tldp.org/) finden. Manche dieser Dokumente gehen auf die Sicherheitsaspekte von bestimmten Diensten ein. Gehen Sie sicher, dass Sie auch hierauf einen Blick werfen. Die HOWTO-Dokumente des Linux-Dokumentations-Projektes sind unter Debian GNU/Linux durch Installation der Pakete `doc-linux-text' (englische Text-Version) oder `doc-linux-de' (HTML-Version) verfügbar. Nach der Installation sind diese Dokumente in den Verzeichnissen `/usr/share/doc/HOWTO/en-txt' beziehungsweise `/usr/share/doc/HOWTO/de-html' vorhanden. Andere empfohlene Linux-Bücher: * Maximum Linux Security : A Hacker's Guide to Protecting Your Linux Server and Network. Anonymous. Paperback - 829 pages. Sams Publishing. ISBN: 0672313413. July 1999. * Linux Security By John S. Flowers. New Riders; ISBN: 0735700354. March 1999 * Hacking Linux Exposed (http://www.linux.org/books/ISBN_0072127732.html) By Brian Hatch. McGraw-Hill Higher Education. ISBN 0072127732. April, 2001 Andere Bücher (auch über allgemeine Aspekte von Sicherheit unter Unix, nicht nur Linuxspezifisch): * Practical Unix and Internet Security (2nd Edition) (http://www.ora.com/catalog/puis/noframes.html) Garfinkel, Simpson, and Spafford, Gene; O'Reilly Associates; ISBN 0-56592-148-8; 1004pp; 1996. * Firewalls and Internet Security Cheswick, William R. and Bellovin, Steven M.; Addison-Wesley; 1994; ISBN 0-201-63357-4; 320pp. Andere nützliche Webseiten, um sich bezüglich Sicherheit auf dem Laufenden zu halten: * NIST Security Guidelines (http://csrc.nist.gov/fasp/index.html). * Security Focus (http://www.securityfocus.com) Dort wird die Bugtraq-Schwachstellen-Datenbank und Mailingliste bereitgestellt und es gibt allgemeine sicherheitsrelevante Informationen, Neuigkeiten und Berichte. * Linux Security (http://www.linuxsecurity.com/). Allgemeine Informationen zu Sicherheit von Linux (Tools, Neuigkeiten ...). Die Seite main documentation (http://www.linuxsecurity.com/resources/documentation-1.html) ist sehr nützlich. * Linux firewall and security site (http://www.linux-firewall-tools.com/linux/). Allgemeine Informationen zu Linux Firewalls und Tools, diese zu kontrollieren und zu administrieren. [1] Irgendwann wurde er von der "Linux Security Knowledge Base" abgelöst. Dieses Dokument wird ebenfalls durch das Paket `lasg' zur Verfügung gestellt. Jetzt wird der Guide wieder unter dem Namen _Lasg_ verbreitet. 2.3. Wie geht Debian mit der Sicherheit um? ------------------------------------------- Um einen allgemeinen Überblick über die Sicherheit unter Debian GNU/Linux zu bekommen, sollten Sie sich ansehen, was Debian tut, um ein sicheres System zu gewährleisten. * Debians Probleme werden immer öffentlich behandelt, sogar wenn sie die Sicherheit betreffen. Sicherheitsfragen werden öffentlich auf der debian-security-Mailingliste diskutiert. Debian-Sicherheits-Ankündigungen (DSA) werden an öffentliche Mailinglisten (sowohl intern als auch extern) versendet und auf öffentlichen Servern bekannt gegeben. Wie der Debian-Gesellschaftsvertrag (http://www.debian.org/social_contract) sagt: _Wir werden Probleme nicht verbergen._ _Wir werden unsere Fehlerdatenbank immer öffentlich betreiben. Fehlermeldungen, die von Personen online abgeschickt werden, sind augenblicklich für andere sichtbar._ * Debian verfolgt Sicherheitsangelegenheiten sehr aufmerksam. Das Sicherheits-Team prüft viele sicherheitsrelevante Quellen, die wichtigste davon Bugtraq (http://www.securityfocus.com/cgi-bin/vulns.pl), während es Pakete mit Sicherheitsproblemen sucht, die ein Teil von Debian sein können. * Sicherheits-Aktualisierungen genießen höchste Priorität. Wenn ein Sicherheitsproblem in einem Debian-Paket entdeckt wird, wird eine Sicherheits-Aktualisierung so schnell wie möglich vorbereitet und für den Stabile-, Testing- und Unstabile-Zweig, einschließlich aller Architekturen, veröffentlicht. * Alle Informationen über Sicherheit sind an einer zentralen Stelle zu finden: http://security.debian.org/. * Debian versucht immer, die gesamte Sicherheit seiner Distribution zu verbessern, beispielsweise durch automatische Paket-Signierungs- und Verifikations-Mechanismen. * Debian stellt eine brauchbare Anzahl von sicherheitsrelevanten Werkzeugen für System-Administratoren und zur Überwachung zur Verfügung. Entwickler versuchen, diese Werkzeuge fest mit der Distribution zu verbinden, um Sie anpassbarer zur Durchsetzung lokaler Sicherheits-Regelungen zu machen. Diese Werkzeuge schließen Folgendes mit ein: integritätsprüfende Programme, allgemeine Prüfwerkzeuge, Werkzeuge zum Abhärten, Werkzeuge für Firewalls, Eindringlings-Erkennungs-Tools und vieles andere. * Paketbetreuer sind sich der Sicherheits-Probleme bewusst. Dies führt oft zu "voreingestellt sicheren" Installationen von Diensten, die sie manchmal in ihrer normalen Benutzung etwas einschränken können. Dennoch versucht Debian, Sicherheitsaspekte und Einfachheit der Administration abzuwägen, zum Beispiel werden Dienste nicht inaktiv installiert (wie es bei den Betriebssystemen der BSD-Familie üblich ist). Auf jeden Fall sind bedeutende Sicherheitsaspekte, wie zum Beispiel `setuid'-Programme, Teil der Debian Policy (http://www.debian.org/doc/debian-policy/). Dieses Dokument versucht, eine bessere Installation von Computersystemen hinsichtlich der Sicherheit zu erzielen, indem es Informationen über Sicherheit veröffentlicht, die auf Debian zugeschnitten sind, und diese durch andere Dokumente ergänzt, die sicherheitsspezifische Angelegenheiten im Zusammenhang mit Debian behandeln (vergleiche Abschnitt 2.2, `Seien Sie wachsam gegenüber generellen Sicherheitsproblemen!'). ------------------------------------------------------------------------------- 3. Vor und während der Installation ----------------------------------- 3.1. Setzen Sie ein Passwort im BIOS ------------------------------------ Bevor Sie irgendein Betriebssystem auf Ihrem Computer installieren, setzen Sie ein Passwort im BIOS. Nach der Installation (sobald Sie von der Festplatte booten können) sollten Sie zurück ins BIOS gehen und die Boot-Reihenfolge ändern, so dass Sie nicht von Diskette, CD-ROM oder sonstigen Geräten booten können, von denen dies nicht gehen sollte. Andernfalls benötigt ein Cracker nur physischen Zugang und eine Bootdiskette, um Zugriff auf Ihr ganzes System zu bekommen. Es ist noch besser, wenn das System beim Booten immer ein Passwort verlangt. Dies kann sehr effektiv sein, wenn Sie einen Server laufen lassen, der selten neu gestartet wird. Der Nachteil dieser Vorgehensweise ist, dass das Neustarten einen menschlichen Eingriff benötigt, was zu Problemen führen kann, wenn das System nicht leicht zugänglich ist. Beachten Sie: Viele BIOS-Varianten haben bekannte Master-Passwörter und es gibt sogar Programme, um Passwörter aus dem BIOS wieder auszulesen. Folglich können Sie sich nicht auf diese Maßnahme verlassen, um den Zugriff auf das Systems zu beschränken. 3.2. Partitionieren des Systems ------------------------------- 3.2.1. Wählen Sie eine sinnvolle Partitionierung ------------------------------------------------ Was eine sinnvolle Partitionierung ist, hängt davon ab, wie die Maschine benutzt wird. Eine gute Faustregel ist, mit Ihren Partitionen eher großzügig zu sein und die folgenden Faktoren zu berücksichtigen: * Jeder Verzeichnisbaum, auf den ein Nutzer Schreibzugriff hat (wie zum Beispiel `/home', `/tmp' und `/var/tmp/') sollte auf einer separaten Partition liegen. Dies reduziert das Risiko eines DoS durch einen Nutzer, indem er Ihren "/"-Mountpoint vollschreibt und so das gesamte System unbenutzbar macht. [1] Außerdem verhindert dieses Vorgehen Hardlink-Angriffe. [2] * Außerdem sollte jeder Verzeichnisbaum, dessen Größe schwanken kann, zum Beispiel `/var' (insbesondere `/var/log') eine separate Partition bekommen. Auf einem Debian-System sollten Sie der /var-Partition etwas mehr Platz als auf anderen Systemen geben, da heruntergeladene Pakete (der Zwischenspeicher von apt) unter `/var/cache/apt/archives' gespeichert werden. * Jeder Teil, in dem Sie Nicht-Distributions-Software installieren wollen, sollte eine separate Partition erhalten. Nach dem File-Hierarchy-Standard wären dies `/opt' oder `/usr/local'. Wenn dies separate Partitionen sind, werden sie nicht gelöscht, falls Sie einmal Ihr Debian neu installieren (müssen). * Rein sicherheitstechnisch ist es sinnvoll zu versuchen, statische Daten auf eine eigene Partition zu legen und diese dann als nur-lesbar einzuhängen (mounten). Oder noch besser: legen Sie diese Daten auf einem nicht beschreibbares Medium ab. Lesen Sie dazu die Ausführungen weiter unten. Im Falle eines Mailservers ist es wichtig, eine separate Partition für die Mail-Warteschlange (mail spool) anzulegen. Nicht-Lokale Nutzer können (wissentlich oder unwissentlich) diese Verzeichnisse (`/var/mail' oder `/var/spool/mail') überfüllen. Liegt dieses Verzeichnis auf einer separaten Partition, würde dies das System nicht sofort unbenutzbar machen. Anderenfalls (wenn das Verzeichnis auch auf der `/var'-Partition liegt) hat das System ein großes Problem: Protokoll-Einträge (logs) können nicht erstellt werden, Pakete können nicht installiert werden und es könnten sogar ein paar Programme Probleme mit dem Starten haben (wenn Sie `/var/run' benutzen). Außerdem sollten Sie für Partitionen, deren Platzbedarf Sie noch nicht abschätzen können, den Logical-Volume-Manager (`lvm-common' und die benötigten ausführbaren Programme, entweder `lvm10' oder `lvm2') installieren. Durch Benutzen von `lvm' können Sie Datenträger-Gruppen erstellen, die über mehrere Festplatten verteilt sind. [1] Eigentlich ist das so nicht ganz richtig, da immer etwas Platz für Root reserviert wird, den ein normaler Nutzer nicht belegen kann. [2] Ein sehr gutes Beispiel dieser Art von Angriff, der das /tmp-Verzeichnis benutzt, ist ausführlich auf The mysteriously persistently exploitable program (contest) (http://www.hackinglinuxexposed.com/articles/20031111.html) und auf The mysteriously persistently exploitable program explained (http://www.hackinglinuxexposed.com/articles/20031214.html) beschrieben (beachten Sie, dass dieser Vorfall in einem Zusammenhang mit Debian steht). Im Prinzip ist das ein Angriff, bei dem ein lokaler Benutzer eine angreifbare Setuid-Anwendung _versteckt_, indem einer einen harten Link zu ihr einrichtet. So kann er wirksam verhindern, dass diese Anwendung vom Systemadministrator aktualisiert (oder entfernt) wird. Dpkg wurde kürzlich verbessert, um das zu verhindern (vergleiche 225692 (http://bugs.debian.org/225692)). Aber andere Setuid-Anwendungen, die nicht vom Paketverwaltungsprogramm kontrolliert werden, bleiben ein Risiko, wenn Partitionen nicht richtig eingerichtet werden. 3.2.1.1. Auswahl eines passenden Dateisystems --------------------------------------------- Während der Partitionierung des Systems müssen Sie sich ebenfalls entscheiden, welche Dateisysteme Sie benutzen möchten. Als Standard-Dateisystem wird während der Installation für Linux Partitionen `ext2' ausgewählt. Dennoch ist es ratsam, ein "journaling filesystem" (ein Dateisystem, das Änderungen mitprotokolliert) zu nehmen, wie zum Beispiel `ext3', `reiserfs', `jfs' oder `xfs'. Dadurch verringern Sie Probleme nach einen Absturz des Systems in folgenden Fällen: * Auf Laptops auf allen Dateisystemen. Auf diese Art reduzieren Sie die Wahrscheinlichkeit eines Datenverlustes, wenn beispielsweise unerwartet Ihr Akku leer wird oder das System aufgrund eines Hardware-Problems (etwa durch die X-Konfiguration, was relativ häufig auftritt) neu gestartet werden muss. * Auf produktiven Systemen, die große Mengen von Daten speichern (zum Beispiel Mail-Server, FTP-Server, Netzwerk-Fileserver, ...), ist es empfehlenswert, ein Journaling-Dateisystem auf diesen Partitionen einzusetzen. Wenn das System abstürzt, benötigt der Server so weniger Zeit, um das Dateisystem wieder herzustellen und zu prüfen, und die Wahrscheinlichkeit eines Datenverlustes wird verringert. Lassen wir mal die Betrachtung der Leistung von Journaling-Dateisystemen beiseite (da dies oft in quasi-religiöse Glaubenskriege ausartet). In der Regel ist es besser, das `ext3'-Dateisystem zu benutzen. Der Grund dafür ist die Abwärtskompatibilität zu `ext2'. So können Sie, wenn es Probleme mit dem Journal gibt, dieses einfach abschalten und haben immer noch ein funktionierendes Dateisystem. Außerdem müssen Sie, wenn Sie das System mal mit einer Boot-Diskette (oder CD-ROM) wiederherstellen müssen, keinen speziellen Kernel benutzen. Wenn es sich um einen 2.4er oder 2.6er Kernel handelt, ist Unterstützung für `ext3' bereits vorhanden. Wenn es sich um einen 2.2er-Kernel handelt, können Sie trotzdem Ihr Dateisystem booten, auch wenn Sie die Journaling-Fähigkeiten einbüßen. Wenn Sie ein anderes Journaling-Dateisystem benutzen, werden Sie feststellen, dass eine Wiederherstellung nicht möglich ist, bis Sie einen 2.4er oder 2.6er Kernel mit den benötigten Modulen haben. Wenn Sie einen 2.2er Kernel auf der Rettungsdiskette verwenden müssen, kann es sich als noch schwerer erweisen, auf `reiserfs' oder `xfs' zuzugreifen. Auf jeden Fall ist die Datenintegrität unter `ext3' besser, da es auch Datei-Daten protokolliert, während andere Dateisysteme lediglich Meta-Daten protokollieren (siehe auch http://lwn.net/2001/0802/a/ext3-modes.php3). 3.3. Gehen Sie nicht ins Internet, bevor Sie nicht bereit sind -------------------------------------------------------------- Während der Installation sollten Sie das System nicht sofort mit dem Internet verbinden. Dies hört sich vielleicht komisch an, aber die Installation über das Netzwerk ist eine gängige Methode. Da das System einige Dienste installiert und diese sofort aktiviert werden, könnten Sie Ihr System für Angriffe öffnen, wenn das System mit dem Internet verbunden ist und die Dienste nicht geeignet konfiguriert sind. Außerdem sollten Sie beachten, dass manche Pakete noch Sicherheitsprobleme haben können, weil das Installationsmedium nicht auf dem aktuellen Stand ist. Dies ist für gewöhnlich dann der Fall, wenn Sie von älteren Medien (wie CD-ROMs) installieren. In diesem Fall könnte Ihr System bereits kompromittiert sein, bevor Sie mit der Installation fertig sind! Da die Debian-Installation und das Aktualisieren über das Internet durchgeführt werden können, denken Sie vielleicht, es sei eine gute Idee, dies gleich während der Installation zu nutzen. Wenn das System direkt mit dem Internet verbunden ist (und nicht von einer Firewall oder NAT geschützt wird), ist es besser, das System ohne Internet-Verbindung zu installieren. Benutzen Sie sowohl für die zu installierenden Pakete als auch für die Sicherheits-Updates eine lokale Quelle (mirror). Sie können einen Paket-Mirror aufsetzen, indem Sie ein anderes System nutzen, dass mit dem Internet verbunden ist und für Debian spezifische Werkzeuge (falls es sich um ein Debian-System handelt) wie `apt-move' oder `apt-proxy' oder andere gebräuchliche Werkzeuge zur Erstellung von Quellen verwendet. Damit kann das Archiv für das installierte System zur Verfügung gestellt werden. Sollte dies nicht möglich sein, sollten Sie Firewall-Regeln aufsetzen, die den Zugriff auf Ihr System beschränken, während Sie das Update durchführen (siehe Anhang F, `Schutz der Sicherheitsaktualisierung durch eine Firewall'). 3.4. Setzen Sie ein Passwort für root ------------------------------------- Die wichtigste Grundlage für ein sicheres System ist ein gutes Root-Passwort. Siehe passwd(1) für einige Tipps, wie man gute Passwörter auswählt. Sie können auch automatische Passwort-Generatoren verwenden (siehe Abschnitt 4.10.13, `Erstellen von Benutzerpasswörtern'). Im Internet gibt es zahlreiche Hinweise dazu, wie man gute Passwörter wählt. Zwei Seiten, die eine angemessene Übersicht und Ausführung bieten, sind Eric Wolframs How to: Pick a Safe Password (http://wolfram.org/writing/howto/password.html) und Walter Belgers Unix Password Security (http://www.ja.net/CERT/Belgers/UNIX-password-security.html). 3.5. Aktivieren Sie Shadow-Passwörter und MD5-Passwörter -------------------------------------------------------- Gegen Ende der Installation werden Sie gefragt, ob "shadow passwords" eingeschaltet werden sollen. Beantworten Sie diese Frage mit "yes", dann werden Passwörter in der Datei `/etc/shadow' gespeichert. Nur root und die Gruppe shadow haben Lesezugriff auf diese Datei. So ist es keinem Nutzer möglich, sich eine Kopie dieser Datei zu besorgen, um einen Passwort-Cracker auf sie loszulassen. Sie können mit dem Befehl `shadowconfig' jederzeit zwischen "shadow passwords" und normalen Passwörtern wechseln. Mehr zum Thema Shadow-Passwörter finden Sie unter Shadow Password (http://www.tldp.org/HOWTO/Shadow-Password-HOWTO.html) (`/usr/share/doc/HOWTO/en-txt/Shadow-Password.txt.gz'). Des Weiteren verwendet die Installation standardmäßig Passwörter, welche als MD5-Hashwerte gespeichert werden. Dies ist im Allgemeinen eine sehr gute Idee, da es längere Passwörter und bessere Verschlüsselung erlaubt. Mit MD5 sind Passwörter möglich, die länger als 8 Zeichen sind. Auf diese Weise kann man es einem Angreifer schwieriger machen, mit Brute-Force-Methoden an die Passwörter heranzukommen. Dies ist die Standardeinstellung in den neuesten Versionen des Pakets `passwd'. Sie erkennen MD5-Passwörter übrigens in der `/etc/shadow' an dem Anfang $1$. Dies verändert allerdings alle Dateien im Verzeichnis `/etc/pam.d' und ergänzt in der "password"-Zeile den Eintrag "md5". password required pam_unix.so md5 nullok obscure min=6 max=16 Wird für `max' nicht ein Wert größer als 8 gewählt, ist diese Änderung ziemlich sinnlos. Weitere Informationen dazu finden Sie unter Abschnitt 4.10.1, `Nutzerauthentifizierung: PAM'. Beachten Sie: Die Standardeinstellung in Debian verändert nicht den vorher gewählten `max'-Wert, auch dann nicht, wenn MD5 aktiviert wird. 3.6. Lassen Sie so wenige Dienste wie möglich laufen ---------------------------------------------------- Dienste sind Programme wie FTP- und Web-Server. Da sie nach eingehenden Verbindungen, die den Dienst anfordern, _horchen_ müssen, können sich externe Computer mit Ihrem Computer verbinden. Dienste sind manchmal verwundbar (zum Beispiel durch einen bestimmten Angriff kompromittierbar) und stellen dadurch ein Sicherheitsrisiko dar. Sie sollten keine Dienste installieren, die Sie nicht unbedingt auf dem System brauchen. Jeder installierte Dienst könnte neue, vielleicht nicht gerade offensichtliche (oder bekannte) Sicherheitslöcher auf Ihrem Computer öffnen. Wie Sie vielleicht schon wissen, wird ein Dienst, sobald er installiert wird, auch gleich automatisch aktiviert. Bei einer Standardinstallation ohne weitere installierte Dienste ist die Anzahl der laufenden Dienste ziemlich gering. Und die Anzahl der Dienste, die im Netzwerk angeboten werden, ist noch niedriger. In einer Standardinstallation von Debian 3.1 werden Sie mit OpenSSH, Exim (abhängig davon, wie Sie ihn konfiguriert haben) und dem RPC-Portmapper als Netzwerkdienste auskommen.[1] Der RPC-Portmapper ist standardmäßig installiert, da er für viele Dienste wie zum Beispiel NFS benötigt wird. Er kann allerdings sehr leicht entfernt werden. Weitere Informationen, wie Sie RPC-Dienste absichern oder abschalten, finden Sie unter Abschnitt 5.13, `Sichern von RPC-Diensten'. Wenn Sie einen neuen Netzwerkdienst (Daemon) auf Ihrem Debian GNU/Linux System installieren, kann er auf zwei Arten gestartet werden: durch den `inetd'-Superdaemon (d. h. eine Zeile wird zu der `/etc/inetd.conf' hinzugefügt) oder durch ein eigenständiges Programm, dass sich selbst an die Netzwerkschnittstelle bindet. Eigenständige Programme werden durch `/etc/init.d' gesteuert. Sie werden beim Hochfahren durch den Sys-V-Mechanismus gestartet, der die symbolischen Links in `/etc/rc?.d/*' benutzt. (Mehr Informationen dazu finden Sie in `/usr/share/doc/sysvinit/README.runlevels.gz'). Wenn Sie trotzdem Dienste installieren möchten, diese aber selten benutzen, entfernen Sie sie mit den update-Befehlen wie `update-inetd' oder `update-rc.d' aus dem Startvorgang. Weitere Informationen, wie Sie Netzwerkdienste abschalten, finden Sie unter Abschnitt 3.6.1, `Daemons abschalten'. Wenn Sie das Standardverhalten des Startens von Diensten nach der Installation von ihren Paketen ändern wollen[2], lesen Sie bitte für weiterführende Informationen `/usr/share/doc/sysv-rc/README.policy-rc.d.gz'. Die Unterstützung von `invoke-rc.d' ist bei Debian nun zwingend. Dies bedeutet, dass Sie bei _Sid_ und _Etch_ eine `policy-rc.d'-Datei anlegen können, die das Starten von Daemons verbietet, bevor Sie sie konfiguriert haben. Zwar sind derartige Skripte noch nicht in Paketen enthalten, sie sind aber ziemlich leicht zu schreiben. Sehen Sie sich auch `policyrcd-script-zg2' an. [1] Die Zahl war bei Debian 3.0 und davor nicht so niedrig, da einige `inetd'-Dienste standardmäßig aktiviert waren. Außerdem war in Debian 2.2 der NFS-Server wie auch der Telnet-Server Bestandteil der Standardinstallation. [2] Dies ist z.B. wünschenswert, wenn Sie eine Chroot-Umgebung zur Entwicklung einrichten. 3.6.1. Daemons abschalten ------------------------- Das Abschalten eines Daemons ist sehr einfach. Entweder Sie entfernen das Paket, das das Programm für diesen Dienst anbietet, oder Sie entfernen oder benennen die Startlinks unter `/etc/rc${runlevel}.d/' um. Wenn Sie sie umbenennen, stellen Sie sicher, dass sie nicht mehr mit einem 'S' beginnen, damit sie nicht von `/etc/init.d/rc' ausgeführt werden. Entfernen Sie nicht alle verfügbaren Links, denn sonst wird das Paketverwaltungssystem sie bei der nächsten Paketaktualisierung wieder herstellen. Gehen Sie also sicher, dass zumindest ein Link übrig bleibt (typischerweise ein 'K'-Link, 'K' steht für 'kill'). Zusätzliche Informationen finden Sie im Abschnitt Anpassen des Bootvorgangs (http://www.debian.org/doc/manuals/reference/ch-system#s-custombootscripts) der Debian-Referenz (2. Kapitel - Debian-Grundlagen). Sie können diese Links manuell entfernen oder Sie benutzen `update-rc.d' (siehe auch update-rc.d(8)). So können Sie zum Beispiel einen Dienst in den Multi-User-Runleveln abschalten: # update-rc.d stop 2 3 4 5 . Wobei _XX_ eine Zahl ist, die bestimmt, wann die Stop-Aktion für diesen Dienst ausgeführt wird. Bitte beachten Sie, dass `update-rc.d -f remove' nicht korrekt arbeiten wird, wenn Sie _nicht_ `file-rc' benutzen, da _alle_ Verknüpfungen entfernt werden. Nach einer Neuinstallation oder einem Upgrade dieses Paketes werden diese Verknüpfungen neu angelegt (was Sie vermutlich nicht wollen). Wenn Sie denken, dass dies nicht sehr intuitiv ist, haben Sie wahrscheinlich recht (siehe Bug 67095 (http://bugs.debian.org/67095)). Aus der Manpage: If any files /etc/rcrunlevel.d/[SK]??name already exist then update-rc.d does nothing. This is so that the system administrator can rearrange the links, provided that they leave at least one link remaining, without having their configuration overwritten. Wenn Sie `file-rc' benutzen, werden alle Informationen über das Starten von Diensten durch eine gemeinsame Konfigurationsdatei verarbeitet und sogar nach der Deinstallation von Paketen beibehalten. Sie können das TUI (Text User Interface, textbasierte Benutzungsoberfläche) des Paketes `sysv-rc-conf' benutzen, um all diese Änderungen einfach zu erledigen (`sysv-rc-conf' arbeitet sowohl mit `file-rc' als auch mit normalen System-V-Runleveln). Es gibt auch vergleichbare GUIs für Desktop-Systeme. Sie können auch die Befehlszeile von `sysv-rc-conf' verwenden: # sysv-rc-conf off Der Vorteil dieses Werkzeugs ist, dass die rc.d-Links wieder auf den Status zurückgesetzt werden, die sie vor dem Aufruf von »off« hatten, wenn Sie den Dienst wieder aktivieren mit: # sysv-rc-conf on Andere (nicht empfohlene) Methoden zum Abschalten eines Dienstes sind: * Benennen Sie die Skriptdatei (`/etc/init.d/') um (zum Beispiel in `/etc/init.d/OFF.'). Da das Verweise, die auf kein Ziel verweisen (dangling symlinks), erzeugt, werden beim Booten Fehlermeldungen erzeugt werden. * Entfernen Sie das Ausführungsrecht von der Datei `/etc/init.d/'. Auch das wird beim Booten Fehlermeldungen verursachen. * Editieren der Datei `/etc/init.d/', so dass sich das Skript sofort beendet, sobald es gestartet wird, indem Sie die Zeile `exit 0' am Anfang einfügen oder den `start-stop-daemon'-Abschnitt auskommentieren. Falls Sie dies tun, können Sie das Skript nicht später dazu verwenden, den Dienst von Hand zu starten. Jedoch handelt es sich bei allen Dateien unter `/etc/init.d' um Konfigurationsdateien und sollten daher bei einer Paketaktualisierung nicht überschrieben werden. Sie können im Gegensatz zu anderen (UNIX-)Betriebssystemen Dienste unter Debian nicht abschalten, indem Sie die Dateien unter `/etc/default/' modifizieren. FIXME: Add more information on handling daemons using file-rc 3.6.2. Abschalten von `inetd' oder seinen Diensten -------------------------------------------------- Sie sollten überprüfen, ob Sie heutzutage den `inetd'-Daemon überhaupt brauchen. Inetd war früher eine Möglichkeit, Unzulänglichkeiten des Kernels auszugleichen. Diese sind aber in modernen Linux-Kerneln nicht mehr vorhanden. Gegen `inetd' gibt es die Möglichkeit von Angriffen, die zur Dienstverweigerung führen (Denial of Service), welche die Last des Rechners unglaublich erhöhen. Viele Leute ziehen es vor, einzelne Daemonen zu benutzen, anstatt einen Dienst über `inetd' zu starten. Wenn Sie immer noch einen `inetd'-Dienst laufen lassen wollen, wechseln Sie wenigstens zu einem besser zu konfigurierenden Inet-Daemonen wie `xinetd' oder `rlinetd'. Sie sollten alle nicht benötigten Inetd-Dienste auf Ihrem System abschalten, wie zum Beispiel `echo', `chargen', `discard', `daytime', `time', `talk', `ntalk' und die r-Dienste (`rsh', `rlogin' und `rcp'), die als SEHR unsicher gelten (benutzen Sie stattdessen `ssh'). Sie können Dienste abschalten, indem Sie direkt `/etc/inetd.conf' editieren, aber Debian stellt Ihnen einen besseren Weg zur Verfügung: `update-inetd' (was die Dienste auf eine Art herauskommentiert, so dass sie leicht wieder eingeschaltet werden können). Sie können den `Telnet'-Daemon sehr leicht mit dem folgenden Kommando abschalten, so dass die Konfigurationsdateien angepasst und der Daemon neu gestartet wird: /usr/sbin/update-inetd --disable telnet Wenn Sie Dienste starten wollen, aber nur auf bestimmten IP-Adressen Ihres Systems, müssen Sie eventuell auf eine undokumentierte Funktion des `inetd' zurückgreifen (Austausch des Namens des Dienstes durch dienst@ip). Alternativ können Sie einen Daemon wie `xinetd' benutzen. 3.7. Installieren Sie möglichst wenig Software ---------------------------------------------- Debian bietet _sehr viel_ Software an. Debian 3.0 (_Woody_) enthält sechs oder sieben (je nach Architektur) CDs mit Software und tausenden Paketen. Debian 3.1 _Sarge_ wird mit etwa 13 CD-ROMs ausgeliefert werden. Bei so viel Software, selbst wenn Sie die Installation auf das Basis-System reduzieren [1], könnten Sie auf Abwege geraten und mehr installieren, als Sie wirklich benötigen. Da Sie bereits wissen, was Sie mit Ihrem System machen wollen (oder etwa nicht?), sollten Sie nur Software installieren, die Sie wirklich für den Betrieb benötigen. Jedes unnötig installierte Programm könnte von einem Nutzer, der Ihr System kompromittieren will, genutzt werden -- oder von einem externen Eindringling, der Shell-Zugriff bekommen hat (oder der Code von außerhalb durch einen fehlerhaften Dienst ausführen kann). Zum Beispiel kann das Vorhandensein von Hilfsprogrammen für Programmierer (ein C-Compiler) oder Interpretern (wie `Perl' s.u., `Python', `tcl', ...) einem Angreifer helfen, das System weiter zu kompromittieren: * Der Angreifer kann seine Privilegien auf dem System erweitern. Es ist beispielsweise leichter, eine lokale Sicherheitslücke des Systems auszunutzen, wenn man einen Debugger und Compiler zur Verfügung hat, um den eigenen Exploit (ein Programm, das eine Sicherheitslücke ausnutzt) zu kompilieren und zu testen. * Man könnte dem Angreifer Werkzeuge zur Verfügung stellen, die ihm helfen könnten, das kompromittierte System als _Basis für Angriffe_ auf andere Systeme zu benutzen. [2] Natürlich kann ein Eindringling mit lokalem Shell-Zugriff seine eigenen Programme herunterladen und ausführen. Und sogar die Shell selbst kann benutzt werden, um komplexere Programme zu schreiben. Das Entfernen unnötiger Programme wird also nicht helfen, das Problem zu _verhindern_. Jedoch wird es für den Angreifer wesentlich schwieriger werden, das System zu kompromittieren (und manchmal wird er in dieser Situation aufgeben und sich ein leichteres Ziel suchen). Wenn Sie also auf einem produktivem System Werkzeuge lassen, die benutzt werden können, um andere Systeme anzugreifen (siehe Abschnitt 8.1, `Programme zur Fernprüfung der Verwundbarkeit'), müssen Sie auch davon ausgehen, dass ein Angreifer sie auch benutzen wird. Beachten Sie bitte, dass eine Standardinstallation von Debian _Sarge_ (d.h. eine Installation, bei der nicht individuell Pakete ausgewählt werden) einige Pakete zur Softwareentwicklung installieren wird, die normalerweise nicht benötigt werden. Das liegt daran, dass einige Pakete zur Softwareentwicklung die Priorität _Standard_ haben. Wenn Sie keine Software entwickeln, können Sie ohne Bedenken die folgenden Pakete von Ihrem System entfernen, was nebenbei auch etwas Platz schafft: Paket Größe ------------------------+-------- gdb 2.766.822 gcc-3.3 1.570.284 dpkg-dev 166.800 libc6-dev 2.531.564 cpp-3.3 1.391.346 manpages-dev 1.081.408 flex 257.678 g++ 1.384 (Hinweis: virtuelles Paket) linux-kernel-headers 1.377.022 bin86 82.090 cpp 29.446 gcc 4.896 (Hinweis: virtuelles Paket) g++-3.3 1.778.880 bison 702.830 make 366.138 libstdc++5-3.3-dev 774.982 Dieses Verhalten wurde in den Veröffentlichungen nach Sarge verändert. Für weitere Informationen sehen Sie sich Fehler #301273 (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=301273) und Fehler #301138 (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=301138) an. Wegen eines Fehlers im Installationssystem ist dies nicht geschehen, wenn mit dem Installationssystem von Debian 3.0 _Woody_ installiert wird. [1] Unter Debian-Woody ist das Basis-System etwa 400-500MB groß. Probieren Sie Folgendes: , $ size=0 $ for i in `grep -A 1 -B 1 "^Section: base" /var/lib/dpkg/available | grep -A 2 "^Priority: required" |grep "^Installed-Size" |cut -d : -f 2 `; do size=$(($size+$i)); done $ echo $size 47762 [2] Häufig werden fremde Systeme nur deshalb gehackt, weil Sie zu weiteren illegitimen Aktivitäten benutzt werden sollen (DoS-Attacken, Spam, geheime FTP-Server, DNS-Schweinereien, ...). Der Angreifer möchte meist gar nicht an die vertraulichen Daten auf dem kompromittierten System herankommen. 3.7.1. Entfernen von Perl ------------------------- Sie müssen bedenken, dass es nicht gerade einfach ist, `Perl' von einem Debian-System zu entfernen (in der Tat kann es ziemlich schwierig werden), da es von vielen Dienstprogrammen benutzt wird. `perl-base' hat außerdem _Priority: required_ (und das sagt eigentlich schon alles). Es ist aber trotzdem machbar. Allerdings können Sie auf diesem System keine `Perl'-Anwendung mehr laufen lassen. Außerdem müssen Sie auch das Paket-Management-System hereinlegen, damit es weiterhin denkt, dass `perl-base' installiert ist, auch wenn es das nicht mehr ist. [1] Welche Dienstprogramme benutzen `Perl'? Sie können es selbst herausfinden: $ for i in /bin/* /sbin/* /usr/bin/* /usr/sbin/*; do [ -f $i ] && { type=`file $i | grep -il perl`; [ -n "$type" ] && echo $i; }; done Diese Liste schließt die folgenden Dienstprogramme mit der Priorität _required_ oder _important_ ein: * `/usr/bin/chkdupexe' aus dem Paket `util-linux'. * `/usr/bin/replay' aus dem Paket `bsdutils'. * `/usr/sbin/cleanup-info' aus dem Paket `dpkg'. * `/usr/sbin/dpkg-divert' aus dem Paket `dpkg'. * `/usr/sbin/dpkg-statoverride' aus dem Paket `dpkg'. * `/usr/sbin/install-info' aus dem Paket `dpkg'. * `/usr/sbin/update-alternatives' aus dem Paket `dpkg'. * `/usr/sbin/update-rc.d' aus dem Paket `sysvinit'. * `/usr/bin/grog' aus dem Paket `groff-base'. * `/usr/sbin/adduser' aus dem Paket `adduser'. * `/usr/sbin/debconf-show' aus dem Paket `debconf'. * `/usr/sbin/deluser' aus dem Paket `adduser'. * `/usr/sbin/dpkg-preconfigure' aus dem Paket `debconf'. * `/usr/sbin/dpkg-reconfigure' aus dem Paket `debconf'. * `/usr/sbin/exigrep' aus dem Paket `exim'. * `/usr/sbin/eximconfig' aus dem Paket `exim'. * `/usr/sbin/eximstats' aus dem Paket `exim'. * `/usr/sbin/exim-upgrade-to-r3' aus dem Paket `exim'. * `/usr/sbin/exiqsumm' aus dem Paket `exim'. * `/usr/sbin/keytab-lilo' aus dem Paket `lilo'. * `/usr/sbin/liloconfig' aus dem Paket `lilo'. * `/usr/sbin/lilo_find_mbr' aus dem Paket `lilo'. * `/usr/sbin/syslogd-listfiles' aus dem Paket `sysklogd'. * `/usr/sbin/syslog-facility' aus dem Paket `sysklogd'. * `/usr/sbin/update-inetd' aus dem Paket `netbase'. Ohne Perl und solange Sie diese Dienstprogramme nicht in einem Shell-Skript neu schreiben, werden Sie also wahrscheinlich keine Pakete mehr verwalten können (und so das System nicht upgraden können, und das ist _keine gute Idee_). Wenn Sie sich dazu entschlossen haben, Perl aus dem Debian-Basis-System zu entfernen und ein wenig Freizeit haben, schicken Sie uns doch Fehlerberichte zu den aufgezählten Paketen, die (als ein Patch) einen Ersatz dieser Dienstprogramme als Shell-Skript enthalten. Wenn Sie wissen wollen, welche Debian-Pakete von Perl abhängen, können Sie Folgendes verwenden: $ grep-available -s Package,Priority -F Depends perl oder $ apt-cache rdepends perl [1] Sie können (auf einem anderen System) eine Paket-Attrappe mit `equivs' erstellen. 3.8. Lesen Sie Debians Sicherheits-Mailinglisten ------------------------------------------------ Es ist niemals falsch, einen Blick in die debian-security-announce Mailingliste zu werfen, wo Anleitungen und Problemlösungen durch das Debian-Sicherheits-Team bekannt gemacht werden, oder sich an mailto:debian-security@lists.debian.org zu beteiligen, wo Sie an Diskussionen zu allen sicherheitsrelevanten Fragen teilnehmen können. Um wichtige Warnungen zu Sicherheitsaktualisierungen zu erhalten, senden Sie eine E-Mail an debian-security-announce-request@lists.debian.org (mailto:debian-security-announce-request@lists.debian.org) mit dem Wort "subscribe" in der Betreffzeile. Sie können diese moderierte E-Mail-Liste unter http://www.de.debian.org/MailingLists/subscribe auch über das Web abonnieren. Diese Mailingliste hat ein sehr geringes Aufkommen, und indem Sie sie abonnieren, werden Sie sofort über Sicherheitsaktualisierungen der Debian-Distribution informiert. Dies erlaubt Ihnen sehr schnell, neue Pakete mit Sicherheitsaktualisierungen herunterzuladen, was sehr wichtig ist, um ein sicheres System zu verwalten (siehe Abschnitt 4.2, `Ausführen von Sicherheitsupdates' für weitere Details, wie Sie dies machen). ------------------------------------------------------------------------------- 4. Nach der Installation ------------------------ Wenn das System installiert ist, können Sie es noch weiter absichern, indem Sie einige der in diesem Kapitel beschriebenen Schritte ausführen. Natürlich hängt dies vor allem von Ihrem Setup ab, aber um physischen Zugriff zu verhindern, sollten Sie Abschnitt 4.3, `Änderungen im BIOS (noch einmal)', Abschnitt 4.4, `Ein Passwort für LILO oder GRUB einstellen', Abschnitt 4.6, `Entfernen des Root-Promptes aus dem Kernel', Abschnitt 4.7, `Einschränkender Konsolen-Zugang' und Abschnitt 4.8, `System-Neustart von der Konsole aus einschränken' lesen. Bevor Sie sich mit einem Netzwerk verbinden, insbesondere wenn es sich um ein öffentliches Netzwerk handelt, sollten Sie wenigstens eine Sicherheitsaktualisierung (siehe Abschnitt 4.2, `Ausführen von Sicherheitsupdates') durchführen. Optional können Sie auch einen Schnappschuss Ihres Systems machen (siehe Abschnitt 4.18, `Einen Schnappschuss des Systems erstellen'). 4.1. Abonnement der Security-Announce-Mailingliste von Debian ------------------------------------------------------------- Um Informationen zu verfügbaren Sicherheitsaktualisierungen und die Debian-Sicherheits-Ankündigungen (DSA) zu erhalten, sollten Sie Debians Security-Announce-Mailingliste abonnieren. Lesen Sie Abschnitt 7.1, `Das Sicherheitsteam von Debian' für weitere Informationen, wie das Sicherheitsteam von Debian arbeitet. Hinweise, wie man die Mailinglisten von Debian abonniert, finden Sie unter http://lists.debian.org. DSAs werden mit der Signatur des Sicherheitsteams von Debian unterschrieben, die unter http://security.debian.org erhältlich ist. Sie sollten in Betracht ziehen, auch die debian-security Mailingliste (http://lists.debian.org/debian-security) zu abonnieren. Dort finden allgemeine Diskussionen zu Sicherheitsthemen im Betriebssystem Debian statt. Sie können auf der Liste sowohl mit gleichgesinnten Systemadministratoren als auch mit Entwicklern von Debian und Programmautoren in Kontakt treten. Diese werden Ihre Fragen beantworten und Ihnen Ratschläge geben. FIXME: Add the key here too? 4.2. Ausführen von Sicherheitsupdates ------------------------------------- Sobald neue Sicherheitslöcher in einem Paket entdeckt wurden, reparieren sie Debians Paketbetreuer und Originalautoren im Allgemeinen innerhalb von Tagen oder sogar Stunden. Nachdem das Loch gestopft wurde, werden neue Pakete unter http://security.debian.org bereit gestellt. Wenn Sie ein Debian-Release installieren, müssen Sie berücksichtigen, dass es seit der Veröffentlichung Sicherheitsaktualisierungen gegeben haben könnte, nachdem entdeckt wurde, dass ein bestimmtes Paket verwundbar ist. Ebenso könnte es kleinere Releases gegeben haben. Es gab vier kleinere Veröffentlichungen von Debian 3.1 _Sarge_, die diese Paketaktualisierungen enthalten. Sie müssen sich das Erstellungsdatum Ihres CD-Sets (wenn Sie ein solches benutzen) notieren und auf der Sicherheitsseite nachprüfen, ob es Sicherheitsaktualisierungen gegeben hat. Wenn es solche gibt, und Sie die Pakete nicht von der Sicherheitsseite mit einem anderen System herunterladen können (Ihr System ist doch nicht schon mit dem Internet verbunden, oder?), könnten Sie es in Erwähnung ziehen (falls Sie nicht beispielsweise durch eine Firewall, geschützt sind), Firewall-Regeln zu aktivieren, so dass Ihr System ausschließlich mit security.debian.org Verbindung aufnehmen kann, und dann ein Update ausführen. Eine Beispielkonfiguration finden Sie unter Anhang F, `Schutz der Sicherheitsaktualisierung durch eine Firewall'. _Anmerkung:_Seit Debian Woody 3.0 wird Ihnen nach der Installation die Möglichkeit eingeräumt, Sicherheitsaktualisierungen Ihrem System hinzuzufügen. Wenn Sie hier 'ja' sagen, wird das Installationssystem die passenden Schritte unternehmen, um die Quellen der Sicherheitsaktualisierungen Ihren Paketquellen hinzuzufügen. Falls Sie nun eine Internetverbindung haben, wird Ihr System alle Sicherheitsaktualisierungen herunterladen, die seit Entstehung Ihres Installationsmediums erzeugt wurden. Falls Sie ein Upgrade von einer älteren Version von Debian durchführen, oder Sie das Installationssystem anweisen, dies nicht zu tun, sollten Sie die hier vorgestellten Schritte unternehmen. Um Ihr System manuell zu aktualisieren, fügen Sie die folgende Zeile in Ihre `/etc/apt/sources.list' ein. So werden Sie Sicherheitsaktualisierungen automatisch erhalten, wann immer Sie Ihr System aktualisieren. deb http://security.debian.org/debian-security stable/updates main contrib non-free _Hinweis:_ Falls Sie den _Testing_-Zweig einsetzen, sollten Sie die Sicherheitsspiegel für Testing verwenden. Das wird unter Abschnitt 10.1.4, `Sicherheitsunterstützung für den Testing-Zweig' beschrieben. Wenn Sie dies erledigt haben, stehen Ihnen zahlreiche Werkzeuge zur Verfügung, mit denen Sie Ihr System aktualisieren können. Wenn Sie ein Desktop-System einsetzen, können Sie eine Anwendung mit dem Namen `update-notifier' verwenden[1], die Sie auf neue Aktualisierungen aufmerksam macht. Damit können Sie Ihr System auch über den Desktop auf den neusten Stand bringen (mit `update-manager'). Für den Desktop können Sie auch `synaptic', `kpackage' oder `adept' einsetzen, die einen größeren Funktionsumfang aufweisen. Wenn Sie auf einem textbasierten Terminal arbeiten, stehen Ihnen `aptitude', `apt' und `dselect', wobei letzteres veraltet ist, zur Verfügung: * Falls Sie die textbasierte Oberfläche von `aptitude' verwenden wollen, müssen Sie zunächst _u_ (für Update) und dann _g_ (für Upgrade) eingeben. Oder Sie führen auf der Befehlszeile Folgendes als Root aus: # aptitude update # aptitude upgrade * Falls Sie `apt' einsetzen möchten, müssen Sie obige Zeilen von `aptitude' nur mit `apt-get' ersetzen. * Falls Sie `dselect' verwenden wollen, müssen Sie zuerst aktualisieren ([U] für Update), dann installieren ([I] für Install) und schließlich die installieren/aktualisierten Pakete konfigurieren ([C] für Configure). Wenn Sie möchten, können Sie ebenfalls eine deb-src Zeile hinzufügen. Weitere Details finden Sie unter apt(8). Anmerkung: Sie brauchen folgende Zeile _nicht_ hinzufügen: deb http://security.debian.org/debian-non-US stable/non-US main contrib non-free Das liegt daran, dass sich der Server, der security.debian.org hostet, außerhalb der USA befindet und somit kein getrenntes Archiv für Non-US hat. [1] Ab _Etch_ und den folgenden Veröffentlichungen. 4.2.1. Sicherheitsaktualisierungen von Bibliotheken --------------------------------------------------- Wenn Sie eine Sicherheitsaktualisierung durchgeführt haben, müssen Sie gegebenenfalls einige Dienste des Systems neu starten. Wenn Sie das nicht tun, könnten Dienste auch nach der Sicherheitsaktualisierung immer noch verwundbar sein. Das liegt daran, dass Daemonen, die schon vor einem Upgrade liefen, immer noch die alten Bibliotheken vor dem Upgrade verwenden könnten.[1] Um herauszufinden, welche Daemonen neu gestartet werden müssen, können Sie das Programm `checkrestart' (ist im Paket `debian-goodies' enthalten) oder diesen Einzeiler (als Root) verwenden:[2] # lsof | grep | awk '{print $1, $9}' | uniq | sort +0 Einige Pakete (wie `libc6') werden diesen Test in der Postinst-Phase für eine begrenzte Anzahl von Diensten durchführen, da ein Upgrade von notwendigen Bibliotheken einige Anwendungen unbrauchbar machen kann, wenn sie nicht neu gestartet werden [3]. Indem das System auf Runlevel 1 (Single User) und dann zurück auf Runlevel 3 (Multi User) gebracht wird, sollten die meisten (wenn nicht alle) Systemdienste neu gestartet werden. Dies ist aber keine Möglichkeit, wenn Sie die Sicherheitsaktualisierung über eine entfernte Verbindung (z.B. mit ssh) vornehmen, da sie getrennt werden würde. Lassen Sie Vorsicht walten, wenn Sie es mit Sicherheitsaktualisierungen über eine entfernte Verbindung wie mit ssh zu tun haben. Die empfohlene Vorgehensweise für Sicherheitsaktualisierungen, die Dienste betreffen, ist, den SSH-Daemon neu zu starten und sofort zu versuchen, eine neue SSH-Verbindung herzustellen, ohne die alten zu beenden. Falls der Verbindungsversuch scheitern sollte, machen Sie die Aktualisierung rückgängig und untersuchen Sie das Problem. [1] Selbst wenn die Bibliotheken aus dem Dateisystem entfernt wurden, werden die Inodes nicht beseitigt, bis kein Programm mehr einen offenen Dateideskriptor mit Verweis auf sie hat. [2] Je nach der Version von lsof müssen Sie $8 statt $9 verwenden. [3] Das passierte z.B. beim Upgrade von libc6 2.2.x zu 2.3.x wegen Problemen mit der NSS-Authentifizierung, siehe http://lists.debian.org/debian-glibc/2003/debian-glibc-200303/msg00276.html. 4.2.2. Sicherheitsaktualisierung des Kernels -------------------------------------------- Stellen Sie zunächst sicher, dass Ihr Kernel durch das Paketsystem verwaltet wird. Wenn Sie die Installation mit dem Installationssystem von Debian 3.0 oder früher durchgeführt haben, ist Ihr Kernel _nicht_ in das Paketsystem integriert und könnte veraltet sein. Sie können das leicht überprüfen, indem Sie Folgendes ausführen: $ dpkg -S `readlink -f /vmlinuz` kernel-image-2.4.27-2-686: /boot/vmlinuz-2.4.27-2-686 Wenn Ihr Kernel nicht vom Paketsystem verwaltet wird, werden Sie anstatt der obigen Nachricht die Rückmeldung bekommen, dass das Paketverwaltungsprogramm kein Paket finden konnte, das mit der Datei verbunden ist. Die obige Meldung besagt, dass die Datei, die mit dem laufenden Kernel verbunden ist, vom Paket `kernel-image-2.4.27-2-686' zur Verfügung gestellt wird. Sie müssen also zuerst ein Paket mit einem Kernel-Image von Hand installieren. Das genaue Kernel-Image, das Sie installieren sollten, hängt von Ihrer Architektur und Ihrer bevorzugten Kernelversion ab. Wenn Sie das einmal erledigt haben, können Sie die Sicherheitsaktualisierungen des Kernels wie die jedes anderen Pakets durchführen. Beachten Sie allerdings, dass Kernelaktualisierungen _nur_ für Aktualisierungen der gleichen Kernelversion wie der Ihrigen durchgeführt werden. D.h. `apt' wird nicht automatisch Ihren Kernel von 2.4 auf 2.6 aktualisieren (oder von 2.4.26 auf 2.4.27 [1]). Das Installationssystem von Debian 3.1 wird den gewählten Kernel (2.4 oder 2.6) als Teil des Paketsystems behandeln. Sie können überprüfen, welche Kernel Sie installiert haben: $ COLUMNS=150 dpkg -l 'kernel-image*' | awk '$1 ~ /ii/ { print $0 }' Um festzustellen, ob Ihr Kernel aktualisiert werden muss, führen Sie Folgendes aus: $ kernfile=`readlink -f /vmlinuz` $ kernel=`dpkg -S $kernfile | awk -F : '{print $1}'` $ apt-cache policy $kernel kernel-image-2.4.27-2-686: Installed: 2.4.27-9 Candidate: 2.4.27-9 Version Table: *** 2.4.27-9 0 (...) Wenn Sie eine Sicherheitsaktualisierung durchführen, die auch das Kernel-Image umfasst, _müssen_ Sie das System neu starten, damit die Sicherheitsaktualisierung Wirkung zeigen kann. Anderenfalls lassen Sie immer noch das alte (und verwundbare) Kernel-Image laufen. Wenn Sie das System neu starten müssen (wegen eines Kernel-Upgrades), sollten Sie sicherstellen, dass der Kernel fehlerfrei booten wird und die Netzwerkverbindungen hergestellt werden, besonders wenn die Sicherheitsaktualisierung über eine entfernte Verbindung wie mit ssh durchgeführt wird. Für den ersten Fall können Sie Ihren Boot-Loader so konfigurieren, dass er den Originalkernel lädt, wenn ein Fehler auftritt (für weiterführende Informationen sollten Sie Remotely rebooting Debian GNU/Linux machines (http://www.debian-administration.org/?article=70) lesen). Im zweiten Fall müssen Sie ein Skript verwenden, das die Netzwerkverbindungen testen kann und überprüft, ob der Kernel das Netzwerksystem korrekt gestartet hat, und, wenn das nicht geschehen ist, das System neu startet [2]. Dies sollte böse Überraschungen verhindern, wie wenn man den Kernel aktualisiert und dann nach einem Reboot merkt, dass die Netzwerkhardware nicht richtig erkannt oder konfiguriert wurde, und man daher eine weite Strecke zurücklegen muss, um das System wieder hoch zu bringen. Natürlich hilft es beim Debuggen von Reboot-Problemen aus der Ferne, wenn die serielle Konsole des Systems [3] mit einem Konsolen- oder Terminalserver verbunden ist. [1] Es sei denn, Sie haben ein Kernel-Metapaket wie `kernel-image-2.4-686' installiert, welches immer die neueste Minor-Version des Kernels einer Architektur installieren wird. [2] Ein Beispielskript mit dem Namen testnet (http://www.debian-administration.org/articles/70/testnet) ist im Artikel Remotely rebooting Debian GNU/Linux machines (http://www.debian-administration.org/?article=70) enthalten. Ein ausgereifteres Testskript befindet sich im Artikel Testing network connectivity (http://www.debian-administration.org/?article=128) [3] Das Einrichten einer seriellen Konsole würde den Rahmen dieses Dokuments sprengen. Informationen dazu finden Sie im Serial HOWTO (http://www.tldp.org/HOWTO/Serial-HOWTO.html) und im Remote Serial Console HOWTO (http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/index.html). 4.3. Änderungen im BIOS (noch einmal) ------------------------------------- Erinnern Sie sich an Abschnitt 3.1, `Setzen Sie ein Passwort im BIOS'? Nun, jetzt sollten Sie, nachdem Sie nicht mehr von austauschbaren Datenträgern booten müssen, die Standard-BIOS-Einstellung so umändern, dass es _ausschließlich_ von der Festplatte bootet. Gehen Sie sicher, dass Sie Ihr BIOS-Passwort nicht verlieren, oder Sie werden nicht mehr ins BIOS zurückkehren können, um die Einstellung wieder zu ändern, so dass Sie im Falle eines Festplattenfehlers Ihr System wiederherstellen können, indem Sie zum Beispiel eine CD-ROM benutzen. Eine andere, weniger sichere, aber bequemere Möglichkeit ist es, das BIOS so einzustellen, dass es von der Festplatte bootet, und nur falls dies fehlschlägt versucht, von austauschbaren Datenträgern zu booten. Übrigens wird dies oft so gemacht, weil viele Leute ihr BIOS-Passwort nur selten benutzen, so dass sie es zu leicht vergessen. 4.4. Ein Passwort für LILO oder GRUB einstellen ----------------------------------------------- Jeder kann sehr einfach eine root-Shell auf Ihrem System bekommen, indem er einfach ` init=/bin/sh' am Bootprompt eingibt. Nachdem die Passwörter geändert und das System neu gestartet wurde, hat die Person uneingeschränkten Root-Zugang und kann nach Belieben alles auf Ihrem System machen. Nach dieser Prozedur haben Sie keinen Root-Zugang mehr zu Ihrem System, weil Sie das Root-Passwort nicht kennen. Um sicher zu stellen, dass dies nicht passieren kann, sollten Sie den Boot-Loader mit einem Passwort schützen. Sie können zwischen einem globalen Passwort und Passwörtern für bestimmte Images wählen. Für LILO müssen Sie die Konfigurationsdatei `/etc/lilo.conf' editieren und eine `password' und `restricted' Zeile, wie im folgenden Beispiel, einfügen: image=/boot/2.2.14-vmlinuz label=Linux read-only password=hackmich restricted Gehen Sie danach sicher, dass die Konfigurationsdatei nicht für alle lesbar ist, um zu verhindern, dass lokale Nutzer das Passwort lesen können. Haben Sie dies getan, rufen Sie lilo auf. Wenn Sie die `restricted'-Zeile weglassen, wird lilo immer nach dem Passwort fragen, egal ob LILO Parameter übergeben wurden oder nicht. Die Standard-Zugriffsrechte auf `/etc/lilo.conf' erlauben root das Lesen und Schreiben, und der Gruppe von lilo.conf, ebenfalls root, das Lesen. Wenn Sie GRUB anstelle von LILO verwenden, editieren Sie `/boot/grub/menu.lst' und fügen die folgenden zwei Zeilen am Anfang an (dabei ersetzen Sie natürlich `hackmich' mit dem vorgesehenen Passwort). Dies verhindert, dass Benutzer die Booteinträge verändern können. `timeout 3' legt eine Wartedauer von 3 Sekunden fest, bevor `grub' den Standard-Eintrag bootet. timeout 3 password hackmich Um die Integrität Ihres Passwortes zusätzlich abzusichern, sollten Sie Ihr Passwort verschlüsselt ablegen. Das Dienstprogramm `grub-md5-crypt' erzeugt ein gehashtes Passwort, das kompatibel mit GRUBs Verschlüsselungsalgorithmus (MD5) ist. Um `grub' mitzuteilen, dass ein Passwort im MD5-Format verwendet wird, benutzen Sie die folgende Anweisung: timeout 3 password --md5 $1$arPydhOM$bIgEKjMW5kxeEuvE1Rah4/ Der Parameter --md5 wurde hinzugefügt, um bei `grub' einen MD5-Authentifizierungsprozess zu erzwingen. Das angegebene Passwort ist die MD5 verschlüsselte Version von "hackmich". MD5-Passwörter sind Klartext-Passwörtern vorzuziehen. Weitere Informationen über `grub'-Passwörter können Sie im `grub-doc'-Paket finden. 4.5. Entfernen des Root-Prompts von Initramfs --------------------------------------------- Hinweis: Dies betrifft alle Standard-Kernel, die nach Debian 3.1 veröffentlicht wurden. Die Linux-Kernel 2.6 enthalten die Möglichkeit, während des Bootvorgangs eine Root-Shell zu erhalten. Dies geschieht, wenn beim Laden von initramfs ein Fehler auftritt. Dadurch kann der Administrator auf eine Rettungsshell mit Root-Rechten zugreifen. Mit dieser Shell können von Hand Module geladen werden, falls eine automatische Erkennung scheitern sollte. Diese Verhalten ist Standard für ein von `initramfs-tools' erzeugtes Initramfs. Folgende Fehlermeldung wird auftreten: "ALERT! /dev/sda1 does not exist. Dropping to a shell! Um dieses Verhalten abzuschalten, müssen Sie folgenden Boot-Parameter setzen: _panic=0_. Sie können ihn entweder in den Abschnitt kopt in `/boot/grub/menu.lst' eintragen und `update-grub' ausführen oder ihn dem Abschnitt append von `/etc/lilo.conf' hinzufügen. 4.6. Entfernen des Root-Promptes aus dem Kernel ----------------------------------------------- Hinweis: Dies trifft nicht auf Kernel zu, die in Debian 3.1 enthalten sind, da die Wartezeit auf Null verändert wurde. Linux 2.4 Kernel bieten kurz nach dem Laden des cramfs einen Weg Zugriff auf eine Root-Shell zu bekommen, also während das System bootet. Es erscheint eine Meldung, die dem Administrator erlaubt, eine auszuführende Shell mit Root-Privilegien zu öffnen. Diese Shell kann dazu benutzt werden, manuell Module zu laden, falls die automatische Erkennung fehlschlägt. Dies ist das Standard-Verhalten bei `initrd''s `linuxrc'. Die folgende Meldung wird erscheinen: Press ENTER to obtain a shell (waits 5 seconds) Um dieses Verhalten zu entfernen, müssen Sie `/etc/mkinitrd/mkinitrd.conf' editieren und den Eintrag # DELAY Anzahl Sekunden, die das linuxrc Skript warten soll, # um den Nutzer Eingriffe zu erlauben, bevor das System hochgefahren # wird DELAY=0 setzen. Erstellen Sie anschließend Ihr Ramdisk-Image neu. Dies können Sie zum Beispiel so tun: # cd /boot # mkinitrd -o initrd.img-2.4.18-k7 /lib/modules/2.4.18-k7 oder (vorzugsweise) so: # dpkg-reconfigure kernel-image-2.4.x-yz 4.7. Einschränkender Konsolen-Zugang ------------------------------------ Manche Sicherheitsregelwerke könnten Administratoren dazu zwingen, sich erst als Benutzer mit ihrem Passwort auf dem System einzuloggen, und dann Superuser zu werden (mit `su' oder `sudo'). Solche eine Policy ist in Debian in der Datei `/etc/login.defs' oder `/etc/securetty' (falls Sie PAM verwenden) implementiert. * In `login.defs' ändern Sie die CONSOLE-Variable, die eine Datei oder eine Liste von Terminals definiert, an denen sich Root einloggen darf. * In `securetty' [1] entfernen Sie oder fügen Sie Terminals hinzu, auf die Root zugreifen darf. Falls Sie nur lokalen Zugang zur Konsole erlauben wollen, benötigen Sie _console_, _ttyX_ [2] und _vc/X_ (falls Sie die _devfs_-Schnittstelle verwenden). Sie sollten auch _ttySX_ [3] hinzufügen, wenn Sie eine serielle Kons