SFTP mit chroot unter Debian Squeeze einrichten

Linux

Per SFTP können sicher Daten auf einen Server geschoben werden. Jedoch möchte man in der Regel nicht, dass der SFTP-Benutzer sich an der Konsole einloggen kann, oder auf andere Verzeichnisse als sein eigenes zugreifen darf. Seit OpenSSH 5 ist in den SSH-Daemon direkt SFTP-Funktionalität eingebaut, man benötigt also keine externe Serversoftware mehr. Ein beschränkter Benutzer für SFTP kann so eingerichtet werden:

User für SFTP anlegen:

# User anlegen
adduser sftp

# Kein Shell-Zugriff
usermod -s /bin/false sftp

# Für chroot muss das Userverzeichnis root gehören und darf nicht world/group writeable sein
chown root:root /home/sftp
chmod 755 /home/sftp

# Der User darf nicht direkt ins chroot /home/sftp schreiben. Uploadverzeichnis anlegen
mkdir /home/sftp/upload
chown sftp:sftp /home/sftp/upload

sshd Config anpassen:

#/etc/ssh/sshd_config

Subsystem sftp internal-sftp

# Auskommentieren:
#Subsystem sftp /usr/lib/openssh/sftp-server

Match User sftp
        ChrootDirectory /home/%u
        ForceCommand internal-sftp
        X11Forwarding no
        AllowTcpForwarding no

SSHD neu starten:

/etc/init.d/sshd restart

Debuggen:

tail -f /var/log/auth.log

Fallstricke:
Auch übergeordnete Verzeichnisse, also / und /home müssen root gehören und die Rechte müssen auf 755 gesetzt sein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben