[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ suivant ]
Vous trouverez ci-dessous une procédure post-installation pour durcir un système Debian 2.2 GNU/Linux. Il s'agit d'une approche possible pour une telle procédure et celle-ci est orientée sur le renforcement des services réseaux. Elle est incluse pour présenter le processus entier que vous pouvez utiliser pendant la configuration. Veuillez également voir Liste des contrôles de configuration., Annexe B.
Faire une installation du système (tenez compte des informations dans ce manuel concernant le partitionnement). Après l'installation du système de base, allez dans l'installation personnalisée, ne sélectionnez pas de paquets de tâches (task). Sélectionnez les mots de passe ombrés (shadow).
Passer les paquets en revue avec dselect
et retirer les paquets
non nécessaire mais sélectionnés auparavant avant de faire [I]nstall. Laisser
le strict minimum de logiciels sur le système.
Actualiser tous les logiciels à partir des paquets les plus récents disponibles sur security.debian.org comme décrit précédemment dans Faire une mise à jour de sécurité, Section 4.2.
Appliquer les suggestions présentées dans ce manuel concernant les quotas
utilisateur, les définitions des connexion et lilo
.
Faire une liste de services actifs sur votre système. Exécuter ceci :
$ ps aux $ netstat -pn -l -A inet # /usr/sbin/lsof -i | grep LISTEN
Vous devrez installer lsof-2.2
pour que la troisième commande
fonctionne (à lancer en root). Vous devriez faire attention car
lsof
peut traduire le mot LISTEN pour votre langue.
Afin de retirer les services non nécessaires, déterminer avant tout quels
paquets fournissent le service et comment ils sont lancés. Cette tâche peut
être facilement réalisée en vérifiant le programme qui écoute la
« socket », l'exemple suivant nous le montre en utilisant ces outils
et dpkg
:
#!/bin/sh # FIXME: ceci est 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 "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
Une fois les services indésirables trouvés, supprimer le paquet (avec
dpkg --purge
) ou utiliser update-rc.d
(voir Désactivation de services démon, Section
3.6.1) de façon à le retirer du système de démarrage.
Pour les services inetd (lancés par le super-démon), vérifier quels services
sont activés dans /etc/inetd.conf
avec :
$ grep -v "^#" /etc/inetd.conf | sort -u
et désactiver ceux qui ne sont pas nécessaire en commentant la ligne qui les
inclut dans /etc/inetd.conf
, en supprimant le paquet ou en
utilisant update-inetd
.
Si vous avez des services « wrappés » (ceux utilisant
/usr/sbin/tcpd
), vérifier que les fichiers
/etc/hosts.allow
et /etc/hosts.deny
sont configurés
d'après vos règles de services.
Si le serveur utilise plus d'une interface externe, vous pouvez avoir envie de limiter les services pour qu'ils n'écoutent que sur une seule d'entre elles. Par exemple, si vous voulez un accès FTP interne, paramétrez le démon FTP afin qu'il n'écoute que sur l'interface désirée et non toutes les interfaces (c'est-à-dire 0.0.0.0:21).
Redémarrez la machine ou passer en mode utilisateur seul puis revenez en mode multi-utilisateur avec :
$ init 1 (....) $ init 2
Vérifiez que les services sont maintenant disponibles et, si nécessaire, répétez les étapes ci-dessus.
Installez maintenant les services nécessaires si vous ne l'avez pas encore fait et configurez les correctement.
Utilisez la commande shell suivante pour déterminer quel utilisateur est utilisé pour lancer chaque service disponible :
$ 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é lancé en tant qu'utilisateur $user"; done
Pensez à changer les utilisateur et groupe lançant ces services pour un
utilisateur/groupe donné et peut-être utiliser 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 la 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 : vous aurez peut-être besoin de mettre tous les fichiers
installés par le paquet (utilisez dpkg -L) fournissant le service ainsi que les
paquets dont il dépend dans l'environnement chroot
. Des
informations sur la mise en place d'un environnement chroot
pour
le programme ssh
peut être trouvée dans Environnement de chroot
pour
SSH
, Annexe G.
Répéter les étapes ci-dessus afin de vérifier que seuls les services désirés sont lancés et qu'ils fonctionnent avec une combinaison utilisateur/groupe désirée.
Tester les services installés afin de voir si leur fonctionnement est bien celui souhaité.
Vérifier le système en utilisant un scanner de vulnérabilités (comme
nessus
) de façon à déterminer les vulnérabilités du système
(mauvaise configuration, services vieux ou non nécessaires).
Mettre en place des mesures contre les intrusions réseaux et hôtes comme
snort
et logcheck
.
Répéter l'étape du scanner de réseaux et vérifier que le système de détection d'intrusion fonctionne correctement.
Pour les personnes vraiment paranoïaques, vous pouvez également prendre en considération ce qui suit :
Ajouter au système des possibilités de pare-feux, acceptant les connexions entrantes uniquement pour les services définis et limitant les connexions sortantes à celles autorisées.
Revérifier l'installation avec une nouvelle évaluation de vulnérabilité à l'aide d'un scanner de réseaux.
Vérifier les connexions sortantes en utilisant un scanner de réseaux depuis le système jusqu'à un hôte à l'extérieur et vérifier que les connexions non voulues ne trouvent pas leur sortie.
FIXME: cette procédure considère le durcissement de service, mais pas le renforcement du système au niveau utilisateur, incluant des informations à propos de la vérification des permissions utilisateurs, les fichiers setuid et le gel des changements dans le système en utilisant le système de fichiers ext2.
[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ suivant ]
Manuel de sécurisation de Debian
Version: 3.4, Sun, 06 Nov 2005 22:34:04 +0100jfs@debian.org
debian-l10n-french@lists.debian.org