Comme nous le savons tous, l'utilisateur root est roi et dispose de privilèges illimités sur le système Linux. Cependant, les utilisateurs non root sont limités aux tâches de base. En outre, utilisateurs sudo ne se voient accorder qu'un certain degré de privilèges root jugés aptes par l'utilisateur root à effectuer des tâches élevées spécifiques.
Des problèmes surviennent lorsque des utilisateurs réguliers ont un accès incontrôlé aux ressources ou sont transférés à la racine par inadvertance. Il s'agit d'un risque de sécurité grave qui pourrait provoquer des violations, des modifications indésirables et, dans le pire des cas, un plantage du 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 entraînerait une panne du système.
[ Vous pourriez aussi aimer: Conseils utiles pour sécuriser les données et Linux ]
Bien que nous puissions mettre en œuvre la sécurité physique, réseau et des données, un utilisateur malveillant peut contourner les mesures de sécurité et tirer parti de ces failles de sécurité. C'est pour cette raison que la sécurité du système de fichiers doit être prise au sérieux. Il fournit une couche de défense supplémentaire face aux attaques ou aux menaces internes d'employés malveillants qui n'ont pas à faire le gros du travail pour contourner les mesures de sécurité pour accéder aux fichiers.
En matière de sécurité du système, nous nous concentrerons sur les points clés suivants :
Vous devez probablement avoir entendu cela tout sous Linux est considéré comme un fichier. Et si ce n'est pas le cas, c'est un processus. Chaque fichier sur un système Linux appartient à un utilisateur et à un utilisateur de groupe. Il possède également des autorisations de fichiers pour 3 catégories d'utilisateurs: Utilisateur (vous), Grouper (g), et d'autres (o). Les autorisations sont représentées en lecture, écriture et exécution ( rwx ) pour chaque catégorie d'utilisateurs.
rwx rwx rwx. Groupe d'utilisateurs Autres.
Comme vu précédemment, dans le Section des bases de Linux, vous pouvez afficher les autorisations de fichier en utilisant le format long du commande ls comme montré.
$ ls -l.
Pour rappel, 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 propriétaire du fichier. Le deuxième jeu de caractères représente les autorisations du groupe propriétaire du fichier. Enfin, le dernier ensemble pour les autres utilisateurs ou les utilisateurs mondiaux. Ces personnages sont perpétuellement dans le lis, écrivez, exécuter (rwx) ordre.
Après les autorisations, nous avons les propriétés des utilisateurs et des groupes, suivies de la taille du fichier ou du répertoire, de la date de modification et enfin du nom du fichier.
Les autorisations d'utilisateur des fichiers et des répertoires peuvent être modifiées selon les besoins. La règle d'or consiste à utiliser le principe de sécurité du moindre privilège. En termes simples, assurez-vous que les utilisateurs disposent des droits d'accès ou des autorisations minimum requis pour effectuer le travail.
Le principe des moindres privilèges restreint les utilisateurs à certains rôles uniquement et, ce faisant, minimise le risque que des attaquants accèdent et modifient des données critiques en exploitant un compte d'utilisateur à faible levier. Il réduit également la surface d'attaque et limite la propagation des logiciels malveillants au cas où l'attaquant prendrait le contrôle de votre système.
Par conséquent, si un utilisateur n'a besoin que d'afficher le contenu d'un fichier ou d'un répertoire, il ne doit pas disposer d'autorisations d'exécution ou d'écriture. Au niveau très basique, n'accordez que le moins d'autorisations et de propriétés requises par l'utilisateur pour accomplir des tâches. Nous avons expliqué comment modifier les autorisations et les propriétés des utilisateurs sur les fichiers/répertoires à l'aide des commandes chmod et chown dans le commandes Linux de base sujet.
Pour que l'administrateur système puisse gérer plus facilement les autorisations, des autorisations spéciales ou des droits d'accès peuvent être accordés à 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 sticky bit.
Dans un scénario où un répertoire partagé accessible à tous les utilisateurs dans le système ou le réseau, il existe un risque potentiel que certains utilisateurs puissent supprimer ou modifier les fichiers à l'intérieur du répertoire. Ceci n'est pas souhaitable si vous souhaitez conserver l'intégrité du contenu du répertoire. Et c'est là qu'intervient la partie collante.
Un bit collant est une autorisation de fichier spéciale définie sur un fichier ou un répertoire entier. Il accorde uniquement au 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 activer un peu collant sur un répertoire, utilisez le commande chmod comme suit:
$ chmod +t nom_répertoire.
Dans l'exemple ci-dessous, nous avons appliqué un sticky bit au répertoire appelé test. Dans le cas d'un répertoire, tout le contenu héritera des permissions sticky bit. Vous pouvez vérifier les autorisations de bits persistants en utilisant le ls -ld commander. Assurez-vous de remarquer le t
symbole à la fin des autorisations de fichier.
$ ls -ld test.
Si un autre utilisateur essaie de supprimer le répertoire ou de modifier le fichier à l'intérieur du répertoire, il est accueilli par un Permission refusée Erreur.
Et c'est l'essentiel de l'autorisation de fichier stick bit.
Le SUID (Définir l'ID utilisateur) est une autre autorisation de fichier spéciale qui permet à un autre utilisateur normal d'exécuter un fichier avec les autorisations de fichier du propriétaire du fichier. Il est généralement désigné par une valeur symbolique s
à la partie de l'utilisateur des autorisations de fichier au lieu d'un X
qui représente les autorisations d'exécution. Le SUID a une valeur numérique de 4000.
Le SGID, (Définir l'ID de groupe) permet à un utilisateur ordinaire d'hériter des autorisations de groupe du propriétaire du groupe de fichiers. Plûtot que le X
pour les autorisations d'exécution, vous verrez un s
dans la partie groupe des autorisations de fichier. Le SGID a une valeur numérique de 2000.
Aussi pratiques qu'ils s'avèrent, les SUID et SGID les autorisations sont associées à des 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 normal tombe sur un fichier exécutable appartenant à l'utilisateur root avec un SUID peu mis dessus, ils peuvent utiliser cette échappatoire et exploiter le système.
Pour trouver tous les fichiers avec SUID bit défini dans Linux exécuter le rechercher la commande en tant qu'utilisateur root.
$ find / -perm -4000 type -f.
Pour les répertoires, exécutez :
$ find / -perm -4000 type -d.
Pour trouver tous les fichiers avec SGID jeu de bits exécuter :
$ 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 /chemin/vers/fichier.
Pour supprimer le bit SGID sur un fichier, exécutez la commande :
$ chmod g-s nom de fichier /chemin/vers/fichier.
Il n'est pas rare que les utilisateurs définissent des mots de passe faibles. Un bon nombre définit des mots de passe courts, simples et facilement devinables pour éviter de les oublier lors de la connexion. Bien que pratiques, les mots de passe faibles peuvent facilement être piratés à l'aide de scripts d'attaque par force brute.
Le PAM module ( Module d'authentification enfichable ) est un module qui permet aux administrateurs système d'appliquer des stratégies de mot de passe sur les systèmes Linux. Pour ce faire, vous avez besoin du pam_pwquality module fourni par le libpam_pwquality une 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 mots de passe faibles.
Pour installer le pam_pwquality module sur Ubuntu 18.04 et versions ultérieures, exécutez :
$ sudo apt install libpam_pwquality.
Pour RHEL / CentOS 8, exécutez la commande :
$ sudo dnf installe libpwquality.
Le fichier de configuration se trouve à l'emplacement suivant :
Avant de commencer à modifier le PAM fichier de configuration, envisageons d'abord de recueillir des informations sur les contrôles de vieillissement des mots de passe.
Ceux-ci peuvent être trouvés dans le /etc/login.defs fichier.
Le fichier contient les contrôles de mot de passe clés suivants :
Les valeurs par défaut sont indiquées ci-dessous.
Le PASS_MAX_DAYS L'attribut limite le nombre de jours pendant lesquels 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 changer son mot de passe afin de se connecter au système. Par défaut, cette valeur est définie sur 99999, ce qui se traduit par 273 ans. Cela n'a pas beaucoup de sens en ce qui concerne la sécurité, car l'utilisateur peut continuer à utiliser son mot de passe toute sa vie.
Vous pouvez définir cela sur une valeur significative, disons 30 jours comme indiqué.
PASS_MAX_DAYS 30.
Après 30 jours, l'utilisateur sera obligé de changer son mot de passe pour un autre.
Le PASS_MIN_DAYS L'attribut précise la durée minimale pendant laquelle les utilisateurs peuvent utiliser leur mot de passe avant de le modifier. Qu'est-ce que ça veut dire? Si, par exemple, cette valeur est fixée à 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 pendant lesquels un utilisateur recevra un avertissement concernant l'expiration imminente de son mot de passe avant son expiration. Par exemple, vous pouvez le définir sur 7 jours, comme indiqué.
PASS_MAX_DAYS 7.
REMARQUE: ces contrôles de mot de passe ne fonctionnent pas avec les comptes préexistants. Ils ne sont appliqués qu'aux nouveaux comptes créés après avoir défini les règles.
Avant de modifier le /etc/pam.d/common-password fichier, créez 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/common-password /etc/pam.d/common-password.bak.
Ensuite, ouvrez le fichier.
$ sudo vim /etc/pam.d/common-password
Localisez la ligne ci-dessous.
mot de passe requis pam_pwquality.so retry=3.
Le réessayez L'option définit le nombre maximum de fois où vous devez entrer le bon mot de passe avant d'obtenir une erreur. Par défaut, il 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 rejet_username
Développons ces attributs.
Si vous essayez de créer un nouvel utilisateur qui ne respecte pas les politiques de mot de passe, vous allez rencontrer les erreurs illustrées.
Ceci conclut le sujet sur la sécurité du système et les principes fondamentaux de la sécurité en général. Dans tout le chapitre, nous avons mis en lumière les mesures de sécurité de base que vous pouvez mettre en œuvre pour protégez votre système Linux des attaques malveillantes utilisateurs tels que les pirates informatiques ou les employés mécontents.