BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Systemzugang für Benutzer auf SFTP beschränken

Möchte man bestimmte Benutzer nur per sftp(1) aufs System lassen, so kann man scponly dazu verwenden. scponly findet man im FreeBSD Portbaum unter shells/scponly:

# cd /usr/ports/shells/scponly && make install clean

Im danach folgenden Konfigurationsmenu kann man auswählen, welche zusätzlichen Protokolle ausser SFTP zugelassen werden sollen. Mit SCPONLY_SCP wird neben SFTP auch scp erlaubt. Wählt man die Option SCPONLY_CHROOT, lassen sich die Benutzer auch noch in eine chroot einsperren.

Um scponly bei einem Benutzer zu aktivieren, muss einfach die Shell des Benutzers auf /usr/local/bin/scponly gewechselt werden:

# chsh <Benutzer>
Login: <Benutzer>
Password: $1$xxxxxxxxxxxxxxxxxxxxxxx.
Uid [#]: <UID>
Gid [# or name]: >GID>
Change [month day year]:
Expire [month day year]:
Class: guest
Home directory: /home/<Benutzer>
Shell: /usr/local/bin/scponly
Full Name: <Name>
Office Location:
Office Phone:
Home Phone:
Other information:
:x

Hat man die chroot-Option ausgewählt, kann mit einem Script ein Benutzer angelegt werden, welcher gleich in eine chroot eingesperrt wird:

# cd /usr/local/share/examples/scponly/ && /bin/sh setup_chroot.sh
Next we need to set the home directory for this scponly user.
please note that the user's home directory MUST NOT be writeable
by the scponly user. this is important so that the scponly user
cannot subvert the .ssh configuration parameters.

for this reason, a writeable subdirectory will be created that
the scponly user can write into.

-en Username to install [scponly]<Benutzername>

-en home directory you wish to set for this user [/home/scponly]<home Verzeichnis>

-en name of the writeable subdirectory [incoming]<Schreibbares Unterverzeichnis>

creating /home/scponly/incoming directory for uploading files

please set the password for scponly:
Changing local password for scponly
New Password:<Passwort>
Retype New Password:<Passwort>
if you experience a warning with winscp regarding groups, please install
the provided hacked out fake groups program into your chroot, like so:
cp groups /home/scponly/bin/groups

Nun muss noch ein mini-devfs in die chroot gemountet werden:

# /usr/local/etc/rc.d/scponlyc start

Der Benutzer wird nun in sein home-Verzeichnis eingesperrt und hat nur für das schreibbare Unterverzeichnis Schreibrechte. Mehr Informationen zu scponly findet man in der Manpage scponly(8).

 Permalink