Magic Quadrant™ pour la gestion des accès privilégiés 2025 : Netwrix reconnue pour la quatrième année consécutive. Téléchargez le rapport.

Plateforme
Centre de ressourcesBonnes pratiques
Bonnes pratiques de renforcement et de sécurité des serveurs Linux

Bonnes pratiques de renforcement et de sécurité des serveurs Linux

Introduction

La mise en œuvre de configurations sécurisées dans votre environnement informatique, y compris vos systèmes Unix et Linux, est une meilleure pratique de sécurité essentielle car elle réduit votre surface d'attaque et limite les dommages que les cyberattaques peuvent causer. En effet, le durcissement des systèmes est un contrôle central dans de nombreuses directives de conformité.

Ce guide explique ce qu'est le durcissement de configuration et comment établir des normes de construction renforcées pour vos systèmes Linux et Unix.

Les bases du durcissement des systèmes

Le serveur Linux le plus sécurisé ou tout autre ordinateur est celui qui est éteint et déconnecté du réseau. Mais si nous voulons réellement utiliser la machine pour fournir des services informatiques, nous devons maximiser ses défenses de sécurité lorsqu'elle est démarrée et connectée au réseau ou même à Internet.

C'est là que le durcissement entre en jeu. Durcir un système signifie optimiser sa configuration pour des opérations sécurisées et la protection des données. La gamme des vulnérabilités exploitables est vaste, donc il y a trois règles principales à suivre :

  • Supprimez les fonctionnalités qui ne sont pas nécessaires pour le rôle de l'ordinateur. Par exemple, les systèmes d'exploitation et autres applications sont généralement livrés dans un état de « démarrage rapide », préchargés utilement avec des utilitaires et des fonctionnalités que les utilisateurs pourraient vouloir. Cependant, plus il y a de fonctions disponibles, plus la surface d'attaque présentée par l'hôte est grande. Par conséquent, assurez-vous de désactiver les fonctions dont vous n'avez pas besoin et évitez d'ajouter des fonctions inutiles autant que possible.
  • Appliquez les correctifs et mettez à jour rapidement. Les défauts de conception des logiciels créent des vulnérabilités que les attaquants peuvent exploiter. Les éditeurs de logiciels fournissent des correctifs ou des versions mises à jour du logiciel pour remédier à ces problèmes, alors assurez-vous que tous les logiciels, y compris les systèmes d'exploitation, soient toujours entièrement mis à jour.
  • Maintenez des paramètres de configuration sécurisés. Il est crucial que les paramètres sécurisés soient activés et maintenus.

Renforcement du système Linux

Sans surprise, le renforcement de la sécurité Linux est une procédure spécialisée à part entière, compte tenu de la grande variété de distributions Linux légèrement différentes. Bien qu'il existe de nombreux guides, listes de vérification et conseils pour les meilleures pratiques de renforcement des serveurs Linux — y compris les benchmarks du Center for Internet Security (CIS) et les DISA STIGs — ce guide fournira les options de configuration clés à adopter.

Important: Assurez-vous de sauvegarder vos systèmes avant d'appliquer des paramètres renforcés et de tester après un redémarrage. Il est facile de se retrouver bloqué !

Supprimez les fonctionnalités inutiles

Commencez par éliminer toutes les fonctionnalités, utilitaires et services qui ne sont pas nécessaires au fonctionnement du serveur. Désinstallez les logiciels inutiles et désactivez les services système qui ne sont pas nécessaires. Étant donné que le matériel de votre infrastructure présente également des vulnérabilités exploitables, assurez-vous que toutes les interfaces accessibles, telles que les ports USB, soient désactivées ou même physiquement retirées de la machine.

Le processus ici consiste à se connecter et obtenir un rapport des paquets et services installés, puis à l'examiner pour identifier ceux qui peuvent être supprimés ou désactivés. Pour les éléments essentiels qui restent, vérifiez les correctifs disponibles pour remédier aux vulnérabilités connues contre les exploits.

Comment lister les logiciels sur les systèmes Linux/Unix

Système

Commandes à utiliser

Linux (par exemple, RedHat ou CentOS)

rpm -qa --qf '%{NAME} %{VERSION} %{VENDOR}\\n'

Debian Linux (par exemple, Ubuntu)

dpkg -l

