Home / LinuxUser / 2007 / 03 / Daten sicher teilen

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Debian 7.1 ist erschienen
(179 Punkte bei 5 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Daten sicher teilen

Verschlüsselte Netzwerkdateisysteme auf SSH-Basis

01.03.2007 Beim Datenzugriff auf entfernte Rechner kombinieren SSH-basierte Dateisysteme einfache Konfiguration und sichere Verschlüsselung.

Weit verbreitete Netzwerk-Dateisysteme wie NFS oder Samba verschlüsseln zu übertragende Daten standardmäßig nicht. Die häufig verwendete Version 3 von NFS benützt zum Authentifizieren nur die IP-Adresse des Clients [1]. Version 4 hat gerade erst Einzug in die Distributionen gefunden, gilt jedoch noch nicht als stabil und wie Samba als mitunter aufwändig zu konfigurieren [2].

SSH-Dateisysteme wie SHFS und SSHFS bieten sich als Alternative an: Sie stellen geringe Anforderungen an die Software des Servers, lassen sich leicht konfigurieren und sind sehr sicher. Das in der Praxis erprobte und bewährte SSH-Protokoll authentifiziert Benutzer anhand eines Passworts oder eines Schlüssels [4]. Es verschlüsselt zudem alle übertragenen Daten inklusive Passwort und eignet sich daher auch für den Zugriff auf einen Server im Internet.

Anders als beim FTP-Client Lftp oder dem entsprechende KDE-Kio-Slave via FISH-Protokoll [5] erlaubt ein SSH-Dateisystem den transparenten Zugriff von allen Anwendungen aus (Abbildung 1). Es gibt gegenwärtig zwei reine SSH-Dateisysteme für Linux: Das Dateisystem SSHFS läuft im Userspace und greift auf FUSE zurück, um Kernel-bezogene Dateisystemfunktionen auszuführen (siehe [6] und [7]). Serverseitig nutzt es SFTP und funktioniert daher mit jedem Server, auf dem SSH-Daemon und -Client installiert sind.

Abbildung 1: Sowohl KDE als auch LFTP greifen von Haus aus via SSH auf entfernte Dateien zu.

Der andere Ansatz, SHFS, ist als Kernelmodul implementiert [8], das bislang noch nicht zum Standardkernel zählt. Es lädt entweder ein Perl-Programm oder ein Shellskript auf den Server, das jeweils die Anfragen ans Dateisystem bearbeitet. Das erfordert auf dem Server neben SSH also nur eine Shell oder Perl. Laut Projekt verhält sich das standardmäßig verwendete Perl-Programm robuster und schneller als das Shellskript.

Server einrichten

Installieren Sie für beide Dateisysteme auf dem Server zunächst SSH. Dazu verwenden Sie unter Suse das Paket openssh, unter Debian "Sarge" ssh. Bei Debian "Etch"/"Sid" sowie Ubuntu richten Sie openssh-server ein, das openssh-client mitzieht. Der SSH-Server lauscht standardmäßig auf Port 22.

Jeder SSH-Server verfügt zumindest über einen Host-Schlüssel, den Sie nach der Installation beziehungsweise dem ersten Start des Servers im Verzeichnis /etc/ssh finden. Der für Verbindungen eingesetzte Schlüssel hängt von der Protokollversion und dem Verschlüsselungsverfahren ab [9]. Jeder Schlüssel hat einen eindeutigen Fingerabdruck. Mit diesem überprüfen Sie, ob Sie sich wirklich mit dem richtigen Server verbinden. Erstellen Sie mit find /etc/ssh -name "*key" | xargs -n1 ssh-keygen -lf eine Liste der Fingerabdrücke und verwahren Sie diese an einem sicheren Ort.

Testen Sie den Zugang, indem Sie sich vom Client aus mit

ssh Benutzername@HostnameOderIP-Adresse

am Server für eine Shell-Sitzung anmelden. Überprüfen Sie dabei, ob der vom Client angezeigte Fingerabdruck in der eben erstellten Liste zu finden ist. Klappt der Login, verlassen Sie mit exit oder [Strg]+[D] die Remote-Shell wieder.

SSHFS

Für SSHFS benötigen Sie einen Kernel mit FUSE-Support. Die Standardkernel von Suse 10.1, Debian "Etch" und "Sid" sowie Ubuntu "Dapper Drake" enthalten FUSE bereits. Unter Debian "Sarge" installieren Sie einen Kernel aus den Backports [10]. Alternativ verwenden Sie das Paket module-assistant und kompilieren mit m-a a-i fuse (module-assistant auto-install) das Kernelmodul für FUSE. Unter Ubuntu "Breezy" und älter sollte das gleiche Vorgehen funktionieren. Alternativ übersetzen Sie einen eigenen Kernel mit der Option Filesystem | Filesystem in Userspace support (CONFIG_FUSE_FS) als Modul.

Installieren Sie das Paket sshfs oder bauen Sie die aktuelle Version 1.7 mit dem bekannten Dreisatz ./configure; make; su -c "make install" aus dem Quelltext. Installieren Sie hierfür die Entwicklerpakete fuse-devel und glib2-devel unter Suse beziehungsweise libfuse-dev und libglib2.0-dev unter Debian und Ubuntu.

Laden Sie mit modprobe fuse das Kernelmodul. Tragen Sie unter Debian und Ubuntu den Modulnamen in die Datei /etc/modules ein, um das Modul beim Booten zu laden. Bei Suse gehört er in die Datei /etc/sysconfig/kernel unter MODULES_LOADED_ON_BOOT.

Nun ist SSHFS bereits einsatzbereit, jedoch darf nur root ein Dateisystem mounten. Fügen Sie unter Debian oder Ubuntu mittels adduser Benutzer fuse ihren Benutzer der Gruppe fuse hinzu, damit er FUSE verwenden darf. Unter Suse verwenden Sie YaST, um den Benutzer der Gruppe trusted hinzufügen. Oder zeigen Sie mittels groups die aktuellen Gruppen Ihres Benutzers an, und geben Sie mit groupmod -A Benutzername trusted an, dass der Benutzer der neuen Gruppe angehören soll.

Nun ist es Zeit für einen ersten Test: Erstellen Sie mit mkdir Verzeichnis ein Verzeichnis und mounten Sie mittels

sshfs Benutzer@Host:LokalesVerzeichnis -o reconnect

das Home-Verzeichnis des angegeben Benutzers (siehe Tabelle "Mount-Optionen"). Nun greifen Sie auf die entfernten Dateien zu, als seien es lokale Dateien (siehe Abbildung 2 und Abbildung 3). Nach getaner Arbeit melden Sie das Verzeichnis mittels fusermount -u LokalesVerzeichnis wieder ab. Häufig benötigte SSHFS-Mounts tragen Sie in die /etc/fstab ein (siehe Listing 1 und [11]).

Abbildung 2: Transparenter Zugriff auf entfernte Dateien mit SSHFS und SHFS.

Abbildung 3: Gigantischer Speicherplatz mit SSHFS. SHFS bleibt realistisch.

Mount-Optionen

Funktion

SSHFS

SHFS

Erneut verbinden -o reconnect (reconnect) -p, --persistent (port)
Symlinks auf dem Server auflösen -o follow_symlinks (follow_symlinks), erst ab Version 1.7 -s, --stable (stable)
SSH-Port -p, -o port (port) -P (port)
Server-Programm Immer SFTP -t, --type (type) shell oder perl

Optionen in Klammern beziehen sich auf die Datei /etc/fstab.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

2143 Hits
Wertung: 165 Punkte (8 Stimmen)

Schlecht Gut

Infos zum Autor

Martin Steigerwald

Martin Steigerwald

Martin Steigerwald arbeitet als Trainer, Consultant und Systemadministrator bei der team(ix) GmbH in Nürnberg. Schwerpunkte seiner Tätigkeit sind Linux-Schulungen, die Konzeption, Installation und Wartung solider IT-Infrastruktur auf Basis von Debian Linux sowie Second Level Support für Linux als Business-Desktop bei Kunden von teamix(ix).


Infos zur Publikation

Infos zur Publikation

LinuxUser 07/13

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

whowatch
Nutzer und Prozesse mit whowatch überwachen
Tim Schürmann, 18.06.2013 12:49, 0 Kommentare

Wenn Administratoren herausfinden wollen oder müssen, was die Benutzer auf einem System gerade so treiben, dann hilft ihnen whowatch. Das kleine Kommandozeilenprogramm zeigt in Ec...

Aktuelle Fragen

SUSE 12.3 64Bit: Miro funzt nicht
Wimpy *, 14.06.2013 13:05, 5 Antworten
Seit Installation von openSUSE 12.3 64Bit startet Miro nicht. (Version 5.0.4-1.24-x86_64 von Pa...
Kontakt via QR code hinzufügen
Herman Sproesser, 17.05.2013 17:46, 4 Antworten
Hi hab in der aktuellen ausgabe 06.2013 den artikel über QR Codes gelesen. Ich hab nartürlich...
Dateimanager Dolphin, wo legt er die Datei Kommentare ab?
Uwe Heine, 16.05.2013 15:19, 1 Antworten
Suse Linux 12.1 - KDE 4.7.2 / Dolphin 1.7. Ich habe bei vielen Dateien über Dolphin Kommentare...
wie baut man Kernel Module so, dass sie mit jedem Kernel laden?
GoaSkin , 22.04.2013 10:22, 1 Antworten
Hallo, baut man anhand eines Kernel-Sources Module, nutzt Linux im Normalfall eine strikte V...
Problem beim Installieren von SuSe 12.3
Georg Prokert, 14.04.2013 00:04, 16 Antworten
Hallo, auf meinem neuem Laptop (Acer Aspire V3-771, Intel Core i5-3230 M, Intel HD Graphics 4...