Comment restreindre l'accès des utilisateurs sur une machine Linux

Comment restreindre l'accès des utilisateurs sur une machine Linux

Objectif

Apprenez à restreindre l'accès des utilisateurs sur une machine Linux

Système d'exploitation et versions logicielles

  • Système opérateur: - Toutes les distributions Linux

Exigences

  • Autorisation

Difficulté

FACILE

Conventions

  • # - nécessite que les commandes Linux soient exécutées avec des privilèges racine
    directement en tant qu'utilisateur racine ou en utilisant Sudo commande
  • $ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Introduction

Dans ce tutoriel, nous allons apprendre à restreindre l'accès à une machine Linux en interagissant avec deux fichiers: / etc /, qui nous a permis de spécifier à partir de la console qu'il est possible de se connecter directement comme racine, et / etc / Security / Access.confli, dans lequel nous pouvons définir certaines règles pour restreindre l'accès aux utilisateurs ou groupes spécifiés de certaines origines.

Restreindre la connexion racine

La première chose que nous allons faire, c'est pour apprendre à modifier le / etc / Fichier afin d'autoriser l'accès à racine directe uniquement sur certaines consoles spécifiques. Jetons un coup d'œil au fichier: voici à quoi il ressemble sur une machine CentOS7:



Console VC / 1 VC / 2 VC / 3 VC / 4 VC / 5 VC / 6 VC / 7 VC / 8 VC / 9 VC / 10 VC / 11 TTY1 TTY2 TTY3 TTY4 TTY5 TTY6 TTY7 TTY8 TTY9 TTY10 TTY11 TTYS0 TTYSCLP0 SCLP_LINE0 3270 / TTY1 HVC0 HVC1 HVC2 HVC3 HVC4 HVC5 HVC6 HVC7 HVSI0 HVSI1 HVSI2 XVC0 

Ce que nous voyons là-bas, c'est juste une liste de tous les terminaux à partir desquels l'accès direct en tant qu'utilisateur racine est autorisé. Concentrons-nous sur le tty Appareils pour l'instant. Ouvrez le fichier avec un éditeur de texte et commentez le tty1 entrée:

[…] # TTY1 TTY2 TTY3 TTY4 TTY5 TTY6 TTY7 TTY8 TTY9 TTY10 TTY11 […] 

Enregistrer et quitter l'éditeur de texte. Maintenant, si nous passons au premier tty en appuyant Ctrl + alt + 1 ou en courant chvt 1, Et essayez de vous connecter en tant que racine, nous aurons le résultat suivant:

