Ce didacticiel couvre uniquement les conseils de sécurité généraux pour CentOS 8/7 qui peut être utilisé pour durcir le système. Les conseils de la liste de contrôle sont destinés à être utilisés principalement sur divers types de serveurs bare-metal ou sur des machines (physiques ou virtuelles) qui fournissent des services réseau.
Cependant, certains conseils peuvent également être appliqués avec succès sur des machines à usage général, telles que les ordinateurs de bureau, les ordinateurs portables et les ordinateurs monocarte de la taille d’une carte (Tarte aux framboises).
Exigences
1. Protection physique
Verrouillez l’accès aux salles de serveurs, utilisez le verrouillage des racks et la vidéosurveillance. Tenez compte du fait que tout accès physique aux salles serveurs peut exposer votre machine à de graves problèmes de sécurité.
BIOS les mots de passe peuvent être modifiés en réinitialisant les cavaliers sur la carte mère ou en déconnectant la batterie CMOS. En outre, un intrus peut voler les disques durs ou connecter directement de nouveaux disques durs aux interfaces de la carte mère (SATA, SCSI, etc.), démarrer avec une distribution Linux live et cloner ou copier des données sans laisser de trace logicielle.
2. Réduisez l’impact d’espionnage
Dans le cas de données hautement sensibles, vous devriez probablement utiliser une protection physique avancée telle que placer et verrouiller le serveur dans un Cage de Faraday ou utiliser un militaire TEMPÊTE solution afin de minimiser l’impact de l’espionnage du système via des émanations radio ou électriques.
3. BIOS / UEFI sécurisé
Démarrez le processus de durcissement de votre machine en sécurisant BIOS / UEFI paramètres, en particulier définir un BIOS / UEFI mot de passe et désactiver les périphériques de support de démarrage (CD, DVD, désactiver la prise en charge USB) afin d’empêcher un utilisateur non autorisé de modifier les paramètres du BIOS système ou de modifier la priorité du périphérique de démarrage et de démarrer la machine à partir d’un autre support.
Afin d’appliquer ce type de modifications à votre machine, vous devez consulter le manuel du fabricant de la carte mère pour obtenir des instructions spécifiques.
4. Chargeur de démarrage sécurisé
Définir un VER mot de passe afin d’empêcher les utilisateurs malveillants de falsifier la séquence de démarrage du noyau ou les niveaux d’exécution, de modifier les paramètres du noyau ou de démarrer le système en mode mono-utilisateur afin de nuire à votre système et réinitialiser le mot de passe root pour obtenir un contrôle privilégié.
5. Utilisez des partitions de disque séparées
Lors de l’installation CentOS sur les systèmes destinés à être des serveurs de production, utilisez des partitions dédiées ou des disques durs dédiés pour les parties suivantes du système:
/(root) /boot /home /tmp /var
6. Utilisez LVM et RAID pour la redondance et la croissance du système de fichiers
le / var partition est l’endroit où les messages du journal sont écrits sur le disque. Cette partie du système peut augmenter de manière exponentielle sur des serveurs à fort trafic qui exposent des services réseau tels que des serveurs Web ou des serveurs de fichiers.
Ainsi, utilisez une grande partition pour / var ou pensez à configurer cette partition à l’aide de volumes logiques (LVM) ou combinez plusieurs disques physiques en un seul périphérique RAID 0 virtuel plus grand pour gérer de grandes quantités de données. Pour la redondance des données, envisagez d’utiliser la mise en page LVM en plus de RAID 1 niveau.
Pour configurer LVM ou RAID sur les disques, suivez nos guides utiles:
- Configurer le stockage sur disque avec LVM sous Linux
- Créer des disques LVM à l’aide de vgcreate, lvcreate et lvextend
- Combinez plusieurs disques en un seul grand stockage virtuel
- Créer un RAID 1 à l’aide de deux disques sous Linux
7. Modifier les options fstab pour sécuriser les partitions de données
Des partitions séparées destinées à stocker des données et à empêcher l’exécution de programmes, de fichiers de périphérique ou setuid bit sur ce type de partitions en ajoutant les options suivantes à fstab fichier comme illustré sur l’extrait ci-dessous:
/dev/sda5 /nas ext4 defaults,nosuid,nodev,noexec 1 2
Pour empêcher l’élévation des privilèges et l’exécution arbitraire de script, créez une partition distincte pour / tmp et montez-le comme nosuid, nodev et noexec.
/dev/sda6 /tmp ext4 defaults,nosuid,nodev,noexec 0 0
8. Cryptez les disques durs au niveau du bloc avec LUKS
Afin de protéger la surveillance des données sensibles en cas d’accès physique aux disques durs de la machine. Je vous suggère d’apprendre à crypter un disque en lisant notre article Chiffrement des données du disque dur Linux avec LUKS.
9. Utiliser PGP et la cryptographie à clé publique
Pour crypter les disques, utilisez PGP et la cryptographie à clé publique ou la commande openssl pour crypter et décrypter les fichiers sensibles avec un mot de passe, comme indiqué dans cet article Configurer le stockage système Linux chiffré.
10. Installez uniquement le nombre minimum de packages requis
Évitez d’installer des programmes, des applications ou des services sans importance ou inutiles pour éviter les vulnérabilités des packages. Cela peut réduire le risque que la compromission d’un logiciel puisse conduire à compromettre d’autres applications, des parties du système ou même des systèmes de fichiers, entraînant finalement une corruption ou une perte de données.
11. Mettez fréquemment à jour le système
Mettez à jour le système régulièrement. Gardez le noyau Linux synchronisé avec les derniers correctifs de sécurité et tous les logiciel installé à jour avec les dernières versions en exécutant la commande ci-dessous:
# yum update
12. Désactivez Ctrl + Alt + Suppr
Afin d’empêcher les utilisateurs de redémarrer le serveur une fois qu’ils ont un accès physique au clavier ou via une application de console distante ou une console virtualisée (KVM, Virtualisation de l’interface du logiciel), vous devez désactiver Ctrl+Alt+Del
séquence de touches en exécutant la commande ci-dessous.
# systemctl mask ctrl-alt-del.target
13. Suppression des packages logiciels inutiles
Installez le logiciel minimal requis pour votre machine. N’installez jamais de programmes ou de services supplémentaires. Installez les packages uniquement à partir de référentiels approuvés ou officiels. Utilisez une installation minimale du système au cas où la machine est destinée à fonctionner entièrement en tant que serveur.
Vérifiez les packages installés à l’aide de l’une des commandes suivantes:
# rpm -qa
Faites une liste locale de tous les packages installés.
# yum list installed >> installed.txt
Consultez la liste des logiciels inutiles et supprimez un package en exécutant la commande ci-dessous:
# yum remove package_name
14. Redémarrez les services Systemd après les mises à jour du démon
Utilisez l’exemple de commande ci-dessous pour redémarrer un service systemd afin d’appliquer de nouvelles mises à jour.
# systemctl restart httpd.service
15. Supprimer les services inutiles
Identifiez les services qui écoutent sur des ports spécifiques à l’aide des éléments suivants commande ss.
# ss -tulpn
Pour répertorier tous les services installés avec leur état de sortie, exécutez la commande ci-dessous:
# systemctl list-units -t service
Par exemple, CentOS l’installation minimale par défaut est livrée avec le démon Postfix installé par défaut qui s’exécute sous le nom de maître sous le port 25. Supprimez le service réseau Postfix au cas où votre appareil ne serait pas utilisé comme serveur de messagerie.
# yum remove postfix
16. Crypter les données transmises
N’utilisez pas de protocoles non sécurisés pour l’accès à distance ou le transfert de fichiers tels que Telnet, FTP ou d’autres protocoles à texte brut tels que SMTP, HTTP, NFS ou SMB qui, par défaut, ne crypte pas les sessions d’authentification ou envoient les données.
Utiliser seulement sftp, scp pour les transferts de fichiers et SSH ou VNC sur les tunnels SSH pour les connexions à la console distante ou l’accès GUI.
Afin de tunneler une console VNC via SSH, utilisez l’exemple ci-dessous qui transmet le port VNC 5901 de la machine distante à votre machine locale:
# ssh -L 5902:localhost:5901 remote_machine
Sur la machine locale, exécutez la commande ci-dessous afin de se connecter virtuellement au point de terminaison distant.
# vncviewer localhost:5902
17. Analyse des ports réseau
Effectuez des vérifications des ports externes à l’aide de l’outil nmap à partir d’un système distant via le réseau local. Ce type d’analyse peut être utilisé pour vérifier les vulnérabilités du réseau ou tester les règles de pare-feu.
# nmap -sT -O 192.168.1.10
18. Pare-feu filtrant les paquets
Utilisation pare-feu utilitaire pour protéger les ports système, ouvrir ou fermer des ports de services spécifiques, en particulier les ports connus (
Installez, démarrez, activez et répertoriez les règles de pare-feu en exécutant les commandes ci-dessous:
# yum install firewalld # systemctl start firewalld.service # systemctl enable firewalld.service # firewall-cmd --list-all
19. Inspecter les paquets de protocole avec Tcpdump
Utilisation utilitaire tcpdump afin de détecter les paquets réseau localement et d’inspecter leur contenu à la recherche de trafic suspect (ports source-destination, protocoles tcp / ip, trafic de couche deux, requêtes ARP inhabituelles).
Pour une meilleure analyse de la tcpdump le fichier capturé utilise un programme plus avancé tel que Wireshark.
# tcpdump -i eno16777736 -w tcpdump.pcap
20. Empêcher les attaques DNS
Inspectez le contenu de votre résolveur, généralement /etc/resolv.conf fichier, qui définit l’adresse IP des serveurs DNS qu’il doit utiliser pour rechercher des noms de domaine, afin d’éviter les attaques man-in-the-middle, le trafic inutile pour les serveurs DNS racine, l’usurpation d’identité ou la création d’une attaque DOS.
Ceci n’est que la première partie. Dans la partie suivante, nous discuterons d’autres conseils de sécurité pour CentOS 8/7.
.