Ist es sicherer, ein Chroot-Gefängnis, eine Jail-Shell oder eine Kombination zu verwenden?

1919
Andy

Eine Freundin von mir hat ein Xandros-basiertes Acer-Netbook und hat sich nach Remote-Verwaltung und Hilfe von mir umsehen lassen, während sie um die Welt reist.
Ich habe ein Konto auf ihrem Netbook eingerichtet, in das ssh eingebunden werden soll, und ein Skript für den umgekehrten ssh-Tunnel von ihrem Netbook zu meinem Server eingerichtet. Dadurch kann ich die Probleme mit Firewalls usw. in verschiedenen Hostels und Hotels umgehen. Sobald sie sich auf meinem Server befindet, kann ich sie zu ihrem Netbook zusammenfassen.

Ich habe ein bash-Skript, das als Shell ausgeführt wird, wenn sie auf meinen Server wechselt. Dadurch wird ihr nur der Bildschirm "Bitte warten" angezeigt. Die einzige Möglichkeit besteht darin, das Skript zu verlassen und booten zu lassen vom Server.

Der Benutzer, den ich auf meinem Server für sie erstellt habe, hat wenig Rechte, aber es gibt einen gewissen Exploit, der bedeuten würde, dass sie ssh-Zugriff auf meinen Server hätte.

Ich überlege mir, auch ein Chroot-Gefängnis zu verwenden. Wenn sie entkommt, hätte sie nur Zugriff auf ihr Heimatverzeichnis.
Ist dies eine gute Idee, und gibt es weitere Sicherheitstipps, die ich vermisst haben könnte, um meinen Server sicher zu halten und gleichzeitig mir den Fernzugriff auf ihr Netbook zu erlauben?

Um das zu klären, glaube ich nicht, dass sie versuchen wird, aus dem Gefängnis oder der Chroot zu entkommen, aber ich würde gerne wissen, wie ich das für alle Fälle verhindern könnte.

Update:
Und haben Sie weitere Vorschläge, wie ich auf das Netbook oder andere Ebenen zugreifen kann, die ich zwischen dem Benutzer und meiner Hardware platzieren könnte?

8

4 Antworten auf die Frage

3
Axxmasterr

Haben Sie darüber nachgedacht, VNC oder eine andere Fernsteuerungs-App an einem Port einzurichten, der normalerweise nicht von einer Firewall nach Regeln gefiltert wird?

Bei einer Beispielskonfiguration dieses Typs würde VNC (oder eine andere ähnliche App) in das Notebook geladen. Lassen Sie dann Ihr Notebook-Side-Script laufen, um Ihren Server über einen bestimmten Port zu erreichen, der nicht von der Firewall gefiltert wird, um den Rückpfad zum System festzulegen. 443 ist wahrscheinlich der beste Port, um dies zu tun, aber andere sind auch geeignet. Dann stellen Sie von Ihrem System aus einfach eine Verbindung zu VNC her oder replizieren einen Port auf Ihrem Server zu einer anderen Portnummer und verbinden sich einfach mit der Schnittstelle am lokalen Port, und die Portumleitung führt Sie zum anderen System am fernen Ende.

Hoffe das hilft.

Danke für den Vorschlag. Ich habe das nicht in Betracht gezogen, weil ich nicht wirklich viele VNC-Clients in Linux gesehen habe, die die umgekehrte Verbindung in Linux offensichtlich machen. Kennen Sie welche? Andy vor 14 Jahren 0
Eine Möglichkeit, dies zu tun, besteht darin, ein TCP / IP-Programm zu verwenden, das den Port auf eine Weise einrichten kann. Die Automatisierung mit einem Telnet-Style-Connect von einem Shell-Skript wäre gut. Bei den meisten Telnet-Implementierungen können Sie den Port angeben, zu dem Sie eine Verbindung herstellen möchten. Axxmasterr vor 14 Jahren 0
2
chaos

Das chroot-Gefängnis wird helfen, aber mit einem Exploit, durch den jemand in eine Shell eindringen kann, können sie immer noch die Prozesstabelle sehen und solche Programme ausführen und möglicherweise weitere Exploits ausführen. Wenn Sie beim Isolieren des externen Benutzers wirklich aggressiv sein möchten, verwenden Sie eine Haubitze auf einer Ameise. Sie können jedoch einen virtuellen privaten Server für den gesamten SSH-Tunnelmechanismus einrichten. Dann ist das Schlimmste, was sie tun können, den VPS zu vergeuden, ohne dass die Möglichkeit besteht, aus einem zu kommen, was ein ziemlich hoher Balken ist.

Ich mag die Idee, aber ja, Dampfwalze, um eine Walnuss zu knacken :) Dann wiederum, wenn ich etwas wirklich kleines wie einen Welpen-Linux-Terminal als Server laufen lasse, wäre es nicht so groß wie eine Dampfwalze. Andy vor 14 Jahren 0
2
Bruce McLeod

Ich bin ein Fan einer guten Verteidigungsstrategie, wenn es um die Sicherung eines Computersystems geht. Daher würde ich empfehlen, dass Sie ein Konto mit geringen Berechtigungen in einem chrootierten Dateisystem verwenden. Selbst dann ist es keine Garantie, schauen Sie sich das iPhone an. es tut beides und es hilft immer noch nicht.

2
Axxmasterr

Eine andere Möglichkeit, dieses Tier jetzt zu häuten, wenn ich darüber nachdenke, ist das Tunneln von x-Sitzungsverkehr innerhalb eines SSH-Tunnels als Alternative zur Verwendung von VNC. Sie sind jetzt schon mit Ihrem aktuellen Setup auf halbem Weg.

Richten Sie die X-Fähigkeit für einen bestimmten Port lokal für diesen Computer ein, leiten Sie diesen Port dann über den Tunnel an sich selbst weiter und replizieren Sie ihn an einem Port auf Ihrer Seite, damit Sie eine Verbindung zur Sitzung am lokalen Port Ihres Servers herstellen können.

Eine andere Sache, die ich für diese Dinge sehr praktisch finde, ist dynamisches DNS. Dadurch können Sie einen auflösbaren vollqualifizierten Domänennamen festlegen, den Sie bei Bedarf abfragen können. DyDns wird als einfacher Dienst auf dem System ausgeführt, auf dem Sie es installiert haben, und der Datensatz wird jedes Mal aktualisiert, wenn sich die IP-Adressinformationen ändern.