administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux...

15
Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE

Transcript of administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux...

Page 1: administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE a exercé de nombreuses années comme

Deb

ian

GN

U/L

inux

Maî

tris

ez la

séc

urité

du

syst

ème

Debian GNU/Linux Maîtrisez la sécurité du système

Philippe PIERRE a exercé de nombreuses années comme Administrateur de Bases de données puis Administrateur Système et Réseau. Aujourd’hui res-ponsable d’une infrastructure complète, il connaît parfaitement les systèmes Linux et Unix dans le cadre d’un environnement d’entreprise à haute dis-ponibilité. Cette expertise lui permet de fournir au lecteur un livre réellement opérationnel, 100% De-bian, sur l’axe de la sécurité !

Ce livre sur la sécurité d’un système Debian GNU/Linux s’adresse principalement aux administra-teurs d’infrastructures, mais aussi à toute personne en charge de serveurs critiques nécessitant de la haute disponibilité. Un minimum de connaissances du système d’exploitation GNU/Linux et de la virtualisation est nécessaire afin de tirer le meilleur profit de la lecture de ce livre.L’auteur donne au lecteur les connaissances nécessaires pour appréhender la sécurisation du système et la sûreté de fonctionnement des serveurs pour les rendre moins permissifs aux maliciels et aux attaques de tout genre.Ainsi, vous découvrirez la démarche à adopter pour mettre en œuvre un mode sécurisé sur les diffé-rentes strates du système : démarrage, noyau, fonctionnalités de base (gestion des quotas, paramé-trage des droits utilisateurs ou des répertoires) ainsi que les flux réseau.Vous étudierez également la protection contre les virus, le spam ainsi que les outils de mise à jour du système d’exploitation (signatures GPG, Puppet…).À l’issue de cette lecture vous serez en mesure d’accroître considérablement la sécurité de votre sys-tème Debian/GNU Linux.

Avant-propos • Introduction • Outils noyau et initialisation • Outils de base • Outils serveur • Outils réseau • Outils antivirus • Outils de mise à jour • Conclusion • Glossaire

Les chapitres du livre

Téléchargementwww.editions-eni.fr.fr

sur www.editions-eni.fr : b Les scripts et codes sources des exemples

du livre.

ISSN : 1960-3444ISBN : 978-2-409-01286-0

54 €

Pour plus d’informations :

Debian GNU/Linux

Maîtrisez la sécurité du système

Philippe PIERRE

Page 2: administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE a exercé de nombreuses années comme

1Table des matières

Avant-propos

1. Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2. Public visé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3. Prérequis et connaissances nécessaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4. Structure de l'ouvrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

5. Normes et règles de nommage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Chapitre 1

Introduction

1. Pourquoi Debian ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.1 Sécurité du système d'information . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.2 Sécurité de l'information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.3 Où trouver la distribution Debian ? . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.4 Quelles « saveurs » de distribution Debian ? . . . . . . . . . . . . . . . . . . . . . 221.5 Exemple d’installation : iolive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2. Généralités sur la sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.1 Sécurité et sûreté de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . 302.2 Supervision et surveillance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.3 Traçabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.4 Considération du coût et du risque . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3. Quels sont les éléments à sécuriser sur GNU/Linux . . . . . . . . . . . . . . . . . . . 343.1 Le BIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.1.1 Démarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.1.2 Paramétrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.1.3 Cas des machines virtuelles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.1.4 Utilisation d'UEFI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Les éléments à télécharger sont disponibles à l'adresse suivante : http://www.editions-eni.fr 

Saisissez la référence ENI de l'ouvrage EPSSYDEB dans la zone de recherche et validez. Cliquez sur le titre du livre puis sur le bouton de téléchargement.

lcroise
Tampon
Page 3: administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE a exercé de nombreuses années comme

2Maîtrisez la sécurité du système

Debian GNU/Linux