Fedora Linux

Pour lister les logiciels depuis un terminal ou une session putty :

service --status-all

chkconfig --list

systemctl -a

Pour arrêter un service :

Service <Service-Name> arrêt

Chkconfig <Service-Name>

Systemctl stop <Service-Name>

Pour désactiver un service :

Systemctl disable <Service-Name>

Chkconfig <Service-Name> off

Inspectez également le chemin /etc/init.d/ pour tout script de contrôle de service et exécutez ls /etc/init.d/ pour révéler tous les scripts de démarrage ; puis renommez ou supprimez ceux qui doivent être désactivés.

Minimisez les ports ouverts et autres vulnérabilités réseau

Les attaques basées sur le réseau figurent parmi les menaces les plus courantes. Pour réduire votre risque, identifiez les ports accessibles via le réseau ouverts et supprimez tous les processus correspondants qui ne sont pas nécessaires. Pour lister les ports ouverts sur Linux, utilisez la commande suivante :

      ss -tulpn | egrep “LISTEN” | awk ‘{print “IP-Port “ $4 “ PID/Name “ $7}’
      

De plus :

  • Assurez-vous que le service TCP Wrappers est actif.
  • Définissez à la fois une liste blanche etc/hosts.allow et une liste noire etc/hosts.deny.
  • Utilisez les services iptables ou Firewalld avec une politique de refus pour tout le trafic IP V4 et V6, même si vous utilisez des WAF tiers et une protection pare-feu sur le réseau.
  • Bloquez le trafic ICMP pour contrecarrer les scans ping utilisés par les outils de hackers pour la découverte d'appareils.

Révisez les comptes utilisateurs et l'authentification

Examinez les comptes d'utilisateurs locaux et supprimez ceux qui ne sont pas nécessaires. Pour les comptes d'utilisateurs locaux qui restent, une politique de mot de passe robuste doit être configurée couvrant la complexité du mot de passe, sa longueur, son expiration, la réutilisation et la fréquence de changement. Assurez-vous également d'utiliser des algorithmes de hachage forts pour les mots de passe stockés.

Les comptes utilisateurs et l'authentification doivent être régis par un système de contrôle centralisé tel que Active Directory ou, encore mieux, une solution moderne de Privileged Access Management (PAM) qui permet une stratégie de Zero Standing Privilege, ce qui annule de nombreux problèmes liés aux comptes utilisateurs traditionnels et aux privilèges attribués de manière permanente. Bien sûr, n'utilisez jamais root et assurez-vous toujours que l'élévation sudo est utilisée uniquement en cas de nécessité.

Comment configurer une politique de mot de passe pour les comptes locaux

Localisez et modifiez le fichier de configuration suivant : /etc/security/pwquality.conf

Pour appliquer un mot de passe de 14 caractères :

      minlen = 14
      

Pour appliquer la complexité à tous les mots de passe :

      minclass = 14
      

OU

      dcredit = -1

ucredit = -1

ocredit = -1

lcredit = -1
      


Pour appliquer une politique de verrouillage de mot de passe forte :

Mettez à jour les fichiers /etc/pam.d/system-auth et /etc/pam.d/password-auth pour définir les options suivantes :

      auth required pam_faillock.so preauth silent deny=5 unlock_time=900

auth required pam_faillock.so authfail deny=5 unlock_time=900
      

Pour appliquer une politique d'historique de mot de passe de 5 mots de passe ou plus :

Ajoutez l'option remember=5 aux lignes pam_pwhistory.so et pam_unix.so dans /etc/pam.d/password-auth :

      password requisite pam_pwhistory.so try_first_pass local_users_only enforce-for-root retry=3 remember=5

password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok remember=5
      

Pour appliquer un hachage de mot de passe fort :

Mettez à jour les fichiers /etc/pam.d/system-auth et /etc/pam.d/password-auth comme suit :

/etc/pam.d/password-auth:

      password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok
      

/etc/pam.d/system-auth:

      password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok remember=5
      

Examinez les comptes de service

Les comptes système et de service doivent être révisés et ceux qui ne sont plus nécessaires doivent être supprimés.

