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
sshd
? Was ist in den Protokolldateien auf dem Server?/var/log/secure
.vhosts
istroot:root
.Antworten:
Es ist eine häufige Gefahr:
Alle Ordner bis zum chroot-Start müssen Eigentum des
root
Benutzers sein und dürfen nur von diesem beschrieben werden.Die Ordner können nicht gruppenbeschreibbar sein - auch wenn es sich um Gruppen handelt
root
.quelle
namei -l /var/www/vhosts
Ich habe sftp unter CentOS 6.5 gefunden und erfolgreich konfiguriert: http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/
Bearbeiten Sie die sshd-Konfiguration:
vim / etc / ssh / sshd_config
Beenden und speichern.
Dann:
Für einen neuen Benutzer mit dem Namen "testuser" (Mitglied der Nur-SFTP-Gruppe mit GID 500):
(Ich benutze leere / etc / skel2, so dass keine .bashrc etc standardmäßig von CentOS kopiert wird)
In diesem Beispiel habe ich es also geschafft, externen Beratungsunternehmen, die Websites verwalten, sicheren Zugriff zu gewähren. Nachdem Sie all dies erstellt haben, können Sie Folgendes tun:
All dies könnte man nach Bedarf fein abstimmen.
Hoffe das hat geholfen!
Guy Boisvert IngTegration inc. http://www.ingtegration.com
quelle
service sshd restart