Académique Documents
Professionnel Documents
Culture Documents
Chapitre 5 :
Sécurité
Sommaire
1. Introduction....................................................................................................................... 3
2. Moyens de protection ........................................................................................................ 3
3. Mesure de sécurité............................................................................................................. 3
3.1. La commande umask .................................................................................................. 3
3.2. Les droits d’utilisateurs ............................................................................................... 4
3.3. Vérifier les packages ................................................................................................... 4
3.4. Politique de mot de passe ............................................................................................ 4
3.5. Interdire les connexions .............................................................................................. 5
3.6. Les virus ..................................................................................................................... 5
3.7. Les limites de l’utilisateur ........................................................................................... 5
3.8. Les droits SUDO ........................................................................................................ 5
4. Sécurité du réseau ............................................................................................................. 6
4.1. Vérifier les ports ouverts ............................................................................................. 6
4.2. Supprimer les services inutiles .................................................................................... 6
4.3. Par-feux ...................................................................................................................... 7
Objectifs
• Acquérir les bases de sécurité.
• Gérer les connexions et limites des utilisateurs.
• Contrôler la sécurité du réseau avec nmap.
• Stopper les services inutiles.
• Paramétrer un pare-feu de base avec Netfilter.
1. Introduction
La sécurité des systèmes linux comprend plusieurs objectifs, on y retrouve :
• Confidentialité : l’accès aux données en consultation et en modification doit être limité
aux seuls utilisateurs autorisés.
• Intégrité : il s’agit de faire en sorte que les fichiers et les bases de données ne soient
pas corrompus et de maintenir la cohérence entre les données.
• Disponibilité : il s’agit de garantir que les services et applications soient en
fonctionnement et disponible pour tous les utilisateurs.
• Authentification : il s’agit de contrôler que les utilisateurs qui se connectent sont bien
autorisés à le faire et de leur interdire l’accès au système dans le cas contraire.
2. Moyens de protection
La protection des systèmes Linux peut être assurée par plusieurs moyens, on peut citer :
• L’authentification des utilisateurs par un mot de passe.
• Le cryptage des données.
• La sécurité physique en contrôlant l’accès des personnes aux salles informatiques, en
utilisant des circuits inviolables matériellement.
• Le contrôle fréquent des droits d’accès aux fichiers et aux bases de données.
• Le contrôle des « checksum » des fichiers pour s’assurer de leur intégrité.
• La sauvegarde régulière des données.
• L’audit des principaux événements du système.
• L’installation de « firewall » qui contrôle les accès au système informatique depuis
l’extérieur et limitent l’accès à des services externes par des utilisateurs non avertis ou
qui n’en ont pas besoin pour.
• L’installation d’un antivirus, même sous Linux, si le serveur traite des données depuis
et vers des systèmes d’exploitation concernés par les virus.
• L’installation d’outils anti-spams et anti-spywares, selon le même principe, afin
d’éviter une intrusion et la saturation des serveurs de courrier électronique.
• Le démarrage uniquement des services réellement utiles sur le serveur et sur le client.
3. Mesure de sécurité
Dans cette partie, nous allons présenter quelques moyens utilisés pour assurer la sécurité pour
les systèmes linux :
3.1. La commande umask
Le umask (user file creation mode mask, masque de création de fichier par l'utilisateur)
est un attribut des processus Unix, qui définit les permissions par défaut d'un répertoire ou d'un
fichier créé.
Syntaxe : umask [-p] [mode]
Avec :
• Mode : Si le mode commence par un chiffre, il est interprété comme un nombre octal,
sinon il est interprété comme un masque de mode symbolique similaire à celui accepté
par chmod. Si le mode est omis, la valeur actuelle du masque est imprimée.
• -S : affichage du masque sous forme symbolique; la sortie par défaut est un nombre
octal.
Exemples :
umask
umask 022
Permissions : 777 - 022 = 755
umask 000
Permissions : 777 - 000 = 777
umask 777
Permissions : 777 - 777 = 000
Mesure de sécurité :
On peut définir une valeur de umask restrictive (ex : 077) quitte à étendre ensuite les
droits d’accès de certains fichiers.
3.2. Les droits d’utilisateurs
Les droits d’endossement (bits SUID et SGID) sont souvent une cause d’insécurité du
système. En effet un utilisateur mal intentionné profitant de l’inattention ou de l’absence d’un
collègue ou d’un administrateur n’étant pas déconnecté de sa console peut modifier les droits
de certaines commandes à son avantage.
L’exemple le plus courant est de recopier un shell en tant que programme peu utilisé (par
exemple sx) et de lui donner les droits SUID. En lançant cette commande on peut devenir root.
Exemple :
Obtenir le droit de lister tous les fichiers
chmod u+s cat
Obtenir un shell root
cp /bin/sh /bin/sx
chmod u+s /bin/sx
sx
3.3. Vérifier les packages
Parmi les diverses options pour l’installation d’un package, certaines permettent de
contrôler la validité d’un package. La base RPM (DEB) contient, outre le nom du fichier, son
type (configuration, binaire, etc.) et dans certains cas (binaire) la somme de contrôle
(checksum) MD5 du fichier.
Syntaxe : rpm -V nom_package
Exemple :
rpm -V bash
Les options de sorties :
• S : la taille n’est pas la bonne
• M : les permissions ont été modifiées
• 5 : la somme de contrôle MD5 diffère
• T : la date de modification n’est pas correcte.
3.4. Politique de mot de passe
Les mots de passe sont à la base de l’authentification d’un utilisateur. Ils doivent être
sûrs. C’est pourtant généralement la source de beaucoup de négligence. Les utilisateurs doivent
choisir un bon mot de passe, en évitant la simplicité ou plutôt les évidences : noms de la famille,
de lieux, dates de naissance et généralement tout ce qui tient à cœur et qui est connu du milieu
professionnel ou personnel.
Un compromis peut être de modifier les règles de changement de mot de passe avec chage (ou
passwd) de manière à placer une durée de validité des mots de passe de 40 jours.
L’outil nmap est un outil de sécurité, de vérification, de tests, etc. Il est utilisé pour
l’exploration réseau et l’audit de sécurité. Il permet de tester les connexions réseaux d’une
machine donnée et de retourner un grand nombre d’informations. Notamment, en analysant les
trames, il arrive souvent à déterminer le type et la version du système d’exploitation distant.
Syntaxe : nmap [options] hôte
Exemples :
nmap localhost
nmap -A localhost
4.2. Supprimer les services inutiles
Un serveur peut avoir plusieurs ports réseaux ouverts vers Internet (ou depuis Internet) :
ftp, http, p2p, ssh, … Or il suffit qu’un seul des services associés présente un risque pour que
la machine soit attaquée avec les problèmes qui en découlent.
Même si le service en tant que tel n’a pas de faille connue, le paramétrage qu’on applique peut
être trop simple. Un exemple simple est l’installation de MySQL par défaut où le compte
d’administration n’a pas de mot de passe.
Donc il est important de désactiver tous les services dont on n’a pas besoin. S’il s’avère que
certains sont nécessaires à certains moments et pas à d’autres, il faut alors les démarrer
seulement à ce moment, et les stopper ensuite.
Les services lancés de manière indépendantes, sont contrôlés via la commande service ou
/etc/init.d/service. Pour contrôler les arrêts et relances de ces services de manière pérenne, on
peut utiliser les commandes suivantes :
• chkconfig (distributions RPM) ;
• rcudpate.d (Debian).
4.3. Par-feux
Netfilter est une architecture de filtrage des paquets pour les noyaux Linux 2.4 et 2.6. Le
filtrage se fait au sein même du noyau au niveau des couches 2, 3 et 4 du modèle OSI, c’est-à-
dire les liaisons données, réseau et transport. Il est par exemple capable d’agir à bas niveau sur
les interfaces ethernet (2), sur la pile IP (3) et sur les protocoles de transport comme TCP (4).
Le filtrage est stateless : comme Netfilter n’inspecte que les en-têtes des paquets, il est
extrêmement rapide et n’entraîne pas de temps de latence.
Le programme utilisateur permettant d’agir sur les règles de filtrage est iptables.
L’implémentation au niveau du noyau est réalisée par des modules.
Chaque état d’un paquet peur correspondre à un point de filtrage possible pour iptables.
Ces états peuvent être :
• PREROUTING : traite les paquets à leur arrivée. Si un paquet est à destination du
système local, il sera traité par un processus local (INPUT, OUTPUT). Sinon, et si le
forwarding est activé, les règles FORWARD et POST_ROUTING seront appliquées.
• FORWARD : les paquets ne font que traverser le système local. Traite les paquets
routés à travers le système local.
• INPUT : traite les paquets destinés au système local, en entrée (après le routage).
• OUTPUT : traite les paquets quittant le système local, avant POSTROUTING.
• POSTROUTING : traite les paquets avant leur sortie du système.
Lorsqu’un paquet est traité par netfilter, il l’est par rapport à un certain nombre de règles
qui déterminent ce qu’il faut en faire.
• Les règles sont ordonnées : la position d’une règle dans une liste indique quand et si la
règle sera utilisée.
• Les paquets sont testés avec chacune des règles, l’une après l’autre.
• Netfilter fonctionne selon le mécanisme de la première correspondance. Si une règle
correspond, les autres règles sont négligées et la vérification s’arrête.
• Une règle peut spécifier plusieurs critères.
• Pour qu’une règle corresponde à un paquet, tous les critères doivent correspondre.
• Si malgré toutes les règles, le paquet passe, une règle par défaut peut être appliquée.
Une cible de règle détermine quelle est l’action à entreprendre lorsqu’un paquet
correspond aux critères d’une règle. On utilise l’option -j de iptables pour spécifier la cible.
Les deux cibles de base sont DROP et ACCEPT. Des extensions de netfilter ajoutent d’autres
cibles comme LOG ou REJECT.
• DROP : le paquet est rejeté. Aucune notification n’est envoyée à la source.