Beim Entwickeln einer Seite auf einem lokalen Host wird manchmal der Fehler "Berechtigung verweigert" angezeigt, den ich durch Ausführen beheben kann chmod -R 777 /var/www
. Allerdings sagen mir die Leute, dass dies aus Sicherheitsgründen eine schlechte Idee ist.
Warum sollte /var/www
ein chmod von 777 nicht sein?
permissions
security
apache2
www
Luis Alvarado
quelle
quelle
Antworten:
777 ist im Allgemeinen eine schlechte Erlaubnis und ich zeige Ihnen warum.
Auch wenn es in einem Casino oder in Las Vegas so aussieht, bedeutet 777 für Sie keinen Jackpot. Vielmehr Jackpot für alle, die Ihre Dateien ändern möchten. 777 (und seine hässliche Cousin 666) erlaubt Lese- und Schreibrechte (und im Fall von 777, Execute) anderen . Sie erfahren mehr über die Funktionsweise von Dateiberechtigungen. Es gibt jedoch drei Berechtigungsgruppen: Eigentümer, Gruppe und andere . Wenn Sie die Berechtigung für andere Benutzer auf 6 oder 7 (
rw-
oderrwx
) setzen , können Benutzer diese Dateien und Ordner bearbeiten und bearbeiten. Wie Sie sich vorstellen können, ist dies in der Regel schlecht für die Sicherheit.Hier ist mein Beispiel:
Bisher habe ich einen Ordner erstellt und eine Datei mit "schlechten" Berechtigungen erstellt (777 und 666). Jetzt werde ich zu einem anderen Benutzer wechseln und versuchen, diese Dateien zu manipulieren.
Als dieser "böswillige" Benutzer konnte ich Dateien in das Verzeichnis einfügen und Text in bereits vorhandene Dateien einfügen. Während unten in einem Verzeichnis mit 755 und Dateien mit 644 Dateien und Verzeichnisse angezeigt werden, kann ich die Dateien weder bearbeiten noch neue erstellen:
Für Apache-Berechtigungen sollten Sie 0755 und 0644 (AKA
umask 022
) für Ordner bzw. Dateien verwenden. Auf diese Weise können Sie als Eigentümer der Dateien diese bearbeiten und manipulieren und gleichzeitig Apache die für den Betrieb erforderlichen Mindestzugriffsebenen gewähren.quelle
/etc/passwd
und Sie werden sehen , wie Benutzermail
,news
undnobody
. Selbst wenn es für alle echten menschlichen Benutzer Ihres Systems in Ordnung ist, den Inhalt von zu ändern/var/www
, bedeutet dies nicht, dass Sie alle Prozesse ausführen möchten, damit diese "künstlichen" Benutzer dies können.ls -lah
,touch bad
oder andere Befehle. Wie können sie Ordner und Dateien manipulieren? 2) Vererbung. Sie haben keine Vererbung zwischen Ordnern und Dateien in ihnen abgedeckt. Es gibt mindestens 2-3 Schritt vor einer Datei:/var
,/var/www
,/var/www/project
. Welche Benutzer- / Gruppenrechte sollten/var
haben? Welche Benutzer- / Gruppenrechte sollten/var/www
haben? Und so weiter. Wie arbeiten sie zusammen?777-Berechtigungen führen im Grunde genommen nicht dazu, dass Sie von alleine gehackt werden. Wenn sich jedoch jemand an einer beliebigen Stelle einen Besitz zu Eigen macht, kann dies dazu verwendet werden, die Berechtigungen zu erhöhen und die vollständige Kontrolle über Ihren Computer zu erlangen. Das Schlimmste ist, dass Ihre Berechtigungen "7" verwenden - das bedeutet, dass Berechtigungen gelesen, geschrieben und ausgeführt werden .
Angenommen, ein Hacker möchte Ihren Computer übernehmen. Er kann über einen Webbrowser eine Verbindung zu Ihrem Computer herstellen und eine Verbindung zu http://IhrComputer.Beispiel.com:80/ herstellen.. Wenn Sie Seiten zur Verfügung haben, auf denen er Bilder hochladen kann, kann er eine ausführbare Datei so umbenennen, dass sie mit ".jpg" endet, und sie auf Ihren Server hochladen. Jetzt durchsucht er diese Datei in seinem Webbrowser und führt sie aus, da Linux sich nicht um die Erweiterung kümmert, sondern nur erkennt, dass es sich um eine ausführbare Datei handelt. Das bringt ihm vielleicht nicht viel, aber weil es überhaupt lief, weiß er, dass es als Apache-Benutzer lief. Anschließend lädt er eine geänderte Version hoch, die die Konfigurationsdateien von Apache bearbeitet und ihm so noch mehr Zugriff gewährt - sagen wir, Apache gibt den Inhalt von / etc / passwd aus. Er kann diese Informationen dann verwenden, um festzustellen, welche Benutzer auf dem System vorhanden sind. Er kann dann eine Verbindung mit ssh herstellen und gängige Kennwörter verwenden, um sich als diese Benutzer anzumelden. Wenn dies nicht funktioniert, wird er einen vollständigen Brute-Force-Angriff durchführen. Wenn er als Benutzer mit sudo-Zugriff einsteigt,
Nun können Sie sagen, dass dies nicht wahrscheinlich ist oder dass es nicht so ist, wie ein echter Hacker arbeiten würde. Das ist wahr, aber der Punkt ist, dass Sie durch das Setzen von Dateien auf chmod 777 eine Sicherheitslücke geöffnet haben, die ein Hacker nutzen kann, wie er es für richtig hält.
Wenn Sie stattdessen das Prinzip des geringsten Privilegs befolgen , tritt diese Lücke nicht auf, und Ihr System ist umso schwerer zu hacken. Auch wenn es schwieriger ist, die Dinge richtig zu machen, sollten Sie dennoch alle Anstrengungen unternehmen, um dies zu tun.
quelle