LFCA Comment améliorer la sécurité du système Linux - Partie 20

LFCA Comment améliorer la sécurité du système Linux - Partie 20

Comme nous le savons tous, l'utilisateur racine est King et Wields Illimited Privileges sur le système Linux. Cependant, les utilisateurs non racinaires sont limités aux tâches de base. De plus, les utilisateurs de Sudo ne se voient accorder qu'un certain degré de privilèges racinaires, comme l'ajustement jugé par l'utilisateur racine pour effectuer des tâches élevées.

Des problèmes surviennent lorsque les utilisateurs réguliers ont un accès incontrôlé aux ressources ou sont intensifiés pour enraciner involontairement. Il s'agit d'un grave risque de sécurité qui pourrait provoquer des violations, des modifications indésirables et, dans le pire des cas, en écrasant le système. Un autre risque potentiel est lorsque les fichiers ont des autorisations de fichiers moins sécurisées. Par exemple, les fichiers de démarrage avec des autorisations d'écriture pour les utilisateurs globaux pourraient facilement être modifiés ou corrompus, ce qui se traduit par un système brisé.

[Vous pourriez également aimer: des conseils utiles pour sécuriser les données et Linux]

Bien que nous puissions mettre en œuvre la sécurité physique, du réseau et des données, un utilisateur malveillant peut contourner les mesures de sécurité et profiter de ces lacunes de sécurité. C'est pour cette raison que la sécurité du système de fichiers devrait être prise au sérieux. Il fournit une couche supplémentaire de défense face aux attaques ou aux menaces d'initiés des employés malveillants qui n'ont pas à faire le lourdement dans le contournement des mesures de sécurité pour accéder aux fichiers.

Dans la sécurité du système, nous nous concentrerons sur les points clés suivants:

  • Droits d'accès - autorisation des utilisateurs et du groupe.
  • Appliquer les politiques de mot de passe avec le module PAM.

Droits d'accès - Séparation des utilisateurs et du groupe

Vous devez probablement entendre que tout dans Linux est considéré comme un fichier. Et si ce n'est pas le cas, c'est un processus. Chaque fichier d'un système Linux appartient à un utilisateur et à un utilisateur de groupe. Il porte également des autorisations de fichier pour 3 catégories d'utilisateurs: utilisateur (u), Groupe (g), et d'autres (o). Les autorisations sont représentées dans la lecture, l'écriture et l'exécution ( rwx ) pour chaque catégorie utilisateur.

RWX RWX RWX Groupe d'utilisateurs autres 

Comme indiqué précédemment, dans la section Linux Basics, vous pouvez afficher les autorisations de fichier en utilisant le format long de la commande LS comme indiqué.

$ ls -l 
Listing des fichiers dans Linux

Juste pour récapituler, les autorisations sont généralement représentées par neuf caractères. Les trois premiers caractères représentent les droits d'accès de l'utilisateur réel possédant le fichier. Le deuxième jeu de caractères représente les autorisations du propriétaire du groupe du fichier. Enfin, le dernier ensemble pour d'autres utilisateurs ou mondiaux. Ces personnages sont perpétuellement dans le lire, écrire, exécuter (rwx) commande.

Après les autorisations, nous avons la propriété des utilisateurs et du groupe, suivis du fichier ou de la taille du répertoire, de la date de modification et du nom du fichier.

Modification des autorisations et propriétaires de fichiers / répertoires

Les autorisations de fichiers et répertoires des utilisateurs peuvent être modifiées comme ajustement jugé. La règle de base est d'utiliser le principe de sécurité le moins privilégié. Autrement dit, assurez-vous que les utilisateurs obtiennent les droits d'accès minimum ou les autorisations nécessaires pour effectuer le travail.

Le principe des moindres privilèges limite les utilisateurs à certains rôles uniquement et, ce faisant, minimise le risque d'accès aux attaquants et de modification des données critiques en tirant parti d'un compte utilisateur à faible levier. Il réduit également la surface d'attaque et limite la propagation des logiciels malveillants dans le cas où l'attaquant prend le contrôle de votre système.

Par conséquent, si un utilisateur doit uniquement afficher le contenu d'un fichier ou d'un répertoire, il ne doit pas être obtenu des autorisations d'exécution ou d'écriture. Au niveau très basique, n'accordez que le moins d'autorisations et de possessions requises par l'utilisateur pour accomplir des tâches. Nous avons abordé comment modifier les autorisations et les propriétés des utilisateurs sur les fichiers / répertoires à l'aide des commandes ChMOD et CHOWN dans la rubrique Linux de base.

Mode d'autorisation bit collant

Pour que l'administrateur système ait plus de facilité à gérer les autorisations, les autorisations spéciales ou les droits d'accès peut être accordé à des répertoires entiers. L'une des autorisations spéciales qui peuvent être appliquées pour restreindre la suppression et la modification d'un fichier ou d'un répertoire est le bit collant.

