Benutzerspezifischer SSH-Server - Chroot/ IP-tables usw.

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
Schlorfy
Beiträge: 192
Registriert: 26.02.2006 23:10:03

Benutzerspezifischer SSH-Server - Chroot/ IP-tables usw.

Beitrag von Schlorfy » 20.06.2006 12:40:47

Hi!

mein letzter eintrag war:
http://www.debianforum.de/forum/viewtop ... highlight=

aber ich denke das war zu spezifisch- also mach ich nochmal einen neuen
auf.

Es geht um einen SSH Zugang - SSH ist das einzige "Loch" in meinem
Netzwerk, und so suche ich nach lösungen ALLES über SSH zu realisieren.

Letztes war ein "FTP"-Server bzw sftp - um aber die normale SSH funktionen
für kleine Schlawiner dennen man nicht so richtig traut, auszuschalten-
habe ich erst einen Chroot umgebung erstellt und dann alle port
mit:

Code: Alles auswählen

iptables -t filter  -A OUTPUT -p tcp --match owner --uid-owner 1007   --dport 1:65535 -j DROP 
(letztes Board - danke chroiss)

gesperrt... für meine begriffe/fähigkeiten ist das sicher genung:
der User kann auf ein minimumm an befehlen zugreifen
(ls, rm, rmdir sh, cp, mv, ssh scp)
hat die bash und wird mit folgendem login script gestartet:

Code: Alles auswählen

#!/bin/sh
/usr/bin/sudo /usr/sbin/chroot /home/chroot/ /bin/su - $USER "$@"
...aber "meine Begriffe/Fähigkeiten" sind nun bei weitem und wiklich nicht das Mass
der Dinge 8) :lol:

...und so möchte ich hier mal um rat fragen was man den mit den obrigen
Wekrzeugen so alles anzetteln könnte- wenn man zugriff auf so ein
terminal hätte- und z.B. an irgendwelche (ungesichterten) Dienste auf der
Maschine wollte- oder an irgendwelche dateien die sich ausserhalb der
CHrootblase befinden... .. selbst das verschikcne von eMails oder das
runterladen von internetseiten würde ich schon als ungünstig einstufen.

ein "normaler" SSH benutzer hat bei mir weitestgehen die selben /alle
rechte eines lokalen benutzers.... die sshd.conf habe ich kaum angepasst...

gruss
Hi! I am a .SIG virus! Copy me to your SIG so that I can spread!

_mh_
Beiträge: 171
Registriert: 10.07.2006 11:52:28

Beitrag von _mh_ » 12.07.2006 19:51:32

hallo,

also... was du hier fragst ist immer noch sehr unspezifisch, aber ich will mal versuchen dir ein paar beispiele zu geben die 'immer' noch funktionieren meiner Meinung nach.

dein groesster "Feind" in der hinsicht ist meiner Meinung nach ssh selbst. Du kannst mit -L bzw -R einiges erreichen und der SSH isses herzlich egal dass du da im chroot bist soweit ich informiert bin.

Normalerweise gibt es verschiedene Moeglichkeiten aus einem chroot auszubrechen (siehe google normalerweise), es sei denn du haettest auf der Kiste einen grsecurity patch im kernel der den Chroot dezimiert (keine Prozesse anzeigen die ausserhalb vom chroot liegen, lueckem im chroot schliessen, rechte eines chroot-users einschraenken....).

potentiell wenn ich lokal bin und moechte auf netzwerkdienste zugreifen dann hast du normalerweise keine chance das zu blocken,... es sei denn du faengst jetzt an das loopback-interface auch noch durch iptables zu jagen. Sonst, wenn man nen telnet hat und nen bisserl sich auskennt kommt man zumindest schon ans mail versenden...

ist das den Aufwand eigentlich wert? (nur so als anregung...)

Benutzeravatar
Schlorfy
Beiträge: 192
Registriert: 26.02.2006 23:10:03

hi!

Beitrag von Schlorfy » 12.07.2006 20:07:37


potentiell wenn ich lokal bin und moechte auf netzwerkdienste zugreifen dann hast du normalerweise keine chance das zu blocken,... es sei denn du faengst jetzt an das loopback-interface auch noch durch iptables zu jagen. Sonst, wenn man nen telnet hat und nen bisserl sich auskennt kommt man zumindest schon ans mail versenden...
danke für deine Antwort -
wäre nett wenn du mir dafür ein beispeil geben könntest- das hab ich ja schon
mal diskutiert