3.2 Le bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.3 Le noyau linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.4 Les modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.5 L’image au démarrage : initrd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.6 Les pseudo-systèmes de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.6.1 /proc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.6.2 /sys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

3.7 La mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4. Suppression des anciens noyaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.1 Phase d’initialisation init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.2 Scripts d’initialisation avec en-têtes LSB. . . . . . . . . . . . . . . . . . . . . . . . 534.3 Parallélisation avec systemd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5. La sécurité fondamentale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.1 Sécurisation des comptes utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . 605.2 Empêcher les comptes inutiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615.3 Mettre en œuvre une gestion de mot de passe . . . . . . . . . . . . . . . . . . . 625.4 Fermer les services inutiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645.5 Effectuer les mises à jour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Chapitre 2

Outils noyau et initialisation

1. Protection dès la phase de démarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691.1 Sécurisation du BIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691.2 Présentation de GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711.3 Sécurisation de GRUB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751.4 Utilisation de GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791.5 Boot on SAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

2. Protection du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822.1 Le noyau linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822.2 Architecture d’un noyau. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872.3 Les anneaux de protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

2.3.1 Architecture 32 bits sans virtualisation . . . . . . . . . . . . . . . . . . . 882.3.2 Architecture 32 bits virtualisée . . . . . . . . . . . . . . . . . . . . . . . . . . 892.3.3 Architecture 64 bits sans virtualisation . . . . . . . . . . . . . . . . . . . 902.3.4 Architecture 64 bits virtualisée . . . . . . . . . . . . . . . . . . . . . . . . . . 90

Page 4: administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE a exercé de nombreuses années comme

3Table des matières

2.4 Protections naturelles du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

3. Installation de partition chiffrée. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993.1 Utilisation de LUKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013.2 Utilisation d’EncFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

4. Gestionnaire de volumes logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074.1 Description du LVM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

4.1.1 Création de volumes physiques . . . . . . . . . . . . . . . . . . . . . . . . 1104.1.2 Création de groupes de volumes. . . . . . . . . . . . . . . . . . . . . . . . 1104.1.3 Création de volumes logiques . . . . . . . . . . . . . . . . . . . . . . . . . . 111

4.2 Partition LVM chiffrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134.3 Utilisation des snapshots sur LVM . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164.4 Sauvegardes LVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164.5 Le gestionnaire LVM au niveau du SAN . . . . . . . . . . . . . . . . . . . . . . . 1184.6 Vérification des volumes logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204.7 Sécurisation des attributs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

5. Commandes de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1255.1 De quoi s’agit-il ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1255.2 Utilisation des séquences alternatives. . . . . . . . . . . . . . . . . . . . . . . . . 1275.3 Mise en place de conteneurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1285.4 Application de docker : conteneur web. . . . . . . . . . . . . . . . . . . . . . . . 1335.5 Sécurisation des conteneurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

6. Industrialisation des installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1376.1 Installation de VirtualBox Guest additions . . . . . . . . . . . . . . . . . . . . 1426.2 Installation de VMTools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1436.3 Fonctions de clonage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

Chapitre 3

Outils de base

1. Protection des connexions frauduleuses . . . . . . . . . . . . . . . . . . . . . . . . . . . 1471.1 Utilisation de fail2ban . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1481.2 Configuration de fail2ban . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1491.3 Interface cliente de fail2ban . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1521.4 Interface web de fail2ban . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

Page 5: administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE a exercé de nombreuses années comme

4Maîtrisez la sécurité du système

Debian GNU/Linux

2. Protection contre les rootkits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1552.1 Définition d’un rootkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1552.2 Utilisation de samhain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1572.3 Utilisation de rkhunter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1582.4 Vérification d’intégrité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

3. Protection des fichiers critiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1643.1 Comment évaluer la criticité ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1643.2 L’utilitaire AIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1653.3 Les règles concernant AIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1683.4 L’outil tripwire, alternative à aide . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

4. Protection des ports de service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1764.1 Qu’est-ce qu’un port de service ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1764.2 Installation de portsentry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1794.3 Activation de portsentry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

