Squid, SquidGuard & VPN

DemonLord

Weeeeee!
Hallo Leute!

Ich betreibe ein Netzwerk zuhause, das so aufgebaut ist:

Netz 1: Kabelgebunden. Hier sind alle PCs angeschlossen. "100% trust", alles erlaubt.

Netz 2: WLan. Alles was über den AccessPoint ankommt landet hier. Physikalisch von anderen Netzen getrennt. Direkt am Server über seperate LAN Karte angeschlossen. IPFW blockt alles ausser 1194, 80 und DNS. "0% trust", quasi nichts erlaubt.

Netz 3: OpenVPN. Alle die sich mit openVPN (über Wlan) angemeldet haben, kommen hier herein. Per Gateway auch in Netz 1. "100% trust", dürfen alles.


Im Mittelpunkt steht der Server mit 3 Netzwerkkarten:
Karte 1: Wlan
Karte 2: Direkt am Ap
Karte 3: DSL Modem

Der Server (FreeBSD) ...
... erlaubt alles von Netz 1 nach egal.
... erlaubt nichts vom Netz 2 nach egal, ausser VPN zum Server und Port 80 zum Server.
... erlaubt alles von Netz 3 nach egal.

Technisch läuft es schon einwandfrei. Nun will ich aber folgende SquidGuard regel haben:

"Wenn eine Anfrage aus Netz 2 kommt, dann redirect nach xx/vpn. Erlaube alles andere aus anderen Netzen."

Hier ist das, was ich mir bisher zusammengebastelt habe:

squidGuard.conf:
Code:
dbhome /var/cache/squid/guard/db
logdir /var/cache/squid/guard/log/

src lan {
 iplist lan
}

src wlan {
 iplist wlan
}

dest xerxes {
 domainlist xerxes.domain
 urllist xerxes.url
}

acl {
  wireless {
   redirect 302:http://xx/vpn/
  }

  default {
   pass xerxes !wlan lan
   redirect 302:http://xx:vpn/
  }
}


lan
Code:
10.0.0.0/255.255.255.0
10.10.0.0/255.255.255.0

wlan
Code:
20.0.0.0/255.255.0.0

Leider leitet SquidGuard noch alles fröhlich aus dem Netz 2 ans Netz weiter; eine Anfrage an, zb. web.de wird fröhlich nachgekommen. Dies macht eindeutig squid; direkte Anfrage ist ausgeschlossen.

Wer weiss Rat?
Vielen lieben Dank! :)

-Christian!
 
Der Server (FreeBSD) ...
... erlaubt alles von Netz 1 nach egal.
... erlaubt nichts vom Netz 2 nach egal, ausser VPN zum Server und Port 80 zum Server.
... erlaubt alles von Netz 3 nach egal.
Vom Anfang bis hier hin, habe ich noch alles verstanden was du willst...

"Wenn eine Anfrage aus Netz 2 kommt, dann redirect nach xx/vpn. Erlaube alles andere aus anderen Netzen."
Jetzt bin ich ausgestiegen. Was heißt "xx/vpn"? Ok, ich baue meine Frage anders auf:

Du willst squid (über squidguard) sagen: "Netz 3 darf surfen", "Netz 1 darf surfen", "Netz 2 darf nur dann surfen, wenn eine VPN besteht".

Nach meinem Verständnis brauchst du dafür noch nicht squidguard (wobei ich den ganz gerne einsetze). Damit will ich sagen, das kannst du normal noch über die squid.conf regeln.

So, nun zu meinen Fragen:

Warum nimmst du für die VPN nicht einen anderen Netzwerkbereich und stellst auf dem Client als default route dieses andere Netzwerk ein? Squid kann dann anhand von den Netzwerk"bereichen" unterscheiden ob jemand mit oder ohne VPN kommt und ins Internet darf.

Sofern du das so machst bzw. gemeint hast, sag bitte nochmal Bescheid.. :)
 
Vom Anfang bis hier hin, habe ich noch alles verstanden was du willst...

Jetzt bin ich ausgestiegen. Was heißt "xx/vpn"? Ok, ich baue meine Frage anders auf:

Du willst squid (über squidguard) sagen: "Netz 3 darf surfen", "Netz 1 darf surfen", "Netz 2 darf nur dann surfen, wenn eine VPN besteht".

Nach meinem Verständnis brauchst du dafür noch nicht squidguard (wobei ich den ganz gerne einsetze). Damit will ich sagen, das kannst du normal noch über die squid.conf regeln.

So, nun zu meinen Fragen:

Warum nimmst du für die VPN nicht einen anderen Netzwerkbereich und stellst auf dem Client als default route dieses andere Netzwerk ein? Squid kann dann anhand von den Netzwerk"bereichen" unterscheiden ob jemand mit oder ohne VPN kommt und ins Internet darf.

Sofern du das so machst bzw. gemeint hast, sag bitte nochmal Bescheid.. :)

Muh!

War etwas bräsig zum Schluss von mir. Also "XX" sei der Name des Servers, und "/vpn" ein Verzeichnis, in dem eine html Datei ist, die freundlich (aber bestimmt) darauf hinweist, das man sich mit vpn anmelden muss. Es wird also, bzw soll, jede nicht-vpn Verbindung aus Netz 2 zu dieser vpn-Seite umgelenkt werden.

Sobald eine VPN Verbindung besteht, ist der default gateway über das Netz 3 und alles ist gut :) Es geht wirklich nur darum, alle Anfragen aus einem Netz per SquidGuard auf eine Seite umzuleiten (redirect).

Ich mache eigentlich genau das, was Du gesagt hast:

Lan: 10.0.0.x
Vpn: 10.10.0.x
AP: 20.0.0.0

Ich vermute ich hatte das Problem einfach zu kompliziert dargestellt :)

Danke auf jeden Fall für Deine erste Antwort!

-Christian.
 
Ok,

was mir auffällt (was aber nicht falsch sein muss): Meine squidguard ist so aufgebaut, dass die "src" immer als "acl" existieren. In der Sektion "acl" ist bei "pass" bei mir immer ein oben definiertes "dest" eingetragen. Du machst das umgekehrt. Ob das so rum funktioniert weiß ich nicht. IIRC muss der Name einer acl oben in der src definiert sein. "wireless" gibts bei dir aber nur als "acl-Name"...

Kurzum: Bau mal deine squidguard.conf um:

Code:
src wireless {
ip 192.168.0.1 # (ist nur ein Beispiel, bitte entsprechend ändern)
}

src lan {
ip 192.168.1.1 #(auch nur ein Bespiel)
}

dest xerxes {
domainlist xerxes.domain # (die Datei liegt hoffentlich im richtigen Verzeichnis
}

acl {
wlan {
pass none
}
lan {
pass xerxes all
}

default {
pass none
redirect http://IP-vom-squid/mach-vpn-auf.html
}
}
Ich hoffe man kann verstehen was ich meine.. ;)
 
Zurück
Oben