Ich habe das Gefühl, dass dies eine dumme Frage ist, aber das ist etwas, worüber ich mich eine Weile gewundert habe.
Ich habe ein VPS und dies ist mein erstes großes Linux-Unternehmen. Ich bin die einzige Person, die Zugang dazu hat. Meine Frage ist, was ist falsch daran, sich nur als root anzumelden, anstatt ein Konto zu erstellen und ihnen sudo-Zugriff zu gewähren? Wenn ein Sudoer alles kann, was Root kann, was ist dann der Unterschied? Wenn ein Hacker mein Passwort für mein Standardkonto, das kein Root-Konto ist, knacken könnte, könnte er auch sudo-Befehle ausführen. Wie kann ein Hacker, der mein Root-Konto knackt, also mehr oder weniger wichtig sein?
linux
ssh
permissions
Ryeguy
quelle
quelle
Antworten:
Wenn Sie als root angemeldet sind, können Sie auf einfache Weise Verzeichnisse löschen oder etwas tun, das im Nachhinein auf dem System wirklich dumm ist, während Sie als Benutzer normalerweise ein paar zusätzliche mentale Zyklen in das investieren müssen, was Sie tun Sie tippen, bevor Sie etwas Gefährliches tun.
Außerdem hat jedes Programm, das Sie als Root ausführen, uneingeschränkten Zugriff auf Ihre Website, wenn Sie von jemandem oder etwas dazu gebracht werden, eine gefährliche Website zu starten, zu kompilieren oder zu durchsuchen, die Ihr System beschädigen möchte, z. B. einen Trojaner oder andere Malware System und kann tun, was es will, einschließlich Zugriff auf TCP-Ports unter 1024 (so kann es Ihr System beispielsweise ohne Ihr Wissen in einen Remailer verwandeln).
Grundsätzlich fragen Sie nach Problemen, die durch das Anmelden als Sie selbst möglicherweise verhindert werden. Ich habe viele Leute gekannt, die froh waren, dass sie dieses Sicherheitsnetz in einem Moment der Unachtsamkeit hatten.
EDIT: Es gibt auch das Problem, dass root das bekannteste und somit einfachste Ziel für Skripte und Hacks ist. Systeme, die das Konto deaktivieren und stattdessen Benutzer zur Verwendung von sudo zwingen, bedeuten, dass jeder Versuch, das Root-Verzeichnis von ssh oder einem lokalen Exploit auf das Konto zu knacken, mit dem Kopf gegen eine Wand schlägt. Sie müssten ein Passwort und einen Benutzernamen erraten / knacken . Es ist bis zu einem gewissen Grad Sicherheit durch Unbekanntheit, aber es ist schwer zu argumentieren, dass es die meisten Skript-Kiddie-Angriffe nicht vereitelt.
quelle
Wenn Sie nicht zulassen würden, dass sich ein Idiot als Root bei Ihrem Server anmeldet, müssen Sie sich nicht immer als Root anmelden. Es sei denn, Sie können mit ganzem Herzen sagen, dass Sie noch nie ein Idiot waren. Nicht wirklich? Bist du sicher? :)
Vorteil: Reduziert die Wahrscheinlichkeit, dass Sie gleichzeitig Root und Idiot sind.
quelle
Der Hauptgrund sind Fehler. Wenn Sie immer root sind, könnte ein einfacher Tippfehler das System wirklich vermasseln. Wenn Sie sich nur als root anmelden oder sudo verwenden, um Dinge zu tun, die dies erfordern, minimieren Sie das Risiko, einen gefährlichen Fehler zu machen.
quelle
Wenn Sie root sind, werden Sie in Bezug auf Berechtigungen faul, da Sie die ganze Zeit über Zugriff auf alles haben. Es ist Ihnen egal, wann die Dinge 777 oder 644 oder was auch immer sind. Wenn Sie also jemals jemand anderem Zugriff auf Ihr System gewähren, der nicht auf alles zugreifen möchte, wird es plötzlich zu einer echten Schwierigkeit, die Maschine für andere sicherer zu machen.
quelle
Es gibt ein paar Grundprinzipien, um sich nicht als root anzumelden: 1) Das root-Passwort wird zum Zeitpunkt der Anmeldung nie über das Netzwerk gesendet. 3) Aus Versehen etwas 'Dummes' tun
quelle
Dies dient eher dem Schutz vor sich selbst, damit Sie eine zweite Chance haben, die Befehle mit höheren Berechtigungen zu überprüfen, die Sie ausführen möchten, analog zur Benutzerkontensteuerung in Windows. Es ist ziemlich einfach, etwas aus Versehen zu tun,
rm -rf /
während Sie als root angemeldet sind.Darüber hinaus haben Sie Rückverfolgbarkeit. Dies ist kein großes Problem in Ihrer Situation, in der Sie (theoretisch) die einzigen Befehle ausgeben, aber die Möglichkeit, eine Person zu protokollieren und zurückzuverfolgen, ist eine Schlüsselkomponente für viele Formen der Analyse.
quelle
Der Unterschied besteht hauptsächlich darin,
dass man nicht aus Versehen etwas Schlechtes tun kann.
Dieser "böse" Code kann das System nicht übernehmen.
Hinweis: Böser Code bedeutet nicht unbedingt, dass jemand bereits Zugriff auf das System hat.
quelle
Sie sollten immer Konten mit der niedrigstmöglichen Berechtigungsstufe verwenden. Wenn Sie die ganze Zeit als root arbeiten, treten schlechte Angewohnheiten und Faulheit auf, die das Leben unangenehm machen, wenn Sie mit mehreren Benutzern arbeiten oder etwas einem öffentlichen / halböffentlichen Netzwerk aussetzen.
Denken Sie auch daran, dass das Knacken von Passwörtern nur ein Kompromissszenario ist - und auch nicht das häufigste. Es ist wahrscheinlicher, dass Sie Opfer einer Browser-Sicherheitsanfälligkeit oder einer Sicherheitsanfälligkeit in einem Daemon werden, der auf Ihrem System ausgeführt wird.
Denken Sie an Code, den Sie ohne nachzudenken verwenden. Zum Beispiel die Linux-Portierung von Adobe Flash, ein dampfender Haufen Kacke, der erst in der jüngeren Vergangenheit nutzbar geworden ist. Wie sicher ist dieser Code Ihrer Meinung nach? Möchten Sie, dass dies die volle Kontrolle über Ihr System ausübt?
quelle
Es kann vor SSH-Brute-Force-Angriffen schützen. Jeder Unix hat ein Root-Konto. Von außen ist jedoch nicht klar, wie Ihr "sudo" -Nutzername lauten würde. Wenn also jemand versuchen will, sich brutal durchzusetzen, weiß er, dass es einen Root-Account gibt, und er wird es wahrscheinlich versuchen. Sie wissen jedoch nicht, wo sie anfangen sollen, wenn Sie sudo verwenden.
quelle
http://www.cyberciti.biz/tips/linux-unix-bsd-openssh-server-best-practices.html
quelle
Mein Rat wäre, es eine Weile lang mit root zu versuchen. du wirst bald herausfinden, warum du es nicht tun solltest :)
quelle
Auch wenn ich nicht auf "security by obscurity" vertraue, ist es mit Sicherheit von Vorteil, ein benutzerdefiniertes Login anstelle des immer vorhandenen Root-Logins zu verwenden. Sie können SSH daher auch so konfigurieren, dass Root-Anmeldungen verhindert werden.
Wie schon gesagt, root kann alles ohne Bestätigung erledigen. Die Verwendung eines nicht privilegierten Benutzers kann also dumme Fehler und Tippfehler verhindern.
Ein weiteres Argument für mehrere Benutzerkonten besteht darin, unterschiedliche Software unter unterschiedlichen Benutzern auszuführen. Wenn dabei eine Sicherheitslücke in einer Anwendung ausgenutzt wird, kann der Exploiter nur auf Dateien und Ressourcen zugreifen, auf die sein aktiver Benutzer zugreifen kann.
Ein letzter Punkt, um root nicht zu verwenden: Ressourcenverbrauch. Root kann unbegrenzt viel Arbeitsspeicher, Verarbeitungszeit, Dateihandler oder Speicherplatz verwenden. Auf vielen Dateisystemen gibt es Datenblöcke, die nur für root reserviert sind. Ein normaler Benutzer kann sie also niemals verwenden, um Ihre Festplatte zu füllen. Der Befehl ulimit kann auch verwendet werden, um den Speicher und die Nummer des Datei-Handlers zu beschränken, die ein Benutzer verwenden kann. Wenn Sie jedoch Root sind (oder eine Anwendung, die als Root ausgeführt wird), hindert nichts Sie daran, dieses Limit zu ändern.
quelle
Ja, ich stimme Ihnen zu, und ich denke, das ist eine Frage des Schutzes vor menschlichen Fehlern und manchmal vor bösartigen Programmen. Das Schlimme, was ich noch nie gesehen habe, ist, dass root als Standard-Gnomenkonto verwendet wird.
Ich denke, dass die meisten Benutzer, die dies tun, die Windows-Benutzer sind, die kürzlich zu Linux oder Unix migriert wurden. Versuchen Sie, die Verwendung des Administratorprivilegs auf root zu kopieren.
quelle
Es ist nichts Falsches daran, als root angemeldet zu sein. Es hilft beim Aufbau des Muskelgedächtnisses, um nur sichere Befehle einzugeben, und fördert die Genauigkeit des Denkens, wenn Aktionen mit großen Konsequenzen ausgeführt werden. Ich empfehle dringend, als root zu arbeiten, um die Systemadministration zu verbessern.
du darfst auch coole Sachen machen wie
ping -i 0.2 -c 1000 example.com
quelle