5. Protection des accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815.1 Comment définir un accès ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815.2 Délégation d’accès. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1845.3 Délais de grâce du mot de passe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1875.4 Gestionnaire de fenêtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

6. Protection des journaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1956.1 Paramétrage des logs courants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1956.2 Surveillance des logs avec logwatch. . . . . . . . . . . . . . . . . . . . . . . . . . . 2026.3 Vérification des traces avec logcheck. . . . . . . . . . . . . . . . . . . . . . . . . . 2076.4 Vérification des traces du noyau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2106.5 Centralisation des traces avec loganalyzer . . . . . . . . . . . . . . . . . . . . . 2116.6 Nouvelle gestion des services et de la journalisation . . . . . . . . . . . . . 217

Chapitre 4

Outils Serveur

1. Protection des limites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2251.1 Compteurs de ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2251.2 Quantifier les ressources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291.3 Gestion de quotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301.4 Confinement et chroot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2341.5 Gestion des attributs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

Page 6: administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE a exercé de nombreuses années comme

5Table des matières

2. Protection du paramétrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2392.1 Protection contre le spoofing IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2412.2 Sécurisation du trafic réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2412.3 Utilisation avancée de sysctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2432.4 Paramétrage divers de sécurisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 2442.5 Protection et surveillance de répertoires critiques . . . . . . . . . . . . . . . 247

3. Contrôle d’accès. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2503.1 Les droits standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2503.2 Les droits étendus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2533.3 Sauvegarde des droits étendus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2583.4 Protection des processus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259

4. Protection des sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634.1 Authentification standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634.2 Authentification par modules PAM . . . . . . . . . . . . . . . . . . . . . . . . . . 2674.3 Utilisation des modules PAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

5. Sécurisation des services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2725.1 Différents modèles de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2725.2 Sécurité des services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2735.3 Utilisation de SElinux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2765.4 Les cgroups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2795.5 Utilisation de AppArmor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282

6. Sécurité des Serveurs d’impression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2856.1 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2856.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2866.3 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2876.4 Sécurisation du service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

Chapitre 5

Outils réseau

1. Protection des flux réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2951.1 Présentation du réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2951.2 Filtrage des paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3001.3 Utilisation de netfilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3041.4 Sauvegarde et restauration des règles . . . . . . . . . . . . . . . . . . . . . . . . . 307

Page 7: administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE a exercé de nombreuses années comme

6Maîtrisez la sécurité du système

Debian GNU/Linux

1.5 Réseau et connexions sans fil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3111.5.1 Utilisation du Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3111.5.2 Utilisation du Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316

2. Sécurisation d’accès aux services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3182.1 Gestion des zones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3192.2 Gestion des sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3202.3 Gestion des services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3222.4 Gestion des règles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323

3. Système de proxy mandataire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3253.1 Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3263.2 Mise en œuvre de squid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3303.3 Le proxy HAProxy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3373.4 Le proxy SOCKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340

4. Protection du réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3444.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3444.2 Installation de Free RADIUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3454.3 Configuration de Free RADIUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3464.4 Cas d’utilisation de Free RADIUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

5. Réseau privé virtuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3515.1 Installation et configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3525.2 Infrastructures à clés publiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3545.3 Installer un conteneur OpenVPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361

Chapitre 6

Outils antivirus

1. Système antiviral de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3651.1 Cibles à protéger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3651.2 Installation de ClamAV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3701.3 Utilisation de Linux Malware Detect . . . . . . . . . . . . . . . . . . . . . . . . . 3721.4 Protection des stations Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3751.5 Alternative pour la protection des stations . . . . . . . . . . . . . . . . . . . . . 378

2. Système antiviral forensic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3812.1 Installation de clamtk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3812.2 Utilisation de ClamAV avancée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384

Page 8: administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE a exercé de nombreuses années comme

7Table des matières

