Mais pourquoi s'embêter ?
La sécurité ? "Moi, je m'en fois, ya rien de précieux sur
ma machine... personne n'a intérêt à me pirater". FAUX !
Les pirates recherchent les machines vulnérables pour avoir un accès à
un compte sur ces machine et pouvoir lancer des attaques depuis cette
machine... et pas directement depuis là leur. Comme çà, on remonte
beaucoup moins facilement jusqu'à eux.
J'ai Linux donc je suis tranquille... FAUX !
Il y a des failles de sécurité, même sous Linux. Par exemple, sur
les noyaux 2.2.19 et inférieurs, ainsi que sur les noyaux 2.4.12 et
inférieurs, une faille permet à n'importe quel utilisateur de devenir
root ! On appelle ça un "local root exploit". D'où l'importance de se
tenir au courant.
- Les ports ouverts
Lors de cette formation, nous avons installé des serveurs
SSH, Web, FTP, Samba... Ces serveurs "écoutent" sur certains ports TCP
(22 pour SSH, 80 pour Apache...). La liste complète des ports et des
services associés est disponible dans /etc/services.
Pour voir la liste des ports ouverts (on dit faire un scannage
de ports), il faut utiliser nmap en root (disponible dans le package
nmap). Il suffit alors de taper :
nmap localhost
pour voire la liste des ports ouverts sur ta babasse et les noms des
services associés.
Attention, tu as le droit de faire un scannage de ports
sur ta machine... mais pas sur la machine des autres ! En effet,
faire un scannage de ports est considéré comme la première étape d'une
attaque. Les pirates ne peuvent s'introduire que par des ports ouverts.
Il leur suffit ensuite de trouver une faille dans le programme qui
écoute sur un des ports pour avoir accès à ta machine... avec les mêmes
droits que le programme en question.
Par exemple, le serveur SSH, qui écoute sur le port 22, est
lancé en root. Pour t'en convaincre, tape :
ps aux | grep sshd
ce qui te donne une ligne du genre :
root 285 0.0 1.2 2772 800 ? S 16:30 0:01 /usr/sbin/sshd
et tu vois dans la première colonne qu'il est lancé en root. Donc,
si le serveur SSH a une faille de sécurité, la personne qui arrive à
l'exploiter pourra s'introduire sur ta machine par le port 22 et aura
alors les droits de root sur ta machine. C'est ce qu'on appelle un
"remote root exploit". C'est ce qui est arrivé le 20 Février 2001.
Mais l'avantage d'appartenir au monde open source... est que
tout le monde peut corriger la faille. La corrections des failles est
donc beaucoup plus rapide que sous d'autres OS non libres.
Pour voir la liste des connections ouvertes à l'instant t sur
ta babasse, utilise netstat (qui est dans la package "netbase") :
netstat -p.
- Mettre à jour et se tenir au courant
Avec Debian, quand un package a une faille de sécurité, il
est rapidement mis à jour sur le site FTP de Debian-Security. Il faut
donc rajouter dans la liste des packages à aller chercher l'adresse de
Debian-Security. Dans le fichier /etc/apt/sources.list, rajoute
la ligne suivante :
deb ftp://security.debian.org/debian-security potato/updates
main contrib non-free
Pour être mis au courant d'une mise à jour
de sécurité de Debian-Security, 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. Il est bon de s'abonner aussi à
"debian-announce" par la même occasion. Cette dernière
mailing-list annonce les releases de Debian.
Quand une faille de sécurité est corrigée par Debian, tu
reçois un mail par la mailing-list "debian-security-announce". Ce mail
te décris la faille et te demande de mettre à jour. Avec la ligne que tu
as rajouté dans /etc/apt/sources.list, la procédure de mise-à-jour est
très simple :
apt-get update
apt-get upgrade
- Utiliser des mots de passe complexes
Comme tu as installé un serveur SSH, on peut se logguer à
distance sur ta babasse. Pour cela, il suffit de connaître ton login
et ton mot de passe. Ton mot de passe doit donc être le plus compliqué
possible, et comporter au moins 8 caractères.
Une bonne méthode pour obtenir un mot de passe complexe et
facile à retenir consiste à choisir une phrase et à prendre la première
lettre de chaque mot, avec quelques complications en plus.
Par exemple, la phrase "Linux, moi j'y comprends rien de
rien !" donne
Lmjycr2r!.
Pour vérifier que les mots de passe des utilisateurs du
système sont vraiment complexes, le root peut s'amuser à les soumettre à
un cracker de mots de passe... et voire combien de temps ils résistent.
Pour cela, on va installer john, avec le package du même nom, et
le lancer en root (pour qu'il puisse lire le fichier /etc/shadow où sont
stockés les mots de passe) dans un screen en lui disant que l'on utilise
des mots de passe au format MD5 :
screen john -format:md5 /etc/shadow
Pour voire si john a réussi à cracker des mots de passe, il
suffit de réattacher le screen ou de taper :
john -show /etc/shadow
et il te dira alors qui sont les utilisateurs dont il a réussi à cracker
le mot de passe et quel est leur mot de passe.
Attention, john est un truc très gorêt qui utilisera ton
processeur à 100 % !
- Lire les logs
Les logs sont des fichiers textes produits par le système,
dans lequel celui-ci raconte ce qu'il fait et ce qui lui arrive. Il
donne des rensignements sur ce que font les programmes, les connections
qui arrivent à ta babasse, 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. Rajoute donc ton
utilisateur au groupe "adm" en tapant en root :
adduser toto adm.
Les fichiers de logs les plus importants sont :
- syslog : c'est le fichier le plus important. 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 te raconte tout ce qui concerne les
authentifications.
Lire régulièrement les logs de sa machine permet de voire si
quelqu'un qui essaye de t'attaquer. Cela permet aussi de voire si tout
ce passe bien au niveau du système, du noyau, etc...
Précédent
Index
Suivant