it-swarm.com.de

Warum ist die Root-Anmeldung über SSH so schlecht, dass jeder rät, sie zu deaktivieren?

Jeder im Internet rät dazu, die Root-Anmeldung über SSH zu deaktivieren, da dies eine schlechte Praxis und eine Sicherheitslücke im System ist, aber niemand erklärt, warum dies so ist.

Was ist so gefährlich beim Aktivieren der Root-Anmeldung (insbesondere bei deaktivierter Kennwortanmeldung)?

Und was ist der Unterschied zwischen dem X-Symbol-Benutzernamen und dem Y-Symbol-Passwort oder dem Root-Benutzernamen und dem X + Y-Symbol-Passwort aus Sicherheitsgründen, falls die Passwortauthentifizierung zulässig ist?

99
rush

Warum Root über SSH schlecht ist

Es gibt viele Bots, die versuchen, sich über SSH bei Ihrem Computer anzumelden. Diese Bots funktionieren folgendermaßen.

Sie führen so etwas wie ssh [email protected]$IP und dann versuchen sie Standardkennwörter wie "root" oder "password123". Sie tun dies so lange sie können, bis sie das richtige Passwort gefunden haben. Auf einem weltweit zugänglichen Server können Sie viele Protokolleinträge in Ihren Protokolldateien sehen. Ich kann bis zu 20 pro Minute oder mehr gehen.

Wenn die Angreifer Glück (oder genügend Zeit) haben und ein Passwort finden, haben sie Root-Zugriff und das würde bedeuten, dass Sie in Schwierigkeiten sind.

Wenn Sie jedoch nicht zulassen, dass sich root über SSH anmeldet, muss der Bot zuerst einen Benutzernamen und dann das entsprechende Kennwort erraten. Nehmen wir also an, die Liste der plausiblen Passwörter enthält N Einträge und die Liste der plausiblen Benutzer ist M Einträge groß. Der Bot hat eine Reihe von N*M Einträge zum Testen, daher ist es für den Bot etwas schwieriger als im Root-Fall, in dem es sich nur um eine Menge von Größe N handelt.

Einige Leute werden sagen, dass dieses zusätzliche M kein wirklicher Sicherheitsgewinn ist, und ich stimme zu, dass es nur eine kleine Sicherheitsverbesserung ist. Aber ich betrachte dies eher als diese kleinen Vorhängeschlösser, die an sich nicht sicher sind, aber viele Menschen am einfachen Zugang hindern. Dies gilt natürlich nur, wenn Ihr Computer keine anderen Standardbenutzernamen wie tor oder Apache hat.

Der bessere Grund, root nicht zuzulassen, ist, dass root auf dem Computer viel mehr Schaden anrichten kann als ein Standardbenutzer. Wenn sie also durch dummes Glück Ihr Passwort finden, geht das gesamte System verloren, während Sie mit einem Standardbenutzerkonto nur die Dateien dieses Benutzers bearbeiten können (was immer noch sehr schlecht ist).

In den Kommentaren wurde erwähnt, dass ein normaler Benutzer das Recht haben könnte, Sudo zu verwenden, und wenn das Passwort dieses Benutzers erraten würde, ist auch das System völlig verloren.

Zusammenfassend würde ich sagen, dass es keine Rolle spielt, welches Benutzerpasswort ein Angreifer erhält. Wenn sie ein Passwort erraten, können Sie dem System nicht mehr vertrauen. Ein Angreifer kann die Rechte dieses Benutzers verwenden, um Befehle mit Sudo auszuführen. Der Angreifer kann auch eine Schwachstelle in Ihrem System ausnutzen und Root-Rechte erwerben. Wenn ein Angreifer Zugriff auf Ihr System hatte, können Sie ihm nicht mehr vertrauen.

Beachten Sie hierbei, dass jeder Benutzer in Ihrem System, der sich über SSH anmelden darf, eine zusätzliche Schwachstelle darstellt. Durch Deaktivieren von root entfernen Sie eine offensichtliche Schwäche.

Warum Passwörter über SSH schlecht sind

Der Grund, Passwörter zu deaktivieren, ist wirklich einfach.

  • Benutzer wählen falsche Passwörter!

Die ganze Idee, Passwörter auszuprobieren, funktioniert nur, wenn die Passwörter erraten werden können. Wenn ein Benutzer das Kennwort "pw123" hat, wird Ihr System unsicher. Ein weiteres Problem bei Passwörtern, die von Personen ausgewählt werden, besteht darin, dass ihre Passwörter niemals wirklich zufällig sind, da dies dann schwer zu merken wäre.

