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:
1 2 | 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:
1 | nano /etc/ssh/sftp_config |
und ein paar Parameter anpassen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # 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:
1 | /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:
1 | 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
One Response to (Chrooted) SFTP mit MySecureShell
Webagentur November 5, 2008
Vielen Dank … ich werde das gleich mal ausprobieren.