Ich habe ein Setup mit nur SFTP-Benutzern:
Match Group sftponly
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Ich erhalte die folgende Nachricht in meinem Secure.log:
fatal: bad ownership or modes for chroot directory
Mit dem Schlüsselwort match sind einige Sicherheitsvorkehrungen verbunden ... Die Verzeichnisse müssen im Besitz von root sein, und die Verzeichnisse müssen chmod 755 (drwxr-xr-x) sein. Daher ist es für einen Benutzer unmöglich, Schreibberechtigungen für die Ordner zu haben, wenn diese nur in das Benutzerstammverzeichnis geschrieben und aufgrund der Sicherheit von ssh für Gruppen nicht beschreibbar sind.
Kennt jemand eine gute Arbeit?
chroot
ed-Benutzer ihreChrootDirectory
? Können sie darauf zugreifen?Antworten:
Ich habe die gleichen Einstellungen auf unserem Server. Wir verwenden die gleiche Konfiguration von SSHD. Benutzer Home - Verzeichnisse sind im Besitz von root und in ihnen gibt es Ordner
documents
undpublic_html
von den jeweiligen Benutzern gehören. Benutzer melden sich dann mit SFTP an und schreiben in diese Ordner (nicht direkt in die Startseite). Da SSH für sie nicht erlaubt ist, funktioniert es perfekt. Sie können anpassen, welche Verzeichnisse für neue Benutzer in / etc / skel / erstellt werden (zumindest in openSUSE bin ich mit anderen Distributionen nicht so vertraut).Eine andere Möglichkeit wäre ACL ( openSUSE-Dokumentation ) - sie kann Schreibberechtigungen für den jeweiligen Benutzer für sein Home-Verzeichnis hinzufügen.
quelle
packet_write_wait: Connection to 10.0.0.42 port 22: Broken pipe
Wir haben kürzlich eine Problemumgehung gefunden, die folgendermaßen aussieht:
/ etc / ssh / sshd_config:
Verzeichnisberechtigungen:
Erfüllt jetzt
/home
die Anforderungen fürChrootDirectory
eingeschränkte Benutzer und kann von diesen nicht aufgelistet werden. Benutzer können sich jedochsftponly
nicht anmelden, wenn ihre Home-Verzeichnisse wie gewohnt eingerichtet sind (/home/$LOGNAME
): In der Chroot-Umgebung befinden sich ihre Home-Verzeichnisse nicht innerhalb,/home
sondern direkt unter root (/
).Problemumgehung 1
Stellen Sie die Häuser eingeschränkter Benutzer so ein, wie sie unter chroot angezeigt werden:
Vorbehalt 1
Wenn einer der uneingeschränkten Benutzer oder ein Verwaltungsskript die Tilde-Erweiterung von bash verwendet, wie
~username
sie bis/username
jetzt erweitert wird, ist dies nicht gemeint.Auch der Administrator, der
sftponly
Benutzer erstellt , muss daran denken, nicht standardmäßige Startseite zu verwenden. Mit einem Skript lösbar. Was der Administrator beachten muss, um zu verwenden.Problemumgehung 2
Dies ist eine Alternative zu der vorherigen, die wir letztendlich verwendet haben:
Das heißt, Sie erstellen einen Symlink
/home
zu Ihrem eigenen Verzeichnisnamen. Zeigt nun unter chroot/home/username
auf dasselbe Verzeichnis wie ohne chroot. Für eingeschränkte Benutzer, die mit sftp angemeldet sind, wird dies als angezeigt/username
. Dieses Verzeichnis kann auf seinen Besitzer (eingeschränkter Benutzer) geschrieben werden. Eingeschränkte Benutzer können die übergeordneten oder privaten Verzeichnisse der Geschwister nicht nach Namen auflisten.Das einzige Besondere an einem
sftponly
Benutzer ist seine Teilnahme an dersftponly
Gruppe. Wir fanden es einfacher, damit umzugehen als mit der Problemumgehung 1.Vorbehalte 2
/home/home
/home
Hierarchie durchlaufen und Symlinks folgen.quelle
Sie müssen eine Struktur im Home-Verzeichnis des Benutzers erstellen, z. B. In- und Out-Verzeichnisse. Diese Verzeichnisse sollten dem Benutzer gehören und dort Dateien ablegen und abrufen können.
quelle
Sie sollten die folgende Verzeichnisstruktur erstellen:
/Heimanwender
/ home / user / home / user <- das echte Verzeichnis, auf das der Benutzer Zugriff hat
Optional:
/home/user/.ssh/authorized_keys <- Wenn Sie sich mit einem öffentlichen Schlüssel authentifizieren möchten
quelle
In Bezug auf den Abschnitt 'Verzeichnisberechtigungen' in der Antwort von @artm (die ich gerade getestet habe). Ich fand:
Es erlaubt nicht, dass die SFTP-Verbindung unter Ubuntu funktioniert, wobei nur Berechtigungen für alles ausgeführt werden, z. B. 111.
Ich habe das gefunden:
Funktioniert mit der Verbindung zu sftp mit den Lese- und Ausführungsberechtigungen, z. B. 555. Ich bin mir nicht sicher, ob Debian und andere Varianten unterschiedlich sind, aber das funktioniert bei meinen Ubuntu-Installationen.
quelle
Wenn Sie einen Benutzer erstellen, müssen Sie den Besitz mit
chown
jedem Verzeichnis für jeden Benutzer festlegen .Zum Beispiel:
quelle