Comme prévu, le système nous a refusé l'accès comme racine à partir du tty spécifié. Pour acquérir des privilèges racine et accomplir des tâches administratives, nous devons ensuite nous connecter en tant qu'utilisateur normal, puis utiliser Sudo ou su (ou se connecter à partir d'un autre tty si elle est autorisée).

Sachez que cela n'affectera pas la capacité de se connecter comme racine lorsque vous utilisez SSH. Pour éviter ce comportement spécifique, vous devez configurer le serveur SSH, modifiant le / etc / ssh / sshd_config fichier et définir le Permatlogine directive de Non



Configuration des règles d'accès dans / etc / Security / Access.confli

Si la / etc / Le fichier nous permet de spécifier à partir de quel terminal il est possible de nous connecter directement sous forme de racine, de configurer les règles d'accès dans le / etc / Security / Access.confli fichier, nous pouvons autoriser ou refuser l'accès à des utilisateurs ou des groupes spécifiques à partir d'origine spécifique.

Insérer le PAM_ACCESS.So Module

Avant de mettre en place nos règles, nous devons modifier / etc / pam.d / connexion, Pour ajouter le PAM_ACCESS.donc module qui permettra pam Pour scanner le accès.confli déposer pour les règles que nous définirons. Utilisez votre éditeur de texte préféré pour modifier le fichier afin qu'il ait l'air de cette façon:

#% Pam-1.0 auth [user_unknown = ignorer le succès = ok ignore = ignorer default = bad] pam_securetty.Donc, l'autant Autal System-Auth L'authentique inclut le compte postlogin requis PAM_NOLOGINE.Donc, le compte requis PAM_ACCESS.Le compte inclut donc le mot de passe système-UTH inclut le système-AUTH # PAM_SELINUX.Si proche devrait être la première session de règle de session requise PAM_SELINUX.si proche de la session a nécessité PAM_LOGINUID.Donc Session en option PAM_CONSOLE.SO # PAM_SELINUX.L'ouverture ne doit donc être suivie que des sessions à exécuter dans la session de contexte de l'utilisateur requise PAM_SELINUX.Donc, la session ouverte a nécessité Pam_Namespace.Donc ses session en option PAM_KEYINIT.Donc, la session de révocation de force inclut la session System-Auth incluez Postlogin -Session en option PAM_CK_CONNECTER.donc 

Ce que nous avons fait, c'est d'ajouter le compte requis PAM_ACCESS.donc ligne à la fin du compte section. Maintenant que nous configurons pam Nous pouvons commencer à parler des règles d'accès.

La syntaxe des règles

Pour définir une règle dans le accès.confli fichier, nous devons respecter une syntaxe très simple et claire. Une règle est composée de trois sections, séparées par un côlon:

Permission: utilisateurs: origines

La première partie de la règle spécifie les autorisations et se compose d'un - ou + Signe: le premier crée ce que nous pouvons appeler une règle «refuser», tandis que le second spécifie une règle où les autorisations d'accès sont accordées.

Dans la deuxième partie, nous fournissons les sujets de la règle. La section se compose d'une liste de groupes ou de noms de connexion. Pour éviter les conflits entre les utilisateurs et les groupes qui peuvent être nommés de la même manière, les entrées de groupe peuvent être spécifiées entre parenthèses, mais seulement si le NodeFGroup L'option est définie dans le / etc / pam.d / connexion fichier que nous avons modifié ci-dessus, à la fin de la ligne que nous avons ajouté.

La troisième partie de la règle spécifie la source à partir de laquelle l'accès est autorisé ou refusé, ce qui y est: un ou plusieurs tté, Noms d'hôte, adresses hôtes ou domaines.



Mots clés

La syntaxe des règles nous a même permis d'utiliser des mots clés puissants. Tout d'abord nous avons TOUS. Ce mot clé correspondra toujours: par exemple, lorsqu'il est utilisé dans la deuxième section, il correspondra à tous les utilisateurs ou groupes possibles, ou lorsqu'il est utilisé dans le troisième, toutes les sources possibles.

Le AUCUN Le mot-clé a l'effet opposé exact de TOUS, et LOCAL, qui n'a du sens que dans le origines La section de la règle correspondra à chaque chaîne qui ne contient pas de '.'. Enfin un mot-clé très puissant est SAUF ce qui nous permet de spécifier des exceptions à une règle définie.

Quelques exemples

Le fichier fournit des exemples utiles, regardons certains d'entre eux. Tout d'abord, nous avons ce qui suit:

- : Tout sauf la racine: TTY1

Cette ligne nous permettrait d'obtenir le résultat opposé que nous avons obtenu auparavant en modifiant le / etc / Fichier: tout d'abord, nous avons le - signe, ce qui signifie que c'est un refuser règle. Dans la section suivante, séparée par un côlon, nous avons Tout sauf la racine,qui spécifie que la règle doit être appliquée à tous les utilisateurs sauf racine, Et dans la troisième section, nous voyons que la règle spécifiée n'est valable que lorsque quelqu'un essaie d'accéder à tty1.

Un autre exemple, cette fois avec plusieurs noms d'utilisateur:

-: wsbscaro wsbsecr wsbspac wsbsym wscosor wstaiwde: tout

La règle interdit l'accès aux utilisateurs WSBSCARO, WSBSECR, WSBSPAC, WSBSYM, WSCOSOR et WSTAIWDE de toutes les sources (voir le TOUS mot-clé en action)

Quelque chose de plus complexe. Cette fois, la règle nie l'accès à tous les utilisateurs qui ne sont pas membre du groupe de roues local Connects:

-: Tout sauf (roue): local

Enfin un exemple qui spécifie une règle pour une connexion distante:

+ : Racine: 192.168.200.1 192.168.200.4 192.168.200.9

Comme nous devons maintenant comprendre, cette règle permet racine Pour accéder au système uniquement à partir des adresses IP spécifiées.

Un cas de test

Nous pouvons vérifier ce que nous avons dit ci-dessus avec un cas de test: construisons une règle pour refuser l'accès à egdoc (mon compte sur ce système) de tty1 et ajoutez-le à la fin du / etc / Security / Access.confli déposer:

-: Egdoc: TTY1

Maintenant, si nous passons à tty1 Et essayez de vous connecter, nous obtenons cette réponse grossière du système:

Veuillez noter que l'ordre des règles spécifiées dans le / etc / Security / Access.confli Le fichier est vraiment important, car les règles sont évaluées par ordre d'apparence.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Fichiers de configuration Linux: 30 premiers
  • Téléchargement Linux
  • Linux peut-il obtenir des virus? Exploration de la vulnérabilité de Linux…
  • Meilleure distribution Linux pour les développeurs
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
  • Commandes Linux: les 20 meilleures commandes les plus importantes que vous devez…
  • Installez Arch Linux dans VMware Workstation
  • Commandes Linux de base