Bit collant

Dans un scénario où un répertoire partagé peut être accessible par tous les utilisateurs du système ou du réseau, il existe un risque potentiel que certains utilisateurs puissent supprimer ou modifier les fichiers dans le répertoire. Ce n'est pas désiré si vous souhaitez maintenir l'intégrité du contenu du répertoire. Et c'est là que le bit collant entre en jeu.

Un bit collant est un ensemble d'autorisation de fichier spécial sur un fichier ou un répertoire entier. Il n'accorde que le propriétaire de ce fichier / répertoire l'autorisation de supprimer ou d'apporter des modifications au contenu du fichier ou du répertoire. Aucun autre utilisateur ne peut supprimer ou modifier le fichier / répertoire. Il a la valeur symbolique de t et une valeur numérique de 1000.

Pour allumer un morceau collant sur un répertoire, utilisez le commande chmod comme suit:

$ chmod + t Directory_name 

Dans l'exemple ci-dessous, nous avons appliqué un morceau collant au répertoire appelé test. Dans le cas d'un répertoire, tout le contenu héritera des autorisations bit collantes. Vous pouvez vérifier les autorisations bit collantes en utilisant le LS -LD commande. Assurez-vous de remarquer le t symbole à la fin des autorisations de fichier.

Test $ ls -ld 
Réglez un bit collant dans Linux

Si un autre utilisateur essaie de supprimer le répertoire ou de modifier le fichier dans le répertoire, ils sont accueillis avec un Permission refusée erreur.

Permission bit collante refusée

Et c'est l'essentiel de l'autorisation du fichier de bit de bâton.

Surveillance des autorisations SUID et SGID

