Documentation
Debian et la sécurité
- Introduction à la sécurité.
- Garder un système Debian sécurisé.
- Chkrootkit pour detecter un RootKit.
- Eliminer le rootkit RH-Sharpe.
- Le démon et les outils OpenSSH - Introduction et install du client et/ou du serveur sécurisé.
- Sécuriser le démon OpenSSH - Modifier le
fichier de configuration du serveur:
/etc/ssh/sshd_config. - Manuel de sécurisation.
Introduction à la sécurité
Tous les ordinateurs connecté à internet subissent en moyenne un scan toutes les 1 à 5 min par d'autres machines infectées par des vers ou virus, très très souvent destinés à Microsoft et non aux systèmes GNU/Linux. Ces ordinateurs cherchent a savoir si certains ports sont vulnérables, par exemple: le port 445 pour Microsoft-ds, 139 pour samba, ce sont les trous de sécurité standards de Windows. Avec un serveur connecté 24h sur 24h il y a environ 700 essais de login avec ssh par semaine, sans compter les refus de relay smtp (mail)! Il faut donc bien réfléchir aux ports et services que l'on ouvre sur une machine serveur.
Garder un système Debian sécurisé
Pour garder un système Debian sécurisé, pensez à le mettre à jour régulièrement avec aptitude, apt-get ou Synaptic. Si vous avez aimé apt-get, vous allez encore plus aimer aptitude. Vous puvez mettre votre système à jour en une ligne de commande avec aptitude:
# aptitude update && aptitude upgrade
Chkrootkit pour detecter un RootKit
chkrootkit est un logiciel libre sous licence GNU GPL permettant de détecter si un système UNIX n'a pas été compromis par un rootkit. Il permet de détecter les traces d'une attaque et de rechercher la présence d'un rootkit sur un système Unix/Linux en vérifiant, si des fichiers exécutables du système ont été modifiés, si la carte réseau est en mode « promiscuous », et si un ou des vers LKM (Linux Kernel Module) sont présents. Pour une installation sous Debian avec aptitude:
# aptitude install chkrootkit
Eliminer le rootkit RH-Sharpe
Vous pouvez avoir été avertit d'un root kit par chkrootkit ou un autre
logiciel de surveillance tel que Tiger. Vous pouvez aussi trouver le RootKit
RH-Sharpe avec un pipe et la commande grep:
# chkrootkit | grep Sharpe
Ce qui peut donner, et s'avérer alarmant:
Searching for RH-Sharpe's default files... Possible RH-Sharpe's rootkit installed
Pour l'éliminer, il faut désinstallé slice, les dépendances vous désinstallera aussi wml:
# apt-get remove --purge slice
Ensuite on peut tester si RH-Sharpe est toujours présent:
# chkrootkit | grep Sharpe
Ce qui devrait vous donner:
Searching for RH-Sharpe's default files... nothing found
Et voilà plus de RootKit RH-Sharpe. Vous pouvez aussi lancer chkrootkit sans argument pour vérifier l'ensemble du système.
Le démon et les outils OpenSSH
OpenSSH est une version libre de la suite d'outils du protocole SSH de connexion réseau utilisée par un nombre croissant de personnes sur l'Internet. De nombreux utilisateurs de telnet, rlogin, ftp et autres programmes identiques ne réalisent pas que leur mot de passe est transmis non chiffré à travers l'Internet. OpenSSH chiffre tout le trafic (mots de passe inclus) de façon à déjouer les écoutes réseau, les prises de contrôle de connexion, et autres attaques. De plus, OpenSSH fournit toute une palette de possibilités de création de tunnels TCP et de méthodes d'authentification.
La suite logicielle OpenSSH inclus les programmes ssh qui remplace telnet et
rlogin, scp qui remplace rcp, et sftp qui remplace
ftp. De plus sshd est inclus, constituant la partie serveur du package, ainsi
que d'autres utilitaires tels que ssh-add, ssh-agent, ssh-keygen, ssh-keysign,
ssh-keyscan, et sftp-server. OpenSSH supporte les protocoles SSH 1.3, 1.5 et
2.0. De plus un protocole comme sftp peut s'utiliser
graphiquement via le navigateur de fichiers Nautilus, Gftp ou encore
Konqueror.
Si vous utilisez toujours telnet au lieu de ssh, vous devriez remédier à cela. SSH devrait être utilisé pour toutes les connexions distantes à la place de telnet. Il faut éviter les mots de passe en clair, et utiliser uniquement les protocoles qui utilisent la cryptographie. Si vous n'utilisé plus que SSH vous pouvez alors désinstallez telnet.
Pour devenir root, il faut éviter de se connecter au système en utilisant
SSH en tant que root et préférer l'utilisation de méthodes alternatives tel
que su ou sudo. Le fichier de configuration
/etc/ssh/sshd_config peut-être modifié pour accroître la sécurité
du système.
Site web: www.openssh.org
Install sous Debian
OpenSSH est divisé en deux paquets, le client et le serveur. Si vous n'avez
besoin que des commandes SSH, le paquet openssh-client suffit
pour contrôler une machine distante. Le serveur est à installer sur une
machine que l'on veut contrôler de manière sécurisée. Les paquets peuvent
s'installer graphiquement via Synaptic ou via la ligne de commande et
Aptitude:
# aptitude install openssh-client Pour le serveur: # aptitude install openssh-server
Sécuriser le démon OpenSSH
Vous pouvez éditer le fichier de configuration:
/etc/ssh/sshd_configdans un terminal via SSH et l'éditeur de
texte Nano ou Vim. Pour faire écouter ssh que sur une interface donnée:
ListenAddress 192.168.0.1
Ne pas autoriser de connexion en tant que root. Si quelqu'un veut devenir root via ssh, deux logins sont maintenant nécessaires et le mot de passe root ne peut être attaqué par la force brute via SSH:
PermitRootLogin no
Change le port d'écoute, ainsi l'intrus ne peut être complètement sûr de l'exécution d'un démon sshd (soyez prévenus, c'est de la sécurité par l'obscurité):
Port 666 ou ListenAddress 192.168.0.1:666
Les mots de passe vides sont un affront au système de sécurité:
PermitEmptyPasswords no
Autorise seulement certains utilisateurs à avoir accès via ssh à cette machine. user@host peut également être utilisé pour n'autoriser l'accès qu'à un utilisateur donné depuis un hôte donné:
AllowUsers libordux debianitas
Autorise seulement certains membres de groupes à avoir accès via ssh à cette machine. AllowGroups et AllowUsers ont des directives équivalentes pour interdire l'accès à la machine. Sans surprise elles s'appellent « DenyUsers » et « DenyGroups »:
AllowGroups wheel admin
Il vous appartient complètement de décider ce que vous voulez faire. Il est plus sûr d'autoriser l'accès à la machine uniquement aux utilisateurs avec des clés ssh placées dans le fichier ~/.ssh/authorized_keys. Si c'est ce que vous voulez, positionnez cette option à "no":
PasswordAuthentication no
Désactiver toute forme d'autorisation dont vous n'avez pas réellement besoin si vous n'utilisez pas, par exemple, RhostsRSAAuthentication, HostbasedAuthentication, KerberosAuthentication ou RhostsAuthentication, vous devriez les désactiver même s'ils le sont déjà par défaut. Désactiver le protocole version 1, car il a des défauts de conception qui facilite le crack de mots de passe. Pour plus d'informations, lisez un article concernant les problèmes du protocole ssh ou le bulletin d'alerte Xforce:
Protocole 2
Ajouter une bannière (elle sera récupérée du fichier) pour les utilisateurs se connectant au serveur ssh. Dans certains pays, envoyer un avertissement avant l'accès à un système donné avertissant des accès non autorisés ou du suivi des utilisateurs devrait être ajouté pour avoir une protection légale. Sur Debian le fichier par défaut est: /etc/issue.net que vous pouvez facilement modifer avec votre éditeur de texte préféré:
banner /etc/fichier
Vous pouvez également restreindre l'accès au serveur ssh en utilisant pam_listfile ou pam_wheel dans le fichier de contrôle PAM. Par exemple, vous pourriez bloquer tous les utilisateurs qui ne sont pas dans /etc/loginusers en ajoutant cette ligne à /etc/pam.d/ssh:
auth required pam_listfile.so sense=allow onerr=fail item=user file=/etc/loginusers
Une fois que vous avez modifier le fichier de configuration du serveur SSH à votre convenance, il faut relancer (reload) le démon pour que les modifications soient prisent en compte:
# /etc/init.d/ssh reload
Manuel de sécurisation (Securing Debian howto)
Le manuel de sécuristation de Debian est très complet, bravo aux auteurs, il vaut la peine d'être lu au moins une fois, c'est la source principale nos informations. Ce document décrit la sécurité dans le projet Debian ainsi que dans le système d'exploitation Debian. Il commence par la sécurisation et le renforcement de l'installation standard d'une distribution Debian GNU/Linux. Il couvre quelques tâches courantes comme la sécurisation d'un réseau utilisant Debian et il donne également des informations complémentaires sur les outils de sécurisation disponibles ainsi que sur le travail accompli au sein du projet Debian par l'équipe en charge de la sécurité et par l'équipe d'audit.


