[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ weiter ]
Eine Anleitung, die Schritt für Schritt darstellt, wie ein Debian 2.2 GNU/Linux-System nach der Installation abgehärtet wird, ist unten aufgeführt. Das ist nur eine denkbare Herangehensweise für einem solchen Vorgang. Sie ist am Absichern von Netzwerkdiensten orientiert und stellt den gesamten Anlauf der Konfiguration vor. Vergleichen Sie auch Prüfliste der Konfiguration, Anhang B.
Install the system, taking into account the information regarding partitioning included earlier in this document. After base installation, go into custom install. Do not select task packages.
Entfernen Sie mit dselect
alle nicht benötigten, aber
ausgewählten Pakete, bevor Sie [I]nstallation wählen. Belassen Sie nur die
absolut notwendige Software auf dem System.
Aktualisieren Sie die ganze Software mit den aktuellen Paketen von security.debian.org, wie bereits unter Ausführen von Sicherheitsaktualisierungen, Abschnitt 4.2 beschrieben.
Implementieren Sie die in dieser Anleitung vorgeschlagenen Maßnahmen zu
Benutzer-Quotas, Ausgestaltung des Anmeldevorgangs und Lilo
.
Machen Sie sich eine Liste von allen Diensten, die derzeit auf Ihrem System laufen. Versuchen Sie dazu Folgendes:
$ 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.
Um einen unnötigen Dienst zu entfernen, stellen Sie zunächst fest, wie er
gestartet wird und welches Paket ihn zur Verfügung stellt. Sie können dies
ganz einfach machen, indem Sie das Programm prüfen, das auf dem Socket
lauscht. Das nachfolgende Shell-Skript, das die Programme 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
Wenn Sie einen unerwünschten Dienst finden, entfernen Sie das Paket (mit
dpkg --purge
). Oder benutzen Sie update-rc.d
(siehe
Daemons abschalten, Abschnitt 3.5.1),
um ihn aus dem Start-Prozess zu entfernen.
Überprüfen Sie bei inetd-Diensten (werden durch den Superdaemon gestartet),
welche Dienste in /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.
Wenn Sie Dienste eingehüllt haben (und /usr/sbin/tcpd
benutzen),
prüfen Sie, ob die Dateien /etc/hosts.allow
und
/etc/hosts.deny
passend zu Ihrer Richtlinie für die Dienste
konfiguriert sind.
Wenn der Server mehr als eine externe Schnittstelle benutzt, können Sie Dienste darauf beschränken, auf bestimmten Schnittstellen zu lauschen. Ob das möglich ist, hängt aber von den Diensten ab. Wenn Sie zum Beispiel internen FTP-Zugriff erlauben wollen, lassen Sie den FTP-Daemon nur auf der internen Schnittstelle lauschen, nicht auf allen (d.h. 0.0.0.0:21).
Booten Sie die Maschine neu, oder wechseln Sie in den Single-User-Modus und zurück in den Multi-User-Modus mit:
# init 1 (....) # init 2
Prüfen Sie die nun angebotenen Dienste und wiederholen Sie gegebenenfalls die letzten Schritte.
Installieren Sie jetzt die benötigten Dienste, falls es noch nicht geschehen ist, und konfigurieren Sie sie passend.
Prüfen Sie mit folgendem Shell-Befehl, unter welchem Benutzer die verfügbaren Dienste laufen:
# 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 "Dienst $i läuft als Benutzer $user"; done
Überlegen Sie, ob Sie diese Dienste einem bestimmten Benutzer oder Gruppe
zuweisen wollen und sie vielleicht auch in eine chroot-Umgebung einsperren
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
stellt. 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.
Wiederholen Sie die Schritte oben um zu prüfen, ob nur die gewünschten Dienste laufen und ob sie unter der gewünschten Benutzer/Gruppen-Kombination laufen.
Testen Sie die installierten Dienste, um festzustellen, ob sie wie erwartet arbeiten.
Überprüfen Sie das System, indem Sie einen Scanner zur Abschätzung der
Verwundbarkeit (zum Beispiel nessus
) benutzen, um
Angriffsmöglichkeiten (Fehlkonfigurationen, alte oder nicht benötigte
Dienste) zu finden.
Installieren Sie Instrumente zur Entdeckung von Eindringlingen in Netzwerk und
Hosts (wie snort
und logcheck
).
Wiederholen Sie den Netzwerk-Scan und prüfen Sie, ob das System zur Erkennung von Eindringlingen funktioniert.
Die richtig Paranoiden überlegen sich auch Folgendes:
Fügen Sie dem System Firewall-Fähigkeiten hinzu, die eingehende Verbindungen nur zu angebotenen Diensten erlauben und ungenehmigte ausgehende Verbindungen verhindern.
Überprüfen Sie erneut die Installation auf Angriffspunkte mit einem Netzwerk-Scanner.
Prüfen Sie ausgehende Verbindungen vom System zu Hosts außerhalb mit einem Netzwerk-Scanner, um sicherzustellen, dass ungewollte Verbindungen keinen Weg nach draußen finden.
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.
[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ weiter ]
Securing Debian Manual
Version: 3.17,mailto:jfs@debian.org