Ich habe ein CentOs-Release 6.4 mit Digital Ocean und möchte erfolgreich SFTP-Benutzer erstellen und sie in das eigene chroot-Ausgangsverzeichnis des Benutzers einsperren, aber ich fürchte, ich mache ein Durcheinander daraus.
Ich habe viele Dinge ausprobiert, viel zu viele, um sie hier wirklich aufzulisten, da die meisten wahrscheinlich falsch sind oder keinen Sinn ergeben. Was ich jedoch für den richtigen Prozess halte und was ich ausprobiert habe, ist:
Erstellen Sie eine Gruppe für sftp
: -
groupadd sftp
Erstellen Sie einen Benutzer und legen Sie sein Ausgangsverzeichnis fest: -
useradd -d /var/www/vhosts/domain.com dummyuser
Legen Sie ein Passwort für den Benutzer fest: -
passwd dummyuser
Ändern Sie die Benutzergruppe in "sftp": -
usermod -g sftp dummyuser
Stellen Sie die Shell des Benutzers auf /bin/false
: -
usermod -s /bin/false dummyuser
Subsystem bearbeiten in sshd_config
( /etc/ssh/
): -
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Fügen Sie am Ende der sshd_config
Datei Folgendes hinzu : -
Match group sftp
X11Forwarding no
ChrootDirectory %h
AllowTcpForwarding no
ForceCommand internal-sftp
Ich stelle sicher, dass alle folgenden Verzeichnisse sind root:root
: -
/var
/var/www
/var/www/vhosts
/var/www/vhosts/domain.com
Wenn ich dann versuche, mich mit dem Benutzer dummyuser
(in WinSCP) über SFTP am Server anzumelden , erhalte ich Folgendes:
Authentication log (see session log for details):
Using username "dummyuser".
Authentication failed.
Alles, was ich erreichen möchte, ist, einen Benutzer in sein Home-Verzeichnis zu bringen. Ich habe auch vsftpd eingerichtet und konfiguriert. Benutzer könnten sich gut einloggen, hätten aber Zugriff auf den gesamten Server - ich habe es einfach nicht geschafft, das Gefängnis überhaupt zum Laufen zu bringen.
Bearbeiten
Vergessen zu erwähnen, habe ich dann auch neu gestartet sshd
: -
service sshd restart
Wenn der Fehler in WinSCP erzeugt wird, auf das ihre Hilfeseite ist hier .
Ergebnisse protokollieren
/var/log/secure
Ich habe den tatsächlichen Servernamen durch ersetzt server_name
.
Apr 28 14:20:56 server_name sshd[9944]: Accepted password for dummyuser from 80.194.255.4 port 44402 ssh2
Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session opened for user dummyuser by (uid=0)
Apr 28 14:20:56 server_name sshd[9946]: fatal: bad ownership or modes for chroot directory component "/var/www/vhosts/"
Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session closed for user dummyuser
/var/log/secure
.
vhosts
ist root:root
.
sshd
? Was ist in den Protokolldateien auf dem Server?