»Real men don't make backups. They upload it via FTP and let the world mirror it.« Linus Benedict Torvalds (* 28.12.1969), finnischer Informatiker und Linux-Initiator
16 Backup und Sicherheit
Was Sie in diesem Kapitel erwartet
Wir kommen nun zu einem besonders heiklen Thema, dem Thema Sicherheit. Wir werden im Folgenden gemeinsam untersuchen, ob Linux wirklich sicherer ist oder sein kann als Windows. Die Idee scheint verlockend, dass Sie bei der Verwendung von Linux auf Virenscanner, Firewalls, Anti-Spyware und vieles, was es sonst noch alles gibt, wirklich verzichten können. Aber ist diese Vorstellung auch realistisch?
Dieses Kapitel ist der Absicherung des Systems gewidmet. Wenngleich unter Linux Viren derzeit kein großes Thema sind, erfordert der Aufbau eines eigenen Servers mit Internetzugang die Beschäftigung mit Themen wie Firewalls und Datensicherung.
Ich werde zu Beginn auf die Themen Rechte und Datensicherung eingehen. Auch das sicherste System kann Sie z. B. nicht vor einer kaputten Festplatte schützen. Die kleinen Gemeinheiten des Tages können Sie nicht verhindern, aber glücklich ist derjenige, der immer ein aktuelles Backup seiner Daten besitzt.
Benötigtes Vorwissen
Es sind grundlegende Kenntnisse im Umgang mit der Shell nötig.
16.1 Berechtigungen 

Wie Sie schon am Anfang dieses Buches lesen konnten, zeichnet sich Linux gerade auf dem Gebiet der Benutzer- und Rechteverwaltung aus. Sie benötigen also Kenntnisse, wie Sie durch einige leichte Befehle die Dateirechte verändern können.
16.1.1 Dateiberechtigungen 

Mit dem Befehl chmod verändern Sie die Zugriffsrechte einer Datei. Der Befehl allein bewirkt noch gar nichts, wenn Sie nicht gleichzeitig mit angeben, für welche Datei Sie die Rechte verändern möchten und auf welche Art und Weise dies geschehen soll.
Ein typischer Befehl sieht so aus:
chmod u=rwx,g=rwx,a=r <Dateiname>
Das Gleiche drückt aber auch der Befehl chmod 774 <Dateiname> aus. Doch Sie fragen sich zu Recht, was diese Abk"urzungen bedeuten sollen. Wie Sie an dem Befehl erkennen, setzt sich die Option, die direkt nach dem Befehl steht, aus drei Teilen zusammen.
Option | Wirkung |
u |
User |
g |
Gruppe |
o |
andere |
a |
alle |
+ |
Recht hinzuf"ugen |
- |
Recht entfernen |
= |
Recht zuordnen |
r |
Lesen |
w |
Schreiben |
x |
Ausf"uhren |
s |
su-Bit |
Da Sie bei dieser Methode doch ziemlich viel tippen müssen, gibt es alternativ die Möglichkeit, einen dreistelligen Code zu verwenden. Dabei stehen die drei Ziffern f"ur die Rechte eines Users, einer Gruppe und der anderer. Die Ziffern ergeben sich durch Addition folgender Werte:
Wert | Wirkung |
4 |
Lesen |
2 |
Schreiben |
1 |
Ausführen |
SU-Bit
Eine vorangestellte 4 setzt das su-Bit. Die Reihenfolge der Ziffern ist ebenso festgelegt. Zuerst erfolgt die Vergabe der Rechte an den User (also Sie), danach an die Gruppe (zu der Sie eventuell gehören) und als Letztes an die anderen. Mit einer 7 vergeben Sie die maximalen Rechte. Das obige Beispiel legt also fest, dass die Datei von User und Gruppe les-, schreib- und ausführbar sein soll und für alle anderen lesbar. Möchten Sie rekursiv für alle Leserechte hinzufügen, können Sie das mit folgendem Aufruf erledigen: chmod -R a+rX.
Option | Wirkung |
-R |
rekursiv |
a+ |
für alle folgende Rechte hinzufügen |
r |
Leserecht |
X |
nur für Verzeichnisse: das Recht, das Verzeichnis aufzulisten (ls) |
Die Rechte einzelner Dateien und Verzeichnisse lassen sich natürlich auch grafisch verändern (siehe Abbildung), wenngleich die beschriebene Vorgehensweise über das Terminal wesentlich bequemer ist.
Abbildung 16.1 Die Rechte lassen sich auch bequem über eine grafische Oberfläche definieren. Klicken Sie dazu mit der rechten Maustaste auf die jeweilige Datei, und wählen Sie den Punkt »Eigenschaften«.
PolicyKit
Mit der Version 2.22 der Desktop-Umgebung GNOME begann die Integration des PolicyKits. Über PolicyKit können Anwendungen mit Benutzerrechten gestartet und später mit Root-Rechten versehen werden. Mittels PolicyKit lassen sich des Weiteren Rechte fein verteilen. So ist es beispielsweise möglich, Benutzer zu bestimmen, denen bestimmte Aktionen erlaubt werden, für die normalerweise Root-Rechte vonnöten wären (siehe Abbildung). Beispielsweise ist es möglich, einem Benutzer zu erlauben, die Netzwerkeinstellungen oder die Uhrzeit des Systems zu verändern, ohne ihn in die admin-Gruppe aufnehmen zu müssen.
Abbildung 16.2 Um Anwendungen mit Root-Rechten zu starten, musste man diese bisher als Root in einem Terminal aufrufen (sudo) oder auf eine integrierte Abfrage hoffen.
Ausblick
Sobald PolicyKit einmal in den Dateimanager Nautilus oder in den Texteditor gedit von GNOME eingebaut sein wird, können Sie beispielsweise Dateien in Verzeichnisse verschieben oder diese editieren, ohne dass das Programm mit Root-Rechten gestartet sein muss. Sind höhere Rechte für eine Operation nötig, erscheint eine Abfrage, über die Sie die gewünschte Operation autorisieren. Leider ist die Integration von PolicyKit – beispielsweise in Nautilus – in letzter Zeit nicht deutlich fortgeschritten. Dabei wäre ein einfaches grafisches Kopieren mit optionaler Abfrage von Root-Rechten eine wünschenswerte Sache – gerade für Einsteiger, die ja zur Zielgruppe von Ubuntu gehört.
Tipp 233: Passwort ändern
Wenn Sie die Passwörter der Benutzer – auch Ihr eigenes – ändern möchten, so haben Sie zwei Möglichkeiten. Als Erstes haben Sie die Möglichkeit, dies grafisch zu erledigen. Öffnen Sie hierzu System • Systemverwaltung • Benutzer und Gruppen, entsperren Sie die Anwendung durch einen Klick auf den Button Entsperren, und geben Sie Ihr Passwort ein. Nun können Sie den betreffenden User markieren und auf Eigenschaften klicken. Im Bereich Passwort können Sie nun ein neues Passwort definieren. Nach der Bestätigung mit OK tritt Ihr neues Passwort sofort in Kraft. Wesentlich bequemer können Sie dies auch über das Terminal erledigen. Um das Passwort des gerade angemeldeten Benutzers zu ändern, reicht die Eingabe des Kommandos passwd. Geben Sie zuerst Ihr altes und dann zweimal Ihr neues Passwort ein, um die Änderung zu übernehmen. Mit sudo passwd user können Sie übrigens auch das Passwort jedes beliebigen Benutzers ändern, ohne dass dessen altes Passwort verlangt wird (user müssen Sie durch den betreffenden Benutzernamen ersetzen). |
16.1.2 PAM 

