(Chrooted) SFTP mit MySecureShell

Eine feine Möglichkeit auf einem Linux-Server SFTP-User anzulegen bietet das Tool MySecureShell. Nach der Installation und dem Anpassen einiger Parameter in der Config können neue SFTP-User einfach mit useradd über die Shell angelegt werden. Diese User sind dann im angegeben Home-Verzeichniss eingesperrt und haben keinen Shell-Zugriff.

Auf einem Debian-Etch System erfolgt die Installation wie folgt:

wget wget http://ovh.dl.sourceforge.net/sourceforge/mysecureshell/mysecureshell_[versionsnummer]_i386.deb
dpkg -i mysecureshell_[versionsnummer]_i386.deb

Die Config-Datei ist sehr gut dokumentiert und funktioniert eigentlich sofort. Ich habe meine allerdings noch etwas angepasst:

Config-File im Editor öffnen:

nano /etc/ssh/sftp_config

und ein paar Parameter anpassen:

# Keine Speedlimits fuer SFTP
GlobalDownload      0
GlobalUpload            0
Download            0
Upload          0

# FTP-User im Home-Dir einsperren:
StayAtHome      true
VirtualChroot   true

#Gleichzeitige Verbindungen pro User etwas erhöhen
LimitConnection     10
LimitConnectionByUser   3
LimitConnectionByIP     3

# Wir wollen nicht das gleiche Home-Verzeichnis für alle User, daher wird diese Zeile auskommentiert:
#Home   /home/$USER

# Standard Dateirechte nach Bedarf anpassen:
DefaultRights       0664 0755

MySecureShell neu starten:

/etc/init.d/mysecureshell restart

Nun kann man z.b. einen User anlegen der per SFTP nur auf einen bestimmten Ordner im Web-Verzeichniss zugreifen kann:

useradd -d /var/www/ein_projekt -g www-data -s /bin/MySecureShell marvin

Eine weiteres ausführliches Tutorial zu MySecureShell findet sich unter anderem bei HowtoForge