Wie kann ich einen SFTP-Benutzer in CentOS erstellen?

8

Ich möchte einem Support-Mitarbeiter vorübergehend SFTP-Zugriff gewähren. Wie erstelle ich einen SFTP-Benutzer? Und wie kann ich es löschen, wenn die Arbeit erledigt ist?

Wie gebe ich ein Home-Verzeichnis für sie an? Kann ich verhindern, dass sie auf bestimmte Unterverzeichnisse in ihrem Ausgangsverzeichnis zugreifen?

Wir verwenden CentOS 6.3 und fzSftp

OC2PS
quelle
Dies hängt von Ihrer Konfiguration ab, sofern Ihre Konfigurationsdatei hilfreich sein kann.
Kiwy
Welche besonderen Einstellungen soll ich posten?
OC2PS
der von euch ftp deamon
Kiwy
Sind Sie sicher, dass Sie FTP oder SFTP möchten? Der Grund, den ich frage, ist, dass Sie fzsftp (filezilla sftp) aufgelistet haben, den Client, den Filezilla für SFTP-Verbindungen verwendet.
slm
Ah! Ich habe über FileZilla eine Verbindung zu SFTP hergestellt und daher fzsftp aufgelistet ... dachte, dies sei mein Server. SFTP wäre in Ordnung, wenn Sie mir dabei helfen können. Vielen Dank!
OC2PS

Antworten:

14

Nicht-Chroot-Zugang

Wenn Sie kein FTP-Server-Setup haben und dem Benutzer, der sich anmeldet, vertrauen, dass er nicht zu viel auf Ihrem Server herumstochert, würde ich ihm stattdessen ein Konto für SFTP im System zuweisen.

Das CentOS-Wiki enthält ein einfaches Howto mit dem Titel: Einfaches SFTP-Setup , das dies ziemlich schmerzfrei macht.

Ich sage, es ist schmerzfrei, weil Sie buchstäblich nur das Konto erstellen und sicherstellen müssen, dass die Firewall SSH-Verkehr zulässt, sicherstellen, dass SSH der Dienst ausgeführt wird, und Sie ziemlich fertig sind.

Wenn sshdes noch nicht läuft:

$ /etc/init.d/sshd start

So fügen Sie einen Benutzer hinzu:

$ sudo useradd userX
$ sudo passwd userX
... set the password ...

Wenn Sie mit dem Konto fertig sind:

$ sudo userdel -r userX

Chroot-Zugang

Wenn Sie diesen Benutzer andererseits auf ein bestimmtes Verzeichnis beschränken möchten, bietet der in SSH (openssh) enthaltene SFTP-Server eine Konfiguration, mit der dies ebenfalls einfach aktiviert werden kann. Es ist ein bisschen mehr Arbeit, aber nicht zu viel. Die Schritte werden hier in diesem Tutorial mit dem Titel behandelt: Einrichten von Chroot SFTP unter Linux (Nur SFTP zulassen, nicht SSH) .

Nehmen Sie diese Änderungen an Ihrer /etc/ssh/sshd_configDatei vor.

Subsystem       sftp    internal-sftp

## You want to put only certain users (i.e users who belongs to sftpusers group) in the chroot jail environment. Add the following lines at the end of /etc/ssh/sshd_config

Match Group sftpusers
  ChrootDirectory /sftp/%u
  ForceCommand internal-sftp

Jetzt müssen Sie den chrootierten Verzeichnisbaum erstellen, in den dieser Benutzer gesperrt wird.

$ sudo mkdir -p /sftp/userX/{incoming,outgoing}
$ sudo chown guestuser:sftpusers /sftp/guestuser/{incoming,outgoing}

Berechtigungen sollten wie folgt aussehen:

$ ls -ld /sftp/guestuser/{incoming,outgoing}
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/outgoing

Die Verzeichnisse der obersten Ebene sehen folgendermaßen aus:

$ ls -ld /sftp /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser

Vergessen Sie nicht, den sshdServer neu zu starten :

$ sudo service sshd restart

Erstellen Sie nun das userX-Konto:

$ sudo useradd -g sftpusers -d /incoming -s /sbin/nologin userX
$ sudo passwd userX
... set password ...

Sie können überprüfen, ob das Konto korrekt erstellt wurde:

$ grep userX /etc/passwd
userX:x:500:500::/incoming:/sbin/nologin

Wenn Sie mit dem Konto fertig sind, löschen Sie es wie folgt:

$ sudo userdel -r userX

... und vergessen Sie nicht, die oben vorgenommenen Änderungen an der Konfigurationsdatei zu entfernen und dann neu sshdzu starten , um sie wieder zu aktivieren.

slm
quelle
Nett! Wie kann ich den Benutzer auf ein bestimmtes Verzeichnis beschränken und verhindern, dass der Benutzer auf einige Unterverzeichnisse in diesem Verzeichnis zugreift?
OC2PS
Binden Sie den Benutzer in seinen Home-Ordner und fügen Sie einen symbolischen Link zu den verschiedenen Verzeichnissen hinzu, die Sie zulassen möchten
Kiwy
@ OC2PS - oben zeigt eine Methode zum Chrooting der Benutzer. Sie können sie auch in ihr Home-Verzeichnis chrootieren. Im Allgemeinen teile ich diese Benutzer in einen bestimmten Bereich ein, sodass es offensichtlich ist, wenn ich durchschaue, /home/...wer wirklich ein Benutzer auf einem System ist. Obwohl ich einen tatsächlichen SFTP-Server für die Arbeit betreibe, sind meine Anforderungen etwas anders.
slm
Wenn ich sudo useradd -D userX mache, erhalte ich Verwendung: useradd [Optionen] LOGIN
OC2PS
@ OC2PS versuchen useradd userX. Entschuldigung, ich habe die Manpage für falsch gelesen useradd.
slm