PAM (Pluggable Authentication Modules) erlaubt die Kontrolle von Logins. Statt die Einzelheiten der Authentisierung in jeder Applikation neu zu formulieren, bietet die PAM-API einen standardisierten Dienst in Form von Modulen an. In einer Konfigurationsdatei kann der Systemadministrator die Authentisierungsmodule einzelnen Diensten zuordnen, ohne dafür die Software, die diese Dienste realisiert, neu kompilieren zu müssen.
Zentrale Speicherung der Anmeldedaten
PAM wird in der Praxis häufig dafür eingesetzt, verschiedenste Serverdienste, wie SSH und FTP, mit nur einem Authentisierungsdienst zu verbinden. Dies ermöglicht die zentrale Speicherung der Anmeldedaten dieser Dienste. Wird das Passwort an der zentralen Stelle geändert, können Sie sich bei allen Diensten direkt mit dem neuen, zentral gespeicherten Passwort anmelden. Getrennte Passwortdatenbanken für einzelne Dienste sind nicht notwendig.
/etc/pam.d/* # PAM-Konfiguration /etc/pam.d/login # PAM-Konfiguration des Logins /etc/security/* # PAM-Modulparameter /etc/securetty # Konfiguration des root-Login auf der Konsole /etc/login.defs # generelle Logins
Falls wirklich (auf eigene Gefahr) ein Login an der Konsole ohne Passwort möglich sein soll, können Sie die Datei /etc/pam.d/login wie folgt ändern:
#auth required pam_unix.so nullok auth required pam_permit.so
Ähnlich funktioniert das auch mit xdm, gdm usw., um sich ohne Passwort an einer anderen X-Konsole anzumelden.
Andererseits können Sie das Paket cracklib2 installieren und /etc/pam.d/passwd wie folgt anpassen, um einen guten Passwortschutz zu erhalten:
password required pam_cracklib.so retry=3 minlen=6 difok=3
Ein einmaliges Nutzen eines Login-Passworts zur Zugangsaktivierung kann auch hilfreich sein. Dafür verwenden Sie das passwd-Kommando mit der Option -e.
Prozesse
Die maximale Anzahl an Prozessen kann mit ulimit -u 1000 in der Bash-Shell gesetzt werden oder auch in der Datei /etc/security/limits.conf mit PAM. Andere Parameter, wie z. B. core, können so ebenfalls gesetzt werden. Die Anfangseinstellung von PATH kann in /etc/login.defs festgelegt werden, bevor die Shell Skripte startet.
Die Dokumentation von PAM befindet sich im Paket libpam-doc. Das in diesem Paket enthaltene Buch Linux-PAM System Administrator’s Guide von Andrew G. Morgan und Thorsten Kukuk behandelt PAM, die verfügbaren Module usw. Die Dokumentation enthält auch The Linux-PAM Application Developers’ Guide und The Linux-PAM Module Writers’ Guide.