Ich habe eine Reihe von Benutzern, die nur Dateien in ihre festgelegten Verzeichnisse hochladen müssen. Ich denke, SFTP würde ausreichen, aber ich möchte nicht, dass sie sich über die Shell anmelden. Also ist es möglich? Meine Plattform ist Centos 7, die Homedirs der Benutzer sind gespeichert, sagen wir / personal / $ user
Ich habe einen Benutzer mit diesen Einstellungen erstellt
useradd -m -d /personal/user1 -s /sbin/nologin
Benutzer ein passwd zugewiesen, dann, wenn ich SFTP verwenden, um sich auf dem Computer anzumelden, heißt es, kann keine Verbindung herstellen.
Antworten:
Bearbeiten Sie Ihre
/etc/ssh/sshd_config
, um Folgendes zu enthalten:Neu starten
sshd
. Wenn Sie mehrere Benutzer haben, setzen Sie diese alle in die entsprechende Benutzerzeile, getrennt durch Kommas, wie folgt:Der Schlüssel zum Konfigurieren
sftp
, um den Shell-Zugriff nicht zuzulassen, besteht darin, die Benutzer über dieForceCommand
Option einzuschränken.quelle
Match User [SFTP user]
ForceCommand internal-sftp
nur mit, ohne chrooting Zeug.chroot
die Benutzer so, dass sie nicht nach oben und aus Ihrem definierten "Gefängnis" navigieren könnenIch mag das folgende Setup für die Verwaltung des SSH-Zugriffs, das ich bei der Arbeit verwende, um eine Gruppe von Benutzern auf einer kleinen Serverflotte zu verwalten. Sicherheit und einfache Verwaltung stehen ganz oben auf meiner Prioritätenliste.
Die wichtigsten Funktionen sind das einfache Verwalten von SSH-Rechten über die Mitgliedschaft in einer Unix-Gruppe, das Festlegen von Berechtigungen und die standardmäßige Sicherheit.
Einrichten
Software installieren (optional, aber nützlich):
Gruppen hinzufügen:
Stellen Sie
/etc/ssh/sshd_config
sicher, dass folgende Einstellungen vorgenommen wurdenNo
:Fügen Sie am Ende
/etc/ssh/sshd_config
diese beiden Strophen hinzu:(Vergessen Sie nicht, SSH nach dem Bearbeiten der Datei neu zu starten.)
Erläuterung
Also, was macht das alles?
allowssh
Gruppe die (Pubkey-) Anmeldung .sftponly
Gruppe können keine Shell über SSH erhalten, nur SFTP.Die Verwaltung der Zugriffsberechtigten erfolgt dann einfach über die Verwaltung der Gruppenmitgliedschaft (diese Änderungen werden sofort wirksam, ein SSH-Neustart ist nicht erforderlich):
Beachten Sie, dass Ihre SFTP-Benutzer sowohl Mitglieder von
sftponly
(um sicherzustellen, dass sie keine Shell erhalten) als auch vonallowssh
(um die Anmeldung überhaupt zuzulassen) sein müssen.Weitere Informationen
Bitte beachten Sie, dass diese Konfiguration keine Kennwortanmeldungen zulässt . Alle Konten müssen die Authentifizierung mit öffentlichem Schlüssel verwenden. Dies ist wahrscheinlich der größte Sicherheitsgewinn, den Sie mit SSH erzielen können. Daher ist es meiner Meinung nach die Mühe wert, auch wenn Sie jetzt anfangen müssen.
Wenn Sie dies wirklich nicht möchten, fügen Sie
PasswordAuthentication yes
es ebenfalls zurMatch Group allowssh
Zeilengruppe hinzu. Dies ermöglichtallowssh
Benutzern sowohl die Authentifizierung mit dem Pubkey als auch mit dem Passwort .Diese Konfiguration beschränkt jeden
sftponly
Benutzer auf sein Basisverzeichnis. Wenn Sie das nicht möchten, entfernen Sie dieChrootDirectory %h
Direktive.Wenn Sie Ihnen das chrooting arbeiten wollen, ist es wichtig , dass der Home - Verzeichnis des Benutzers (und jedes Verzeichnis darüber) ist im Besitz von
root:root
und nicht beschreibbar Gruppe / andere. Es ist in Ordnung, dass Unterverzeichnisse des Basisverzeichnisses im Besitz des Benutzers sind und / oder beschreibbar sind.Ja, das Basisverzeichnis des Benutzers muss sich im Besitz von root befinden und für den Benutzer nicht beschreibbar sein. Leider gibt es gute Gründe für diese Einschränkung. Je nach Ihrer Situation
ChrootDirectory /home
könnte eine gute Alternative sein.Das Festlegen der Shell der
sftponly
Benutzer auf/sbin/nologin
ist für diese Lösung weder erforderlich noch schädlich, da SSH die Shell des BenutzersForceCommand internal-sftp
überschreibt.Die Verwendung von
/sbin/nologin
kann hilfreich sein, um die Anmeldung über andere Wege (physische Konsole, Samba usw.) zu unterbinden.Dieses Setup ermöglicht keine direkten
root
Anmeldungen über SSH. Dies bildet eine zusätzliche Sicherheitsebene. Wenn Sie wirklich keine direkten Root - Anmeldungen benötigen, um die Änderung derPermitRootLogin
Richtlinie. Überlegen Sieforced-commands-only
, ob Sie es auf ,prohibit-password
und setzen möchten (als letzte Möglichkeit)yes
.Werfen Sie einen Blick darauf, um Bonuspunkte zu erhalten und zu begrenzen, wer
su
root werden kann. Fügen Sie eine Systemgruppe hinzu, die aufgerufen wirdwheel
, und fügen Sie hinzu, / aktivieren Sieauth required pam_wheel.so
in/etc/pam.d/su
.quelle
chown root:root
undchmod og-w
Ändern Sie einfach die Standard-Shell in / sbin / nologin. Angenommen, die meisten Linux-Varianten:
quelle
Subsystem sftp internal-sftp
(oder vielleichtForceCommand internal-sftp
). Wenn es üblich istSubsystem sftp /path/to/sftp-server
,nologin
wird auch SFTP verhindert.Sie können TFTP verwenden. Alles über SSH erfordert eine gewisse Authentifizierung (Schlüssel | Pass).
Während TFTP gesichert werden kann, lohnt es sich möglicherweise, die Entscheidung zu überdenken, Zugriff auf alles ohne Authentifizierung zu gewähren.
http://manpages.ubuntu.com/manpages/bionic/man1/tftp.1.html
quelle