2.3 Installation de clamassassin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3852.4 Installation de clamSMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386

3. Protection complète des répertoires $HOME . . . . . . . . . . . . . . . . . . . . . . . 3883.1 Le contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3883.2 La mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389

4. Protection contre les spams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3924.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3924.2 Installation de l’outil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3934.3 Configuration du service de messagerie . . . . . . . . . . . . . . . . . . . . . . . 3944.4 Gestion des règles d’apprentissage. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3954.5 Sauvegarde/restauration de la base SpamAssassin . . . . . . . . . . . . . . . 399

5. Protection contre les tempêtes ARP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4005.1 Présentation des risques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4005.2 Installation de l’outil de détection. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4025.3 Utilisation de l’outil de détection . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402

Chapitre 7

Outils de mise à jour

1. Mise en place d’un repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4051.1 Gestionnaire de paquets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4061.2 Utilisation avancée d’aptitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4121.3 Gestion de la cohérence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4141.4 Mise à jour de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4161.5 Création de dépôts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419

2. Gestion des signatures GPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4212.1 Le projet GnuPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4212.2 Champ d’application et signature de clés GnuPG . . . . . . . . . . . . . . . 4222.3 Vérification d’authenticité des paquets . . . . . . . . . . . . . . . . . . . . . . . 4232.4 Authenticité des dépôts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425

3. Déclaration et remontée de bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4303.1 Cas d’un nouveau bug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4303.2 Modification de rapport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4333.3 Suivi de version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4343.4 Intégrité et reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436

Page 9: administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE a exercé de nombreuses années comme

8Maîtrisez la sécurité du système

Debian GNU/Linux

3.5 Dépannage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437

4. Automatisation pilotée par Puppet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4404.1 Définitions et architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4404.2 Installation de Puppet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445

4.2.1 Installation du service principal (puppetmaster) . . . . . . . . . . . 4454.2.2 Installation du serveur PuppetDB. . . . . . . . . . . . . . . . . . . . . . . 4494.2.3 Installation du serveur Web Frontend . . . . . . . . . . . . . . . . . . . 450

4.3 Configuration de Puppet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4514.4 Mise en œuvre d’une classe Puppet . . . . . . . . . . . . . . . . . . . . . . . . . . . 456

5. Gestion de version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4605.1 Présentation de git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4605.2 Installation de git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4635.3 Configuration de git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4645.4 Application et utilisation de git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466

6. Systèmes de distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4706.1 Fonctionnement de xCAT2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4706.2 Installation de xCAT2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4736.3 Configuration xCAT2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4766.4 Alternative de distribution FAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477

Conclusion

1. Niveaux évolutifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483

2. Bilan des opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485

3. Pour conclure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487

Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500

Page 10: administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE a exercé de nombreuses années comme

Chapitre 2

Outils noyau et initialisation

Outils noyau et initialisation

1. Protection dès la phase de démarrage

Nous avons déjà rappelé dans l’introduction comment le système d’exploitationGNU/Linux se mettait en place et à quoi servaient les différents éléments que sont :– le BIOS ;– le bootloader (ou chargeur au démarrage) ;– le noyau linux et ses modules ;– l’image initrd (aussi appelée initramfs) ;– les pseudo-systèmes de fichiers /proc et /sys.

1.1 Sécurisation du BIOS

Le BIOS, comme il été rappelé lors de l’introduction, est un système élémentaire d’en-trées/sorties composé d’un ensemble de fonctions, elles-mêmes contenues en zonemémoire morte (aussi appelée ROM ou Read-Only Memory), de la carte mère d’un or-dinateur. Ces mécanismes permettent d’effectuer certaines opérations de vérifica-tions de l’état du matériel (mémoire, disque dur, etc.), lors de la mise sous tension del’équipement. Chaque serveur, poste de travail ou portable possède son propre BIOS.Il existe de grandes familles de fabricants de BIOS tels que :– Asrock ;– LSI, Tekram ;– American Megatrends Incorporated.

