32.2 Unix und Sicherheit
Im Folgenden wollen wir zunächst klären, mit welchen Sicherheitskonzepten Linux und BSD von Haus aus bereits ausgestattet sind. Erst wenn man diese Eigenschaften versteht und richtig nutzt, macht eine weitergehende Absicherung Sinn.
32.2.1 Benutzer und Rechte
Unix ist von Haus aus mehrbenutzerfähig. Dies impliziert das bereits ausführlich vorgestellte Benutzer- und Rechtesystem. Ein normaler Benutzer hat dabei in aller Regel keinen Vollzugriff auf das System – und das ist unter Sicherheitsgesichtspunkten auch gut so.
Schließlich braucht man keine Schreibrechte auf wichtige Programme – man will sie nur ausführen. Man möchte als normaler Benutzer Geräte nur benutzen und keine neuen Treiber für sie konfigurieren. Auch gehen einen die Dateien anderer Benutzer nichts an, es sei denn, der Zugriff würde explizit erlaubt.
Da der Eigentümer eine Eigenschaft eines Prozesses ist, können und sollten Serverdienste unter speziellen Benutzerkennungen laufen. Wird nämlich ein solcher Dienst durch einen Exploit (also eine Software zum Ausnutzen von Programmierfehlern) dazu gebracht, Code eines Angreifers auszuführen, läuft dieser Code unter einem eingeschränkten Benutzerkonto. Wenn der Administrator also nicht als root am System arbeitet oder Dienste laufen lässt, so ist eine gewisse Grundsicherheit auf jeden Fall gewährleistet.
32.2.2 Logging
Eine weitere, sicherheitsrelevante Eigenschaft von Linux/Unix ist das Logging. Darüber kann nachvollzogen werden, was im System passiert und schon passiert ist. Im Falle einer Systemkompromittierung kann nachvollzogen werden, wer sich wann und von welcher IP-Adresse aus eingeloggt hat. Bei einem Serverproblem kann anhand der Logfiles in der Regel nachvollzogen werden, wo das Problem genau liegt und wie es vielleicht behoben werden kann.
Natürlich besteht der erste Schritt eines Angreifers normalerweise darin, die Logfiles zu »desinfizieren« – also entweder nur die verdächtigen Meldungen oder gleich die ganzen Logfiles zu löschen. Setzt man dagegen einen zentralen Logging-Server ein, wie in Abschnitt Syslog beschrieben wurde, wird dieses Unterfangen für den Angreifer schon schwieriger.
32.2.3 Netzwerkdienste
Aber auch die normalerweise installierten Netzwerkdienste sind in der Regel auf Sicherheit bedacht. So wird zum Beispiel der SSH-Dienst, der Verschlüsselungsalgorithmen nutzt, anstelle des unsicheren Telnet installiert. Dabei handelt es sich zwar um einen sicheren Dienst, aber eine wichtige Frage stellt sich doch: Was braucht man eigentlich wirklich?
Oft werden zum Beispiel folgende Dienste installiert, die man auf einem Serversystem kaum benötigen wird:
- portmap
Setzt man auf dem Server kein NFS und keinen famd ein, so kann man den Dienst portmap deinstallieren. Alternativ kann dieser so konfiguriert werden, dass er nur auf dem Loopback-Device horcht. - *identd
Über diesen Dienst kann man herausfinden, unter welchen Benutzerrechten ein Prozess läuft, der eine bestimmte TCP-Verbindung geöffnet hat – bloß weg damit! - fingerd
Über den Dienst fingerd können Sie herausfinden, welche Benutzer gerade eingeloggt sind. Dies ist nichts, was man auf einem öffentlichen Server haben möchte. - etc.
Leider gibt es noch viel mehr unsichere (besonders auch unbekannte) Dienste, so dass wir sie an dieser Stelle nicht alle aufzählen können.
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.