Es ist auch so, dass Benutzer dazu neigen, ihre Passwörter wiederzuverwenden und sich damit bei Facebook oder ihren Google Mail-Konten und für Ihren Server anzumelden. Wenn ein Hacker das Passwort für das Facebook-Konto dieses Benutzers erhält, kann er auf Ihren Server gelangen. Der Benutzer kann es leicht durch Phishing verlieren oder der Facebook-Server wird gehackt.

Wenn Sie sich jedoch mit einem Zertifikat anmelden, wählt der Benutzer sein Kennwort nicht aus. Das Zertifikat basiert auf einer zufälligen Zeichenfolge, die von 1024 Bit bis 4096 Bit (~ 128 - 512 Zeichen Passwort) sehr lang ist. Außerdem dient dieses Zertifikat nur zur Anmeldung bei Ihrem Server und wird nicht mit externen Diensten verwendet.

Überwachung des Root-Zugriffs

Der Kommentar von @ Philip Couling , der eine Antwort hätte sein sollen:

Es gibt einen administrativen Grund für das Deaktivieren von root. Auf kommerziellen Servern möchten Sie den Zugriff immer persönlich steuern. root ist niemals eine Person. Selbst wenn Sie einigen Benutzern Root-Zugriff gewähren, sollten Sie sie zwingen, sich über ihren eigenen Benutzer und dann su - oder Sudo -i anzumelden, damit ihre tatsächliche Anmeldung aufgezeichnet werden kann. Dies macht das Widerrufen des gesamten Zugriffs auf eine Person viel einfacher, sodass sie selbst dann nichts damit anfangen können, wenn sie das Root-Passwort haben. - Philip Couling

Ich würde auch hinzufügen, dass es dem Team ermöglicht, das Prinzip des geringsten Privilegs mit einer richtigen Sudo-Konfiguration durchzusetzen (aber das Schreiben einer klingt einfacher als es ist). Dadurch kann das Team unkritisch besser verteilen, ohne den Schlüssel zum Schloss preiszugeben.

Links

http://bsdly.blogspot.de/2013/10/the-hail-mary-cloud-and-lessons-learned.html

Dieser Artikel stammt aus den Kommentaren und ich wollte ihm eine etwas wichtigere Position geben, da er etwas tiefer in die Frage der Botnets geht, die versuchen, sich über SSH anzumelden, wie sie es tun, wie die Protokolldateien aussehen und was man tun kann, um sie aufzuhalten. Es wurde von Peter Hansteen geschrieben.

68
Raphael Ahrens

Dies kann einer der Gründe sein, warum eine direkte Root-Anmeldung nicht zulässig sein sollte.

  • Bruteforce-Versuche. Die direkte Root-Anmeldung kann bei einem erfolgreichen Bruteforce-Angriff zu mehr Schaden führen.
  • Eine Fehlkonfiguration von "passwortlosen" SSH-Schlüsseln (menschliches Versagen tritt auf) kann Ihren Computer dem Internet aussetzen

Dies ist jedoch nur der Tipp des Eisbergs. Sie müssen andere Einschränkungen und Konfigurationen konfigurieren wie:

  • Ändern Sie den Standardport (22)
  • Starke Passwörter und Passphrase
  • Deaktivieren Sie die hostbasierte Authentifizierung
  • Erstellen Sie eine Liste der zulässigen Benutzer
  • Konfigurieren Sie das Leerlaufzeitlimit
  • SSHv2-Protokoll erzwingen
  • Leere Passwörter deaktivieren
  • Verwenden Sie fail2ban als Maßnahme gegen Bruteforce
  • Alles protokollieren
  • Konfigurieren Sie SSH-Schlüssel und vertrauen Sie nur öffentlichen Schlüsseln unter .ssh/authorized_keys
11
user34720

Sie haben Recht, dass der Root-Benutzername und das X + Y-Symbolkennwort kryptografisch mindestens so sicher sind wie ein X-Symbol-Benutzername + Y-Symbolkennwort. Tatsächlich ist es sogar noch sicherer, da die Namen von Personen leicht zu erraten sind (Bots versuchen möglicherweise nur John, Mike, Bill usw. und übrigens: Das tun viele von ihnen, anstatt Root zu versuchen). Und Sie haben besonders Pech, wenn es sich um einen gezielten Angriff handelt. Wenn jemand den Server eines Unternehmens beschädigen möchte, ist es kein Problem, den Namen (Nick) des Systemadministrators herauszufinden.

