it-swarm.com.de

Ist das Zulassen der Root-Anmeldung in SSH mit "PermitRootLogin ohne Kennwort" eine sichere Methode?

Ich habe meine Live-IP in /etc/hosts.allow Festgelegt und alle anderen Hosts abgelehnt. Ich habe auch PermitRootLogin without-password In /etc/ssh/sshd_config Gesetzt.

Ist das eine sichere Methode? Kann ein Angreifer meinen Schlüssel knacken und sich bei meinem Server anmelden? Wenn ja, erklären Sie bitte, wie es möglich ist.

4
LOKESH

Dies ist ein häufiges Missverständnis für die Funktion PermitRootLogin. Die Option without-password bedeutet nicht, dass keine Authentifizierung vorliegt und jeder ohne Passwort einsteigen kann. Diese Option bedeutet lediglich, dass die Anmeldung nur mit einer Fallback-Methode wie der Authentifizierung mit öffentlichem Schlüssel möglich ist. Selbst wenn ein Angreifer Ihr Root-Passwort kennt, kann er sich nur anmelden, wenn er über Ihren privaten Schlüssel verfügt.

Es ist tatsächlich besser, without-password Zu verwenden, wenn Sie sich als root anmelden müssen, da dies sicherstellt, dass das Root-Konto nicht brutal erzwungen werden kann. Wenn Sie sich als root mit einem Kennwort anmelden, kann es zu einem Remote-Angriff kommen, während die Authentifizierung mit öffentlichem Schlüssel sicherstellt, dass Sie sich nur mit den richtigen Anmeldeinformationsdateien anmelden können. Dies ist besser, als sich als ein anderer Benutzer anzumelden und su zu verwenden, um zum Root zu gelangen, da ein Kompromiss dieses anderen Benutzers zu einem kompromittierten Root führen würde, da der Benutzer alle in seine Shell eingegebenen Tastenanschläge überwachen kann. Dies wird in der Antwort auf Was ist der sicherste Weg, um Root-Rechte zu erhalten: Sudo, su oder login? ausführlich erklärt.

Wenn Sie nicht root haben müssen, ist die Verwendung eines anderen, dedizierten Benutzers in Ordnung. In diesem Fall wäre die Einstellung PermitRootLogin no Von Vorteil, da es keinen Grund gibt, Root-Zugriff zu haben, wenn dies nicht erforderlich ist.

5
forest

Ja, es ist eine sichere Methode, da Sie den kryptografischen Schlüssel nicht brutal erzwingen können.

Wenn Sie beispielsweise einen RSA-Schlüssel (ssh-keygen -t rsa) verwenden https://crypto.stackexchange.com/questions/3043/how-much-computing-resource-is-required-to-brute- force-rsa

Die einzige Lösung für den Hacker besteht darin, Ihre privaten/öffentlichen Schlüssel zu stehlen.

1
Nico

Lassen Sie uns zuerst sehen, was es bedeutet:

PermitRootLogin

Gibt an, ob sich root mit ssh (1) anmelden kann. Das Argument muss "Ja", "Ohne Passwort", "Nur erzwungene Befehle" oder "Nein" sein. Der Standardwert ist "Ja".

Wenn diese Option auf "ohne Kennwort" eingestellt ist, ist die Kennwortauthentifizierung für root deaktiviert. Wenn diese Option auf "Nur erzwungene Befehle" eingestellt ist, ist die Root-Anmeldung mit Authentifizierung mit öffentlichem Schlüssel zulässig, jedoch nur, wenn die Befehlsoption angegeben wurde (was nützlich sein kann, um Remote-Backups zu erstellen, auch wenn die Root-Anmeldung normalerweise nicht zulässig ist ). Alle anderen Authentifizierungsmethoden sind für root deaktiviert.

Wenn diese Option auf "Nein" gesetzt ist, darf sich root nicht anmelden.

Bessere Praxis ist es, PermitRootLogin no, weil Sie nicht zulassen möchten, dass sich root direkt beim System authentifiziert.

0
Mirsad