Chapitre 21. Le réseau et la sécurité

1. Introduction à la sécurité
2. Protéger son système

1. Introduction à la sécurité

1.1. Qui est concerné ?

Ce chapitre vous concerne si votre ordinateur n'est pas isolé mais connecté à un réseau local ou à Internet.

1.2. Mais pourquoi s'embêter ?

Le raisonnement de base est le suivant : La sécurité de ma machine, je m'en fous : y'a rien de précieux sur ma machine... personne n'a intérêt à me pirater !

[Avertissement] Avertissement

C'est FAUX ! Les pirates recherchent les machines vulnérables pour avoir accès à un compte sur ces machines. Ils peuvent ainsi lancer leur vraie attaque destructrice depuis cette machine vulnérable au lieu de le faire depuis leur machine personnelle. Ainsi, on remonte beaucoup plus difficilement jusqu'à eux !

Autre raisonnement dangereux : J'ai Linux, donc je suis tranquille niveau sécurité !

[Avertissement] Avertissement

C'est encore une fois FAUX ! Il y a des failles de sécurité, même sous Linux. Par exemple, sur les noyaux 2.6.2 et inférieurs, une faille permet à n'importe quel utilisateur de devenir root ! On appelle ça un local root exploit. Plus grave, il y a régulièrement des failles dans des programmes qui permettent à un pirate d'exécuter du code sur la machine avec les mêmes privilèges que l'application vulnérable ! On appelle ça un remote exploit ; et quand l'application vulnérable tourne en root (c'est le cas du serveur d'accès à distance ssh par exemple), alors on appelle ça un remote root exploit, et le pirate a alors le contrôle total sur la machine !

Pour l'avoir vécu, se faire pirater son système n'a rien d'agréable, et le seul moyen de se retrouver en sécurité consiste à le réinstaller totalement et à changer tous ses mots de passe.

1.3. Morale

J'espère que je vous ai convaincu de l'importance de se tenir au courant des problèmes de sécurité et de mettre votre système à jour dès qu'une faille est découverte et réparée.

L'avantage d'appartenir au monde du logiciel libre est que tous les programmeurs du monde entier ont accès au code source du noyau et des programmes et peuvent alors corriger les failles de sécurité. La correction des failles est donc beaucoup plus rapide qu'avec d'autres systèmes d'exploitation non libres.

2. Protéger son système

2.1. Les failles de sécurité dans les paquets Debian

Avec Debian, quand un paquet a une faille de sécurité, une équipe spéciale, la security team, se charge de mettre rapidement à disposition des utilisateurs une version corrigée du paquet contenant le programme vulnérable sur un site dédié.

Pour être mis au courant de la disponibilité d'une mise à jour de sécurité, il faut s'abonner à la liste de distribution debian-security-announce. Pour s'inscrire, il suffit de se rendre à l'adresse http://www.debian.org/MailingLists/subscribe. Par la même occasion, vous pouvez vous abonner à la liste debian-announce pour recevoir les annonces des sorties de nouvelles versions de la distribution Debian. Je vous conseille de vous abonner également à la liste debian-news pour recevoir chaque semaine un résumé de l'actualité du projet Debian.

Quand une faille de sécurité est corrigée par Debian, vous recevez un message par la liste de distribution debian-security-announce. Ce message décrit la faille et la procédure pour mettre à jour facilement votre système.

En pratique, la procédure de mise à jour est toujours la même. Normalement, l'installateur de Debian a dû placer dans la liste des sources de paquets /etc/apt/sources.list une ligne comme celle-ci :

deb http://security.debian.org/ lenny/updates main contrib non-free

Ensuite, il suffit de mettre à jour la liste des paquets puis les paquets eux-mêmes :

# aptitude update
# aptitude safe-upgrade

2.2. Les failles de sécurité du noyau

Il arrive également qu'il y ait des failles de sécurité dans le noyau Linux. L'équipe de développement du noyau se charge alors de les corriger au plus vite.

Il n'existe pas à ma connaissance de liste d'annonce officielle pour être mis au courant des failles de sécurité du noyau... mais il suffit de jeter un oeil régulièrement aux sites d'actualité Linux, comme par exemple LinuxFr, qui relayent ce genre d'informations.

L'équipe de sécurité de Debian s'occupe également de surveiller les failles du noyau. À moins que vous ne choisisssiez de compiler et d'utiliser votre propre noyau, vous pourrez donc appliquer les mises à jour du noyau de la même façon que celle des autres paquets. Après une mise à jour du noyau, il est nécessaire de redémarrer pour utiliser le nouveau noyau corrigé.

2.3. Surveiller son système en lisant les logs

Les logs sont des fichiers textes produits par le système, dans lesquels celui-ci raconte ce qu'il fait et ce qui lui arrive. Il donne des renseignements sur ce que font les programmes, les connexions qui arrivent à votre machine, les personnes qui s'y connectent.

Les logs se trouvent dans le répertoire /var/log/. Il faut appartenir au groupe adm pour pouvoir les lire. Rajoutez donc votre compte utilisateur à ce groupe pour éviter de lire les logs en root :

# adduser toto adm

Les fichiers de logs les plus importants sont :

  • syslog : c'est le fichier de log principal. Il contient tous les messages du noyau (que l'on retrouve dans kernel.log), tous les messages des serveurs (que l'on retrouve dans daemon.log), tous les messages de la cron...

  • auth.log : il vous raconte tout ce qui concerne les authentifications.

Lire régulièrement les logs de sa machine permet de voir si quelqu'un essaye de vous attaquer. Cela permet aussi de voir si tout se passe bien au niveau du système, du noyau, etc.

2.4. Rajouter une console de logs

Il peut être intéressant d'avoir une console sur laquelle les logs défilent en direct. Cela permet de voir en temps réel ce qui se passe au niveau du système, et donc de résoudre les éventuels problèmes plus rapidement.

Pour cela, éditez en root le fichier de configuration de syslog (le programme qui gère les logs) /etc/rsyslog.conf. Décommentez les 4 lignes à l'endroit où les commentaires parlent de cette fonction (vers la ligne 50) :

daemon,mail.*;\
        news.=crit;news.=err;news.=notice;\
        *.=debug;*.=info;\
        *.=notice;*.=warn       /dev/tty8

Pour que le système tienne compte de cette modification, tapez :

# /etc/init.d/rsyslog restart

En allant sur la console n°8, vous devez déjà voir une première ligne de texte qui vous informe que syslog a redémarré !

2.5. Aller plus loin...

Pour en savoir plus sur l'art et la manière de sécuriser un système Debian, je vous conseille la lecture du Manuel de sécurisation de Debian.