La sécurité
Prérequis et objectifs
1. Prérequis
Disposer des connaissances réseau du chapitre Le réseau.
Disposer des connaissances d’administration du chapitre Les tâches administratives.
Avoir les accès administrateur root.
Être connecté à un réseau.
Pouvoir, si possible, tester les accès depuis une autre machine du réseau.
2. Objectifs
À la fin de ce chapitre, vous serez en mesure :
D’acquérir les bases de sécurité.
De contrôler les droits SUID/SGID.
De vérifier l’intégrité d’un système de paquets logiciels.
De modifier la politique des mots de passe.
De gérer les connexions et limites des utilisateurs.
De tester les mots de passe.
De contrôler la sécurité du réseau avec nmap.
De désactiver les services inutiles.
De sécuriser les services avec les TCP wrappers.
Les bases de la sécurité
Les objectifs principaux de la sécurité informatique concernent :
-
La sécurité de la connexion : il s’agit de contrôler que les utilisateurs qui se connectent sont autorisés à le faire et de leur interdire l’accès au système dans le cas contraire.
-
L’intégrité des données : 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.
-
La confidentialité des données : l’accès aux données en consultation et en modification doit être limité aux seuls utilisateurs autorisés.
Pour cela, Linux dispose de différentes fonctionnalités, parmi lesquelles :
-
L’identification des utilisateurs par un compte utilisateur défini par un nom d’utilisateur et son UID.
-
L’authentification des utilisateurs par un mot de passe.
-
Le chiffrement des données.
-
Les modules PAM (Pluggable Authentication Modules) qui permettent de configurer et de renforcer les méthodes d’identification et d’authentification.
L’activation de SELinux, module de sécurité du noyau, renforce considérablement la sécurité du système, au prix d’une certaine complexité de configuration.
Plus généralement, les points suivants contribuent à renforcer la sécurité des systèmes Linux :
-
Le contrôle fréquent des droits d’accès aux fichiers et aux bases de données.
-
Le contrôle des accès aux serveurs et aux logiciels.
-
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 pare-feux (firewall) qui contrôlent les accès au système informatique depuis l’extérieur et limitent l’accès vers des services externes.
-
L’utilisation de pare-feux applicatifs, pour analyser les flux de données, par exemple pour détecter les attaques sur les serveurs web.
-
L’utilisation d’outils de détection et de prévention...
Sécurité des services et du réseau
Les services réseau serveurs d’un système sont généralement accessibles depuis d’autres systèmes. Ces services peuvent présenter des failles de sécurité, il est donc important de n’activer que ceux qui sont indispensables et de contrôler leur activité.
1. Vérifier les ports ouverts
Différentes commandes permettent de connaître les ports sur lesquels des services réseau sont en attente.
a. Informations depuis netstat
La commande netstat, décrite dans le chapitre Le réseau, permet d’obtenir des informations et des statistiques réseau sur le système local. Elle permet notamment de vérifier quels sont les ports sur lesquels des services sont accessibles, les connexions en cours, et les processus locaux à l’écoute.
Syntaxe
netstat -apnt -A inet
Avec :
-
-a : connexions actives ou attente sur un port
-
-p : affiche le processus local (PID, exécutable)
-
-n : affiche les valeurs numériques au lieu des noms
-
-t : protocole de transport TCP
-
-A inet : uniquement les connexions en IPv4
Exemple
# netstat -apnt -A inet
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
tcp 0 0 127.0.0.1:25 .0.0.0:* LISTEN 999/exim4
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 622/sshd: /usr/sbin
tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN 655/cupsd
tcp 0 208...
Validation des acquis : questions/réponses
1. Questions
Si l’état de vos connaissances sur ce chapitre vous semble suffisant, répondez aux questions ci-après.
Sécurité locale
1 Pourquoi est-il important de contrôler les droits SUID et SGID des fichiers exécutables ?
2 Indiquez une ligne de commande qui permet de rechercher et d’afficher les informations détaillées sur les fichiers ordinaires dans /usr dont le propriétaire est root et disposant du droit SUID.
3 Un fichier du paquet logiciel rpm bash semble incorrect. Le résultat de la vérification RPM indique .M... T /bin/bash. Que s’est-il passé ?
4 Comment vérifier les informations de mot de passe de l’utilisateur user ?
-
A - chage -l user
-
B - passwd -l user
-
C - grep ^user /etc/shadow
-
D - passwd -S user
5 Générez six mots de passe aléatoires d’une longueur de 8 caractères.
6 L’utilisateur ftponly ne doit pas pouvoir se connecter de manière interactive. Quelle commande pouvez-vous taper pour modifier son shell de connexion en conséquence ?
7 Comment bloquer toute nouvelle connexion interactive, hormis root ?
-
A - en passant en niveau d’exécution init 1.
-
B - en modifiant tous les shells de connexion en /bin/false.
-
C - en bloquant tous les terminaux via /etc/securetty.
-
D - en créant le fichier /etc/nologin.
8 Comment empêcher vos utilisateurs de créer trop de processus ?
9 Comment conserver au démarrage les réglages de ulimit ?
-
A - en créant un script lancé par init.
-
B - en modifiant /etc/security/limits.conf.
-
C - en modifiant le fichier /etc/profile avec une série de ulimit.
-
D - en modifiant le fichier ~/.bashrc des utilisateurs et celui présent dans /etc/skel.
Sécurité du réseau
10 Comment connaître les ports ouverts et les connexions actives sur votre machine ?
11 À quoi sert la commande nmap ?
-
A - À fournir une carte du réseau.
-
B - À tester les ports distants d’une machine du réseau.
-
C - À obtenir des informations de sécurité sur une machine du réseau.
-
D - À connaître le système d’exploitation d’une machine distante.
12 Comment les informations retournées...
Travaux pratiques
1. Contrôle des fichiers
But : contrôler les fichiers et les droits associés.
1. |
Affichez la liste des fichiers du système appartenant à root et ayant le SUID bit positionné. |
Solutions possibles
But : contrôler les fichiers et les droits associés.
1. |
Affichez la liste des fichiers du système appartenant à root et ayant le SUID bit positionné.
|
2. Sécurité des utilisateurs
But : gérer la politique de sécurité des mots de passe des utilisateurs.
1. |
Fixer la politique de sécurité des mots de passe pour tous les utilisateurs futurs : changement de mot de passe tous les 40 jours, interdiction de changer de mot de passe avant 7 jours et avertir 10 jours avant l’expiration du mot de passe. |
Solutions possibles
But : gérer la politique de sécurité des mots de passe des utilisateurs.
1. |
Fixer la politique de sécurité des mots de passe pour tous les utilisateurs futurs : changement de mot de passe tous les 40 jours, interdiction de changer de mot de passe avant 7 jours et avertir 10 jours avant l’expiration du mot de passe. Dans le fichier /etc/login.defs :
Pour vérifier :
|
3. Sécurité générale du système
But : contrôler les limites et tenir à jour les paquets logiciels....