Jeder im Internet rät dazu, die Root-Anmeldung über SSH zu deaktivieren, da dies eine schlechte Praxis und eine Sicherheitslücke im System darstellt, aber niemand erklärt, warum dies so ist.
Was ist so gefährlich beim Aktivieren der Root-Anmeldung (insbesondere bei deaktivierter Passwortanmeldung)?
Und was ist der Unterschied zwischen dem X-Symbol-Benutzernamen und dem Y-Symbol-Kennwort oder dem Root-Benutzernamen und dem X + Y-Symbol-Kennwort aus Sicherheitsgründen, wenn die Kennwortauthentifizierung zulässig ist?
su -
odersudo -i
so, dass ihre tatsächliche Anmeldung aufgezeichnet werden kann. Dies vereinfacht die Sperrung des gesamten Zugriffs auf eine Person erheblich, sodass sie selbst dann nichts damit anfangen kann, wenn sie über das Root-Kennwort verfügt.Antworten:
Warum root über SSH ist schlecht
Es gibt viele Bots, die versuchen, sich über SSH bei Ihrem Computer anzumelden. Diese Bots funktionieren folgendermaßen.
Sie führen so etwas aus
ssh root@$IP
und probieren dann Standard-Passwörter wie "root" oder "password123" aus. 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 Passwort erraten. Nehmen wir also an, die Liste der plausiblen Passwörter enthält
N
Einträge und die Liste der plausiblen Benutzer enthältM
große Einträge. Der Bot muss eine Reihe vonN*M
Einträgen testen, daher ist es für den Bot etwas schwieriger als für den Root-Fall, bei dem es sich nur um eine Reihe von Größen handeltN
.Einige Leute werden sagen, dass dies
M
kein wirklicher Sicherheitsgewinn ist, und ich stimme zu, dass es sich nur um eine kleine Sicherheitsverbesserung handelt. Aber ich stelle mir das eher als diese kleinen Vorhängeschlösser vor, 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 viel mehr Schaden auf dem Computer anrichten kann als ein Standardbenutzer. Wenn sie also durch Pech Ihr Passwort finden, ist das gesamte System verloren, während Sie mit einem Standardbenutzerkonto nur die Dateien dieses Benutzers manipulieren können (was immer noch sehr schlecht ist).
In den Kommentaren wurde erwähnt, dass ein normaler Benutzer das Recht zur Nutzung haben könnte,
sudo
und wenn das Passwort dieses Benutzers erraten würde, wäre das System ebenfalls vollständig verloren.Zusammenfassend würde ich sagen, dass es egal ist, 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 zum Ausführen von Befehlen verwenden
sudo
. Der Angreifer kann auch eine Schwachstelle in Ihrem System ausnutzen und Root-Rechte erlangen. Wenn ein Angreifer Zugriff auf Ihr System hatte, können Sie ihm nicht mehr vertrauen.Hierbei ist zu beachten, dass jeder Benutzer in Ihrem System, der sich über SSH anmelden darf, eine zusätzliche Schwachstelle darstellt. Indem Sie root deaktivieren, beseitigen Sie eine offensichtliche Schwäche.
Warum Passwörter über SSH schlecht sind
Der Grund zum Deaktivieren von Passwörtern ist sehr einfach.
Die ganze Idee, Passwörter auszuprobieren, funktioniert nur, wenn die Passwörter erraten werden können. Wenn also ein Benutzer das Passwort "pw123" hat, wird Ihr System unsicher. Ein weiteres Problem bei von Menschen gewählten Passwörtern ist, dass ihre Passwörter niemals wirklich zufällig sind, da dies dann schwer zu merken wäre.
Es ist auch der Fall, dass Benutzer dazu neigen, ihre Passwörter erneut zu verwenden, um sich bei Facebook oder ihren Google Mail-Konten und auf Ihrem Server anzumelden. Wenn ein Hacker das Facebook-Passwort dieses Benutzers erhält, kann er auf Ihren Server gelangen. Der Benutzer könnte es leicht durch Phishing verlieren oder der Facebook-Server könnte gehackt werden.
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 zu 4096 Bit (~ 128 - 512 Zeichen Kennwort) sehr lang ist. Darüber hinaus dient dieses Zertifikat nur zur Anmeldung bei Ihrem Server und wird nicht mit externen Diensten verwendet.
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 sich etwas eingehender mit Botnetzen befasst, die versuchen, sich über SSH anzumelden, wie sie es tun, wie die Protokolldateien aussehen und was kann man tun, um sie zu stoppen. Es wurde von Peter Hansteen geschrieben.
quelle
N*M > N
. Da die meisten * nix-Hosts einenroot
Benutzer haben, ist die Größe der Testmatrix die Anzahl der zu versuchenden Kennwörter, wenn Sie Root erlauben, sich direkt von einem Remote-Host aus anzumelden. Wenn Sie direkte Root-Anmeldungen nicht zulassen, multiplizieren Sie die Anzahl der möglichen Kombinationen mit der Anzahl der zu testenden Benutzernamen (und es gibt immer noch keine Garantie dafür, dass Sie gültige Benutzernamen testen!).# of X length words
*# of Y length words
mögliche Kombinationen zum Ausprobieren. Wenn der Benutzername festgelegt ist (z. B. root), das Passwort jedoch X + Y-Zeichen lang ist, gibt es# of X+Y length words
mögliche Passwörter. Und# of X+Y length words
=# of X length words * # of Y length words
Dies könnten einige der Gründe sein, warum die direkte Anmeldung als Root nicht zulässig sein sollte.
Dies ist jedoch nur die Spitze des Eisbergs. Sie müssen andere Einschränkungen und Konfigurationen konfigurieren, z.
quelle
sudo
Setup vergleicht. Der wahre Killer ist der Multiplikatoreffekt, wenn Sie keinen Benutzernamen haben, auf den Sie sich verlassen können, dass er auf einem bestimmten Host gültig ist.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 der Leute leicht zu erraten sind (Bots versuchen vielleicht nur John, Mike, Bill, etc ... und btw: das ist, was viele von ihnen tun, anstatt root zu versuchen). Und wenn es sich um einen gezielten Angriff handelt, hat man besonders Pech, denn wenn jemand den Server eines Unternehmens beschädigen möchte, ist es kein Problem, den Namen (Spitznamen) des Systemadministrators herauszufinden.
Und sobald der Angreifer Zugriff auf das Konto hat, das der Sysadmin für SSH-Anmeldungen verwendet (und dann verwendet
su
odersudo
um seine Aufgaben auszuführen), kann er die Sitzung dieses Benutzers mit einem Programm infizieren, das dem Angreifer das root-Kennwort sendet, wenn der Sysadmin das nächste eingibt Zeit.Es sind alle Arten von Root-Anmeldungen, die unter Sicherheitsgesichtspunkten als schlechte Praktiken gelten (oder gelten sollten). Die "normale" Benutzeranmeldung -> su / sudo-Kette fügt einen Audit-Trail hinzu. Im Klartext: Man kann herausfinden, wer was getan hat.
Ein Sonderfall kann der Fall sein, bei dem nur eine Person Root-Zugriff hat. In diesem Fall wird durch die Verwendung des zusätzlichen "normalen" Benutzers nicht viel Wert hinzugefügt (zumindest konnte ich diesen Wert nie sehen). Aber trotzdem - Sie sollten sowieso einen einfachen Benutzer im System haben (für nicht administrative Aufgaben, Ausführen von wget usw. ;-)).
quelle
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 geöffnet sind. Aus den gleichen Gründen sollte auch keines der Systemkonten (WWW-Daten, Proxy usw.) in der Lage sein, sich über SSH anzumelden.
Wenn Sie die Kennwortanmeldung deaktiviert haben (z. B. mit dem öffentlichen Schlüssel), müssen Sie berücksichtigen, dass jeder, der den privaten Schlüssel erhält, die vollständige Kontrolle über Ihr System hat. Lesen Sie weiter unten, warum die Verwendung eines öffentlichen Schlüssels für einen Benutzer besser ist.
Der zusätzliche Benutzername kann eine Sicherheitsebene hinzufügen, da: a) der Angreifer sowohl das Paar als auch den Benutzernamen und das Passwort kennen sollte; b) Wenn ein Angreifer in Ihr System eindringt, 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:
quelle
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 Fehlversuche festlegen. Wenn also jemand es versucht, sagen wir mal über 5 Fehlversuche, dann 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. Ich denke, auch für einen Desktop-PC ist die Verwendung eines anderen Kontos besser, da ein Sicherheitsrisiko besteht, da Sie viel Software verwenden, auf einem Server jedoch nicht. Wenn Sie keine zufällige Software verwenden, der Sie nicht vertrauen, achten Sie darauf, diese so gering wie möglich zu halten. Die Schlussfolgerung lautet also: Nein, es ist nicht wirklich schädlich, wenn Sie wissen, wie ein Server richtig verwaltet wird.
quelle