SSH tunnel mit Squid

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
sprengi123
Beiträge: 7
Registriert: 22.02.2010 00:47:51

SSH tunnel mit Squid

Beitrag von sprengi123 » 22.02.2010 01:02:17

Moin,...

Ich habe mit einem ssh client eine Verbindung zu meinem SSH-Server aufgebaut über einen tunnel sollen dann die Anfragen in die Welt weitergeschickt werden also ein klassischer Proxy. Da ich diesen Tunnel auch von jedem anderen Netzwerk nutzen möchte, aber nicht will, dass irgendwer anderen meinen Proxy mißbraucht bauche ich eine Regel, die Squid nur dann ein forwarding erlaubt, wenn der Nutzer über SSH eingeloggt ist.

Zuerst dachte ich, dass wenn der SSH tunnel steht ich mit einer einfach http_access deny all und http_access allow localhost Regel nur den SSH authentifizierten
Benutzer/ localhost zulässt. Meine 2. Idee wäre eine temporäre IP Liste die nach jedem SSH Login/Logout ergänzt wird.

Ich hoff ich habe mich nicht mißdrücklich ausgedrückt... :oops:

Gruß Sprengi

punami
Beiträge: 75
Registriert: 18.06.2008 18:19:12

Re: SSH tunnel mit Squid

Beitrag von punami » 22.02.2010 08:21:17

Du kannst in der squid.conf nicht nur IPs sondern auch Ports definieren. - eventuell kannst dein Problem lösen indem du schon in der conf die richtigen Routen / Ports setzt. Dann sollte man rein theoretisch nur noch von den angegebnen Adressen auf die eingetragenen Adressen einloggen können.
Das Problem ist jedoch, dass es einem "Angreifer" auch gelingen kann sich als localhost auszugeben, obwohl er es nicht ist...

Desweiteren gibt es eine Möglichkeit squid mit User und PW zu versehen.

Vorraussetzung für ein einigermaßen gute Sicherheit ist aber, dass du alles andere, was "um den Proxy herum" geht, zu machst. Z.B. per Firewall.

sprengi123
Beiträge: 7
Registriert: 22.02.2010 00:47:51

Re: SSH tunnel mit Squid

Beitrag von sprengi123 » 22.02.2010 10:53:25

Hey danke, aber finde keine passende Regel...

Code: Alles auswählen

http_port 8080
icp_port 0

acl all src all #definiert alle quellen
acl localhost src 127.0.0.1/32 #definiert localhost
acl sshserver src 192.168.2.2 #definiert sshserver

http_access deny all #verbiete alle Zugriffe
http_access allow localhost #erlaube alle Zugriffe von Localhost
http_access allow sshserver #erlaube alle Zugriffe mit der Quelle sshserver
Aber es funktioniert dennoch nicht. Das mit dem Passwort wird glaube ich nicht fuktionieren, wenn Du dich mit Putty einwählst, versteht er die Syntax nicht...

uname
Beiträge: 12480
Registriert: 03.06.2008 09:33:02

Re: SSH tunnel mit Squid

Beitrag von uname » 22.02.2010 11:01:05

dass irgendwer anderen meinen Proxy mißbraucht bauche ich eine Regel, die Squid nur dann ein forwarding erlaubt, wenn der Nutzer über SSH eingeloggt ist.
Zwar habe ich nicht ganz verstanden was du vorhast aber eigentlich sollte es doch reichen, wenn dein Squid einfach nur auf Localhost horcht. Dann kannst du über SSH den Squid zu dir auf den Client tunneln. Von außen ist Squid nicht erreichbar.

Code: Alles auswählen

ssh -L 3128:localhost:3128 user@server
Alternativ kannst du Squid auch aus dem Internet per Paketfilter sperren. Statt Squid würde ich dir im übrigen eher Debiantinyproxy empfehlen.

sprengi123
Beiträge: 7
Registriert: 22.02.2010 00:47:51

Re: SSH tunnel mit Squid

Beitrag von sprengi123 » 22.02.2010 11:18:38

Eben doch das ist ja das Problem...
Setze ich :
http_access allow all
kann jeder meinen proxy als freeproxy auf port 8080 nutzen.

setzte ich http_access deny all kann ich selbst nicht mehr von meinem ssh client einen tunnel aufbauen.

hingehen und meine client ip auf allowed setzen bringt mir nichts, da ich aus allen möglichen Netzen die Möglichkeit haben will einen
Tunnel aufzubauen. Also NUR was über den SSH eingeleitet wird darf von Squid weitergeleitet werden. Bei http_access deny all und http_access allow localhost
ist dies nicht gegeben. Der Tunnel zB. von 192.168.2.3 (ssh client) auf 192.168.2.2(SSH Server) fällt bei Squid(192.168.2.2) nicht unter die Regel Localhost.