lcroise
Tampon
Page 11: administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE a exercé de nombreuses années comme

© E

dit

ions

EN

I -

All r

ights

rese

rved

70Maîtrisez la sécurité du système

Debian GNU/Linux

Le site Internet http://www.filehelp.fr/drivers/bios liste les principaux acteurs de cemarché et il est possible d’avoir quelques précisions quant à telle ou telle carte mère.La seule véritable protection de ce sous-système consiste à positionner un mot depasse en ouvrant le menu principal du BIOS de sa machine et en allant dans le menuapproprié. Il faut préciser que seuls les équipements dont l’accès n’est pas restreint etsont faciles à emporter, doivent être considérés. En effet, il n’y a aucun intérêt àmettre un mot de passe sur le BIOS d’un serveur, faisant partie d’un ensemble d’équi-pements au sein d’une salle machine, ou même des postes de travail dont l’accès estsécurisé dans les bureaux d’une entreprise. Cela n’a d’intérêt que pour protéger desportables pouvant être facilement perdus ou volés, d'autant qu'aujourd'hui, dans lesentreprises, le personnel (internes et/ou prestataires) est tracé à l'aide de badge ou d'unmoyen permettant d'identifer la personne. Aussi, tout acte malveillant comme un volde matériel serait automatiquement détecté et le ou la coupable sanctionné.

Exemple

BIOS American Megatrends avec un mot de passe positionné :

On cherche alors principalement à empêcher toute modification des paramètres duBIOS, de la part d’un éventuel intrus pouvant alors configurer celui-ci, de sorte àdémarrer à partir d’une disquette ou d’un CD, et pouvant alors entrer dans le modesecours ou mono-utilisateur (appelé aussi single user). Le pirate peut alors lancer diversprocessus depuis le système ou même, copier les données s’y trouvant stockées. Le faitde protéger le BIOS par un mot de passe permet principalement d’empêcher les intrusde pouvoir démarrer le système sans avoir, au préalable, saisi ledit mot de passe.

Page 12: administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE a exercé de nombreuses années comme

71Outils noyau et initialisationChapitre 2

Comme nous l’avons dit ci-avant, il existe autant de méthodes d’activation du motde passe au sein du BIOS que de fabricants. Aussi, il est conseillé de consulter le ma-nuel de la machine afin d’obtenir des instructions précises concernant le paramétragedu BIOS de celle-ci. Une fois cette première barrière activée (ou non), on peut alorspasser à la sécurisation du chargeur au démarrage (ou bootloader).

1.2 Présentation de GRUB

La phase de démarrage est très importante et l’on est alors amené à utiliser un certainnombre d’outils qu’il convient de fiabiliser avant leur utilisation en production. Nousallons notamment revenir sur la configuration du bootloader (ou chargeur audémarrage), afin de le rendre plus restrictif, et l’on enchaînera sur le chiffrement departition et sur l’utilisation de volumes logiques, permettant de cloner les données quis’y trouvent hébergées. Il existe également certaines fonctionnalités qu’il est préfé-rable de ne pas laisser entre toutes les mains. Nous verrons alors comment désactiverces « Magic SysKeys ». Comme nous l’avons déjà souligné, l’utilitaire GNU GRUB (si-gnifiant GRand Unified Bootloader), est un programme d’amorçage de micro-ordina-teur, généralisé aux serveurs d’entreprises. Il s’exécute lors de la mise sous tension dela machine, après les séquences de contrôle interne, et avant le système d’exploitationproprement dit. Son rôle est essentiellement d’organiser le chargement du systèmed’exploitation.

Remarque

Lorsque l’ordinateur héberge plusieurs systèmes, on parle alors de multiamorçage. Ilpermet à l’utilisateur de sélectionner celui sur lequel il souhaite travailler.

