Dies ist der Befehl rssh, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
rssh – eingeschränkte sichere Shell, die nur SCP und/oder SFTP zulässt
ZUSAMMENFASSUNG
RSSH [ Optionen... ] [ ... ]
RSSH -v
BESCHREIBUNG
RSSH ist eine eingeschränkte Shell zur Bereitstellung eingeschränkten Zugriffs auf einen Host über ssh(1), wodurch a
Benutzer, dessen Shell konfiguriert ist RSSH einen oder mehrere der Befehle verwenden scp(1)
Sftp(1) cvs(1) rdist(1) und rsync(1) und einzige diese Befehle. Es ist in erster Linie beabsichtigt
um mit OpenSSH zu arbeiten (siehe http://www.openssh.com), kann aber auch mit anderen funktionieren
Implementierungen.
Der Systemadministrator sollte die Shell auf dem eingeschränkten System installieren. Dann ist die
Passwortdateieintrag für jeden Benutzer, für den eingeschränkter Zugriff gewährt werden soll
sollten so bearbeitet werden, dass ihre Hülle ist RSSH. Zum Beispiel:
luser:x:666:666::/home/luser:/usr/bin/rssh
Bei Aufruf mit dem -v Option, RSSH meldet seine Version und wird beendet. Alle anderen
Argumente zu RSSH sind diejenigen, die von der Fernbedienung angegeben werden ssh(1) Kunde, und es gibt nicht viel
Bedenken für den durchschnittlichen Benutzer. Die bereitgestellten Argumente müssen denen einer Shell auf der Fernbedienung entsprechen
Ende erhalten würde, um die Kontrolle an zu übergeben scp(1) Sftp(1) usw. Wenn RSSH erhält
Argumente, die nicht übereinstimmen, wird eine Fehlermeldung ausgegeben und der Vorgang beendet. Wenn das Programm
Der Benutzer versucht auszuführen, ist nicht zulässig oder enthält eine Syntax, die versucht, a auszuführen
Wenn Sie einen Shell-Befehl ausführen (z. B. eine Befehlsersetzung), wird ebenfalls ein Fehler ausgegeben und der Vorgang beendet.
RSSH hat eine Konfigurationsdatei, rssh.conf(5), was einen Teil des Verhaltens von ermöglicht RSSH zu
individuell angepasst werden. Weitere Informationen finden Sie auf dieser Manpage.
SICHERHEIT ANMERKUNG
Lesen Sie mehr fehlen uns die Worte. Abschnitt mit Außerordentliche Pflege, or U Mai setzen deine System at Risiko!
Die richtigen RSSH Mit CVS
Wenn Sie RSSH Um den CVS-Zugriff zu ermöglichen, ist zu beachten, dass dies nicht möglich ist
verhindern, dass ein Benutzer, der mit CVS sehr vertraut ist, es umgeht RSSH und eine Muschel bekommen,
es sei denn, der Benutzer hat keinen Schreibzugriff auf das Repository. Offensichtlich muss der Benutzer
Sie haben Schreibzugriff auf das Repository, um es zu aktualisieren, was ihnen das Hochladen ermöglicht
beliebige Programme in das Repository. CVS bietet mehrere Mechanismen zur Ausführung
solche willkürlichen Programme... Die einzig einigermaßen sichere Art der Verwendung RSSH mit CVS zu verwenden ist
Das Chroot-Gefängnis bietet die Möglichkeit, das CVS-Repository in einem Chroot-Gefängnis zu platzieren. Bitte sehen
Unten und in der gesamten relevanten Dokumentation finden Sie Einzelheiten zum Einrichten von Chroot-Gefängnissen. Beachten Sie, dass
Nutzer werden wir Noch be fähig zu bekommen Schale Zugang . Gefängnis; der einzige Schutz, der es gibt
Voraussetzung ist, dass sie dem Gefängnis nicht entkommen können. Man hat mich überredet, die Unterstützung beizubehalten
für CVS, weil dieser Schutz besser ist als kein Schutz. Du haben war gewarnt. Verwenden Sie die
CVS at deine besitzen Risiko.
unsere digitalen Möglichkeiten Wurzel Kompromiss Mit Alt Versionen
Vorher RSSH 2.3.0, wenn ein normaler Benutzer Shell-Zugriff auf einen Computer hatte, auf dem RSSH wurde
installiert, eine Root-Kompromittierung war möglich rssh_chroot_helper einem Benutzer erlauben, dies zu tun
willkürlich Chroot(2) an eine beliebige Stelle im Dateisystem. Es ist möglich, dies zu mildern
Angriff gegen betroffene Versionen von RSSH Verwendung strenger Zugriffskontrollen auf Dateien, indem
Stellen Sie sicher, dass der Benutzer nicht in eine Datei auf derselben Partition wie die ausführbaren Systemdateien schreiben kann.
und dass jede Partition, auf der Dateien geschrieben werden können, die Ausführung von SUID nicht zulässt
Programme. Ab RSSH 2.3.0Dieser Angriff wurde durch die Verhinderung willkürlicher Angriffe verhindert
chroot(), if deine Gefängnis is kompensieren up sicher. Stellen Sie insbesondere sicher, dass regelmäßige Benutzer
Es kann nicht in Verzeichnisse innerhalb des Gefängnisses geschrieben werden, die die kopierten Binärdateien enthalten. Das
sollte klar sein, aber es muss gesagt werden. Obwohl es nicht unbedingt notwendig sein sollte,
Um Ihr System zusätzlich vor möglichen Gefährdungen zu schützen, ist es außerdem ratsam, Folgendes zu befolgen
den folgenden Abschnitt mit dem Titel „Schutzmaßnahmen gegen die Umgehung von RSSH“.
Schutzmaßnahmen Gegen Umgehung RSSH
RSSH ist für die Interaktion mit mehreren anderen Programmen konzipiert. Auch wenn RSSH völlig fehlerhaft ist
kostenlos, Änderungen in diesen anderen Programmen könnten möglicherweise zu Methoden zur Umgehung führen
Schutz, dass RSSH zur Verfügung stellen soll. It is wichtig für Sie, System
Administrator, zu bleiben Strom on Leistungen U um verfügbar mit RSSH, zu be sicher
zur Verbesserung der Gesundheitsgerechtigkeit folgende Befehle do nicht die Mechanismen zu erlauben Benutzer zu Lauf willkürlich Befehle.
Auch wenn das Ziel jeder Veröffentlichung darin besteht, fehlerfrei zu sein, ist niemand perfekt ... Das kann sein
Seien Sie unentdeckte Fehler in RSSH Dies könnte es einem Benutzer ermöglichen, es zu umgehen.
Sie können Ihr System vor denen schützen, die solche Schwachstellen ausnutzen würden. Das
ist nicht erforderlich für RSSH richtig zu funktionieren, aber es ist eine wirklich gute Idee. Es gibt sechs
Grundlagen:
1. Schützen Sie alle Nicht-Administratorkonten mit RSSH (d. h. keine regulären Benutzer).
sollte Shell-Zugriff auf den Server haben)
2. Platzieren Sie Ihre Benutzer in einem Chroot-Gefängnis
3. Beschränken Sie die im Gefängnis lebenden Binärdateien auf das absolut erforderliche Minimum
4. Mounten Sie ihr Home-Dateisystem mit der Option noexec/nosuid (d. h. verwenden Sie separate
Partitionen im Gefängnis für Benutzer-Home-Verzeichnisse und alle anderen Dateien, falls
möglich/vernünftig)
5. Erstellen Sie eine Gruppe für RSSH-Benutzer und beschränken Sie den ausführbaren Zugriff auf die Binärdateien
an Benutzer in dieser Gruppe.
6. Verwenden Sie Standarddateiberechtigungen sorgfältig und angemessen
Stellen Sie nach Möglichkeit sicher, dass kein regulärer Benutzer irgendeinen Shell-Zugriff auf das System hat
anders als durch RSSH. Andernfalls könnten Benutzer mit Shell-Zugriff möglicherweise einen Angriff ausnutzen
unentdeckte Fehler in rssh_chroot_helper um Root-Zugriff auf den Server zu erhalten.
RSSH gibt dem Systemadministrator die Möglichkeit, die Benutzer in einem Chroot-Gefängnis zu platzieren. Sehen
Details finden Sie in der Manpage für rssh.conf und in der Datei CHROOT welches mit dem verteilt wird
Quellcode. Wenn Sie sicherstellen möchten, dass Benutzer keine beliebigen Programme ausführen können, verwenden Sie eine Chroot
Gefängnis, und stellen Sie sicher, dass Sie keine anderen Programme installieren als die, die unbedingt erforderlich sind
Erbringen Sie den Dienst, den Sie anbieten möchten. Dies verhindert, dass sie standardmäßig ausgeführt werden
Systembefehle.
Stellen Sie dann sicher, dass sich die Dateien des Benutzers im Jail in einem anderen Dateisystem als Ihrem befinden
die ausführbaren Dateien des Systems. Wenn es in Ihrer Umgebung möglich ist, stellen Sie sicher, dass Sie dies mounten
Dateisystem mit der noexec und Nosuid Optionen, sofern Ihr Betriebssystem diese bereitstellt.
Dies verhindert, dass die Benutzer Programme ausführen können, auf die sie hochgeladen haben
der Zielmaschine (z. B. mit scp), die andernfalls ausführbar wäre, und verhindert SUID
verhindert, dass Programme die SUID-Bits berücksichtigen. Beachten Sie, dass diese Optionen die Zustimmung des Benutzers erfordern.
Dateien befinden sich auf separaten Partitionen von den Binärdateien und Bibliotheken, die sich im Gefängnis befinden.
Daher benötigen Sie mindestens 2 Partitionen für Ihr Gefängnis, um dies ordnungsgemäß zu tun (eine für
die System-Binärdateien im Jail, der andere für die Benutzerverzeichnisse).
Erstellen Sie außerdem eine Gruppe, zum Beispiel „rsshuser“, für RSSH-Benutzer. Setzen Sie alle Ihre Benutzer ein
Wer wird durch RSSH in dieser Gruppe eingeschränkt? Legen Sie den Besitz und die Berechtigungen für RSSH fest
und rssh_chroot_helper, sodass nur diese Benutzer sie ausführen können. Die folgenden Befehle
soll veranschaulichen:
# Gruppe hinzufügen rsshuser
# chown root:rsshuser RSSH rssh_chroot_helper
# chmod 550 RSSH
# chmod 4550 rssh_chroot_helper
Verwenden Sie schließlich die Standard-Unix/POSIX-Dateiberechtigungen, um sicherzustellen, dass sie nicht auf die Dateien zugreifen können, die sie benötigen
sollte nicht in der Lage sein, sich im Chroot-Gefängnis zu befinden.
Befehl Line Parser
Ab RSSH In Version 2.2.3 muss das Programm die komplette Befehlszeile analysieren, um dies zu vermeiden
Befehlszeilenoptionen, die die Ausführung beliebiger Programme bewirken (und somit die umgehen).
Sicherheit von RSSH). Um den Quellcode des Programms sauber zu halten, ist der Parser ein wenig
übereifrig, wenn es um passende Befehlszeilenoptionen geht. In der Praxis wird dies wahrscheinlich nicht der Fall sein
ein Problem, aber theoretisch ist es möglich.
Wenn Sie auf ein Problem stoßen, wo RSSH weigert sich zu kandidieren und behauptet, die Ablehnung sei unsicher
Befehlszeilenoptionen, die nicht angegeben wurden, versuchen Sie, Ihre Befehlszeile so zu ändern
alle kurz Optionen werden als einbuchstabige Optionsflags angegeben (z. B. -e -p statt -ep)
und stellen Sie sicher, dass Sie die Argumente durch ein Leerzeichen von ihren jeweiligen Optionen trennen (z. B. -p 123).
statt -p123). In praktisch allen Fällen sollte dies das Problem lösen. Zugegeben, ein
Es wurde keine umfassende Suche durchgeführt, es wurden jedoch keine problematischen Fälle gefunden
wahrscheinlich häufig vorkommen.
Die Alternative wäre gewesen, einen vollständigen Befehlszeilenparser für rcp, rdist,
und rsync; Dies lag weit außerhalb des Rahmens dieses Projekts. In der Praxis das Bestehende
Parser sollte ausreichen. Sollten Sie jedoch Fälle finden, in denen dies nicht der Fall ist, posten Sie bitte Einzelheiten
zur RSSH-Mailingliste. Einzelheiten zum Posten in der Mailingliste finden Sie unter
die RSSH-Homepage.
OpenSSH Versionen und Umgehung RSSH
Vor OpenSSH 3.5, sshd(8) wird im Allgemeinen versuchen, Dateien im Zuhause des Benutzers zu analysieren
Verzeichnis und versucht möglicherweise auch, ein Startskript vom Benutzerverzeichnis auszuführen $HOME/.ssh Verzeichnis.
RSSH nutzt die Umgebung des Benutzers in keiner Weise aus. Der entsprechende Befehl lautet
durch Aufruf ausgeführt leitender Angestellter(3) mit dem vollständigen Pfad zum Befehl, wie beim Kompilieren angegeben
Zeit. Es hängt nicht von der PATH-Variablen des Benutzers oder einer anderen Umgebung ab
variabel.
Es können jedoch mehrere Probleme auftreten. Dies liegt ausschließlich an der Art und Weise, wie die
Das sshd des OpenSSH-Projekts funktioniert und ist in keiner Weise schuld daran RSSH. Zum Beispiel ein
Problem, das bestehen könnte, ist, dass laut der sshd(8) Manpage von zumindest einigen
Versionen von OpenSSH, die in der aufgeführten Befehle $HOME/.ssh/rc Datei werden mit ausgeführt
/ Bin / sh anstelle der vom Benutzer definierten Shell. Dies scheint hier nicht der Fall zu sein
Systeme, auf denen der Autor zum Testen zur Verfügung stand; Befehle wurden mit den Befehlen des Benutzers ausgeführt
konfigurierte Shell (RSSH), was die Hinrichtung nicht erlaubte. Wenn es jedoch bei Ihnen zutrifft
System, dann kann ein böswilliger Benutzer möglicherweise umgehen RSSH durch Hochladen einer Datei auf
$HOME/.ssh/rc die ausgeführt wird von / Bin / sh auf diesem System. Falls irgendwelche Veröffentlichungen (von
OpenSSH) tatsächlich anfällig für dieses Problem sind, dann ist es sehr wahrscheinlich, dass sie es sind
nur alte, veraltete Versionen. Solange Sie eine aktuelle Version von OpenSSH ausführen, ist dies der Fall
sollte soweit ich das beurteilen kann kein Problem darstellen.
Wenn Ihr SSHD is Obwohl Sie für diesen Angriff anfällig sind, gibt es für dieses Problem einen Workaround
es ist ziemlich restriktiv. Die Benutzer Startseite Verzeichnis absolut sollen nicht be beschreibbar by
Benutzer. Wenn dies der Fall ist, kann der Benutzer SFTP verwenden, um das Verzeichnis zu entfernen oder es umzubenennen, und dann
Erstellen Sie ein neues und füllen Sie es mit beliebigen Umgebungsdateien. Für die Bereitstellung von
Datei-Uploads, das bedeutet, dass für sie ein vom Benutzer beschreibbares Verzeichnis erstellt werden muss, und das müssen sie
darauf hingewiesen werden, dass sie nicht in ihr Home-Verzeichnis schreiben können, außer in diesem
Ein zweites Problem besteht darin, dass sshd nach der Authentifizierung des Benutzers auch liest
$HOME/.ssh/environment um dem Benutzer das Festlegen von Variablen in seiner Umgebung zu ermöglichen. Das
ermöglicht dem Benutzer die vollständige Umgehung RSSH durch geschickte Manipulation einer solchen Umgebung
Variablen als LD_LIBRARY_PATH or LD_PRELOAD um die RSSH-Binärdatei gegen beliebige zu verknüpfen
gemeinsam genutzte Bibliotheken. Um dies zu verhindern, wurde ab Version 0.9.3 von
Standard RSSH ist nun statisch kompiliert. Die oben erwähnte restriktive Problemumgehung wird dies tun
Besiegen Sie auch diese Art von Angriff.
Ab OpenSSH 3.5, sshd unterstützt jetzt die Option PermitUserEnvironment welches auf „nein“ gesetzt ist
standardmäßig. Diese Option ermöglicht eingeschränkte Shells wie RSSH ohne richtig zu funktionieren
Sie müssen statisch verknüpft sein. Ab RSSH Version 1.0.1, das Konfigurationsskript
sollte erkennen, dass OpenSSH 3.5 vorhanden ist, und die Standardeinstellung der statischen Kompilierung deaktivieren.
Verwenden Sie RSSH online über die Dienste von onworks.net