Eine Prozedur ist immer nützlich, da Sie Ihnen erlaubt, den gesamten Prozess des Abhärtens eines Systems zu betrachten und Ihnen erlaubt Entscheidungen zu treffen. Ein möglicher Versuch für eine solche Prozedur für Debian 2.2 GNU/Linux ist unten aufgeführt. Es ist eine Nach-Installations Prozedur. Eine Checkliste von Massnahmen, die sie schritt für Schritt während der Konfiguration durchführen finden Sie unter Konfigurations Checkliste, Anhang B. Ausserdem ist diese Prozedur (im Augenblick) eher am Absichern von Netzwerk Servicen orientiert.
dselect
und entfernen Sie alle nicht
benötigten aber ausgewählten Pakete bevor sie [I]nstallation
wählen. Lassen Sie nur absolut notwendige Software auf dem Server.
$ ps -aux $ netstat -pn -l -A inet # /usr/sbin/lsof -i | grep LISTEN
Damit das dritte Kommando funktionier werden Sie lsof-2.2
installieren müssen (uns es als root laufen lassen). Beachten Sie, dass
lsof das Wort LISTEN passend zu Ihrer Lokalisation übersetzen kann.
dpkg
dazu benutzt:
#!/bin/sh # FIXME: Dies ist nur schnelle und einfache zusammengehackt, und sollte # durch einen robusteren Skript-Schnipsel ersetzt werden 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 ist durch $pack installiert"; init=`dpkg -L $pack |grep init.d/ ` if [ ! -z "$init" ]; then echo "und wird durch $init gestartet" fi done
dpkg --purge
) oder, wenn er nützlich ist aber nicht beim
Starten aktiviert werden soll, benutzen Sie update-rc.d
(siehe Daemon-Services abschalten, Abschnitt
3.6.1), um den ihn aus dem Start-Prozess zu entfernen.
$ grep -v "^#" /etc/inetd.conf | sort -u
und deaktivieren Sie diejenigen, die Sie nicht benötigen, indem Sie die
Zeile auskommentieren, das Paket entfernen, oder indem Sie
update-inetd
benutzen.
/usr/sbin/tcpd
benutzen) prüfen Sie, ob /etc/hosts.allow
und
/etc/hosts.deny
passend zu Ihrer Service-Regelung 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 laeuft als Benutzer $user"; done
und überlegen Sie, ob Sie diese Services zu einem bestimmten User / einer
bestimmten Gruppe ändern wollen und Sie vielleicht auch in eine
chroot-Umgebung packer wollen, um die Sicherheit zu erhöhen. Sie
können dies tun, indem Sie die /etc/init.d
Skripte
ändern, die den Service starten. Die meisten Services benutzen unter
Debian start-stop-daemon
, so dass Sie einfach die --change-uid und
--chroot Optionen benutzen können, um diese Services aufzusetzen. Das
einpacken eines Services in eine Chroot-Umgebung würde den Rahmen dieses
Dokumentes sprengen, aber ein paar warnende Worte sind nötig: Sie werden
wahrscheinlich alle Dateien, die durch das Paket des Services installiert
wurden, unter Benutzung von dpkg -L und der Pakete, von denen es abhängt,
in die Chroot-Umgebung legen müssen.
nessus
)
benutzen, um Angriffmöglichkeiten (Fehlkonfigurationen, alte oder nicht
benötigte Services) zu finden.
snort
und
logsentry
).
Dir 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 filesystem.
Anleitung zum Absichern von Debian
2.5 (beta) 14 febrero 2004Sat, 17 Aug 2002 12:23:36 +0200jfs@computer.org