dselect et retirer les paquets non nécessaires mais sélectionnés auparavant avant de faire [I]nstall. Laisser le strict minimum de logiciels sur le système.
lilo.
$ ps aux $ netstat -pn -l -A inet # /usr/sbin/lsof -i | grep LISTENVous devrez installer lsof-2.2 pour que la troisième commande fonctionne (à exécuter en tant que superutilisateur). Vous devriez faire attention car
lsof peut traduire le mot LISTEN en fonction des paramètres régionaux.
dpkg :
#!/bin/sh
# FIXME : c'est du vite fait, mal fait ; à remplacer par un bout
# de script plus robuste
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 "Le service $i est installé par $pack";
init=`dpkg -L $pack |grep init.d/ `
if [ ! -z "$init" ]; then
echo "et démarré par $init"
fi
done
dpkg --purge) ou utiliser update-rc.d (consultez Section 3.5.1, « Désactivation de services démon ») de façon à le retirer du système de démarrage.
/etc/inetd.conf avec :
$ grep -v "^#" /etc/inetd.conf | sort -uet désactiver ceux qui ne sont pas nécessaires en commentant la ligne qui les inclut dans
/etc/inetd.conf, en supprimant le paquet ou en utilisant update-inetd.
/usr/sbin/tcpd), vérifier que les fichiers /etc/hosts.allow et /etc/hosts.deny sont configurés d'après les règles de services.
# 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 "Le service $i a été démarré en tant qu'utilisateur $user"; donePensez à modifier les utilisateur et groupe lançant ces services pour un couple utilisateur et groupe donné, et utilisez éventuellement
chroot pour augmenter le niveau de sécurité. Vous pouvez procéder en changeant les scripts de démarrage de services de /etc/init.d. La plupart des services dans Debian utilisent start-stop-daemon qui propose des options (--change-uid et --chroot) pour faire cela. Un petit avertissement concernant l'utilisation de chroot pour des services est nécessaire : tous les fichiers installés par le paquet (consultez la sortie de dpkg -L) fournissant le service ainsi que les paquets dont il dépend peuvent être nécessaires dans l'environnement chroot. Des renseignements sur la mise en place d'un environnement chroot pour le programme ssh sont disponibles en Section B.7, « Environnement de chroot pour SSH ».