Securing Debian HOWTO

Im „Securing Debian HOWTO“ (erreichbar unter http://www.debian.org/doc/manuals/securing-debian-howto/index.html) finden sich Informationen an welchen Stellen ein Debian System noch sicherer gemacht werden kann. Daher soll an dieser Stelle nur auf einige grundlegende Dinge hingewiesen werden.

Zunächst müssen Sie sich darüber im klaren sein das ein System nur dann 100%tig sicher ist wenn keinerlei Dienste auf diesem laufen. Dies ist in der Realität natürlich unsinnig und nicht durchsetzbar, das System würde so nicht sinnvoll benutzbar sein.

Man sollte sich auch darüber im klaren sein das die Anforderungen an die Sicherheit stark vom Einsatz des Systems abhängig sind. Ein Privatnutzer wird deutlich andere Anforderungen stellen wie der Administrator eines Firewall Systems. Viele Einstellungen die die Sicherheit eines Systems erhöhen vereinfachen die Bedienung nicht unbedingt, auch hier ist zwischen Benutzerfreundlichkeit und Paranoia abzuwägen.

Die Softwareseitigen Einstellungen an einem Debian System die zur Verbesserung der Sicherheit dienen, können nicht den physikalischen Zugriff auf das System verhindern. Wenn von Systemsicherheit die Rede ist muß auch bedacht werden das zu einem völlig sicheren System auch gehört das der Zugriff auf die Hardware unterbunden wird. Ein Angreifer der Zugriff auf die Hardware hat kann beispielsweise über eine Boot-CD oder Diskette Zugriff auf das System erlangen. Auch ein BIOS-Passwort kann den Diebstahl der Festplatte nicht verhindern. Ein völlig sicheres System gehört also hinter gut verschlossene Türen. Doch Betrachtungen zur Hardwaresicherung sollen an dieser Stelle nicht weiter verfolgt werden.

Vor und während der Installation

Bereits vor der Installation können einige Maßnahmen zur Sicherheit des Systems getroffen werden. Das Debian Installationsprogramm enthält ebenfalls einige Punkte an denen die Sicherheit des Systems verbessert weren kann.

BIOS Einstellungen

Bevor ein Betriebsystem auf einem neuen Computer installiert wird, sollte ein BIOS Passwort gesetzt werden und die Booteinstellungen sollten so gewählt werden das ein Systemstart von Diskette nicht möglich ist. Nach der Installation sollte darauf geachtet werden das so schnell wie möglich auch der Start von CD-ROM abgeschaltet wird.

Ein weitere Vorteil dieser Einstellungen zeigt sich wenn das System als Server betrieben wird. Es wäre nicht das erste mal das eine vergessene Diskette im Laufwerk einen erfolgreichen Reboot eines Systems verhindert, sehr ärgerlich wenn ein direkter Zugriff auf das System nur mit einer längeren Anfahrt möglich ist.

Plattenpartitionen

Die Einteilung des verfügbaren Plattenplatzes hängt von der Verwendung des Systems ab. Hierzu sollte einige Dinge beachtet werden:

  • Jede Partition auf die Schreibzugriff von den Benutzern des Systems besteht, sollte auf einer eigenen Partition liegen, beispielsweise die Bereiche /home und /tmp. Dies verhindert das ein Benutzer das /-Dateisystem unbenutzbar macht und das gesamte System in einen instabilen Zustand bringt. Es bleibt natürlich ein gewisser Platz (meist 5%, dieser Wert kann mit tunefs angepasst werden) für den Superuser reserviert, doch kann so anderen Benutzern das Arbeit mit dem System unmöglich gemacht werden.

  • Es sollte für jeden Bereich der automatisch mit Daten gefüllt wird, beispielsweise /var und hier insbesondere /var/log eine eigene Partition vorgesehen werden. Auf Debian Systemen sollte /var großzügiger bemessen werden, da unter /var/cache/apt/archives Pakete temporär abgelegt werden wenn die Installation übers Netz erfolgt. Weiterhin finden sich unter /var/lib/dpkg viele Dateien die für das Paketmanagement benötigt werden.

  • Wenn Software installiert werden soll die nicht in der Debian Distribution enthalten ist, sollten auch diese Bereich auf eigenen Partitionen liegen, diese werden dann bei einer Neuinstallation des nicht überschrieben. Nach dem File Hierarchy Standard sind dies /opt oder /usr/local.

root Passwort

Während der Installation wird nach einem Passwort für den Superuser (root) gefragt. Zusätzlich kann ein Benutzer dem System hinzugefügt, auch für diesen ist dann ein Passwort einzugeben.

Shadow- und MD5 Passwörter

Während der Installation wird gefragt ob Shadow Passwords aktiviert werden sollen. Wenn die Frage positiv beantwortet wird, werden die Passwörter in der Datei /etc/shadow verschlüsselt gespeichert. Diese Datei kann nur vom Superuser und der Gruppe „shadow“ gelesen werden, somit kann kein Benutzer des Systems die verschlüsselten Passwörter lesen und versuchen diese mit Hilfe einer Software zu entschlüsseln. Diese Einstellung kann später mit dem Programm shadowconfig rückgängig gemacht werden. Weiterhin besteht die Möglichkeit die Passwörter mit einer MD5 Verschlüsselung zu speichern, dies ist generell eine gute Idee, da so ein Angriff weiterhin erschwert wird und längere Passwörter möglich sind.

Aktivierte Dienste

Wie bereits beschrieben sollten nur die absolut notwendigen Dienste auf einem System aktiviert werden. Jeder neue Dienst schafft möglicherweise ein neues Sicherheitsloch, welches vielleicht erst später zu einem Problem wird. Werden bestimmte Dienste nur selten benötigt, so können diese über die update-Kommandos (beispielsweise update-inetd) geziehlt aktiviert und deaktiviert werden.

Mailinglisten

Lesen Sie die Debian Security Mailinglisten. Relevant sind in diesem Zusammenhang debian-security-announce, dort werden Sicherheitslücken bekanntgegeben und es wird über Bugfixes dagegen informiert, sowie debian-security@lists.debian.org, dort werden alle Sicherheitstemen rund um Debian behandelt.

Wenn Sie Meldungen über Sicherheitsupdates per E-Mail bekommen wollen, so senden Sie eine Mail an: debian-security-announce-request@lists.debian.org mit dem Wort „subscribe“ im Betreff der Mail. Die Anmeldung zu dieser Mailingliste ist auch über die Webseite http://www.debian.org/MailingLists/subscribe möglich.

Auf dieser Mailingliste kommen nur sehr wenige Mails, man erfährt so aber sehr schnell über Probleme mit Paketen informiert und erfahren eine Adresse an der eine fehlerbereinigte Version zur Verfügung steht.

Nach der Installation

Nachdem das System mit allen benötigten Programmen eingerichtet ist, kann mit einigen weiteren Aktionen die Sicherheit des Systems weiter erhöht werden.

Lilo oder GRUB Passwort

Jede Person die Zugang zur Tastatur des Systems hat kann eine Superuser-Shell bekommen und beispielsweise alle Passwörter ändern, indem am Bootprompt dateiname-des-bootkernels init=/bin/sh eingegeben wird. Um dies zu verhindern kann ein Passwort für den Boot-Loader gesetzt werden. Dies kann global für alle Boot-Images geschehen oder individuell für jedes einzelne.

Wenn Lilo als Bootloader verwendet wird, muß die Datei /etc/lilo.conf um die Einträge password und restricted erweitert werden.

image=/boot/2.2.14-vmlinuz
   label=Linux
   read-only
   password=hackme
   restricted

Danach muß lilo nochmal aufgerufen werden. Sorgen Sie dafür das die Datei /etc/lilo.conf nur vom Superuser gelesen werden kann, da das Passwort unverschlüsselt in der Datei steht, dies ist mit dem Kommando chmod 600 /etc/lilo.conf zu erreichen. Wird der Eintrag restricted weggelassen, fragt Lilo immer nach einem Passwort.

Wird auf dem System GRUB verwendet, so müssen folgende Zeile der Datei /boot/grub/menu.lst hinzugefügt werden:

timeout 3
password hackme

Die Option timeout sorgt nach der angegebenen Zeit dafür das der Standardeintrag gebootet wird.

Starten von Diskette

Der von Debian Versionen vor 2.2 installierte MBR (Master Boot Record) wurde mit einer Option installiert die es erlaubte von Diskette zu booten auch wenn dies sonst abgeschaltet war. Ob ein solher MBR installiert ist läßt sich wie folgt prüfen:

  • Drücken Sie während des Startvorganges die Shift Taste, der MBR Prompt sollte erscheinen.

  • Drücken Sie nun „F“ und das System startet von Diskette. Mit dieser kann ein Superuserzugang zum System erreicht werden.

Dieses Verhalten kann wie folgt verändert werden:

lilo -b /dev/hda
Wobei hda dem entsprechenden Devicenamen Ihres Systems angepasst werden muß.

Die Bootdisketten ab Debian Version 2.2 installieren lilo direkt in den MBR, hier tritt diese Lücke nicht auf.