Le Suid (Définir l'ID utilisateur) est une autre autorisation de fichier spécial qui permet à un autre utilisateur régulier d'exécuter un fichier avec les autorisations de fichier du propriétaire du fichier. Il est généralement indiqué par une valeur symbolique s à la partie de l'utilisateur des autorisations de fichiers au lieu d'un X qui représente les autorisations d'exécution. Le SUID a une valeur numérique de 4000.

Le SGID, (Set Group ID) permet à un utilisateur régulier de hériter des autorisations de groupe du propriétaire du groupe de fichiers. Plûtot que le X Pour exécuter les autorisations, vous verrez un s Dans la partie de groupe des autorisations de fichiers. Le SGID a une valeur numérique de 2000.

Aussi pratique qu'ils s'avèrent être, le Suid et SGID Les autorisations sont associées aux risques de sécurité et doivent être évitées à tout prix. C'est parce qu'ils accordent des privilèges spéciaux aux utilisateurs réguliers. Si un intrus se faisant passer pour un utilisateur régulier apparaît d'un fichier exécutable appartenant à l'utilisateur racine avec un Suid bits réglés dessus, ils peuvent utiliser cette faille et exploiter le système.

Pour trouver tous les fichiers avec Suid bit définis dans Linux Exécutez la commande find en tant qu'utilisateur racine.

$ find / -perm -4000 type -f 

Pour les répertoires exécutés:

$ Find / -Perm -4000 Type -D 

Pour trouver tous les fichiers avec SGID Bit Set Run:

$ find / -perm -2000 type -f 

Pour les répertoires, exécutez:

$ Find / -Perm -2000 Type -D 

Pour supprimer le Suid bit sur un fichier, exécutez la commande chmod comme indiqué:

$ chmod u-s / path / to / fichier 

Pour supprimer le bit SGID sur un fichier, exécutez la commande:

$ chmod g-s nom de fichier / chemin / vers / fichier 

Appliquer les politiques de mot de passe avec le module PAM

Il n'est pas rare que les utilisateurs définissent les mots de passe faibles. Un bon nombre défini des mots de passe courts, simples et facilement supposables pour éviter de les oublier pendant la connexion. Bien que des mots de passe pratiques et faibles peuvent facilement être violés à l'aide de scripts d'attaque brute-force.

Le Pam module ( Module d'authentification enfichable ) est un module qui permet aux administrateurs système d'appliquer les politiques de mot de passe sur les systèmes Linux. Pour accomplir cela, vous avez besoin du pam_pwquality module fourni par le libpam_pwquality bibliothèque. Le pam_pwquality Le module vérifie la force d'un mot de passe par rapport à un ensemble de règles et un dictionnaire système et identifie les choix de mot de passe faibles.

Pour installer le pam_pwquality module sur Ubuntu 18.04 et les versions ultérieures, exécutez:

$ sudo apt installer libpam_pwquality 

Pour Rhel / centos 8, Exécutez la commande:

$ sudo dnf installer libpwquality 

Le fichier de configuration se trouve à l'emplacement suivant:

  • Sur Debian-Systems - / etc / pam.D / mot de passe commun
  • Sur les systèmes Redhat - / etc / pam.D / System-Auth

Configuration de la stratégie de mot de passe

Avant de commencer à modifier le Pam Fichier de configuration, envisageons d'abord de rassembler des informations sur les contrôles de vieillissement du mot de passe.

Détails de vieillissement du mot de passe

Ceux-ci peuvent être trouvés dans le / etc / connexion.de déposer.

Le fichier contient les contrôles de mot de passe de clé suivants:

  • Pass_max_days: Nombre maximum de jours Un mot de passe peut être utilisé.
  • Pass_min_days: Nombre minimum. des jours autorisés entre les modifications de mot de passe.
  • Pass_warn_age: Nombre de jours d'avertissement donné avant l'expiration d'un mot de passe.

Les valeurs par défaut sont indiquées ci-dessous.

Vieillissement du mot de passe Linux

Le Pass_max_days L'attribut limite le nombre de jours où un utilisateur peut utiliser son mot de passe. Lorsque cette valeur est atteinte ou que le mot de passe expire, l'utilisateur est obligé de modifier son mot de passe afin de se connecter au système. Par défaut, cette valeur est définie sur 99999, qui se traduit par 273 années. Cela n'a pas beaucoup de sens en ce qui concerne la sécurité que l'utilisateur peut continuer à utiliser son mot de passe pendant toute sa durée de vie.

Vous pouvez définir ceci sur une valeur significative, disons 30 jours comme indiqué.

Pass_max_days 30 

Après 30 jours de s'écouler, l'utilisateur sera obligé de changer son mot de passe en un autre.

Le Pass_min_days L'attribut énonce la durée minimale que les utilisateurs peuvent utiliser leur mot de passe avant de le modifier. Qu'est-ce que cela signifie? Si, par exemple, cette valeur est définie sur 15 jours, l'utilisateur ne pourra plus modifier son mot de passe avant 15 jours.

Pass_max_days 15 

Le Pass_warn_age L'attribut spécifie le nombre de jours qu'un utilisateur obtiendra un avertissement concernant l'expiration imminente de son mot de passe avant son expiration. Par exemple, vous pouvez régler ceci sur 7 jours comme indiqué.

Pass_max_days 7 

NOTE: Ces contrôles de mot de passe ne fonctionnent pas avec des comptes préexistants. Ils ne sont appliqués qu'aux nouveaux comptes créés après avoir définie les règles.

Définir la complexité du mot de passe avec le module PAM

Avant de modifier le / etc / pam.D / mot de passe commun fichier, créer une copie de sauvegarde. Dans cet exemple, nous avons créé le mot de passe commun.bak Fichier de copie de sauvegarde.

$ sudo cp / etc / pam.D / mot de passe commun / etc / pam.D / mot de passe commun.bak 

Puis ouvrez le fichier.

$ sudo vim / etc / pam.D / mot de passe commun 

Localisez la ligne indiquée ci-dessous.

Mot de passe requis PAM_PWquality.Alors réessayez = 3 
Définir la complexité du mot de passe avec PAM

Le recommencez L'option définit le nombre maximum de fois où vous devez saisir le mot de passe bon avant d'obtenir une erreur. Par défaut, cela est défini sur 3. Ce n'est qu'une option et nous allons inclure plusieurs options.

Ajoutez les attributs suivants à la ligne:

minlen = 10 Difok = 3 lcredit = -1 uCredit = -1 dcredit = -1 oCredit = -1 reject_username 

Étouffons ces attributs.

  • minlen = 10: Définit la taille minimale acceptable pour le mot de passe. Dans ce cas, 10 caractères.
  • difok = 3: C'est le nombre maximum de caractères qui sont présents dans le mot de passe précédent.
  • lcredit = -1: Il s'agit du nombre minimum de caractères minuscules qui devraient être présents dans le mot de passe.
  • ucedit = -1: Le nombre maximum de caractères minuscules qui doit être présent dans le mot de passe.
  • dcredit = -1: Le nombre minimum de caractères numériques qui doit être défini dans le mot de passe.
  • oCredit = -1: Le nombre minimum de caractères spéciaux E.g @, #, et cela devrait être défini dans le mot de passe.
  • rejeter_username: Cette option déclenche le rejet du mot de passe si le mot de passe est le nom d'utilisateur en format droit ou inversé.

Si vous essayez de créer un nouvel utilisateur qui ne redevient pas les stratégies de mot de passe, vous allez vous présenter à des erreurs comme indiqué.

Créer un nouvel utilisateur dans Linux
Résumé

Cela conclut le sujet des principes fondamentaux de la sécurité et de la sécurité du système en général. Dans l'ensemble du chapitre, nous avons mis en lumière des mesures de sécurité de base que vous pouvez mettre en œuvre pour protéger votre système Linux auprès d'utilisateurs malveillants tels que des pirates ou des employés mécontents.

Devenez un associé IT Certified IT (LFCA)