Hätte da noch eine umständlichere Idee ich setzte eine Regel auf eine DNS, die ich beim umherwandern mit meinem client immer aktualisiere...

Hmmm... ich werde mal uname´s Idee nachgehen... mal sehen, was passiert, wenn ich alle zugriffe bei squid erlaube, aber mit iptables den port 8080 nach außen dicht mache...

uname
Beiträge: 12480
Registriert: 03.06.2008 09:33:02

Re: SSH tunnel mit Squid

Beitrag von uname » 22.02.2010 11:26:59

Der Tunnel zB. von 192.168.2.3 (ssh client) auf 192.168.2.2(SSH Server) fällt bei Squid(192.168.2.2) nicht unter die Regel Localhost.
Du meldest dich von deinem Client auf Squid-Server per SSH an. Und dort ist es dann localhost:3128. Natürlich musst du dann auf deinem Client im Firefox auch localhost:3128 eintragen bzw. den geforwardeten Port, der entsprechend abweichen kann.

sprengi123
Beiträge: 7
Registriert: 22.02.2010 00:47:51

Re: SSH tunnel mit Squid

Beitrag von sprengi123 » 22.02.2010 11:49:12

Richtig! So hab ichs auch versucht... Tunnel wurde auch aufgebaut etc., aber dennoch wie gesagt ist acess denied, wenn all sources nicht erlaubt sind.

Code: Alles auswählen

acl all src all
acl localhost src 127.0.0.1/32
acl sshserver src 192.168.2.2
acl sshclient src 192.168.2.4


http_port 8080
icp_port 0

http_access deny all
http_access allow localhost
http_access allow sshserver
http_access allow sshclient
...
Habs mal so probiert, aber dennoch access denied... Liegt wohl doch an deny all...
Dann werde ich morgen mal auf allow all setzten und schauen, was ich mit den iptables alles abschotten kann...

punami
Beiträge: 75
Registriert: 18.06.2008 18:19:12

Re: SSH tunnel mit Squid

Beitrag von punami » 22.02.2010 13:08:01

Hi,

du musst bei den squid-richtlinie aufpassen, das IPs nicht in 2 Gruppen vorhanden sind. - Z.B. in "all" und "home". Normalerweise sollte er dann beim starten auch eine Warning rausgeben.
Das kann komische Ergebnisse erzeugen.
Wobei eigentlich die Regel erst "deny", dann "allow" gilt.

Siehe hierzu: squid-cache.org da findest du alles was du wissen musst über die Config. Wenn auch auf Englisch.

sprengi123
Beiträge: 7
Registriert: 22.02.2010 00:47:51

Re: SSH tunnel mit Squid

Beitrag von sprengi123 » 22.02.2010 13:21:14

punami hat geschrieben:Hi,

du musst bei den squid-richtlinie aufpassen, das IPs nicht in 2 Gruppen vorhanden sind. - Z.B. in "all" und "home". Normalerweise sollte er dann beim starten auch eine Warning rausgeben.
Das kann komische Ergebnisse erzeugen.
Wobei eigentlich die Regel erst "deny", dann "allow" gilt.

Siehe hierzu: squid-cache.org da findest du alles was du wissen musst über die Config. Wenn auch auf Englisch.
Hmm... würde das in meinem Fall heißen, dass in all ebenso sshserver,localhost,sshclient enthalten sind?
Aber ohne die Regel für all wirft squid doch fehler aus....?

uname
Beiträge: 12480
Registriert: 03.06.2008 09:33:02

Re: SSH tunnel mit Squid

Beitrag von uname » 22.02.2010 13:28:39

Ich habe immer noch nicht verstanden, was du nun wirklich machen möchtest. Beschreibe doch mal genau:

Code: Alles auswählen

SSH - Client ->  :22 SSH-Server
                 :3128 Squid            -> Internet
:3128 Browser  --------------------------> Internet
Mal doch mal ein Bild.

Oder möchtest Du SSH durch den Proxy tunneln. Dann schau nach Debianconnect-proxy

sprengi123
Beiträge: 7
Registriert: 22.02.2010 00:47:51

Re: SSH tunnel mit Squid

Beitrag von sprengi123 » 09.03.2010 11:35:40

Habe das Problem gelöst... hatte ganz vergessen, dass SSH selber als Proxy fungieren kann... Stichwort: Dynamischer Tunnel

Antworten