ssh tunnel limitieren

  • Ersteller Ersteller ex-user_525
  • Erstellt am Erstellt am
E

ex-user_525

Guest
mahlzeit,

mal ne weiterführende frage zum howto ssh tunnel: http://www.bsdforen.de/forums/showthread.php?s=&threadid=911

folgenter sachverhalt hier in der firma:

- lokale netz mit diversesn windoof/*NIX-Server und net AS/400
- internetanbindung über standleitung und natürlich über eine relativ streng eingestellte linux firewall gesichert

ein remote-user kann jetzt ein verbindung zur firewall aufbauen (putty). anschließent hat er 20 sekunden zeit, eine verbindung zu einen server aufzubauen. erfolgt in dieser zeit kein aufbau, wird die verbindung beendet.

als software für den aufbau des tunnels wird putty verwendet. hier kann man unter "tunnels" einstellen was für ein tunnel aufgebaut werden soll. jetzt soll natürlich nicht jeder user auf jeden port kommen (z. b. soll die as/400 für bestimmte user nicht erreichbar sein).

gibt es eine möglichkeit, nur bestimmte ports für einen user freizugeben?

man könnte zwar die firewall so umkonfigurieren, dass sie intern abgeschottet ist aber das ist hier nicht sinn und zweck der sache und soll nicht gemacht werden.

vielen dank schon mal

cu tb.
 
Hi,

m. M. nach hängt das vom Können der Firewall ab.

Man muß sich ja erst mit der Firewall "bekanntmachen", bevor man sich an die eigentliche Zielmaschine connecten kann.
Die FW müsste demnach so eine Art "Benutzerprofil"-Funktion haben, d. h. je nachdem welcher User sich für eine SSH-Session anmeldet, werden ihm bestimmte Ports und IP-Adressen freigeschaltet.
Ich habe allerdings keine Ahnung, welche FW so etwas beherrscht.

Ich hoffe, ich habe Deine Frage richtig verstanden ;)

Gruß
RW
 
hm, ob du es verstanden hast weiß ich nicht ;)

verwendet wird eine ip-tables fw. der user logt sich ein und bekommt eine textmeldung zu sehen (keine interactive shell). anschließent hat er 20 sekundne zeit sich einzuloggen. problem ist, dass er in putty ja tunnels einstellen kann und auch solche die er nicht soll.

weiß jemand ob das mit ip-tables (z. b. mit modulen) geht?

cu tb.
 
Original geschrieben von ExarKun
mahlzeit,

mal ne weiterführende frage zum howto ssh tunnel: http://www.bsdforen.de/forums/showthread.php?s=&threadid=911

folgenter sachverhalt hier in der firma:

- lokale netz mit diversesn windoof/*NIX-Server und net AS/400
- internetanbindung über standleitung und natürlich über eine relativ streng eingestellte linux firewall gesichert

ein remote-user kann jetzt ein verbindung zur firewall aufbauen (putty). anschließent hat er 20 sekunden zeit, eine verbindung zu einen server aufzubauen. erfolgt in dieser zeit kein aufbau, wird die verbindung beendet.

als software für den aufbau des tunnels wird putty verwendet. hier kann man unter "tunnels" einstellen was für ein tunnel aufgebaut werden soll. jetzt soll natürlich nicht jeder user auf jeden port kommen (z. b. soll die as/400 für bestimmte user nicht erreichbar sein).

gibt es eine möglichkeit, nur bestimmte ports für einen user freizugeben?

man könnte zwar die firewall so umkonfigurieren, dass sie intern abgeschottet ist aber das ist hier nicht sinn und zweck der sache und soll nicht gemacht werden.

vielen dank schon mal

cu tb.

Da du oben eine Linux-Firewall angegeben hast, bist du wohl hier fehl am Platze (es sei denn, jemand hier kennt sich mit Iptables gut aus).

Ansonsten kann ich dir nur sagen, dass es "theoretisch" mit jeder Stateful-Firewall möglich ist, für bestimmte User (wenn sie eine feste IP haben) bestimmte Ports dicht zu machen.

Gruß

CW
 
stateful geht nicht. dynamische ips.

naja mal schaun vielleicht find ich was.

cu tb.
 
Eine Frage, wie habt ihr das mit dem 20 Sekunden Login gemacht?

Wenn du 'feste' IPs willst, könntest du eventuell mit DynDNS auf
den Rechnern der Remoteuser arbeiten. Ob iptables allerdings DNs frisst, weiß nich'...
 
*g* ganz einfach (und funktioniert auch mit bsd)

ein shellscript geschrieben und das als shell für den user genommen. hier als letzte zeile ein logout gemacht und ihn zuvor 20 seks warten lassen. wenn ein tunnel aufgebaut wird, kann der logout nicht erfolgen und die verbindung bleibt offen.

red morgen mal mit meinen chef. evtl. darf ich das script hier posten.

btw: dyndns geht nicht weil sich später kunden darüber einloggen sollen. deswegen ja auch die frage zwecks den ports. die haben auf der as/400 nix verloren.

cu tb.
 
hi,

hier das script:

Code:
#!/bin/bash
sleep 20
logout

wenn in diesen sleep ein tunnel aufgebaut wird bleibt die verbindung bestehen. ansonsten wird ein logout durchgeführt. sobald das tunnel beendet wird ebenfalls ein logout.

btw: lösung des problems - iptables und CONFIG_IP_NF_MATCH_OWNER

cu tb.
 
grundsätzliches hierzu

Also ich sehe hier, dass der Denkansatz grundsätzlich anders sein sollte. Da man weder mit iptables noch anderen packetfiltern hier nicht wirklich weiterkommen wird. Ich denke die bessere Lösung ist hier ein VPN zu nutzen welches es ermöglich bestimmte Benutzer Zugriff auf diverse Ports innerhalb jeweiliger vlan's zu erlauben. --> Free/Swan ist eine freie Software welche auch mit den Standarts zurecht kommt.
 
Re: grundsätzliches hierzu

Original geschrieben von dzi
Also ich sehe hier, dass der Denkansatz grundsätzlich anders sein sollte. Da man weder mit iptables noch anderen packetfiltern hier nicht wirklich weiterkommen wird. Ich denke die bessere Lösung ist hier ein VPN zu nutzen welches es ermöglich bestimmte Benutzer Zugriff auf diverse Ports innerhalb jeweiliger vlan's zu erlauben. --> Free/Swan ist eine freie Software welche auch mit den Standarts zurecht kommt.

Und wie willst du dynamisch vergebene IPs in die jeweiligen VLANs einbinden?

Besser wäre es einen Rechner als ssh-Durchgang nach draußen zu stellen und den bekannten Usern ein lokales Koto auf diesem zu vergeben. Und wenn sich dann einer einloggen kann (egal welche IP er zur Zeit hat), dann kann er diesen Rechner als Sprungbrett für das Innere des Netzes nutzen. Und wenn man User sperren will, dann deaktiviert man einfach das lokale Konto auf der Maschine.

Ist halt nur eine Idee :)

Gruß

CW
 
@ColdWisdom: genau das ist ja die absicht mit diesem system. der user logt sich per ssh ein (bzw. wird das durch ein programm im hintergrund gemacht) und kann dann eine windoof terminalsitzung über den ssh tunnel aufbauen.

mit der fw wird dann sichergestellt, dass er nur das kann was er soll.

cu tb.
 
Original geschrieben von ExarKun
@ColdWisdom: genau das ist ja die absicht mit diesem system. der user logt sich per ssh ein (bzw. wird das durch ein programm im hintergrund gemacht) und kann dann eine windoof terminalsitzung über den ssh tunnel aufbauen.

mit der fw wird dann sichergestellt, dass er nur das kann was er soll.

cu tb.

Dann konfigurier die Firewall doch so ein, dass sie die Zugriffe von der ssh-Durchlass-Maschine nur auf bestimmte Ports zulässt. Oder aber stelle mehrere solcher Maschinen auf, mit verschiedenen Port-Zugriffsrechten auf. D.h. mehrere ssh-Maschinen die von der dahinter stehenden Firewall verschieden behandelt werden. Und die lokalen Konten auf den jeweiligen Maschienen sollen je nach Bedarf und den verschiedenen User-Rechten eingerichtet werden.

Gruß

CW
 
geht unter linux zumindest viel einfacher: CONFIG_IP_NF_MATCH_OWNER

da kann ich bestimmte ports für bestimmte user freigeben/sperren. unter bsd muss das sich auch irgendwie gehen.

trotzdem danke für den tipp.

cu tb.
 
Original geschrieben von ExarKun
geht unter linux zumindest viel einfacher: CONFIG_IP_NF_MATCH_OWNER

da kann ich bestimmte ports für bestimmte user freigeben/sperren. unter bsd muss das sich auch irgendwie gehen.

trotzdem danke für den tipp.

cu tb.

Du solltest verschiedene Bereiche nicht miteinander vermischen, denn User-Erkennung ist ein reiner anwendungsbezogener Vorgang, während IPs auf einer tieferen Ebene im TCP/IP-Stack erkannt werden.

Und bei den *BSDs ist mir kein PaketFilter oder ein anderes Programm bekannt, dass bestimmte User vonenander unterscheiden kann.

Es sind einfach verschiedene Schichten mit den man zu tun hat.

Daher ist es am besten (zumindest mache ich es so), eine Bastion-Maschine aufzusetzen, lokale Konten zu vergeben (diese am besten im chroot halten) und dann dahinter (hinter dem Bastion Host also) eine zu setzen, die dann dem Bastion-Host bestimmte Zugriffe für die inneren Server (oder was auch immer) erlauben.

Unter OpenBSD z.B. (und da kenn ich mich etwas aus) kann man mit speziellen Anchor-Regeln und der Anwendung von ALTQ bestimmten IPs bestimmte Filter-Regeln zuordnen. Jedoch ist bei dir die Sache mit den dynamischen IPs ein Problem, sodass es am besten wäre mehrere Benutzer die dasselbe in der Firma tun dürfen (meinetwegen Projektgruppen oder ähnliches) zusammenzufassen auf einer Maschine (also lokale Konten setzen) und diese dann auf der Firewall per Anchor-Regeln und ALTQ zu filtern.

Ich weiß jetzt nicht wieviel Mitarbeiter von Außen zugreifen dürfen, wenn es aber nicht gerade mehrere tausend sind, ist es doch denkbar einige ssh-Durchlass-Maschinen aufzusetzen und diese nach Zugehörigkeit mit den jeweiligen Usern zu besetzen. Also z.B. mehrere Projektguppen-ssh-Maschinen oder sowas in der Art.

Danach gehst du dir auf der Firewall am besten OpenBSD installieren (denn Linux wird niemals so sicher sein können, wie OpenBSD --> benutze einfach mal Google als Kristallkugel dazu).

Wenn du das System drauf hast (d.h. nachdem du weißt wie man mit OpenBSD umgehen muss --> also FAQ lesen usw.) musst du den internen PaketFilter von OpenBSD konfigurieren.

Zu dem Paketfilter existiert eine gute FAQ mit vielen Beispielen, die sofort angewandt werden können.

Alles kannst du dir hier holen: http://www.openbsd.org/de

Ich kann dir nicht viel zu Linux sagen, denn ich bin ein BSD User.

Jedoch ist BSD auch nur ein Unix-System, sodass es an dir (oder deinem Chef) liegt, was ihr fahren wollt/musst/sollt.

Ein Konzept braucht man so oder so, egal was für ein System da läuft.

Aber, wenn es dir um die Sicherheit deiner Kollegen (und womöglich auch um deinen Arbeitsplatz geht), dann kann ich dir OpenBSD empfehlen.

Und ich spreche hier nicht, weil ich etwas "mal gehört habe", sondern weil ich selber OpenBSD privat und bei der Arbeit anwende.

Gruß und viel Erfolg

CW
 
Zuletzt bearbeitet:
@ ExarKun

meinst du sowas?

aus man ipfw:

Code:
     uid user
 Match all TCP or UDP packets sent by or received fo a user.  A  user may be matched by name or identification number.
 
danke für den tipp:

Jedoch ist BSD auch nur ein Unix-System, sodass es an dir (oder deinem Chef) liegt, was ihr fahren wollt/musst/sollt.

naja bin hier eh shco der revolutzer ;) firma läuft ansonsten auf 2k server und ner großen as/400. sogaer die homepage läuft auf ner 2k kiste.

die linux-maschine kommt von meinem kollegen der längerhier ist wie ich. ich persönlich nutze freebsd (von linux auf bsd gekommen und naja hängen geblieben ;)) und bin sehr zufrieden damit.

was firewall angeht wird hier in zukunft direkt mit einem bereits vorhandenen hardware-router und einer dmz abgesichert. das muss allerdings die teledoof konfigurieren. die linux-firewall ist noch ein überbleibsel von alten tagen ;) hat damals dsl-leitungen gesichert und funkiert jetzt noch als proxy und halt um die ssh-verbindungen anzunehmen.

cu tb.
 
Original geschrieben von k33n
@ ExarKun

meinst du sowas?

aus man ipfw:

Code:
     uid user
 Match all TCP or UDP packets sent by or received fo a user.  A  user may be matched by name or identification number.

Und was ist mit den anderen Pakettypen, wie z.B. ICMP?
 
@k33n: genau des!!! wo hast du des gefunden? vergiss es. der man-befehl steht ja dabei *ans hirn klatsch*


Und was ist mit den anderen Pakettypen, wie z.B. ICMP?

wird eh geblockt ;)

cu tb.

>> genändert wegen persönlicher blödheit ;)
 
@ ColdWisdom: webserver spielt hier gar keine rolle. das ist ein det. server bei schlund. hier in die firma kommt man nur durch ssh rein (deswegen auch die tunnels). andere möglichkeit wäre ras mit dem auch mehr möglichkeiten zur verfügung stehen aber das isthier uninteressant.

cu tb.
 
Original geschrieben von ExarKun
@ ColdWisdom: webserver spielt hier gar keine rolle. das ist ein det. server bei schlund. hier in die firma kommt man nur durch ssh rein (deswegen auch die tunnels). andere möglichkeit wäre ras mit dem auch mehr möglichkeiten zur verfügung stehen aber das isthier uninteressant.

cu tb.

Wenn es so ist, dann würde ich am besten die Sache mit den ssh-Durchlass-Maschinen machen.

Die andere idee von k33n ist auch nicht von der Hand zu weisen, jedoch kann ich dir nicht viel über ipfw sagen.

Vielleicht können FreeBSD-User mal was dazu sagen.

Ich bleibe bei meiner Idee mit OpenBSD :)

Sonst gebe ich dir ja noch die falschen Tipps ;)

Gruß

CW
 
so, hast mich überzeugt ;) lösung wird wie folgt ausschauen:

- dmz wird angelegt
- ssh-durchgangsserver der in der dmz steht

os ist noch nicht sicher. me will bsd ;)

cu tb.
 
Original geschrieben von ExarKun
so, hast mich überzeugt ;) lösung wird wie folgt ausschauen:

- dmz wird angelegt
- ssh-durchgangsserver der in der dmz steht

os ist noch nicht sicher. me will bsd ;)

cu tb.

Dann nix wie hin zu: http://www.openbsd.org/de

Dort findest du alles.

Und wenn es klemmt, dann komm in die OpenBSD-Sparte hier rein.

Dan kannst du deinen Senf (also deine Wehwechen) posten und wirst von einem äußerst unfreundlichen Moderator (also mir) durch den Reißwolf gezogen ;)

Keine Angst, es gibt noch weitere zwei (kith und oenone) ... die gehören nicht zur Dunklen Seite der Macht ;)

Gruß und happy Filtering

CW
 
Zurück
Oben