Und sobald der Angreifer Zugriff auf das Konto hat, das der Systemadministrator für SSH-Anmeldungen verwendet (und dann su oder Sudo verwendet, um seine Aufgaben zu erledigen), kann er die Sitzung dieses Benutzers mit einem Programm infizieren, das dies tut Senden Sie das Root-Passwort des Angreifers, wenn der Systemadministrator dies beim nächsten Mal eingibt.

Es handelt sich um beliebige Arten von Root-Anmeldungen, die aus Sicherheitsgründen als schlechte Praktiken gelten (oder gelten sollten). Die "normale" Benutzeranmeldung -> su/Sudo-Kette fügt einen Prüfpfad hinzu. Im Klartext: So kann man herausfinden, wer was getan hat.

Ein Sonderfall kann der sein, bei dem nur eine Person Root-Zugriff hat. In diesem Fall bringt die Verwendung des zusätzlichen "normalen" Benutzers nicht viel Wert (zumindest konnte ich diesen Wert nie sehen). Aber trotzdem - Sie sollten sowieso einen einfachen Benutzer im System haben (für nicht administrative Aufgaben, das Ausführen von wget usw .;-)).

8
skarap

Was ist so gefährlich beim Aktivieren der Root-Anmeldung (insbesondere bei deaktivierter Kennwortanmeldung)?

Der Angreifer (Bot/Botnet/Hacker) muss nur das Passwort erraten und hat die vollständige Kontrolle über Ihr System, wenn Sie für das Internet offen sind. Aus den gleichen Gründen sollte sich keines der Systemkonten (WWW-Daten, Proxy usw.) über SSH anmelden können.

Wenn Sie die Kennwortanmeldung deaktiviert haben (z. B. mit einem öffentlichen Schlüssel), berücksichtigen Sie, dass jeder, der den privaten Schlüssel hält, die vollständige Kontrolle über Ihr System hat. Sehen Sie unten, warum die Verwendung des öffentlichen Schlüssels mit einem Benutzer besser ist.

Und was ist der Unterschied zwischen dem X-Symbol-Benutzernamen und dem Y-Symbol-Passwort oder dem Root-Benutzernamen und dem X + Y-Symbol-Passwort aus Sicherheitsgründen, falls die Passwortauthentifizierung zulässig ist?

Der zusätzliche Benutzername kann eine Sicherheitsebene hinzufügen, da: a) der Angreifer sowohl das Paar als auch den Benutzernamen und das Kennwort kennen sollte; b) Falls ein Angreifer Ihr System verletzt, hat er keinen sofortigen Zugriff auf ein privilegiertes Konto, was dem Angreifer ein wenig Nuance verleiht.

In diesem Fall ist der öffentliche Schlüssel auch ein Plus, da:

  1. Der Angreifer benötigt Ihren öffentlichen Schlüssel
  2. Der Angreifer benötigt das Kennwort (oder die Authentifizierungsmethode), um erhöhte Berechtigungen zu erhalten
4
Braiam

Es ist nicht gerade schlecht, solange Sie Sicherheitsvorkehrungen treffen. Als Beispiel könnten Sie CSF (Configure Server Firewall) installieren und die Anzahl der zulässigen Fehlerversuche festlegen. Wenn also jemand versucht hat, sagen wir über 5 Fehlerversuche?, Werden diese automatisch blockiert. Der gesamte erste Teil des besten Antwortenden ist also überhaupt kein Problem. Das ist mir oft passiert und zum Glück waren alle Einführer dauerhaft gesperrt. Ich denke, für einen Server ist es kein großes Problem, wenn Sie die einzige Person sind, die den Server verwaltet, aber natürlich, wenn es viele Systemadministratoren gibt oder wenn Sie in einer Organisation arbeiten, dann verwenden Sie diese offensichtlich nicht Wurzel. Auch für einen Desktop-PC ist die Verwendung eines anderen Kontos wahrscheinlich besser, da ein Sicherheitsrisiko besteht, da Sie viel Software verwenden. Auf einem Server entscheiden Sie sich jedoch nicht für zufällige Software, der Sie nicht vertrauen um sie so niedrig wie möglich zu halten. Die Schlussfolgerung lautet also: Nein, es ist nicht wirklich schädlich, wenn Sie wissen, wie man einen Server richtig verwaltet.

1
Don Dilanga