Les comptes de service sont « renforcés » dans la mesure où ils ne prennent en charge que le fonctionnement d'un processus exécuté localement et ne fournissent pas de shell utilisateur, de sorte que ces comptes ne peuvent jamais être utilisés pour accéder au serveur par une connexion utilisateur. Cependant, un principe fondamental de renforcement est de minimiser les fonctionnalités, donc les comptes de service inutilisés devraient quand même être supprimés.

Renforcement SSH pour Linux et Unix

Comme principal moyen d'administration à distance de vos systèmes Linux, SSH nécessite une attention particulière. Il existe un certain nombre de paramètres par défaut dans le fichier /etc/ssh/sshd_config qui doivent être activés afin de renforcer le fonctionnement du serveur SSH. 

SSH est utilisé pour tous les accès Linux et Unix, donc les directives suivantes s'appliquent également pour le durcissement Unix.

Activez la version 2 du protocole SSH

Par exemple, la configuration par défaut active la version 1 obsolète et moins sécurisée du protocole SSH. Les recommandations de durcissement CIS suggèrent d'activer la version 2 pour renforcer la sécurité. Pour ce faire, il suffit de décommenter le paramètre Protocol 2 dans le fichier de configuration (/etc/ssh/sshd_config) en supprimant le #, comme suit :

Entrée par défaut dans /etc/ssh/sshd_config:

      # The default requires explicit activation of protocol 1

# Protocol 2
      

Une configuration plus sécurisée :

      # The default requires explicit activation of protocol 1

Protocol 2
      

Renforcement supplémentaire

De plus, appliquez les paramètres renforcés CIS recommandés au fichier de configuration :

      LogLevel INFO

IgnoreRhosts yes

…

PermitEmptyPasswords no

…

LoginGraceTime 60

PermitRootLogin no

MaxAuthTries 4

HostbasedAuthentication no

…

X11Forwarding no…

PermitUserEnvironment no

…

ClientAliveInterval 300

ClientAliveCountMax 0

…

Banner /etc/issue.net

 …

AllowUsers <Specify user names, separated by spaces, e.g. user1 user2>
      

Notes complémentaires :

/etc/issue.net devra être créé/modifié pour inclure une bannière appropriée, par exemple

Attention ! L'accès non autorisé à ce système est interdit et sera poursuivi par la loi. En accédant à ce système, vous acceptez que vos actions puissent être surveillées si une utilisation non autorisée est suspectée.

Ensemble avec AllowUsers, AllowGroups est également pris en charge comme un commutateur/ mot-clé de configuration.

Durcissement du serveur Web Apache

Linux est la plateforme privilégiée pour héberger des applications web basées sur Internet, et Apache Tomcat ainsi qu'Apache HTTP Server (souvent appelé Apache HTTPD) sont deux des options les plus populaires pour la diffusion de contenu web.

L'approche pour le durcissement de la configuration Apache est la même : minimiser les fonctionnalités et mettre en œuvre des paramètres de configuration sécurisés lorsque disponibles.

Vérifiez que seuls les modules Apache essentiels sont activés :

      httpd -M
      

Par exemple, mod_dav et mod_dav_fs doivent toujours être désactivés, tandis que le module log_config doit toujours être chargé et activé.

Confirmez que la définition de package.access inclut uniquement les packages autorisés suivants :

package.access = sun.,org.apache.catalina.,org.apache.coyote.,

org.apache.tomcat.,org.apache.jasper.

Configurez le fichier server.xml :

Le fichier  server.xml situé dans le chemin CATALINA_HOME/conf est le principal magasin de configuration pour le serveur web. Les paramètres recommandés à inclure dans  server.xml sont les suivants :

  • Désactivez le port d'arrêt :
      Server port="-1" shutdown="SHUTDOWN">
      
  • Supprimez les connecteurs inutilisés, y compris le HTTPConnector par défaut et le AJPConnector. Pour supprimer le HTTPConnector, supprimez ou commentez cette balise :
      Connector className="org.apache.catalina.connector.http.HttpConnector"

...

connectionTimeout="60000"/>
      

Supprimez les paramètres par défaut de publicité de présence :

Pour Tomcat :

Définissez l'attribut xpoweredBy à false:

      xpoweredBy="false" />
      

Pour le serveur HTTP :

  • Supprimez le index.html par défaut et mettez en commentaire les lignes suivantes du /etc/httpd/conf.d/welcome.conf en utilisant un # ou ## pour chaque ligne :
      ##<LocationMatch "^/+$">

