web-dev-qa-db-fra.com

Devrions-nous désactiver l'utilisateur root?

Devrions-nous supprimer le mot de passe root, désactiver la connexion à distance et nécessiter essentiellement des administrateurs d'utiliser sudo pour effectuer des actions administratives?

alt text

21
jldugger

Tous mes serveurs ont le compte root désactivé (sp_pwdp mis à *). Ceci doit exiger Sudo pour tous les accès racine. [1] Le but est de disposer de toutes les activités superutilisateurs auditées, afin que les gens puissent voir ce qui a été fait au système.

Pour une option plus hardcore, vous pouvez faire Sudo écrire dans un fichier journal (par opposition à syslog), et apportez le fichier qu'append-seulement (en utilisant chattr sous Linux, ou chflags sur BSD). De cette façon, personne ne peut modifier l'audit après.

[1] J'ai également une politique de ne pas exécuter une coque racine ou de faire des échappées à la coque d'un processus racine. (Ça va d'utiliser Sudo sh -c '...' pour faire des pipelines ou des redirections, cependant.)

16

I Emphastiquement Recommander contre la désactivation de l'utilisateur racine. Désactiver ou restreindre les connexions racines (via SecureTty et via SSHD_CONFIG et via PAM et via quoi avez-vous? Permettez-le, limiter les privilèges de la racine ou diviser le rôle root (s'apparente à la manière RSBAC Le fait.) Mais s'il vous plaît S'il vous plaît , ne désactivez pas le compte root en supprimant le mot de passe, sinon il devient impossible de se connecter au système via sulogin. sulogin est utilisé par tous les initscripts que je connais en cas d'erreurs graves rapportées par FSCK - et cela signifie que vous serez verrouillé du système si le système de fichiers racine est corrompu.

Pour clarifier: en "désactivant le compte root en supprimant le mot de passe", je veux dire les différents mécanismes qui se retrouvent avec A! ou A * dans le champ de mot de passe de/etc/ombre, ou similaire. Je ne veux pas dire "Modifier le mécanisme de connexion racine afin que vous ne receviez pas de mot de passe."

15

J'ai le compte root activé sur tous mes serveurs. Tous les administrateurs ont leur propre utilisateur et doivent se connecter à travers cela. De là, ils passent à la racine. (root ssh est désactivé)

Gardez le nombre d'administrateurs bas. Seules les personnes ayant vraiment besoin d'un accès root sur ce serveur ont le mot de passe.

Je ne suis pas un fan de sudo. C'est trop facile de faire 'sudo bash' pour une coquille racine. Je suis au courant que cela peut être désactivé mais pourquoi déranger? Il suffit de limiter les utilisateurs pouvant effectuer des tâches d'administrateur et de parler à chaque autre. Nous avons une politique pour ne pas laisser les terminaux racine ouverts sans surveillance. Donc, c'est connecté, su, faire le travail, déconnectez-vous.

Remarque: Je travaille à une société assez petite (50 personnes d'employés de quelque chose) et nous nous déplacons avec seulement 2 administrateurs à temps partiel (1 Windows/1 Linux). Cette façon de faire des choses pourrait ne pas être le meilleur lorsque vous avez des ordres de grandeur plus d'utilisateurs. Je n'utiliserais personnellement pas sudo. Il existe d'autres moyens de connecter l'activité des racines.

3
Gert M

La désactivation du mot de passe root est imho une fausse "bonne idée". Le jour où vous en aurez besoin, vous allez vraiment besoin. (Selon votre configuration, vous pourriez en avoir besoin pour vous connecter en mode utilisateur unique pour l'exemple)

La désactivation de la connexion à distance racine peut être pertinente, mais uniquement si vous êtes capable de vous connecter localement.

Et oui, Sudo devrait installer sur chacun de vos serveurs. Il est utile et facile à configurer. Pourquoi voudriez-vous ne pas l'utiliser?

2
Benoit

Les auteurs de la distribution sécurisée de hibou (et designer solaire) ont un point de vue opposé soigneusement justifié; Voir, par exemple, la réponse https://unix.stackexchange.com/questions/8581/which-is-the-safest-way-a-get-root-privilges-sudo-su-or-login/ 8660 # 8666 pour une présentation de leurs revendications. Le problème de l'audit des actions superutilisateurs (quelle personne a fait quoi) est également traitée à son point de vue (fondamentalement, la solution consiste à avoir plusieurs utilisateurs racines ayant des noms différents).

Vous devriez exiger que tout le monde utilise sudo pour chaque commande racine comme une politique. Il n'y a jamais de raison de diriger "sudo bash" ou similaire, ce n'est que pour une commodité, en raison de l'ignorance ou de couvrir ses pistes.

Si vous désactivez directement les connexions sur le compte root, vous paralyez votre capacité à résoudre le système lorsqu'il y a de graves problèmes.

Si vous ne pouvez pas convaincre vos administrateurs de vous connecter comme eux-mêmes et de courir sudo pour chaque commande couru en tant que root, et de ne pas vous échapper dans une coquille, vous avez de graves problèmes pour lesquels il n'y a pas de solution technique.

1
carlito