ubuntuusers.de

Rbash Konfiguration (für SSH) (sshd)

Status: Gelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

Reptile

Anmeldungsdatum:
23. Mai 2006

Beiträge: 114

Wohnort: Schweiz

Hallo Community

Ich finde leider auch mit Google und im Wiki keinen guten Artikel zum Thema RBash und wie man diese konfiguriert. Ich brauche sie, um den SSH-Zugang pro User abzuriegeln.

Ich möchte, dass nur SCP möglich ist, und dies auch nur in einem bestimmten Ordner und dessen Unterordner. Das Ausführen von Programmen möchte ich komplett verbieten. Leider unterbindet /bin/false eine SCP verbindung komplett. Ist glaube ich auch normal, da für SCP ein Terminal vorhanden sein sollte.

Kann jemand mit gezielten HowTo's oder Infos helfen?

Grüsse

Reptile

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Reptile

(Themenstarter)

Anmeldungsdatum:
23. Mai 2006

Beiträge: 114

Wohnort: Schweiz

TheDarkRose schrieb:

SFTP braucht kein Terminal. http://wiki.carrot-server.com/userdokus/chrooted_sftp_user

Danke. Ich werde mich, sobald ich wieder etwas Freizeit habe, daran setzen und das ganze mal so versuchen!

Genau so etwas habe ich gesucht....

Braindead

Avatar von Braindead

Anmeldungsdatum:
8. August 2010

Beiträge: 158

Wohnort: Saarbrücken

Reptile

(Themenstarter)

Anmeldungsdatum:
23. Mai 2006

Beiträge: 114

Wohnort: Schweiz

TheDarkRose schrieb:

SFTP braucht kein Terminal. http://wiki.carrot-server.com/userdokus/chrooted_sftp_user

Leider funktioniert das bei mir so nicht.

Ich habe folgendes gemacht.

Zeile am Ende der SSHD_conf hinzugefügt:

#Nur SFTP
Match Group sftpusers
        ChrootDirectory /mnt/Serverfiles/SSHStartordner
        ForceCommand internal-sftp
        X11Forwarding no
        AllowTcpForwarding no

Benutzer zur Gruppe sftpusers hinzugefügt. Befehle:

1
2
chown root: /mnt/Serverfiles/SSHStartordner
chmod 750 /mnt/Serverfiles/SSHStartordner

Leider beendet der Server nach dem Passwort die Verbindung ohne Nachricht. Was ist daran falsch?

Wenn ich die Zeilen auskommentiere funktionierts natürlich wieder!

Zusatz: Wenn ich mit Linux darauf verbinden möchte kommt:

Write failed: Broken pipe Grüsse

Braindead

Avatar von Braindead

Anmeldungsdatum:
8. August 2010

Beiträge: 158

Wohnort: Saarbrücken

benutzt mal 755 als Rechte für das Verzeichnis, mit 750 kommt niemand anderes mehr in das Verzeichnis rein ausser root bzw. zur root gruppe gehörend

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

750 ist schon korrekt so. Aber die Gruppe nicht. Die sollte bei der Gruppe des Users natürlich bleiben. Benutzer root ist korrekt, da sonst der chroot-Container nicht funkionieren will. Hab es bereits ausgebessert. Subsystem ist in der Config auch richtig gesetzt?

Subsystem       sftp    internal-sftp

Jetzt musst du nur mehr den Ordner auf die Gruppe deines Users zurücksetzen.

chgrp usergroup /mnt/Serverfiles/SSHStartordner

Braindead

Avatar von Braindead

Anmeldungsdatum:
8. August 2010

Beiträge: 158

Wohnort: Saarbrücken

warum das Verzeichnis einer anderen Gruppe wie root geben ?

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Na weil doch der User für den man diesen chroot einrichtet, darin auch lesen können soll. Darum gibt man das Verzeichnis der Gruppe des Users oder sftpuser

Braindead

Avatar von Braindead

Anmeldungsdatum:
8. August 2010

Beiträge: 158

Wohnort: Saarbrücken

sinnvoller nach meiner meinung ist das verzeichnis der gruppe root zu geben und 755 zu setzen 😉

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Naja, bei diesen lustigen Pfadnamen schon, aber im Normalfall ist auf einen Server 750 angebrachter.

Reptile

(Themenstarter)

Anmeldungsdatum:
23. Mai 2006

Beiträge: 114

Wohnort: Schweiz

Ok stimmt Problem 1 gelöst:

Jeder einzelne Ordner muss root gehören und darf von keinem anderen User schreibbar sein.

Also /mnt und /mnt/serverfiles und /mnt/serverfiles/SSHStartordner

Was mich daran nervt ist, dass es so die ganze Verzeichnisstruktur durcheinanderwirbelt. So ist auch für die im System angemeldeten Benutzer der Pfad zu den Dateien /mnt/Serverfiles/SSHStartordner/x-hundert-Dateien (-:

Gibt es keine Möglichkeit ein Verzeichnis /SSHChroot zu erstellen. Dieses dann root zu übergeben. Dann innerhalb dieses Verzeichnisses einen hardlink zu /mnt/Serverfiles?

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Spezialfall 😈 Solange alle übergordnetetn Verzeichnisse die Rechte 755 haben, ist es IMHO nicht so schlimm, wenn diese root gehören.

Reptile

(Themenstarter)

Anmeldungsdatum:
23. Mai 2006

Beiträge: 114

Wohnort: Schweiz

Kann mir jemand diese Konfiguration als sicher und richtig bestätigen?

Ordner erstellt und Rechte angepasst:

1
2
3
mkdir /SSHChroot
chown root:sftpusers /SSHChroot
chmod 750 /SSHChroot

Die Dateien, auf die Zugegriffen werden soll liegen in /mnt/Serverfiles Um die innerhalb von SSHChroot anzeigen zu lassen:

1
mount --bind /mnt/Serverfiles /SSHChroot

Ist das so sicher? und i. O.?

Ich möchte nämlich nicht /mnt und /mnt/Serverfiles der Gruppe sftpusers übergeben müssen.

Problemchen dazu: Der mount --bind verschwindet nach dem Neustart. Wei lässt sich das lösen?

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Ich würde den mount einfacherhalber in einen Unterordner von /SSHChroot machen. Für das erhalten nach einen Neustart in die fstab reinschreiben.

Antworten |