Tout le monde sur Internet conseille de désactiver la connexion root via SSH car il s’agit d’une mauvaise pratique et d’une faille de sécurité dans le système, mais personne n’explique pourquoi.
Qu'est-ce qui est si dangereux dans l'activation de la connexion root (en particulier avec la connexion par mot de passe désactivé)?
Et quelle est la différence entre le nom d'utilisateur du symbole X et le mot de passe du symbole Y ou le nom d'utilisateur racine et le mot de passe du symbole X + Y du point de vue de la sécurité, dans le cas où l'authentification par mot de passe est autorisée?
su -
ousudo -i
afin que leur connexion réelle puisse être enregistrée. Cela simplifie beaucoup la révocation de tout accès à une personne, de sorte que même s'ils ont le mot de passe root, ils ne peuvent rien faire avec.Réponses:
Pourquoi root sur SSH est mauvais
Il y a beaucoup de robots qui essaient de se connecter à votre ordinateur via SSH. Ces robots fonctionnent de la manière suivante.
Ils exécutent quelque chose comme
ssh root@$IP
et ensuite ils essayent des mots de passe standard comme "root" ou "password123". Ils le font aussi longtemps qu'ils le peuvent, jusqu'à ce qu'ils trouvent le bon mot de passe. Sur un serveur accessible dans le monde entier, vous pouvez voir de nombreuses entrées de journal dans vos fichiers journaux. Je peux aller jusqu'à 20 par minute ou plus.Lorsque les attaquants ont de la chance (ou assez de temps) et trouvent un mot de passe, ils ont un accès root et cela signifie que vous êtes en difficulté.
Mais lorsque vous n'autorisez pas root à se connecter via SSH, le bot doit d'abord deviner un nom d'utilisateur, puis le mot de passe correspondant. Supposons donc que la liste des mots de passe plausibles comporte des
N
entrées et que la liste des utilisateurs plausibles comporte deM
grandes entrées. Le bot a un ensemble d'N*M
entrées à tester, ce qui le rend un peu plus difficile par rapport au cas racine où il ne s'agit que d'un ensemble de tailleN
.Certaines personnes diront que cet ajout
M
n’est pas un réel gain de sécurité et je conviens que ce n’est qu’une petite amélioration de la sécurité. Mais je pense plus à cela que ces petits cadenas qui, en soi, ne sont pas sécurisés, mais empêchent beaucoup de gens d’y avoir facilement accès. Bien entendu, cela n’est valable que si votre ordinateur ne possède aucun autre nom d’utilisateur standard, tel que tor ou apache.La meilleure raison de ne pas autoriser root est que root peut causer beaucoup plus de dégâts à la machine qu'un utilisateur standard. Donc, si par hasard ils trouvent votre mot de passe, tout le système est perdu alors qu'avec un compte utilisateur standard, vous ne pouvez manipuler que les fichiers de cet utilisateur (ce qui est toujours très mauvais).
Dans les commentaires, il a été mentionné qu'un utilisateur normal pourrait avoir le droit d'utiliser
sudo
et que si son mot de passe était deviné, le système serait totalement perdu.En résumé, je dirais que le mot de passe d'un attaquant n'a pas d'importance. Quand ils devinent un mot de passe, vous ne pouvez plus faire confiance au système. Un attaquant pourrait utiliser les droits de cet utilisateur pour exécuter des commandes avec
sudo
, pourrait également exploiter une faiblesse de votre système et obtenir les privilèges root. Si un attaquant avait accès à votre système, vous ne pouvez plus lui faire confiance.Ce qu'il faut retenir ici, c'est que chaque utilisateur de votre système autorisé à se connecter via SSH constitue une faiblesse supplémentaire. En désactivant root, vous supprimez une faiblesse évidente.
Pourquoi les mots de passe sur SSH sont mauvais
La raison pour désactiver les mots de passe est très simple.
L'idée d'essayer des mots de passe ne fonctionne que lorsque les mots de passe sont devinables. Ainsi, lorsqu'un utilisateur a le mot de passe "pw123", votre système devient instable. Un autre problème avec les mots de passe choisis par les utilisateurs est que leurs mots de passe ne sont jamais vraiment aléatoires, car il serait alors difficile de s'en souvenir.
En outre, les utilisateurs ont tendance à réutiliser leurs mots de passe, en se connectant à Facebook ou à leurs comptes Gmail et à votre serveur. Ainsi, lorsqu'un pirate informatique obtiendra le mot de passe du compte Facebook de cet utilisateur, il pourra accéder à votre serveur. L'utilisateur pourrait facilement le perdre par le biais de l'hameçonnage ou le serveur de Facebook pourrait être piraté.
Mais lorsque vous utilisez un certificat pour vous connecter, l'utilisateur ne choisit pas son mot de passe. Le certificat est basé sur une chaîne aléatoire très longue allant de 1024 bits à 4096 bits (mot de passe ~ 128 - 512 caractères). De plus, ce certificat est uniquement là pour vous connecter à votre serveur et n'est utilisé avec aucun service extérieur.
Liens
http://bsdly.blogspot.de/2013/10/the-hail-mary-cloud-and-lessons-learned.html
Cet article provient des commentaires et je voulais lui donner une position un peu plus importante, car il approfondit un peu la question des réseaux de zombies qui essaient de se connecter via SSH, comment ils le font, comment les fichiers de log se présentent et que peut-on faire pour les en empêcher? Il a été écrit par Peter Hansteen.
la source
N*M > N
. Comme la plupart des * nix hôtes ont unroot
utilisateur, si vous autorisez root à se connecter directement à partir d'un hôte distant, la taille de la matrice de test correspond au nombre de mots de passe à essayer. En refusant les connexions directes à la racine, le nombre de combinaisons possibles est multiplié par le nombre de noms d'utilisateur que vous souhaitez tester (et rien ne garantit que vous testerez des noms d'utilisateur valides!).# of X length words
*# of Y length words
combinaisons possibles à essayer. Lorsque le nom d'utilisateur est fixe (par exemple, root) mais que le mot de passe est composé de symboles X + Y longs, il existe# of X+Y length words
des mots de passe possibles. Et# of X+Y length words
=# of X length words * # of Y length words
Cela pourrait être une des raisons pour lesquelles la connexion directe à la racine ne devrait pas être autorisée.
Mais ce n’est que le TIP de l’iceberg. Vous devez configurer d'autres restrictions et configurations telles que:
la source
sudo
configuration par défaut . Le véritable tueur est l'effet multiplicatif lorsque vous ne possédez aucun nom d'utilisateur sur lequel vous pouvez compter pour être valide sur un hôte donné.Vous avez raison de dire que le nom d'utilisateur racine et le mot de passe du symbole X + Y sont cryptographiquement au moins aussi sûr qu'un nom d'utilisateur du symbole X + mot de passe du symbole Y. En fait, il est encore plus sûr, car les noms des personnes sont faciles à deviner (les robots peuvent simplement essayer de john, mike, bill, etc., et d'ailleurs: c'est ce que beaucoup d'entre eux font au lieu d'essayer root). Et vous n'avez vraiment pas de chance s'il s'agit d'une attaque ciblée, car si quelqu'un veut casser le serveur d'une entreprise, il ne serait pas difficile de trouver le nom (pseudo) de l'administrateur système.
Et dès que l'attaquant a accès au compte utilisé par sysadmin pour les connexions ssh (puis utilise
su
ousudo
effectue ses tâches), il peut infecter la session de cet utilisateur avec un programme qui enverra le mot de passe root de l'attaquant lorsque ce dernier temps.C'est n'importe quel type de login racine qui est (ou devrait être) considéré comme une mauvaise pratique du point de vue de la sécurité. La connexion "normale" de l'utilisateur -> su / sudo ajoute un journal d'audit. En clair: cela permet de savoir qui a fait quoi.
Un cas particulier peut être celui où une seule personne a un accès root. Dans ce cas, l'utilisation de l'utilisateur "normal" supplémentaire n'ajoutera pas beaucoup de valeur (du moins, je ne pourrais jamais voir cette valeur). Quoi qu'il en soit, vous êtes censé avoir un utilisateur simple sur le système (pour les tâches non administratives, exécuter wget, etc. ;-)).
la source
L'attaquant (bot / botnet / hacker) n'a besoin que de deviner le mot de passe et a le contrôle complet de votre système, si vous êtes ouvert à Internet. En outre, aucun des comptes système (www-data, proxy, etc.) ne devrait pouvoir se connecter via SSH, pour les mêmes raisons.
Si vous avez désactivé la connexion par mot de passe (à l'aide d'une clé publique, par exemple), tenez compte du fait que quiconque obtient la clé privée a le contrôle complet de votre système. Découvrez pourquoi l'utilisation de la clé publique avec un utilisateur est préférable ci-dessous.
Le nom d'utilisateur supplémentaire peut ajouter une couche de sécurité puisque: a) l'attaquant devrait connaître à la fois la paire, le nom d'utilisateur et le mot de passe; b) au cas où un attaquant violerait votre système, il ne disposerait pas d'un accès immédiat à un compte privilégié, ce qui apporterait une nuance supplémentaire à l'attaquant.
Dans ce cas, la clé publique est également un atout, car:
la source
Ce n'est pas vraiment mauvais tant que vous prenez des précautions de sécurité. Par exemple, vous pouvez installer CSF (Configure Server Firewall) et lui attribuer le nombre de tentatives d'échec autorisées. Ainsi, si quelqu'un tente d'exécuter plus de 5 tentatives d'échec?, Elles sont automatiquement bloquées. Ainsi, la première partie du meilleur répondeur ne posera pas de problème. Cela m'est arrivé à plusieurs reprises et, heureusement, tous les introducteurs ont été bloqués de manière permanente. Je suppose que pour un serveur ce n’est pas un gros problème si vous êtes la seule personne à gérer le serveur, mais bien sûr s’il ya beaucoup d’administrateurs système ou si vous travaillez dans une organisation, alors évidemment n’utilisez pas racine. Pour un ordinateur de bureau également, l’utilisation d’un autre compte est préférable, car il existe un risque pour la sécurité, car vous utilisez beaucoup de logiciels, mais sur un serveur, Ne choisissez pas des logiciels aléatoires auxquels vous ne faites pas confiance, mais veillez à les maintenir le plus bas possible. Donc, la conclusion est non, ce n'est pas vraiment dangereux si vous savez gérer correctement un serveur.
la source