Announcement

Collapse
No announcement yet.

Sicherheit in Linux?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sicherheit in Linux?

    Hallo!

    Ich (Linux-Neuling) will den Apache-Server auf SuSE Linux 7.3 laufen lassen. Das funzt auch einwandfrei (wenn ich ihn als root starte). Das ist aber nicht empfehlenswert, oder? Kann mir da jemand ein paar Tips geben, wie ich den Apache am sichersten laufen lasse? Extra einen neuen Benutzer einrichten, der dann die Schreib- und Ausführungsrechte für die Apache-Dateien hat? Oder den nobody-Benutzer verwenden? Bitte schreibt mir!!! Merci!

    MfG Stefan

  • #2
    Linux hat als Betriebssystem gegenüber Windows einige Vorteile in Sachen Sicherheit. Dennoch gibt es Sicherheit nicht automatisch - gerade Distributionen wie SuSE, RedHat, Mandrake und wie sie alle heissen sind eher auf Bequemlichkeit denn auf Sicherheit ausgerichtet. Das bedeutet fuer einen Administrator:<p>
    <ul>
    <li>Jeder Dienst moeglichst mit eigenem Benutzer (der Apache z.B. unterstuetzt das sehr gut), damit - falls jemand den Dienst mit einer Attacke knackt - im Ernstfall nur wenig Schaden entstehen kann</li>
    <li>Jeden Dienst, den man nicht braucht, ausschalten oder besser noch deinstallieren. Telnet ganz besonders, statt dessen SSH verwenden.</li>
    </ul>
    Ansonsten bietet Apache schoene Moeglichkeiten, die Rechte fuer einzelne Dateisysteme einzuschraenken (siehe OPTION). Man sollte auch nur die Seiten, die WIRKLICH ins Web sollen, fuer den Webserver freigeben, ganz besonders sind das keine .htaccess-Dateien oder Includes fuer PHP-Skripte.<p>
    Falls Du die Sicherheit noch weiter erhoehen willst, bietet sich statt Linux das Betriebssystem FreeBSD an, welches von Natur aus sehr viel robuster ist - aber auch etwas schwieriger zu handhaben.<p>
    Gruss, Marc

    Comment


    • #3
      Hallo Marco!

      Also einen neuen Benutzer und neue Gruppe einrichten (z.B. "httpd.httpd") und diese in der "httpd.conf" entsprechend eintragen. OK, hab ich gemacht. Soweit ich da durchsteig, werden dann die Child-Prozesse des Apache unter dem eingetragenen Benutzer, also "httpd" gestartet, der Daemon selbst ("./apachectl start") muss aber trotzdem als root gestartet werden, oder? Wenn das so ist, muss ich mich als "root" einloggen oder gibt es eine Möglichkeit, den Apache zu starten, wenn ich beispielsweise als "httpd" eingeloggt bin und nur den Apache als "root" starte?

      MfG
      Stefa

      Comment


      • #4
        Sorry, dass ich mich nicht frueher meldete - in dieses Forum schau ich nur selten.<p>
        Also der Webserver laeuft mit der uid/gid "httpd.httpd". Dann siehst Du mit <i>ps</i> oder <i>top</i> zwar EINEN Apache-Prozess, der als root laeuft, aber die anderen haben als Rechte alle die angegebenen. Dieser root-Apache selbst startet nur die anderen, er wird also niemals einen Request beantworten. Wenn nun ein PHP-Skript oder CGI-Programm ausgefuehrt wird, so passiert das mit den Rechten httpd statt mit root, was ein sehr grosser Sicherheitsgewinn ist.<p>
        Der Account "httpd" braucht uebrigens keine Login-Shell, es ist nicht notwendig, als "httpd" irgendwann im System eingeloggt zu sein. Du hast recht, "apachectl start" muss als root aufgerufen werden (eleganter ists, wenn apache gleich beim Systemstart mit hochfaehrt, das regeln die /etc/rc.d-Skripte, die je nach Distribution verschieden sind).<p>
        Gruss, Marc

        Comment

        Working...
        X