Jailkit sperrt SFTP nicht, funktioniert aber für SSH

Jailkit sperrt SFTP nicht, funktioniert aber für SSH

Ich habe Jailkit auf meinem CentOS 5.8-Server installiert und es gemäß den Online-Anleitungen konfiguriert, die ich gefunden habe. Dies sind die Befehle, die als Root ausgeführt wurden:

mkdir /var/jail
jk_init -j /var/jail extshellplusnet
jk_init -j /var/jail sftp 
adduser testuser; passwd testuser
jk_jailuser -j /var/jail testuser

Ich habe dann /var/jail/etc/passwdÄnderungen an der Login-Shell vorgenommen, um testuserihnen /bin/bashZugriff auf eine vollständige Bash-Shell über SSH zu geben.

Als nächstes habe ich es /var/jail/etc/jailkit/jk_lsh.iniso bearbeitet, dass es wie folgt aussieht (nicht sicher, ob das richtig ist)

[testuser]
paths= /usr/bin, /usr/lib/
executables= /usr/bin/scp, /usr/lib/openssh/sftp-server, /usr/bin/sftp

Der Testbenutzer kann eine Verbindung über SSH herstellen und ist darauf beschränkt, nur das Chroot-Jail-Verzeichnis anzuzeigen. Außerdem kann er sich über SFTP anmelden. Das gesamte Dateisystem ist jedoch sichtbar und kann durchsucht werden.

SSH-Ausgabe:

> ssh testuser@server
Password: 
Last login: Sat Oct 20 03:26:19 2012 from x.x.x.x
bash-3.2$ pwd
/home/testuser

SFTP-Ausgabe:

> sftp testuser@server
Password: 
Connected to server.
sftp> pwd
Remote working directory: /var/jail/home/testuser

Was kann getan werden, um den SFTP-Zugriff auf das Jail zu sperren?

Antwort1

Obwohl ich definitiv Doublesharps Probleme verstehe (bin gerade auch auf dieses Problem gestoßen), sollte Doublesharps Antwort hier nicht verwendet werden (nicht sicher). Das Problem hier ist, dass das interne SFTP von sshd ausgeführt wird, bevor /usr/sbin/jk_chrootsh ausgeführt werden kann, WAS AUS SICHERHEITSGRÜNDEN AUSGEFÜHRT WERDEN MUSS. Um dieses Problem zu beheben, müssen Sie also nur sicherstellen, dass Ihre Datei /etc/ssh/sshd_config diese Zeile enthält ...

Subsystem sftp /usr/lib/openssh/sftp-server

... und NICHT diese Zeile ...

Subsystem sftp internal-sftp

Und stellen Sie außerdem sicher, dass Sie in dieser Datei auch keine Benutzer-/Gruppenabgleiche durchführen. Die große Idee dabei ist, dass Sie, wenn Sie Jailkit verwenden, um Benutzer auf einem Linux-System unter Quarantäne zu stellen, alle Benutzer durch /usr/sbin/jk_chrootsh zwingen müssen, das bei Bedarf seine eigene SFTP-Funktionalität starten kann.

Nachdem Sie Ihre Änderungen an /etc/ssh/sshd_config vorgenommen haben, müssen Sie sshd neu starten (die Methode kann je nach System unterschiedlich sein).

Antwort2

Würde mich über eine Korrektur freuen, falls es hier Probleme gibt, aber die folgende Konfiguration scheint funktioniert zu haben.

Der Benutzer wurde geändert in /etc/passwd(nicht /var/jail/etc/passwd), das durch Jailkit geändert wurde:

Originaltestuser:503:503::/var/jail/./home/testuser:/usr/sbin/jk_chrootsh

Geänderttestuser:503:503::/home/testuser:/bin/bash

Konfiguration hinzugefügt zu /etc/ssh/sshd_config:

Match Group testuser
        ChrootDirectory /var/jail/

Bei der Anmeldung über SSHoder SFTPist der Benutzer nun auf und darunter beschränkt /var/jailund verwendet standardmäßig das Home-Verzeichnis in/var/jail/home/testuser

verwandte Informationen