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

Table des matières
1. Introduction à la sécurité
1.1. Qui est concerné ?
1.2. Mais pourquoi s'embêter ?
1.3. Morale...
2. Protéger son système
2.1. Les failles de sécurité dans les packages Debian
2.2. Les failles de sécurité noyau
2.3. Surveiller son système en lisant les logs
2.4. Désactiver les services inetd inutiles
2.5. Rajouter une console de logs
2.6. Aller plus loin...

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

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

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 !

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 OS non libres.

2. Protéger son système

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

Avec Debian, quand un package a une faille de sécurité, une équipe spéciale, le security team, se charge de mettre rapidement à disposition des utilisateurs une version corrigée du package 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 mailing-list debian-security-announce. Pour s'inscrire, il suffit de se rendre à l'adresse www.debian.org/MailingLists/subscribe. Par la même occasion, vous pouvez vous abonner à la mailing-list debian-announce pour recevoir les annonces des sorties de nouvelles versions de la distribution Debian. Je vous conseille de vous abonner également à la mailing-list 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 mail par la mailing-list debian-security-announce. Ce mail 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, vous avez dû rajouter au chapitre précédent le site de Debian dédié aux mises à jour de sécurité dans la liste des sources de packages en ajoutant au fichier /etc/apt/sources.list la ligne suivante :


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

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


# apt-get update
# apt-get upgrade

2.2. Les failles de sécurité 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 corriger la faille au plus vite.

Il n'existe pas à ma connaissance de mailing-list 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.

La solution pour corriger une faille du noyau consiste généralement à recompiler une version plus récente du noyau, ou à appliquer un patch sur la dernière version disponible avant de recompiler. La procédure de compilation du noyau Linux et la façon d'appliquer des patches est expliquée aux chapitres suivants.

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. Désactiver les services inetd inutiles

Il est conseillé de désactiver les services inetd activés par défaut, qui sont de vieux services Unix qui ne sont plus utilisés par les applications modernes. Pour cela :


# update-inetd --disable discard,daytime,time,ident

Il affiche alors un avertissement :


WARNING!!!!!! /etc/inetd.conf contains multiple entries for
the `discard' service. You're about to disable these entries.
Do you want to continue? [n]

Répondez y.

2.5. 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/syslog.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/sysklogd 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.6. 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 Securing Debian Manual, en anglais.