-ich hab ein telnet in der Chroot installiert (ich hab es auch nicht hinbekommen da
auszubrechen- auch nicht mit einschlägigen anleitungen aus dem Netz- da
man für jeden versuch einige dinge brauchte (GCC- pearl usw) die ich nicht auf die CHROOT
übertragen hab...

aber zurück zum telnet:
ich hab versucht den web/mail usw Server auf dem Seystem mit telnet "halo" zu sagen-
erfolglos- die IPtable die ich vorher definiert hab, hat jede ausgehende verbindung
egal wo hin in NIL geschickt- ich hab keine ahnung wie ich Telnet mit dem
loopback verwenden soll wenn mein "normaler" output gesperrt is...

ich wäre dir sehr dankbar für ein beispiel, wie du es machen würdest- um
mir die sicherheitslücke vor augen zu führen - bevor es zu spät ist...

(im zweifellsfall kann ich immernoch auf ne lösung wie VMServer oder so
umsteingen, wenn es sich nicht verhindern lässt...)

liebe grüsse
Hi! I am a .SIG virus! Copy me to your SIG so that I can spread!

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 12.07.2006 20:13:17

was sollen denn die User überhaupt dürfen?? Also WIRKLICH dürfen?..
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
Schlorfy
Beiträge: 192
Registriert: 26.02.2006 23:10:03

Beitrag von Schlorfy » 12.07.2006 21:43:59

alles was ich ihm erlaube!! 8) 8) 8)

nee-- mal ernsthaft : hab zum beispiel zwei demons laufen die er über
die komandozeile wartet
soll (neustarten usw) (mach ich dann mit sudo) - dann soll er einen bestimmten
dienst tunneln können (nur 3 Ports - die geb ich dann vor dem overkill iptables
befehl noch frei - ausserdem noch einige Web-ports für die benannten
demons) und er soll natürlich soll er FTP nutzen können (was ich dann gleich
direkt über SSH mache)

mir geviel die lösung mit dem SSH sehr gut- weil ich so schonmal alle leute
aus dem Inet aussperre- natürlich hab ich die selben sicherheitsprobleme
zu bewältigen- aber wenigstens sind sie auf einen engen userkreis eingeschränkt..

ich hab also das WAN - ich hab user die einen einzigen Dienst nutzen
dürfen, dann hab ich einige User dennen ich überhauptnicht
vertraue (z.t. IT-spezis) die aber einiges dürfen (für diese bieden treibe ich diesen
aufwandt) und ein paar user die beinahe alles dürfen...

..so- das wars so im groben....
Hi! I am a .SIG virus! Copy me to your SIG so that I can spread!

_mh_
Beiträge: 171
Registriert: 10.07.2006 11:52:28

Beitrag von _mh_ » 12.07.2006 22:35:28

Hallo,

ich wills mal so formulieren: Ein komplett sicheres System gibt es nicht.
Wenn der user einen Weg finden will und begabt genug ist, wird er ihn finden, egal wie hoch du die Latte ansetzt.

Du kannst nur versuchen die Huerden so hoch zu setzten dass man in vertretbarer Zeit daran verzweifelt. Alles ausschliessen wirst du nie koennen. Gewaehrst du einem User access zu deinem System hat er schon mal 80% der Miete gewonnen. Auch iptables und co sind nicht bug-frei. Ehrlich gesagt finde ich es ein wenig zu arg uebertrieben was du hier anstrebst. Aber das bleibt dir ueberlassen. ;)

zu deinem Telnet, normalerweise solltest du folgendes machen koennen:

Code: Alles auswählen

telnet localhost 25
Trying 127.0.0.1...
Connected to xyz.xyz.de.
Escape character is '^]'.
220 xyz.xyz.de ESMTP Postfix (Debian/GNU@xyz)
helo foobar.de
250 xyz.xyz.de
mail from: martin@xyz.xyz.de
250 Ok
rcpt to: martin@xyz.xyz.de
250 Ok
data
354 End data with <CR><LF>.<CR><LF>
blubbb
.
250 Ok: queued as 39EB81C5F7

damit sollte ein lokaler user in der Lage sein mails zu schicken.
wenn nicht... /usr/sbin/sendmail is dein freund, bzw mail oder mutt.
diese kommunizieren meines wissens ueber unix sockets (haengt iirc glaub ich vom smtp server ab). Also wie gesagt... ab nem gewissen punkt isses den aufwand nicht mehr wert.

wenn man sich in hochsicherheitssystemen bewegt dann wuerde man so etwas anders anpacken. Wenn du wirklich austicken willst wuerde ich empfehlen, zieh dir nen user-mode-linux auf oder patch deinen kernel mit grsecurity und dreh alle stakes hoch. Das loopback device muesstest du dann auch noch filtern...

Gruesse

Martin

Antworten