Product SiteDocumentation Site

Guide de sécurité du Debian 3.19

Guide de sécurité du Debian

Javier Fernández-Sanguino Peña

Note légale

Copyright © 2012 The Debian Project
GNU General Public License Notice:
This work is free documentation: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.
This work is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Résumé

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 telles que la sécurisation d'un réseau utilisant Debian GNU/Linux 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.
1. Introduction
1.1. Auteurs
1.2. Où récupérer ce manuel (et formats disponibles)
1.3. Avis et réactions
1.4. Connaissances requises
1.5. Éléments à écrire (FIXME/TODO)
1.6. Remerciements
2. Avant de commencer
2.1. Que voulez-vous faire du système ?
2.2. Être conscient des problèmes de sécurité
2.3. Comment Debian gère la sécurité ?
3. Avant et pendant l'installation
3.1. Choisir un mot de passe pour le BIOS
3.2. Partitionner le système
3.2.1. Choisir un schéma de partitionnement intelligent
3.2.2. Choisir les systèmes de fichiers appropriés
3.3. Ne pas se connecter à Internet tant que tout n'est pas prêt
3.4. Définir un mot de passe pour le superutilisateur
3.5. Administrer le nombre minimal de services nécessaires
3.5.1. Désactivation de services démon
3.5.2. Désactivation d'inetd ou de ses services
3.6. Installer le minimum de logiciels nécessaires
3.6.1. Supprimer Perl
3.7. Consulter les listes de discussions Debian sur la sécurité
4. Après l'installation
4.1. S'abonner à la liste de diffusion Debian Security Announce
4.2. Faire une mise à jour de sécurité
4.2.1. Mise à jour de sécurité des bibliothèques
4.2.2. Mise à jour de sécurité du noyau
4.3. Changer le BIOS (à nouveau)
4.4. Attribuer un mot de passe à LILO ou GRUB
4.5. Désactivation de l'invite superutilisateur de l'initramfs
4.6. Enlever l'invite superutilisateur du noyau
4.7. Restreindre les accès aux consoles
4.8. Restreindre les redémarrages système depuis la console
4.9. Restriction d'utilisation des touches SysRq magiques
4.10. Monter correctement les partitions
4.10.1. Paramétrer /tmp en noexec
4.10.2. Paramétrer /usr en lecture seule
4.11. Fournir des accès sécurisés aux utilisateurs
4.11.1. Authentification utilisateur: PAM
4.11.2. Sécurité de mot de passe dans PAM
4.11.3. Contrôle de l'accès utilisateur dans PAM
4.11.4. Limites des utilisateurs dans PAM
4.11.5. Contrôle de su dans PAM
4.11.6. Répertoires temporaires dans PAM
4.11.7. Configuration pour les applications PAM non définies
4.11.8. Restreindre l'utilisation des ressources: le fichier limits.conf
4.11.9. Actions de connexion de l'utilisateur: modification de /etc/login.defs
4.11.10. Actions de connexion de l'utilisateur: modification de /etc/pam.d/login
4.11.11. Restreindre le FTP: éditer /etc/ftpusers
4.11.12. Utilisation de su
4.11.13. Utilisation de sudo
4.11.14. Désactiver des accès d'administration à distance
4.11.15. Restriction des utilisateurs
4.11.16. Audit d'utilisateur
4.11.17. Inspection des profils utilisateurs
4.11.18. Positionner des umasks aux utilisateurs
4.11.19. Limiter ce que les utilisateurs peuvent voir et accéder
4.11.20. Générer des mots de passe utilisateur
4.11.21. Vérifier les mots de passe utilisateur
4.11.22. Déconnecter les utilisateurs inactifs (idle)
4.12. Utilisation de tcpwrappers
4.13. L'importance des journaux et des alertes
4.13.1. Utiliser et personnaliser logcheck
4.13.2. Configurer l'endroit où les alertes sont envoyées
4.13.3. Utilisation d'un hôte d'archivage (loghost)
4.13.4. Permissions du fichier de journalisation
4.14. Les utilitaires pour ajouter des correctifs au noyau
4.15. Se protéger contre les dépassements de tampon
4.15.1. Correctif du noyau de protection pour les dépassements de tampon
4.15.2. Tester des programmes pour les dépassements
4.16. Sécurisation des transferts de fichiers
4.17. Limites et contrôle des systèmes de fichiers
4.17.1. Utilisation de quotas
4.17.2. Les attributs spécifiques du système de fichiers ext2 (chattr/lsattr)
4.17.3. Vérifier l'intégrité des systèmes de fichiers
4.17.4. Mise en place de la vérification setuid
4.18. Sécurisation des accès réseau
4.18.1. Configuration des options réseau du noyau
4.18.2. Configurer syncookies
4.18.3. Sécurisation du réseau pendant l'amorçage
4.18.4. Configuration des fonctionnalités de pare-feu
4.18.5. Désactiver les problèmes d'hôtes weak-end
4.18.6. Protéger contre les attaques ARP
4.19. Prendre un instantané («snapshot») du système
4.20. Autres recommandations
4.20.1. N'utilisez pas de logiciels dépendant de svgalib
5. Sécurisation des services du système
5.1. Sécurisation de SSH
5.1.1. Chrooter SSH
5.1.2. Clients SSH
5.1.3. Interdire les transferts de fichiers
5.1.4. Restriction d'accès au seul transfert de fichiers
5.2. Sécurisation de Squid
5.3. Sécurisation de FTP
5.4. Sécurisation de l'accès au système X Window
5.4.1. Vérifiez le gestionnaire d'affichage
5.5. Sécurisation de l'accès à l'impression (le problème lpd et lprng)
5.6. Sécurisation du service de courrier
5.6.1. Configurer un Nullmailer
5.6.2. Fournir un accès sécurisé aux boîtes à lettres
5.6.3. Réception du courrier de manière sûre
5.7. Sécurisation de BIND
5.7.1. Configuration de BIND pour éviter de mauvaises utilisations
5.7.2. Changer l'utilisateur de BIND
5.7.3. Chrooter le serveur de domaine
5.8. Sécurisation d'Apache
5.8.1. Désactiver la publication de contenu sur le web par les utilisateurs
5.8.2. Permissions des fichiers de journalisation
5.8.3. Fichiers web publiés
5.9. Sécurisation de finger
5.10. Paranoïa généralisée du suid et du chroot
5.10.1. Créer des environnements chrooté automatiquement
5.11. Paranoïa généralisée du mot de passe en texte clair
5.12. Désactivation du NIS
5.13. Sécurisation des services RPC
5.13.1. Désactivation des services RPC
5.13.2. Limiter l'accès aux services RPC
5.14. Ajouter des capacités au pare-feu
5.14.1. Protéger le système local avec un pare-feu
5.14.2. Utiliser un pare-feu pour protéger d'autres systèmes
5.14.3. Mettre en place un pare-feu
6. Sécurisation automatique d'un système Debian
6.1. Harden
6.2. Bastille Linux
7. Infrastructure de sécurité Debian
7.1. L'équipe de sécurité Debian
7.2. Alertes de sécurité Debian
7.2.1. Références croisées des failles
7.2.2. Compatibilité CVE
7.3. Système de suivi en sécurité
7.4. Infrastructure de construction de sécurité Debian
7.4.1. Le guide du développeur pour les mises à jour de sécurité
7.5. La signature de paquet dans Debian
7.5.1. Le schéma actuel pour la vérification de paquet
7.5.2. apt sécurisé
7.5.3. Vérification par version de distribution
7.5.4. Vérification de distribution pour les sources non Debian
7.5.5. Schéma alternatif de signature par paquet
8. Outils de sécurité dans Debian
8.1. Outils d'évaluation des vulnérabilités à distance
8.2. Outils pour parcourir le réseau
8.3. Audits internes
8.4. Contrôle du code source
8.5. Réseaux Privés Virtuels
8.5.1. Le tunnel point à point
8.6. Infrastructure de clefs publiques (PKI)
8.7. Infrastructure SSL
8.8. Outils antivirus
8.9. Agent GPG
9. Meilleures pratiques de sécurité pour les développeurs
9.1. Meilleures pratiques de vérification et conception sécurisées
9.2. Création d'utilisateurs et de groupes pour les démons logiciels
10. Avant la compromission
10.1. Maintenez le système sécurisé
10.1.1. Surveillance des failles de sécurité
10.1.2. Mettre à jour le système en permanence
10.1.3. Évitez la branche unstable
10.1.4. Suivi en sécurité de la branche testing
10.1.5. Mises à jour automatiques dans un système Debian GNU/Linux
10.2. Tests d'intégrité périodiques
10.3. Mise en place de détection d'intrusion
10.3.1. Détection d'intrusion provenant du réseau
10.3.2. Détection d'intrusion fondée sur l'hôte
10.4. Éviter les rootkits
10.4.1. Loadable Kernel Modules (LKM)
10.4.2. Détection des rootkits
10.5. Idées géniales ou paranoïaques — ce que vous pourriez faire
10.5.1. Construction d'un pot de miel
11. Après la compromission (la réponse à l'incident)
11.1. Comportement général
11.2. Copies de sauvegarde du système
11.3. Contacter le CERT local
11.4. Analyse post mortem
11.5. Analyse des programmes malveillants (malware)
12. Foire Aux Questions (FAQ)
12.1. La sécurité dans le système d'exploitation Debian
12.1.1. Debian est-elle plus sûre que X ?
12.1.2. Le système est vulnérable ! (En êtes-vous certain ?)
12.2. Logiciels spécifiques
12.2.1. ProFTPD est vulnérable à une attaque de déni de service
12.2.2. Après l'installation de portsentry, de nombreux ports sont ouverts.
12.3. Questions concernant l'équipe de sécurité Debian
A. Historique des versions
B. Annexe
B.1. La procédure de durcissement étape par étape
B.2. Liste des contrôles de configuration
B.3. Paramétrage d'un IDS autonome
B.4. Configuration d'un pare-feu pont
B.4.1. Un pont fournissant des fonctionnalités de traduction d'adresse (NAT) et de pare-feu
B.4.2. Un pont fournissant des fonctionnalités de pare-feu
B.4.3. Règles de base d'iptables
B.5. Exemple de script pour changer l'installation par défaut de BIND
B.6. Mise à jour de sécurité protégée par un pare-feu
B.7. Environnement de chroot pour SSH
B.7.1. Chrooter les utilisateur SSH
B.7.2. Chrooter le serveur SSH
B.7.3. Environnement de chroot pour Apache
B.7.4. Consultez également