Recherche de site Web

20 conseils de sécurité pour renforcer le serveur CentOS - Partie 1


Ce didacticiel couvre uniquement les conseils de sécurité généraux pour CentOS 8/7 qui peuvent être utilisés pour renforcer le système. Les conseils de la liste de contrôle sont destinés à être utilisés principalement sur différents types de serveurs nus ou sur des machines (physiques ou virtuelles) qui fournissent des services réseau.

Cependant, certains conseils peuvent également être appliqués avec succès aux machines à usage général, telles que les ordinateurs de bureau, les ordinateurs portables et les ordinateurs monocarte de la taille d'une carte (Raspberry Pi).

Exigences

  • Installation minimale de CentOS 8
  • Installation minimale de CentOS 7

1. Protection physique

Verrouillez l'accès à vos salles de serveurs, utilisez le verrouillage des racks et la vidéosurveillance. Tenez compte du fait que tout accès physique aux salles de serveurs peut exposer votre machine à de graves problèmes de sécurité.

Les mots de passe du BIOS peuvent être modifiés en réinitialisant les cavaliers de la carte mère ou en débranchant 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 de l’espionnage

Dans le cas de données très sensibles, vous devriez probablement utiliser une protection physique avancée telle que placer et verrouiller le serveur dans une cage de Faraday ou utiliser une solution militaire TEMPEST afin de minimiser l'impact de l'espionnage du système via radio ou des émanations de fuites électriques.

3. BIOS/UEFI sécurisé

Démarrez le processus de renforcement de votre machine en sécurisant les paramètres BIOS/UEFI, en particulier en définissant un mot de passe BIOS/UEFI et en désactivant les périphériques de support de démarrage (CD, DVD, désactivez la prise en charge USB) dans afin d'empêcher tout utilisateur non autorisé de modifier les paramètres du BIOS du 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 modification à 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éfinissez un mot de passe GRUB afin d'empêcher les utilisateurs malveillants de falsifier la séquence de démarrage ou les niveaux d'exécution du noyau, de modifier les paramètres du noyau ou de démarrer le système en mode mono-utilisateur afin d'endommager votre système et de réinitialiser la racine. mot de passe pour obtenir un contrôle privilégié.

5. Utilisez des partitions de disque séparées

Lors de l'installation de CentOS sur des systèmes destinés à servir de 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

La partition /var est l'endroit où les messages de journal sont écrits sur le disque. Cette partie du système peut croître de façon 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 envisagez de 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 supporter de grandes quantités de données. Pour les données, la redondance envisage d'utiliser la disposition LVM au-dessus du niveau RAID 1.

Pour configurer LVM ou RAID sur les disques, suivez nos guides utiles :

  1. Configurer le stockage sur disque avec LVM sous Linux
  2. Créer des disques LVM à l'aide de vgcreate, lvcreate et lvextend
  3. Combinez plusieurs disques en un seul grand stockage virtuel
  4. Créer RAID 1 à l'aide de deux disques sous Linux

7. Modifier les options fstab pour sécuriser les partitions de données

Séparez les partitions destinées au stockage des données et empêchez l'exécution de programmes, de fichiers de périphérique ou de bits setuid sur ce type de partitions en ajoutant les options suivantes au fichier fstab comme illustré ci-dessous extrait:

/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 scripts, créez une partition distincte pour /tmp et montez-la en tant que 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 des machines. Je vous suggère d'apprendre à chiffrer un disque en lisant notre article Chiffrement des données du disque dur Linux avec LUKS.

9. Utilisez PGP et la cryptographie à clé publique

Afin de chiffrer les disques, utilisez PGP et la cryptographie à clé publique ou la commande OpenSSL pour chiffrer et déchiffrer 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 régulièrement à jour le système. Gardez le noyau Linux synchronisé avec les derniers correctifs de sécurité et tous les logiciels installés à 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 à un clavier ou via une application de console distante ou une console virtualisée (KVM, interface logicielle de virtualisation), vous devez désactiver Ctrl+Alt Séquence de touches +Suppr en exécutant la commande ci-dessous.

systemctl mask ctrl-alt-del.target 

13. Supprimez les progiciels 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 fiables ou officiels. Utilisez une installation minimale du système au cas où la machine serait destinée à fonctionner toute sa vie 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 de la commande ss suivante.

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, l'installation minimale par défaut de CentOS est livrée avec le démon Postfix installé par défaut qui s'exécute sous le nom d'un maître sous le port 25. Supprimez le service réseau Postfix au cas où votre ordinateur 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 en texte brut tels que SMTP, HTTP, NFS ou SMB qui, par par défaut, ne crypte pas les sessions d'authentification ni les données envoyées.

Utilisez uniquement sftp, scp pour les transferts de fichiers et SSH ou VNC sur des tunnels SSH pour les connexions de console distante ou l'accès à l'interface graphique.

Afin de tunneler une console VNC via SSH, utilisez l'exemple ci-dessous qui transfère le port VNC 5901 de la machine distante vers votre machine locale :

ssh -L 5902:localhost:5901 remote_machine

Sur la machine locale, exécutez la commande ci-dessous afin d'établir une connexion virtuelle 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 de filtrage de paquets

Utilisez l'utilitaire firewalld pour protéger les ports du système, ouvrir ou fermer des ports de services spécifiques, en particulier les ports bien connus (<1024).

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

Utilisez l'utilitaire tcpdump afin de détecter localement les paquets réseau 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 du fichier capturé tcpdump, utilisez un programme plus avancé tel que Wireshark.

tcpdump -i eno16777736 -w tcpdump.pcap

20. Prévenir les attaques DNS

Inspectez le contenu de votre résolveur, généralement le fichier /etc/resolv.conf, qui définit l'adresse IP des serveurs DNS qu'il doit utiliser pour interroger les noms de domaine, afin d'éviter toute tentative d'intrusion. -Attaques intermédiaires, trafic inutile pour les serveurs DNS racine, usurper ou créer une attaque DOS.

Ceci n'est que la première partie. Dans la partie suivante, nous aborderons d'autres conseils de sécurité pour CentOS 8/7.