Ich weiß, dass das sudo-Passwort meinen Computer davor schützt, lokal von jemandem gehackt zu werden, der physischen Zugriff darauf hat ( Bearbeiten: Tatsächlich ist dies nicht der Fall ). Mein Passwort ist für diesen Zweck stark genug, aber ich weiß, dass es nicht stark genug ist, wenn jemand es aus der Ferne erzwingen kann.
Kann jemand im Root-Modus mit meinem Sudo-Passwort auf meinen Computer zugreifen, ohne physischen Zugriff auf den Computer bei einer Standard-Ubuntu-Desktop-Installation?
- Wenn Sie einen Netzwerkzugang haben, definitiv ja (kurze Antwort)
- Wenn Sie der Sicherheit nicht genügend Aufmerksamkeit schenken, ja (lange Antwort)
- Wenn Sie "ssh" ausgeführt haben und keine 2FA , ja ( Kommentare und Antworten)
- Man kann als root ohne sudo / user Passwort auf den Computer zugreifen
Antworten:
Ich möchte Sie nicht zu sehr erschrecken, aber wenn jemand physischen Zugriff hat, haben Sie ihm den Zugriff übergeben, unabhängig davon, wie stark Ihr Passwort ist. Es dauert einen Neustart durch jemanden, damit dieser Ihr Root-Passwort ändern kann (dies kann über "grub rescue" erfolgen, ohne dass Sie Ihr aktuelles Passwort eingeben müssen). Übrigens: Diese Methode wird als gültig und als Feature sowie als akzeptiertes Sicherheitsrisiko angesehen (andernfalls könnten Sie Ihr System niemals reparieren, wenn das Kennwort kompromittiert würde).
Hier kommt noch etwas ins Spiel: Ein ROUTER sollte intelligent genug sein, um den Zugriff von außen zu sperren, wenn er wiederholt nach denselben Informationen fragt, und dies über einen kurzen Zeitraum. Grundsätzlich haben Sie hier einen DOS-Angriff (oder ein DDOS, wenn 2+ Computer Sie angreifen). Ein Router sollte diese Verbindung beenden und eine Wartezeit erzwingen, bevor er neue Anforderungen von dieser Verbindung akzeptiert.
Sie müssen zuerst eine Verbindung herstellen und dann das sudo-Passwort eingeben. "root" -Modus ist deaktiviert und Sie können sich nicht direkt an einer "#" Eingabeaufforderung anmelden.
Beachten Sie, dass es möglich ist, einen Dienst zu missbrauchen. Wenn auf diesem Computer "ssh" ausgeführt wird und sie auf Ihr System "ssh" können und Ihren Benutzernamen und Ihr Kennwort für diesen Benutzer (und als Administrator auch Ihr Sudo-Kennwort) zur Hand haben, können sie auf Ihren Computer zugreifen und versaut es. Übrigens: Wenn sie es so machen, müssen sie zuerst Ihr System kennen (wie Ihr Passwort).
Aber dann gibt es ein Problem damit (und mit einer anderen Methode): Wie haben sie Ihr Passwort erhalten? Sie können es NICHT von Ihrem System selbst beziehen. Und im Allgemeinen lohnt es sich nicht, zu raten. Wenn es sozial entwickelt wurde ... dann ist Ihr Problem da, nicht das Sicherheitsmodell Ihres Systems, Ubuntu oder Linux im Allgemeinen.
Solange Sie Ihr sudo-Passwort haben, sollten Sie in Ordnung sein. Und es wird Ihnen noch besser gehen, wenn es sich um ein sicheres Passwort handelt (das für Sie vielleicht leicht zu merken ist, von anderen jedoch nicht erraten werden kann). Ein Beispiel, das ich zuvor verwendet habe, als ich darüber gesprochen habe: Wenn Ihr Hund "Abwegwfkwefkwe" heißt und "Abwegwfkwefkwe" als Passwort verwendet, ist das SCHLECHT, obwohl es gut aussieht (da Sie jemand fragen könnte: "Wie heißt Ihr Hund?" eine freie Vermutung). Wenn Sie keine Beziehung zu "Abwegwfkwefkwe" haben, ist es ein gutes Passwort.
Bester Rat, den ich geben kann:
Geben Sie Ihr Administratorkennwort nicht ein, wenn Sie danach gefragt werden, es sei denn, Sie wissen, dass erwartet wurde, dass Sie danach gefragt werden. Wenn Sie einen Browser öffnen und ein Popup erhalten, das aussieht wie "nach dem Passwort für das Administratorkonto fragen" ... hören Sie auf ... und überlegen Sie zuerst.
Lassen Sie Ihr System nicht unbeaufsichtigt, wenn die Nachfrist "sudo" aktiv ist.
sudo --reset-timestamp
Entfernt die aktuelle Kulanzfrist und fordert Sie bei der nächsten Verwendung von "sudo" erneut zur Eingabe des Kennworts auf. Sperren Sie Ihren Bildschirm, wenn Sie AFK gehen.Installieren Sie keine Dienste oder Software zum Spaß. Wenn Sie nicht brauchen
ssh
, installierenssh
Sie nicht , wenn Sie keinen Webserver verwenden, installieren Sie keinen Webserver. Und werfen Sie einen Blick auf die aktuell laufenden Dienste. Wenn Sie BT auf einem Notebook nicht verwenden, deaktivieren Sie es. Wenn Sie keine Webcam verwenden, deaktivieren Sie diese (falls aktiv). Löschen Sie nicht mehr verwendete Software.und für die wirklich paranoiden (und ja, ich sehe dich als paranoiden Panda an): ändere das Passwort von Zeit zu Zeit. Sie können sogar Rootkit-Jäger installieren, um nach unangemessenem Zugriff zu suchen.
Sichern Sie Ihre wichtigen Daten auf etwas, das Sie offline halten. Selbst wenn Sie jemanden auf Ihrem System finden, können Sie es formatieren und mit einer neuen Installation beginnen und Ihre Daten wiederherstellen.
quelle
sudo --reset-timestamp
mitsudo -k
odersudo -K
für das wirklich Paranoide abkürzen (nur erforderlich, wenn der Angreifer die Systemzeit auf beliebige Werte setzen kann, zu welchem Zeitpunkt Sie wahrscheinlich bereits verloren haben).Ja, sie können.
Es gibt jedoch mehrere Möglichkeiten, das
sudo
Passwort zu erzwingen. Dies ist wahrscheinlich nicht die erste.Zunächst ist das
sudo
Passwort das Passwort Ihres Benutzers. Also wirklich, was sie brauchen würden, ist Ihr Passwort.Zweitens ist es wahrscheinlich der letzte Ausweg, das Kennwort eines Benutzers mit Brute-Force-Methoden zu knacken, um auf ein System zuzugreifen.
Es gibt viel elegantere (aber meist effektivere) Möglichkeiten, in ein anderes System einzudringen.
In der Regel versucht ein Angreifer entweder nur, die am häufigsten auftretenden Sicherheitslücken auszunutzen (die bekannteste ist wahrscheinlich, dass er auf irgendeine Weise eine Benutzer-Shell abruft und einen ShellShock ausnutzt, um eine Root-Shell zu erhalten) oder er leistet eine hervorragende Arbeit im Sinne von:
Das brachiale Erzwingen des
sudo
Kennworts des Benutzers kann ein Versuch sein, wenn eine Root-Shell nicht anderweitig abgerufen werden kann. Wenn Sie jedoch beispielsweise einen als Root ausgeführten Dienst ausnutzen, muss der Angreifersudo
das Kennwort des Benutzers brutal erzwingen .quelle
sudo
Passwort. Noch besser, wenn er einen als root ausgeführten Dienst ausnutzt, ist er direkt root.sudo
Rechte (= ~ ein Benutzer, als der ein Angreifer angemeldet ist, dessen Kennwort der Angreifer jedoch nicht kennt) möglicherweise einen Root erhält Shell nur durch Ausnutzen bekannter Fehler (in diesem Fall des berüchtigten ShellShock).Wenn ich in den letzten Jahren etwas über Sicherheit gelernt habe, dann eins: Nichts ist unmöglich .
Solange Sie Zugang zu einem Netzwerk haben, auf jeden Fall. Jeder auf Ihrem System ausgeführte Dienst, auf den über das Netzwerk zugegriffen werden kann, ist theoretisch anfällig und daher eine potenzielle Schwachstelle.
Und deshalb ist es für einen Angreifer mit genügend Ideen möglich. Sie können Ihr System so sicher wie möglich machen, aber nie zu 100% sicher sein.
Es ist daher wichtig zu beurteilen, was mit vertretbarem technischen Aufwand möglich ist und was Sie so gut schützt, dass Sie selbst nicht mehr arbeiten können.
quelle
Das sudo-Passwort dient nicht nur dem lokalen Schutz, sondern soll der Verwendung von Root-Rechten eine zusätzliche Sicherheitsebene hinzufügen. Eine gute Diskussion finden Sie hier https://superuser.com/a/771523/467316
Ihr Passwort ist möglicherweise nicht so sicher wie Sie denken. Im Moment knacke ich 20-40% der Active Directory-Hashes meines Kunden für diejenigen, die ich zuvor gesehen habe, und diejenigen, die schlechte Passwortregeln haben, werden zu 70% geknackt. Ich empfehle 16 Zeichen, komplexe Passwörter. oclHashcat- und Radeon-Grafikkarten können großen Schaden anrichten. Fügen Sie bei jedem Verstoß in den letzten 5 Jahren alle Kennwortspeicherauszüge hinzu, und Sie erhalten in der Regel ein gutes Wörterbuch, aus dem Sie arbeiten können.
Wenn Sie überhaupt SSH verwenden, nehmen Sie einige Anpassungen in der sshd_config vor
Die MUSTS direkt aus dem Tor (der letzte, der den FTP-Server deaktiviert, wenn Sie ihn nicht verwenden).
Speichern Sie es, starten Sie ssh neu
Verwenden der Verschlüsselung mit öffentlichen Schlüsseln Erstellen Sie zunächst auf Ihrem Remote-Computer einen Schlüssel (mit puttygen oder einem anderen Betriebssystem). Kopieren Sie den öffentlichen Schlüssel auf Ihren Ubuntu-Rechner unter dem Benutzer, den Sie als authorized_keys-Datei anmelden möchten (wahrscheinlich müssen Sie ihn erstellen).
Kopieren Sie den öffentlichen Schlüssel in diesem Format
Speichern Sie es und richten Sie Ihre sshd_config ein, um die Anmeldung mit öffentlichen Schlüsseln zu ermöglichen
speichere und starte ssh neu
Versuchen Sie SSHing von Ihrem privaten, verschlüsselten Computer mit öffentlicher Schlüsselverschlüsselung zu Ihrem Ubuntu-Host. Wenn alles geklappt hat, kehren Sie zum Ubuntu-Host zurück und deaktivieren Sie die Kennwortauthentifizierung.
Speichere und starte ssh neu
Versuchen Sie erneut, von einem Computer mit privatem Schlüssel zu sshing, um dies zu bestätigen.
Möchten Sie weitere hinzufügen? Richten Sie ein nicht privilegiertes Konto ein, aktivieren Sie PermitRootLogin no, starten Sie ssh neu, fügen Sie Ihren öffentlichen Schlüssel zu den authorized_keys des neuen Kontos hinzu, melden Sie sich als nicht privilegiertes Konto an, oder wechseln Sie zu Ihrem Root- oder privilegierten Konto, wenn Sie sich als Root anmelden oder sich durch die Dinge bewegen müssen.
quelle
Der Zweck von sudo ist nicht kennwortbezogen, sondern besteht darin, bestimmten Benutzern Root-Funktionen zu geben und andere Benutzer auf einem Computer einzuschränken, ohne dass sie den Root-Benutzernamen (Kennwort / Schlüssel / Sicherheitstoken / usw.) angeben müssen. Beispielsweise können Tag-zu-Tag-Mitarbeiter bei meiner Arbeit ihre Stationen (aus einem Veto-Repository eines Unternehmens) nur über sudo starten, herunterfahren, installieren und aktualisieren. Sie erhalten keine anderen Root-Freiheiten wie das absichtliche Entfernen / Formatieren von Geräten, das Hinzufügen und Entfernen von Benutzern, die Entscheidung, welche Kernelmodule auf die Blacklist gesetzt werden sollen oder was in crontab (etc, etc, etc) ausgeführt wird. Während bei Ihnen zu Hause Ihr sudo den vollen Zugriff auf die Maschine ermöglicht. In Bezug auf das Passwort benötigt sudo in Wirklichkeit das Passwort Ihres Benutzerkontos (dasselbe, das Sie zum Anmelden verwenden würden, wenn die automatische Anmeldung nicht aktiviert ist.
Schlechter Tipp : Wenn Sie als root ein reguläres Konto auf einem sudo-fähigen Unix (Linux / Apple OSX) einrichten möchten, führen Sie Folgendes aus
Zu diesem Zeitpunkt hat root ein reguläres Passwort und Sie können sich mit dem genannten Passwort auf "alte Art und Weise" ausloggen und als root einloggen.
In Bezug auf die Sicherheit benötigen Angreifer möglicherweise keine Sicherheitsanmeldeinformationen, wenn ein Programm (z. B. Webserver, MySQL, PHP-Daemon, SSHD) als Konto mit erhöhten Rechten ausgeführt wird. Sie können die Sicherheitslücke des Programms ausnutzen und aus diesem Programm, das als root ausgeführt wird, einfach eine neue Shell erzeugen. Dies ist jedoch ziemlich selten, da sich Distributionsmanager ähnlicher Probleme bewusst sind und hervorragende Arbeit beim Aufbau einer durchdachten und normalerweise sicheren Standardumgebung leisten.
In dem anderen Betriebssystem wäre ein ähnlicher Vorgang wie sudo Rechtsklick und Ausführen als Systemadministrator (oder das Nörgeln von UAC-Berechtigungen).
quelle