
En informatique la sécurité n'existe pas. Elle ne représente, en fait, que la mise en place d'un maximum de règles pouvant limiter les dégâts lors d'un attaque réussie :
"La sécurité est contenue dans le fait que le temps et les moyens nécessaires pour décoder l'information font que la découverte de cette information se fera à une date où elle ne sera plus intéressante".
Pour cela, il y a un certain nombre de points à respecter :
Toujours appliquer les derniers patchs de sécurité disponibles. Ceci passe par la lecture de news de sécurité sur kernel.org ou linux.org ou linuxfr.org...
Lorsqu'une nouvelle faille de sécurité apparaît mais pour laquelle le patch n'est pas encore disponible, il faut essayer d'en limiter la portée
soit en désactivant le service si celui ci n'est pas essentiel,
soit en le remplaçant par un autre programme non touché par la faille,
soit en surveillant de très prêts le serveur s'il il n'existe aucune autre solution, jusqu'à la mise en place d'un patch lorsque ce dernier sera disponible.
Limiter la portée et le pouvoir potentiel en cas d'attaque de chaque service, pour cela tous les services doivent fonctionner sous un utilisateur non privilégié, différent du root. Il faut donc limiter au maximum les services tournant sous root comme Samba.
Appliquer dans tous les cas où cela est possible la technique du « jail » (aussi appelé chroot), c'est à dire que pour chaque service, sa visibilité sur le système de fichiers doit être limitée grâce à un chroot dans un répertoire particulier. Bien sur, suivant le service, ceci peut être plus au moins compliqué suivant les nécessités du programme. Il est parfois nécessaire de recopier une certain nombre de fichier de /dev, /var, /etc et autres dans le dossier où à lieu le chroot.
Toujours essayer d'utiliser des connexions sécurisées pour le transfert d'informations sensibles grâce par exemple à la couche ssl : openssh, https, ... Donc ne jamais utiliser telnet quand on peut le faire par SSH.
Limiter un maximum le nombre de personnes ayant un compte « shell » sur votre serveur et ne JAMAIS utiliser pour un même compte des connexions sécurisées et non sécurisées, en règle générale limiter l'accès à chaque service aux personnes pour lesquelles cela est nécessaire.
Filtrer les connexions pour n'autoriser que ce qui est vraiment nécessaire.
Utiliser des outils complémentaires d'analyse et de surveillance pour être prévenu le plus tôt possible d'un problème potentiel (comme arpwatch ou nagios).
Éventuellement, forcer les utilisateurs a avoir des mots de passes difficiles à deviner (utilisation de modules PAM pour passwd...)