## Options -Indexes

## ErrorDocument 403 /error/noindex.html

##</LocationMatch>
      
  • Mettez en commentaire la section Server-Status :
      ##<Location /server-status>

## SetHandler server-status

## Order deny,allow

## Deny from all

## Allow from .example.com

##</Location>
      
  • Mettez en commentaire la section server-info :
      ##<Location /server-info>

## SetHandler server-info

## Order deny,allow

## Deny from all

## Allow from .example.com

##</Location>
      

Désactiver les installations de traçage de diagnostic :

Définissez l'attribut allowTrace pour chaque Connector à false

Désactivez le déploiement automatique des applications et désactivez le déploiement au démarrage :

      autoDeploy="false"

deployOnStartup="false"
      

Renforcement supplémentaire :

  • Assurez-vous que les permissions des fichiers et dossiers sont restrictives et que les services Apache s'exécutent à l'aide de comptes de service non-shell (c'est-à-dire, des comptes qui ne peuvent pas être utilisés pour se connecter au système). Désactivez le Directory Listing et la navigation.
      $CATALINA_HOME

$CATALINA_BASE
      

Durcissement du noyau pour Linux

SELinux modifie le noyau Linux pour appliquer des contrôles d'accès obligatoires, limitant la manière dont les processus Linux peuvent accéder aux fichiers et aux programmes. Cette couche supplémentaire de restriction offre un mécanisme de protection fondamental contre les logiciels malveillants de type rootkit. AppArmor fournit un niveau équivalent de MAC pour les distributions Debian.

Paramètres SELinux

Installez SELinux sur CentOS/RHEL :

      dnf install libselinux
      

Activez SELinux :

Par défaut, SELinux sera désactivé. Pour activer SELinux au démarrage, edit/etc/default/grub et supprimez ces paramètres par défaut :

      selinux=0

enforcing=0
      

Définissez la configuration SELinux sur enforcing

Modifiez le fichier /etc/selinux/config pour y inclure ce qui suit :

      SELINUX=enforcing

SELINUXTYPE=default
      

Vérifiez que tous les services sont exécutés avec un contexte de sécurité contrôlé par SELinux :

La commande suivante listera tous les services lancés depuis le processus init, qui peuvent nécessiter un contexte de sécurité non par défaut qui leur est attribué :

      ps -eZ | egrep "initrc" | egrep -vw "tr|ps|egrep|bash|awk" | tr ':' ' ' | awk '{ print $NF }'
      

Redémarrez l'ordinateur pour vous assurer que tous les paramètres ont été chargés.

Paramètres AppArmor

Installez AppArmor sur Ubuntu/Debian :

      apt-get install apparmor apparmor-profiles apparmor-utils
      

Activez AppArmor au démarrage :

Modifiez /etc/default/grub et ajoutez les paramètres suivants :

      GRUB_CMDLINE_LINUX="apparmor=1 security=apparmor"
      

Assurez-vous que tous les profils AppArmor sont en mode d'application :

      aa-enforce /etc/apparmor.d/*
      

Renforcement d'Embedded Linux

Linux embarqué offre un système d'exploitation allégé pour les dispositifs ou systèmes embarqués, tels que les smartphones, les smart TV, les boîtiers décodeurs et les routeurs internet haut débit.

Un système d'exploitation simplifié avec une empreinte réduite est attrayant lorsque la gamme complète de fonctions habituellement fournies par les appareils Linux de niveau serveur n'est pas nécessaire et que les ressources matérielles telles que le stockage, la mémoire et le CPU ont été minimisées pour économiser sur les coûts de fabrication. Par exemple, la plateforme open-source Android développée par Google est optimisée pour les smartphones et les télévisions, et le firmware de routeur OpenWrt est utilisé pour une large gamme de routeurs à large bande.

La fonctionnalité incluse dans le système d'exploitation varie considérablement en fonction de l'application prévue. Par exemple, Android comprend le verrouillage d'écran, la reconnaissance faciale, le support de saisie de PIN et les services de localisation ; ces éléments ne sont pas nécessaires dans les systèmes d'exploitation pour les routeurs domestiques, mais les fonctionnalités VPN, Wi-Fi invité et limitation de bande passante y sont incluses. En conséquence, les conseils de renforcement sont spécifiquement liés à l'appareil et à la plateforme utilisés.

Points forts du renforcement Android

Assurez-vous que le micrologiciel de l'appareil est à jour :

Allez dans Paramètres | Système | Mises à jour du système; sélectionnez Rechercher des mises à jour et installez toutes les mises à jour disponibles.

Installez Google Play et les mises à jour de sécurité :

Allez à Paramètres | Sécurité :

  • Sélectionnez Google Security Check-Up et appliquez toutes les mises à jour disponibles.
  • Sélectionnez Google Play system update et appliquez toutes les mises à jour disponibles.

Activez la sécurité générale de l'appareil :

  1. Rendez-vous dans Settings | Security | Device Security et procédez comme suit :
  • Définissez ‘Screen Lock’ sur ‘Activé’.
  • Définissez ‘Pattern Visible’ sur ‘Désactivé’.
  • Définissez ‘Automatically Lock’ sur ‘Immediately’.
  • Définissez ‘Power Button Instantly Locks’ sur ‘On’.
  • Définissez les applications d'administration de l'appareil ‘Find My Device’ à ‘Activé’.
  • Définissez ‘Allow remote lock and erase’ sur ‘Enabled’.

2. Allez dans Paramètres | Système | Avancé et faites ce qui suit :

  • Définissez les ‘Options pour les développeurs’ sur ‘Désactivé’.

3. Allez dans Settings | Apps & Notifications | Advanced | Special App Access et procédez comme suit :

  • Définissez ‘Install Unknown Apps’ sur ‘Non Autorisé’.

4. Lancez Play Store | Menu et procédez comme suit :

  • Sélectionnez ‘My Apps & Games’ et cliquez sur ‘Update All’.

Points forts du renforcement de OpenWrt

  • Changez le mot de passe administrateur par défaut.
  • Assurez-vous que le micrologiciel est toujours mis à jour avec la dernière version.

Renforcement de Kali Linux

Kali Linux a été optimisé pour être la plateforme de choix des testeurs d’intrusion, il dispose donc d’une large gamme d’utilitaires d’audit de sécurité et de tests de pénétration.

Puisque Kali Linux est une distribution Linux basée sur Debian, vous pouvez utiliser les conseils de renforcement de Linux ci-dessus pour aborder les faiblesses de sécurité dans les systèmes Kali Linux.

Renforcement de la sécurité Linux Mint

De même pour Linux Mint, en tant que plateforme Linux de bureau dérivée d'Ubuntu, les mêmes procédures de renforcement utilisées pour Debian-Linux doivent être adoptées. Suivez les étapes de la liste de vérification du renforcement de Linux précédente et appliquez-les à vos systèmes Linux Mint.

Renforcement de Arch Linux

En tant que distribution Linux indépendante ne dérivant pas directement de Debian ou Fedora, Arch Linux est un cas particulier en ce qui concerne les mesures de renforcement, bien que les concepts de comment et quoi renforcer soient similaires. Le code Arch est intentionnellement conçu comme une distribution Linux épurée 'sans remplissage' et, de ce fait, nécessitera moins de travail de renforcement lorsqu'il s'agira de supprimer/désactiver les services inutiles.

Mot Final

Même un système renforcé peut encore être compromis, en particulier par ce qui suit :

  • Menaces de jour zéro — des exploits dont nous n'avions aucune connaissance et contre lesquels nous n'avions donc pas protégé
  • Les ransomwares et autres logiciels malveillants
  • Les menaces internes, incluant à la fois les pirates utilisant des identifiants détournés et les utilisateurs abusant de leur accès

Par conséquent, en plus de renforcer vos systèmes, vous avez besoin de défenses supplémentaires. En particulier, il est essentiel de surveiller l'intégrité des systèmes et des fichiers. Tout changement inattendu pourrait conduire à une violation ou à un autre incident de sécurité. Netwrix Change Tracker fournit des alertes en temps réel sur tous les changements non planifiés, et il prend en charge toutes les plateformes Linux et Unix.

Netwrix Change Tracker

Renforcez la confiance dans l'intégrité de vos systèmes Linux/Unix avec le logiciel de gestion de la configuration de sécurité de Netwrix

Demandez un essai gratuit

Partager sur