SSH tunnel mit Squid
-
- Beiträge: 7
- Registriert: 22.02.2010 00:47:51
SSH tunnel mit Squid
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...
Gruß Sprengi
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...
Gruß Sprengi
Re: SSH tunnel mit Squid
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.
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.
-
- Beiträge: 7
- Registriert: 22.02.2010 00:47:51
Re: SSH tunnel mit Squid
Hey danke, aber finde keine passende Regel...
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...
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
Re: SSH tunnel mit Squid
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.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.
Code: Alles auswählen
ssh -L 3128:localhost:3128 user@server
-
- Beiträge: 7
- Registriert: 22.02.2010 00:47:51
Re: SSH tunnel mit Squid
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...
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...
Re: SSH tunnel mit Squid
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.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.
-
- Beiträge: 7
- Registriert: 22.02.2010 00:47:51
Re: SSH tunnel mit Squid
Richtig! So hab ichs auch versucht... Tunnel wurde auch aufgebaut etc., aber dennoch wie gesagt ist acess denied, wenn all sources nicht erlaubt sind.
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...
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
...
Dann werde ich morgen mal auf allow all setzten und schauen, was ich mit den iptables alles abschotten kann...
Re: SSH tunnel mit Squid
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.
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.
-
- Beiträge: 7
- Registriert: 22.02.2010 00:47:51
Re: SSH tunnel mit Squid
Hmm... würde das in meinem Fall heißen, dass in all ebenso sshserver,localhost,sshclient enthalten sind?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.
Aber ohne die Regel für all wirft squid doch fehler aus....?
Re: SSH tunnel mit Squid
Ich habe immer noch nicht verstanden, was du nun wirklich machen möchtest. Beschreibe doch mal genau:
Mal doch mal ein Bild.
Oder möchtest Du SSH durch den Proxy tunneln. Dann schau nach connect-proxy
Code: Alles auswählen
SSH - Client -> :22 SSH-Server
:3128 Squid -> Internet
:3128 Browser --------------------------> Internet
Oder möchtest Du SSH durch den Proxy tunneln. Dann schau nach connect-proxy
-
- Beiträge: 7
- Registriert: 22.02.2010 00:47:51
Re: SSH tunnel mit Squid
Habe das Problem gelöst... hatte ganz vergessen, dass SSH selber als Proxy fungieren kann... Stichwort: Dynamischer Tunnel