Login
Newsletter
Werbung

So, 13. Juli 2003, 00:00

Crypto File System - Sesam schließe dich!

Es besteht oft der Wunsch, besonders sensible Daten stärker zu schützen als mit den Datei-Rechten von Linux bzw. dem Login-Verfahren des Computers. Das Verschlüsseln eines Verzeichnisses stellt eine solche Lösung dar.

Einleitung

Schloß

Jörn Eisenkrätzer

Schloß

Es gibt in Linux verschiedene kommerzielle und freie Implementierungen für die Verschlüsselung von Filesystemen. Meine Wahl fiel auf das freie (BSD-Lizenz) CFS von Matt Blaze von AT&T Research. Die Crypto File System genannte Lösung bietet folgende Eigenschaften:

  • Einfache und zeitgünstige Installation.
  • Unkompliziertes Administrieren, d.h. Öffnen und Schließen der Verschlüsselung auf einfaches Kommando, ebenso der Passwortwechsel.
  • Sicherheit auch während des Betriebes, so können andere Benutzer nicht einmal die Daten im geöffneten Verzeichnis lesen, selbst root nicht!

Das CFS setzt auf einen NFS-Daemon auf. Dies bedingt, dass NFS auch installiert ist. Es bringt aber damit noch den Vorteil mit sich, dass das zu verschlüsselnde Filesystem von einem anderen Bereich des Festplattenspeichers (einer andere Partition oder Festplatte) in das Arbeitsverzeichnis gemountet werden kann und so zusätzlich und variabel das Arbeitsverzeichnis erweiterbar ist.

Konventionen zu dieser Beschreibung

Befehlseingaben, denen das $ vorangeht, werden als normaler User und solche mit vorangehenden # werden als root ausgeführt.

Bemerkungenen werden werden kursiv dargestellt. Ebenso Befehlseingaben, welche in einem Satz stehen.

Ich gehe bei der Beschreibung davon aus, dass wir uns mit unserem User-Login in KDE befinden.

Die folgende Beschreibung wurde mit Red Hat 7.3 durchgespielt, ich werde aber diese Installation distributionsübergreifend kommentieren. Angrenzende Grundlagen werden in Infoboxen erläutert.

Infobox 1 NFS

NFS - das Network File System

Das NFS ist eine Client-Server-Anwendung, welche normalerweise einer Workstation (NFS-Client) den Festplattenplatz eines File-Servers (NFS-Server) zuweist. Die Konfiguration des NFS-Servers ist unkomliziert, es gibt nur eine einfache Konfigurationsdatei, /etc/exports. Sie hat folgendes Format:

Verzeichnis Clientname(Lese-/Schreibrechte)

"Verzeichnis" stellt das Verzeichnis mit dem Pfad dar, welches der Server dem Client zur Nutzung anbietet. Der "Clientname" ist ein Workstation-Name, dessen IP-Adressenauflösung z.B. in der Datei /etc/hosts definiert sein kann.

Unmittelbar (ohne Leerzeichen) folgen in runden Klammern die Mount-Optionen. Beispiel:

/export/speicher nero(rw)

Lese-und Schreiberechtigung auf dem Server-Verzeichnis /export/speicher für den Client nero. Als nächstes muß der Client diesen Plattenplatz noch mounten.

mount -t nfs Servername:/Verzeichnis /Mountpunkt

Siehe weitere Einzelheiten unter NFS-Test.

NFS-Einrichtung

NFS ist Bestandteil jeder Linux-Distribution und diese bringen auch Skripte zum Starten und Stoppen mit. Durch /etc/init.d/nfs start wird der NFS-Daemon gestartet. Weitere Optionen sind /etc/init.d/nfs stop zum Beenden und /etc/init.d/nfs reload, um Änderungen der /etc/exports wirksam zu machen.

Die Skriptbezeichnung nfs kann in manchen Distributionen eine etwas andere Bezeichnung haben, z.B. rpc-nfs oder nfsserver. Auch kernel-nfs ist möglich. Dies hat die Ursache in einer anderen Implementierung des nfsd. Dieser Unterschied ist aber für unser Vorhaben nicht wichtig.

In unserem Fall lassen wir NFS lokal über unser Loopback-Interface laufen.

Infobox 2 Loopback-Interface

Das Loopback-Interface ist ein ein Netzwerk für den internen Verkehr von Datenpaketen. Es hat die IP-Adresse 127.0.0.1 und die Netzwerkmaske 255.0.0.0. Für das Loopback-Interface benötigen wir keine Netzwerkkarte. Funktions-Kontrolle mit ifconfig.

Infobox 3 /etc/hosts

Die Datei /etc/hosts ist die lokale Datenbank, in der Rechnernamen den IP-Adressen zugeordnet werden. Ein Rechner, welcher in dieser Datei gelistet ist, ist dann mit seinen Namen ansprechbar statt mit seiner IP-Adresse, auch wenn kein DNS (Domain-Name-Server) existiert. Die IP-Adresse des Loopback-Interfaces ist dem Rechnernamen localhost zugewiesen.

Die Reihenfolge der Datenbankzugriffe wird in der Datei /etc/nsswitch.conf vereinbart.

Installation NFS

Wenn das nfs-Paket noch nicht mit dem Betriebssystem zusammen installiert wurde, so ist es jetzt nachzuholen. Das kontrollieren wir erstmal wie folgt:

$ rpm -qa |grep nfs
nfs-utils-0.3.3-5

nfs-utils nennt sich bei Red Hat der nfs-kernelserver

Ein solches oder ähnliches Ergebnis, welches auf ein nfs-Paket schließt, ist dann ein positives Ergebnis. Wenn wir kein Ergebnis erhalten, so ist die Installation des nfs-Paketes notwendig.

Prinzip:

# rpm -ihv /Pfad_zur_Paketquelle/nfs.xyz.rpm

Wir öffnen eine Konsole und melden uns als root an:

$ su -
Password:
#

Wir legen den Datenträger ein und

  • bei der Red Hat-Standardinstallation wird er jetzt gemountet (Autorun)
  • bei der Mandrake-Standardinstallation liegt er jetzt bereit und wird bei Zugriff gemountet (Supermount)
  • wenn Autorun oder Supermount nicht eingeschaltet ist, müssen wir die CD manuell wie folgt mounten: mount /mnt/cdrom

Mit der Eingabe von

# rpm -ihv /mnt/cdrom/RedHat/RPMS/nfs-utils-0.3.3-5

wird nfs installiert.

Sicherlich wird sich der genaue Name des nfs-Paketes von Distibution zu Distribution unterscheiden. Da für die Installation der genaue Paketname notwendig ist, gehen wir folgendermaßen vor:

Eingabe des Installtionsbefehles und Vorgabe des Pfades bis zum Verzeichnis der Paketquellen und Anschneiden des vermuteten Namens:

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung