Il y a quelque temps, j'ai donné un mot de passe à root pour que je puisse me connecter en tant que root et faire certaines choses. Maintenant, je veux désactiver la connexion root pour renforcer la sécurité, car je vais exposer mon service à Internet. J'ai vu plusieurs façons de le faire ( sudo passwd -l root
, jouer avec /etc/shadow
, etc.), mais nulle part cela ne dit quelle est la meilleure façon / la plus sensée de le faire. J'ai fait sudo passwd -l root
mais j'ai vu des conseils qui disent que cela peut affecter les scripts d'initialisation et que ce n'est pas aussi sécurisé qu'il n'y paraît car il demande toujours un mot de passe si vous essayez de vous connecter, plutôt que de refuser catégoriquement l'accès. Alors, quel serait le moyen d'y parvenir?
EDIT: pour clarifier, c'est pour la connexion locale en tant que root; J'ai déjà désactivé la connexion à distance via SSH. Même si vous essayez de vous connecter en tant que root sur SSH, vous êtes toujours invité à saisir le mot de passe de root (qui échoue toujours). Est-ce mauvais?
rm
commande mal placée ou autre. Quelque chose que j'ai appris à la dure. Oui, on ne peut tout simplement PAS se connecter en tant que root, mais sa désactivation est logique du point de vue de l'administrateur système.Réponses:
Il est discutable, pour moi, que la désactivation de root vaut les problèmes potentiels. Je n'ai jamais testé un serveur configuré de cette manière. Ma préférence est d'autoriser uniquement l'accès local root. Si un attaquant a un accès physique à votre serveur, vous pouvez tout de même oublier tout ce que vous avez fait pour "sécuriser" votre installation.
Désactivez l'
ssh
accès root en modifiant/etc/ssh/sshd_config
pour contenir:Jouant avec
/etc/shadow
,chsh -s /bin/false root
tout peut être défait avec un simple CD / clé USB amorçable.Mise à jour selon votre commentaire:
De help.ubuntu.com : "Par défaut, le mot de passe du compte root est verrouillé dans Ubuntu ". Veuillez consulter la section "Désactivation de votre compte root" en particulier. Afin de réinitialiser l'état du compte root, à install-default, utilisez la commande suivante:
la source
Je suppose que vous vous référez à la connexion à distance via ssh. Ajoutez la ligne suivante à
/etc/ssh/sshd_config
:et le redémarrage du service ssh
Cela devrait faire l'affaire et vous pouvez garder votre compte root tel quel (ou essayer de le désactiver quand même si vous le jugez nécessaire).
la source
La question principale a reçu plusieurs réponses, mais pas la question secondaire. SSH vous invite à saisir le mot de passe après avoir entré root après l'avoir désactivé en tant que fonction de sécurité. Il se déclenchera également si vous essayez de vous connecter en tant que lkjfiejlksji.
C'est pour empêcher quelqu'un de tester une pile de noms d'utilisateurs, pour essayer de trouver ceux qui sont valides sur votre système. Cependant, du point de vue de la sécurité, si vous avez désactivé root sur SSH, je configurerais également un programme de détection de bruteforce (comme fail2ban), et le définirais de sorte que si quelqu'un essaye même de se connecter en tant que root, il les bloque essayer des attaques supplémentaires.
la source
Remplacer le mot de passe crypté par un * dans / etc / shadow (deuxième champ, après le premier «:») est la meilleure façon, à mon humble avis. De plus, désactivez la connexion root pour ssh (de cette façon, il est tout simplement impossible de se connecter via ssh en tant que root) et peut-être restreindre ssh aux connexions par certificat, ce qui est beaucoup plus sécurisé que les connexions par mot de passe.
Dans la plupart des cas, SSH devrait être le seul service accessible de l'extérieur qui autorise potentiellement la connexion root, de sorte que cette porte serait verrouillée.
Afin de restreindre davantage cela, vous pouvez installer quelque chose comme fail2ban, qui interdit les adresses IP pendant un certain temps après un certain nombre de tentatives de connexion infructueuses.
la source
JR et al,
Vos AllowUsers m'ont conduit à ce https://help.ubuntu.com/community/SSH/OpenSSH/Configuring
sudo vi / etc / ssh / sshd_config
PermitRootLogin oui (changé en non)
(ajouter une ligne au bas du fichier) DenyUsers user1 user2
enregistrer et quitter, puis
sudo service ssh restart
Résolu mon problème. Merci à tous.
la source
Si vous souhaitez désactiver la connexion root locale, vous pouvez essayer de modifier / etc / passwd et remplacer / bin / bash par / bin / false. CEPENDANT, puisque je ne l'ai pas testé, je dirais de laisser une session root ouverte sur le côté, de la tester, et s'il y a un effet secondaire bizarre, de la changer à nouveau.
la source
Re: Sécurité.
À mon humble avis, vous ne pouvez pas faire grand-chose, en termes de sécurité, à moins de débrancher la boîte, de la déconnecter du réseau et de la souder à l'intérieur d'une boîte en acier au carbure pare-balles de 3 "d'épaisseur.
Pensez-y de cette façon - si les gens peuvent pirater le ministère de la Défense, la CIA, le FBI et la Citibank - nous autres simples mortels ne pouvons pas faire beaucoup mieux.
Re: sécurité SSH.
Non seulement j'interdis l'accès root via ssh, j'ai également défini le paramètre "AllowUsers" sur mon, et seulement mon, nom d'utilisateur. De cette façon, personne, sauf mon propre utilisateur, ne peut se connecter via ssh. Cela peut être redondant car dans mon cas, je ne crée de toute façon qu'UN utilisateur non root.
Malheureusement, comme d'autres l'ont dit à plusieurs reprises, dès que quelqu'un a physiquement accès à la boîte, tous les paris sont OFF!
Échange de certificats pour la connexion ssh? Hmmmm. . . . ça m'a l'air bien. Comment faites-vous?
Jim (JR)
la source