Eine Anleitung, die Schritt für Schritt darstellt, wie eine Debian 2.2 GNU/Linux-System nach der Installation abgehärtet wird, ist unten aufgeführt. Das ist nur eine denkbare Herangehensweise von einen solchen Vorgang. Sie ist am Absichern von Netzwerkdiensten orientiert. Außerdem wird der gesamte Ablauf der Konfiguration vorgestellt. Vergleichen Sie auch Checkliste der Konfiguration, Anhang B.
dselect
alle nicht benötigten aber ausgewählten
Pakete, bevor Sie [I]nstallation wählen. Behalten Sie nur die absolut
notwendige Software auf dem System.
Lilo
.
$ ps aux $ netstat -pn -l -A inet # /usr/sbin/lsof -i | grep LISTEN
Damit das dritte Kommando funktioniert werden Sie lsof-2.2
installieren müssen (und es als Root laufen lassen). Beachten Sie, dass
lsof
das Wort LISTEN passend zu Ihrer Lokalisation übersetzen
kann.
lsof
und
dpkg
verwendet, macht genau das:
#!/bin/sh # FIXME: this is quick and dirty; replace with a more robust script snippet for i in `sudo lsof -i | grep LISTEN | cut -d " " -f 1 |sort -u` ; do pack=`dpkg -S $i |grep bin |cut -f 1 -d : | uniq` echo "Service $i is installed by $pack"; init=`dpkg -L $pack |grep init.d/ ` if [ ! -z "$init" ]; then echo "and is run by $init" fi done
dpkg
--purge
). Oder benutzen Sie update-rc.d
(siehe Daemons abschalten, Abschnitt 3.6.1), um
ihn aus dem Start-Prozess zu entfernen.
/etc/inetd.conf
aktiviert sind. Verwenden Sie
dazu Folgendes:
$ grep -v "^#" /etc/inetd.conf | sort -u
Deaktivieren Sie dann diejenigen Dienste, die Sie nicht benötigen, indem Sie
die Zeile in /etc/inetd.conf
auskommentieren, das Paket entfernen,
oder indem Sie update-inetd
benutzen.
/usr/sbin/tcpd
benutzen)
prüfen Sie, ob die Dateien /etc/hosts.allow
und
/etc/hosts.deny
passend zu Ihren Richtlinien für die Dienste
konfiguriert sind.
$ init 1 (....) $ init 2
$ for i in `/usr/sbin/lsof -i |grep LISTEN |cut -d " " -f 1 |sort -u`; \ > do user=`ps ef |grep $i |grep -v grep |cut -f 1 -d " "` ; \ > echo "Service $i is running as user $user"; done
Überlegen Sie, ob Sie diese Dienste einem bestimmten User oder Gruppe zuweisen
wollen und sie vielleicht auch in eine chroot-Umgebung packen wollen, um die
Sicherheit zu erhöhen. Sie können dies tun, indem Sie die
/etc/init.d
-Skripte ändern, die den Dienst starten. Die meisten
Dienste benutzen unter Debian start-stop-daemon
, der die dafür
Optionen (--change-uid und --chroot) zur Verfügung
stellen. Ein paar warnende Worte zum Einsperren in eine
chroot
-Umgebung: Sie müssen alle Dateien, die durch das Paket des
Dienstes installiert wurden (verwenden Sie dpkg -L), und alle Pakete, von denen
es abhängt, in die Chroot
-Umgebung legen. Informationen, wie das
Programm ssh
in eine chroot
-Umgebung eingesperrt
wird, finden Sie unter Chroot
-Umgebung für
SSH
, Anhang G.
nessus
) benutzen, um
Angriffsmöglichkeiten (Fehlkonfigurationen, alte oder nicht benötigte Dienste)
zu finden.
snort
und logsentry
).
Die richtig Paranoiden überlegen sich auch das Folgende:
FIXME: this procedure considers service hardening but not system hardening at the user level, include information regarding checking user permissions, SETUID files and freezing changes in the system using the ext2 file system.
Anleitung zum Absichern von Debian
Version: 3.2, Mon, 20 Jun 2005 08:01:04 +0000jfs@debian.org