Le verrouillage du système ne doit pas nécessairement être une tâche importante ou horrible qui effraie les cœurs les plus blasés des administrateurs système. Non, ce n'est pas intuitif ni nécessairement trivial de verrouiller correctement un serveur Linux, mais ce n'est pas non plus de la physique quantique. Dans mon article précédent, Sysadmin security :8 Linux lockdown controls, j'ai couvert huit modifications essentielles que vous devez apporter à chaque système Linux, quelle que soit sa fonction. Dans cet article, je couvre davantage de contrôles système que vous pouvez mettre en œuvre rapidement et sans frais.
Ces contrôles proviennent de diverses sources, telles que ma propre expérience, DISA STIG et d'autres administrateurs système. Les contrôles répertoriés ici ne sont pas classés par ordre particulier d'importance ou de gravité.
Bannière
Que votre système dispose ou non d'une interface utilisateur graphique, vous devez créer une bannière qui s'affiche pour l'utilisateur lors de la connexion. La bannière doit avertir l'utilisateur que le système est protégé par
Modifiez le /etc/issue
pour les utilisateurs de la console et le /etc/issue.net
pour les utilisateurs du réseau. Assurez-vous de fournir le chemin complet du fichier que vous utilisez pour la bannière dans le /etc/ssh/sshd_config
fichier comme suit :
Banner /etc/issue.net
Vous pouvez utiliser n'importe quel fichier, mais vous devez modifier le chemin de la bannière et le faire pointer vers le fichier contenant votre message.
Non, la mise en place d'une bannière n'empêchera certainement pas un attaquant de compromettre votre système avec succès. Pourtant, cela détruit l'argument de la défense selon lequel l'attaquant n'avait pas conscience que le système était un système privé et protégé.
Application de la complexité des mots de passe
Appliquez la complexité des mots de passe, pour les systèmes qui utilisent encore des mots de passe, en modifiant les paramètres dans /etc/security/pwquality.con
fichier (illustré ci-dessous). Ce fichier contient une liste de paramètres modifiables pour appliquer des mots de passe forts pour vos systèmes.
# Configuration for systemwide password quality limits
# Defaults:
#
# Number of characters in the new password that must not be present in the
# old password.
# difok = 5
#
# Minimum acceptable size for the new password (plus one if
# credits are not disabled which is the default). (See pam_cracklib manual.)
# Cannot be set to lower value than 6.
# minlen = 9
#
# The maximum credit for having digits in the new password. If less than 0
# it is the minimum number of digits in the new password.
# dcredit = 1
#
# The maximum credit for having uppercase characters in the new password.
# If less than 0 it is the minimum number of uppercase characters in the new
# password.
# ucredit = 1
#
# The maximum credit for having lowercase characters in the new password.
# If less than 0 it is the minimum number of lowercase characters in the new
# password.
# lcredit = 1
#
# The maximum credit for having other characters in the new password.
# If less than 0 it is the minimum number of other characters in the new
# password.
# ocredit = 1
#
# The minimum number of required classes of characters for the new
# password (digits, uppercase, lowercase, others).
# minclass = 0
#
# The maximum number of allowed consecutive same characters in the new password.
# The check is disabled if the value is 0.
# maxrepeat = 0
Voici les valeurs recommandées. Remarque :Assurez-vous de décommenter la ligne de paramètre pour activer la valeur appliquée.
difok = 8
minlen = 15
dcredit = -1
ucredit = -1
lcredit = -1
ocredit = -1
minclass = 4
maxrepeat = 3
maxclassrepeat = 4
Ces paramètres permettent de garantir que les mots de passe système sont bien plus sécurisés que les paramètres par défaut. Il est recommandé d'utiliser une authentification multifacteur plutôt que des mots de passe pour renforcer la sécurité d'accès au système.
Remarque :Le minlen
(longueur minimale) doit être défini sur une valeur de 15 ou plus. Apprenez aux utilisateurs à utiliser des phrases secrètes plutôt que d'essayer de trouver un seul mot qui répond aux critères.
Durée de vie minimale du mot de passe
Certains utilisateurs intelligents changent leurs mots de passe plusieurs fois pour contourner la sécurité du système. Lorsqu'ils sont obligés de mettre à jour leurs mots de passe, ils changent leurs mots de passe suffisamment de fois pour battre la sécurité du système et éventuellement rétablir leur mot de passe à l'original. Le PASS_MIN_DAYS
paramètre dans le /etc/login.defs
fichier peut empêcher cette activité. Définissez la valeur sur 1 ou plus. La valeur par défaut est 0, ce qui cause le problème de sécurité.
PASS_MIN_DAYS 1
La définition de ce paramètre signifie que l'utilisateur doit conserver le nouveau mot de passe pendant au moins un jour avant de le modifier à nouveau. Vous pouvez définir la valeur sur n'importe quel nombre, mais empêcher l'utilisateur de changer immédiatement plusieurs fois semble résoudre le problème.
Durée de vie maximale du mot de passe
Peut-être encore plus dangereux que la durée de vie minimale du mot de passe est le paramètre de durée de vie maximale du mot de passe. La valeur par défaut est 99999, ce qui signifie que l'utilisateur n'aura jamais à changer son mot de passe. Il s'agit d'une grave violation de la sécurité.
En fonction des politiques et des besoins de sécurité de votre entreprise, vous devez appliquer les changements de mot de passe dans la plage de 60 à 90 jours. Pour appliquer une telle modification à l'échelle du système, modifiez le PASS_MAX_DAYS
paramètre dans le /etc/login.defs
fichier.
PASS_MAX_DAYS 60
Ce paramètre oblige les utilisateurs à changer leurs mots de passe tous les 60 jours. Oui, vous entendrez des grognements, surtout lorsqu'ils sont associés au PASS_MIN_DAYS
restriction. La sécurité l'emporte sur les plaintes des utilisateurs.
Sécurité sudo
Souvent, les administrateurs système configurent leurs comptes d'utilisateurs pour utiliser le sudo
commande sans mot de passe. Il s'agit d'une grave violation de la sécurité et qui ne devrait en aucun cas être autorisée sur n'importe quel système, quelle que soit sa fonction.
Modifiez le /etc/sudoers
fichier avec visudo
et supprimer toutes les instances de NOPASSWD dans le fichier.
De plus, vérifiez les instances de "!Authentication" dans le /etc/sudoers
dossier. Cette entrée permet à un utilisateur qui a sudo
accès pour continuer à utiliser sudo
sans ré-authentification. Il s'agit d'une violation de la sécurité. Supprimez toutes les instances de "!Authentication" de /etc/sudoers
fichier.
Délai d'échec de connexion
Pour aider à contrecarrer les attaques par force brute sur les comptes d'utilisateurs, vous devez définir le délai d'échec de la connexion sur au moins 4 secondes. Cela dissuade les attaques par force brute, mais peut également aider les utilisateurs à saisir le mot de passe correct, ce qui devient plus difficile pour les mots de passe et les phrases secrètes plus longs.
Ce paramètre est défini dans le /etc/login.defs
dossier. Le nombre correspond au nombre de secondes pendant lesquelles le système s'arrête avant de présenter une nouvelle invite de connexion après une tentative de connexion infructueuse.
FAIL_DELAY 4
Quatre secondes, c'est assez court pour ne pas frustrer les utilisateurs qui auraient pu appuyer sur la mauvaise touche par accident, mais assez long pour empêcher les tentatives de connexion répétées par les bots.
Désactiver le montage automatique de l'appareil
Le montage automatique des systèmes de fichiers introduit des risques de sécurité provenant de périphériques inconnus susceptibles d'être connectés à un système. En d'autres termes, un attaquant pourrait brancher un périphérique USB pour fournir une charge utile lorsque le périphérique se monte automatiquement. Désactivez le montage automatique en arrêtant et en désactivant autofs
services.
$ sudo systemctl stop autofs
$ sudo systemctl disable autofs
Il peut être un peu moins pratique de devoir monter manuellement les systèmes de fichiers après avoir branché un nouveau périphérique sur le système, mais l'augmentation de la sécurité compense les trois secondes de travail supplémentaires nécessaires pour monter un périphérique. Cela permet à l'administrateur système de désactiver, d'effacer ou d'éjecter un appareil non autorisé.
Restreindre les autorisations de création de fichiers
Nous revenons au /etc/login.defs
fichier pour apporter une modification à l'échelle du système. Lorsque les utilisateurs créent de nouveaux fichiers, ils reçoivent généralement des autorisations de 644 résultant du umask
paramètre de filtre de 022. Pour améliorer la sécurité, tous les nouveaux fichiers doivent être créés avec un umask
de 077, ce qui donne aux nouveaux fichiers 600 comme autorisations par défaut.
UMASK 077
Pour la plupart des utilisateurs, cela peut avoir moins d'importance, mais pour les fichiers créés par root, ce paramètre est obligatoire. Sa configuration à l'échelle du système garantit la cohérence.
Récapitulez
L'amélioration de la sécurité du système est l'une des principales tâches de l'administrateur système. Les nouveaux systèmes, les systèmes hérités et les systèmes qui remplissent des fonctions de niche sont les plus vulnérables de votre réseau. Une attention particulière doit être portée à la protection de chaque système de réseau. Souvent, la compromission d'un système permet d'en compromettre plusieurs, car l'attaquant se trouve désormais à l'intérieur du réseau et contrôle un ou plusieurs systèmes.
Certains de ces contrôles de sécurité peuvent sembler lourds, mais par rapport à la récupération après une violation, cela fait simplement partie de la "normalité" d'aujourd'hui
[ Vous voulez en savoir plus sur la sécurité ? Consultez la liste de vérification de la sécurité informatique et de la conformité. ]