Cet outil est un logiciel libre permettant l’amorçage des systèmes GNU/Linux oumême Microsoft Windows. Mais, il est également adapté aux systèmes d’exploitationmoins répandus tels que FreeBSD, OpenBSD, Hurd ou Solaris. Il permet aussi lalecture de la configuration au démarrage. Il n’est donc pas nécessaire de réinstallerGRUB dans le secteur d’amorçage après une modification de la configuration, contrai-rement à l’ancien mécanisme de bootloader qu’était LILO. On peut l’invoquer via uneligne de commande permettant de changer la configuration au démarrage. Ainsi,GRUB reconnaît nativement les divers systèmes de fichiers du marché. De plus, l’outilpossède même un langage de base de commandes simples, permettant aux adminis-trateurs de récupérer un amorçage qui se serait mal déroulé, à la suite d’un mauvaisadressage d’une partition ou d’un mauvais paramétrage.

Page 13: administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE a exercé de nombreuses années comme

© E

dit

ions

EN

I -

All r

ights

rese

rved

72Maîtrisez la sécurité du système

Debian GNU/Linux

Remarque

IMPORTANT : du fait de sa compatibilité avec l’ensemble des systèmes de fichiers et dunombre important de fonctionnalités, GRUB est par contre beaucoup plus volumineuxque son ancêtre LILO.

Lors du démarrage du serveur, le BIOS cherche le premier périphérique « bootable ».Habituellement, il s’agit du disque dur, mais les options du BIOS peuvent avoir confi-guré un lecteur CD/DVD ou une clé USB. Ce secteur sera chargé en tant que secteurd’amorçage (également appelé Master Boot Record ou MBR), correspondant aux 512premiers octets du disque sélectionné (ou de tout autre périphérique bootable), ettransfère alors le contrôle au code chargé en mémoire. L’opération se décompose alorsen deux phases :– GRUB partie 1– GRUB partie 1.5

GRUB Partie 1

Le fichier boot.img (appelé partie 1) est stocké dans le MBR. Ceci dit, ce dernier peutaussi contenir un autre bootloader pouvant chaîner la partie 1 de GRUB depuis unautre secteur de boot (début d’un autre disque ou d’une autre partition logique typeDOS, par exemple).

GRUB Partie 1.5 ou Partie 2

Du fait de la faible taille du MBR, la partie 1 se contente alors de charger la partie 2ou la partie 1.5 (se trouvant dans les 30 kio juste après le MBR). C’est la partie 1.5,contenant des pilotes permettant l’accès à la partie 2, qui charge alors ce secondsegment de code.

Depuis quelque temps déjà, le logiciel GRUB a évolué, en passant de la versionGRUBv1 à la version GRUBv2, afin de mieux maîtriser le processus de démarrage.Dans cette seconde édition, le programme fonctionne sensiblement de la même façon,excepté que le MBR peut charger un secteur depuis n’importe quelle adresse normali-sée LBA48.

Page 14: administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE a exercé de nombreuses années comme

73Outils noyau et initialisationChapitre 2

Cela favorise le chargement du premier secteur du fichier core.img, généré depuisdiskboot.img. Puis, ce premier secteur est ensuite utilisé pour charger le reste dufichier généré par core.img.

Remarque

Le fichier core.img est alors normalement stocké au même emplacement que la par-tie 1.5, en gérant les mêmes problématiques de taille. Toutefois, il peut être déplacéplus facilement, dans une partition ou un système de fichiers moins contraints aux dé-placements ou à l’omission de cette partie 1.5. Une fois chargé, le fichier core.imgcharge à son tour les fichiers de configuration ainsi que les autres modules nécessairesau bon fonctionnement du système d’exploitation cible.

Une fois GRUB chargé, il présente alors une interface permettant à l’utilisateur de sé-lectionner le système d’exploitation souhaité. L’interface prend généralement laforme d’un menu graphique. Toutefois, si celui-ci n’est pas accessible ou que l’utilisa-teur préfère un contrôle direct, GRUB embarque également sa propre invite de com-mande. L’utilisateur peut donc préciser manuellement les différents paramètres dedémarrage et régler ainsi l’outil pour charger automatiquement un noyau linux enparticulier, après un délai d’attente, défini également de ses mains. Une fois lesoptions de démarrage sélectionnées, le bootloader charge le noyau souhaité en mémoireet lui transfère alors le contrôle.

