Freitag, 23. April 2010

sshfs Mounts via Samba im LAN freigeben

Wer häufig mit verschiedenen Clients an verschiedenen Remote-Servern arbeitet, verbringt oft einen nicht unerheblichen Teil seiner Zeit mit dem herstellen von Verbindungen.

Im Vorteil ist wer einen Homeserver sein Eigen nennt. Eine Kombination aus SSHFS und Samba erlaubt es die Verzeichnisse von den Webservern via SFTP zu mounten und sie anschließend im lokale Netzwerk zugänglich zu machen.

Die folgenden Schritte sind dazu auf einem Debian 5 Lenny 64bit nötig. Für den Umweltbewussten User schöner ist sicherlich den DSL-Router, der ohnehin dauerhaft läuft, für dieses Vorhaben zu zweckentfremden. (siehe DD-WRTOpenWRT ...)

su root
apt-get update
apt-get install samba sshfs ssh

mv /etc/samba/smb.conf /etc/samba/smb.conf.ori
touch /etc/samba/smb.conf

Diee leere /etc/samba/smb.conf bearbeiten:

[global]
        # Browsing / Identification
        netbios name = NAS
        server string = smb.NAS
        workgroup = mydomain

        # Auth
        security = user
        encrypt passwords = true
        map to guest = bad user
        guest account = nobody

        passdb backend = tdbsam
        obey pam restrictions = yes
        invalid users = root

        dos charset = 1255
        unix charset = UTF-8
        display charset = UTF-8
        unix extensions = yes

        # Symlink
        follow symlinks = yes
        wide symlinks = yes
        unix extensions = no

Um die Verzeichnisse auf dem Webserver automatisch (ohne Passworteingabe) via SFTP mounten zu können, muss falls noch nicht vorhanden ein öffentlicher RSA Schlüssel generiert und auf den Server übertragen werden.


# Generiere RSA-Key mit 4096 bit Länge
ssh-keygen -t rsa -b 4096

# Public-Key übertragen 
ssh-copy-id -i ~/.ssh/id_dsa.pub user@remote-system

Nun sollten der Public-Key (id_rsa.pub) und der Private-Key (id_rsa) im NAS-Verzeichnis ~/.ssh/
liegen. Der Public-Key wurde der Datei ~/.ssh/authorized_keys auf dem Remote-System angefügt.


mkdir -p /media/sshfs/server1_htdocs

Nachdem leere Verzeichnisse als Mountpoints für sshfs erstellt wurden, muss ein Eintrag in die /etc/fstab gemacht werden. Wichtig hierbei ist die Option "allow_other", die es Samba erlaubt den sshfs mount zu verwenden:


sshfs#root@remote-system:/var/www /media/sshfs/server1_htdocs fuse user,allow_other 0 0

Zum Schluss wird /media/sshfs in der /etc/samba/smb.conf als Share eingerichtet:


[SSHFS]
 path = /media/sshfs/
 writeable = yes
 guest ok = no

Das Rechte Management erfordert ein wenig Geschick mit Samba. Vorallem empfielt sich "force create mode" und "force directory mask" in der Samba-Konfiguration zu verwenden, um kein Sicherheitsproblem auf dem Webserver zu verursachen. Das wird an dieser Stelle allerdings zu speziell und findet sicher bald in einem eigenen Blogpost Platz.

Keine Kommentare:

Kommentar veröffentlichen