Astuce

GRUB a également la possibilité de transférer le contrôle à un autre chargeur au dé-marrage, utilisant, lui aussi, le chargement en chaîne. Cette technique est utilisée pourcharger les noyaux de type Microsoft Windows et ne supporte pas le multidémarragestandard. Dans ce cas, il faut effectuer des copies des autres bootloaders.

Ainsi, au lieu d’un noyau, l’autre système est alors chargé comme s’il l’avait été depuisle MBR et il peut s’agir d’un autre chargeur au démarrage, comme le menu de démar-rage de Microsoft Windows, permettant la sélection du système d’exploitation. Enfait, à l’inverse de LILO, l’utilitaire GRUB n’a nul besoin d’être installé dans le MBR,lors de chaque modification du fichier de configuration. Dans un système GNU/Linux, la commande grub-install est uniquement utilisée pour installer la partie 1 duprogramme dans le MBR ou dans une autre partition. Les fichiers de configurationdoivent se trouver sur une partition utilisable. Dans le cas contraire, la partie 1 exé-cute l’interpréteur de commandes automatiquement. Le nom et l’emplacement de cefichier de configuration peuvent varier d’un système à l’autre. Sur une distributionDebian, ce fichier se situe sur le répertoire /boot/grub. Il peut être nommégrub.cfg, grub.conf ou encore menu.lst selon les versions de l’outil présentessur le système.

Page 15: administra- Debian GNU/Linux GNU/Linux Maîtrisez la sécurité du système Debian GNU/Linux Maîtrisez la sécurité du système Philippe PIERRE a exercé de nombreuses années comme

© E

dit

ions

EN

I -

All r

ights

rese

rved

74Maîtrisez la sécurité du système

Debian GNU/Linux

Remarque

Lorsqu’on mentionne GRUB, on pense à GRUB legacy (c’est-à-dire la première versiondu logiciel), alors que GRUB 2 fait référence à GRUBv2.

On peut tout à fait créer sa propre disquette ou clé USB de démarrage en copiant lesfichiers correspondant à l’image utilisée pour lancer GRUB (Stage1) et l’image dunoyau de GRUB (Stage2), sur les deux premiers blocs respectifs du périphérique cible :# cd /usr/share/grub/<Architecture># dd if=stage1 of=/dev/sd0 bs=512 count=1

1+0 record in1+0 record out

# dd if=stage2 of=/dev/fd0 bs=512 seek=1153+1 records in

153+1 records out

Afin de pouvoir s’adresser au programme grub, il faut connaître les éléments à passeren paramètre, à savoir :– le périphérique où se trouve le noyau (aussi appelé kernel)– le nom de ce noyau– le nom du programme d’initialisation (appelé initrd)– la commande de "boot" d’initialisation de l’exécutionGrâce au prompt interactif, GRUB gère parfaitement la complétion des caractères.Ceci permet notamment de retrouver les noms de disque, de noyau ou encore du pro-gramme initiateur. Ceci est un gros avantage, surtout si l’on considère qu'il peut êtrecompliqué de se souvenir de ces noms dans le cas où le chargement ne fonctionne plus.Le fichier de paramétrage /boot/grub/menu.lst (ou grub.conf, dans certainscas) contient les éléments optionnels de couleur et de délai nécessaire au menu d’affi-chage. On y trouve également, à la suite les uns des autres, différentes sections décri-vant les différents noyaux disponibles que l’on peut démarrer :

Exemple

Fichier classique de menu.lst :

default 0

timeout 5 #

foreground = ffffff background = 000000

# splashimage=(hd0,1)/boot/grub/leaf_splash.xpm.gz

# title Gentoo

root (hd0, 1)