Probleme mit pfSense und squid(guard)
-
Guten Tag Zusammen,
ich habe ja jz im Forum schön öfters Probleme mit PfSense + Squid + SquidGuard gelesen bzw. auch Lösungen gefunden, jedoch trifft beides
nicht auf meine Problematik zu.Überblick meiner Konstilation:
pfSense 2.0.1 release in einer VM (VMWare) mit 2 Netzwerkkarten.
Die eine Netzwerkkarte hängt im Produktiven Lan Netzwerk (ist für die pfSense also das WAN Interface) und die 2te karte ist nur für das "Gast-Lan" zuständig (LAN interface für pfSense)
Der Apache Server dient als php server für die sgerror php.Meine Schematische Darstellung:
Zum Problem:
Ich habe pfSense mit Captive Portal, squid und squidguard eingerichtet. Squid läuft transparent auf dem LAN interface, Blacklist ist von shallalist.de.Ich melde mich mit eine "GastPC" im Lan oder Wlan an und werde auf das CaptiveProtal umgeleitet wo ich erst nach eingabe des Voucher Codes Surfen kann.
–> Funktioniert.Der Client darf (mit hilfe von squidguard und shallalist) laut Blacklist "porn" keine dieser Seiten aufrufen. Auch SafeSearch ist aktiv.
Als Redirect mode ist eingestellt "int error page"
---> Ruft der Client eine "porn" Seite auf oder Verucht den Begriff porn zu Suchen wird dieses vom Proxy abgelehnt bzw. ist SafeSearch im zb. Google aktiv.
Jedoch erhallte ich eine meldung das "https://IPMEINERPFSENSE:ADMINPORT/sgerror.php&url= " kann nicht zugegriffen werden...
Ist ja Klar, ersten darf der Client das nicht aufgrund meiner Firewallregel und zweitens Steht es ja in der Config das dies nicht möglich ist. Also kommt hier mein Apache Server ins Spiel:
Server installiert, testaufrufe ok, sgerror.php auf den apache server übernommen, testaufruf --> Zugrif OK.Also die ACL umgestellt auf
Redirect mode ext url redirect (enter URL) Redirect info http://192.168.254.250/sgerror.php?url=401 Unauthorized access to URL [u] for client [n] Abgespeichert und SquidGuard neugestartet und siehe da: Es greifen die Filter Regeln nicht mehr und auf das SafeSearch ist deaktiviert!?!? Ich binn Jetzt schon ein weinig am Verzweifeln weil das Ganze mit einer sauberen "Fehlermeldung" nicht funktionieren will. Kann mir eines Sagen wo das Problem ist? Hier noch die squid.conf [code]# Do not edit manually ! http_port 192.168.254.254:8080 http_port 127.0.0.1:8080 transparent icp_port 0 pid_filename /var/run/squid.pid cache_effective_user proxy cache_effective_group proxy error_directory /usr/local/etc/squid/errors/German icon_directory /usr/local/etc/squid/icons visible_hostname 192.168.254.254 cache_mgr ADMINEMAIL access_log /var/squid/logs/access.log cache_log /var/squid/logs/cache.log cache_store_log none logfile_rotate 0 shutdown_lifetime 3 seconds # Allow local network(s) on interface(s) acl localnet src 192.168.254.0/255.255.255.0 uri_whitespace strip cache_mem 8 MB maximum_object_size_in_memory 32 KB memory_replacement_policy heap GDSF cache_replacement_policy heap LFUDA cache_dir ufs /var/squid/cache 100 16 256 minimum_object_size 0 KB maximum_object_size 10 KB offline_mode off # No redirector configured # Setup some default acls acl all src 0.0.0.0/0.0.0.0 acl localhost src 127.0.0.1/255.255.255.255 acl safeports port 21 70 80 210 280 443 488 563 591 631 777 901 54443 3128 1025-65535 acl sslports port 443 563 54443 acl manager proto cache_object acl purge method PURGE acl connect method CONNECT acl dynamic urlpath_regex cgi-bin ? acl allowed_subnets src 192.168.254.0/24 cache deny dynamic http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !safeports http_access deny CONNECT !sslports # Always allow localhost connections http_access allow localhost request_body_max_size 0 KB reply_body_max_size 0 deny all delay_pools 1 delay_class 1 2 delay_parameters 1 -1/-1 -1/-1 delay_initial_bucket_level 100 delay_access 1 allow all # Custom options redirect_program /usr/local/bin/squidGuard -c /usr/local/etc/squidGuard/squidGuard.conf redirector_bypass on redirect_children 3 # Setup allowed acls # Allow local network(s) on interface(s) http_access allow allowed_subnets http_access allow localnet # Default block all to be sure http_access deny all[/code] Dann noch die squidguard.conf (Hab zum Verkürzen hier nur meine aktiven Blacklist gepostet!: [code]# ============================================================ # SquidGuard configuration file # This file generated automaticly with SquidGuard configurator # (C)2006 Serg Dvoriancev # email: dv_serg@mail.ru # ============================================================ logdir /var/squidGuard/log dbhome /var/db/squidGuard # Ever time AllDay { weekly * 00:00-23:59 } # dest blk_BL_porn { domainlist blk_BL_porn/domains urllist blk_BL_porn/urls log block.log } # facebookblock dest facebook { domainlist facebook/domains redirect http://192.168.254.250/sgerror.php?url=403%20not%20allowed&a=%a&n=%n&i=%i&s=%s&t=%t&u=%u&a=%a&n=%n&i=%i&s=%s&t=%t&u=%u log block.log } # Captive Portal dest Captive_Portal { domainlist Captive_Portal/domains log block.log } # rew default_1 { s@192.168.0.254@www.google.com@r } # rew safesearch { s@(google..*/search?.*q=.*)@&safe=active@i s@(google..*/images.*q=.*)@&safe=active@i s@(google..*/groups.*q=.*)@&safe=active@i s@(google..*/news.*q=.*)@&safe=active@i s@(yandex..*/yandsearch?.*text=.*)@&fyandex=1@i s@(search.yahoo..*/search.*p=.*)@&vm=r&v=1@i s@(search.live..*/.*q=.*)@&adlt=strict@i s@(search.msn..*/.*q=.*)@&adlt=strict@i s@(.bing..*/.*q=.*)@&adlt=strict@i log block.log } # acl { # default { pass !in-addr !facebook !blk_BL_porn Captive_Portal all redirect http://192.168.254.250/sgerror.php?url=401 Unauthorized access to URL [u] for client [n] rewrite safesearch log block.log } } Und noch 2 Screenshots der pfSense einstellungen: ACL: [img]http://i45.tinypic.com/2qns51g.jpg[/img] Firewall rules: [img]http://i50.tinypic.com/vfxr0g.jpg[/img] Ich hoffe das Ihr mir hier weiterhelfen könnt! lg Karli [/u][/code][/u]
-
Da ich nach wie vor mit dem Problem kämpfe möchte ich meine Frage noch einmal pushen!
Bitte um Hilfe!
mfg
Karli -
Nabend,
was mir so aufgefallen ist, das du die Errorpage mit IP definierst obwohl du konfiguriert hast das IP in URL berboten ist.
Aber noch zur Verständnisfrage, was verbirgt sich hinter 192.168.0.254, ist das ein WLAN Client?
Was ist hinter der Source LANnet in der Firewall konfigiriert.mfg.
Livinlight -
OK… danke für den Hinweis! Da hat sich ein Fehler eingeschlichen! Es gibt keine 192.168.0.254! Das soll heißen 192.168.254.254!
Ist in meiner laufenden Config bereits geändert!!Zu Punkt IP in URL... Dass muss ich mal ausprobieren! Danke für den Ansatz!
mfg
-
Ähm,…bist du dir sicher das dein Regelwerk auch richtig funktioniert? Du hast Port 80 auf das Gateway, also Pfsense, freigegeben. Solltest du nicht eher den Port 3128 für deinen transparenten Proxy freigeben und Port 80 sperren?
"Jedoch erhalte ich eine meldung das "https://IPMEINERPFSENSE:ADMINPORT/sgerror.php&url= " kann nicht zugegriffen werden...
Ist ja Klar, ersten darf der Client das nicht aufgrund meiner Firewallregel und zweitens Steht es ja in der Config das dies nicht möglich ist."Bekommst du wirklich eine Meldung mit https:// am Anfang? Welcher Port ist dein Adminport? Ist dein Webzugriff (administrativ) zur Pfsense auf https:// eingestellt?
"Als Redirect mode ist eingestellt "int error page""
if you use 'transparent proxy', then 'int' redirect mode will not accessible.
Aber dein Screenshot zeigt das ja eigentlich richtig.mfg.
Livinlight -
So…
Nachdem ich ein wenig mit meiner ACL im SquidGuard herumgespielt hab ist mir irgendwie das ganze Image "geplatzt".
Und da ich leider meine Konfig nicht gesichert hatte musste ich von Grund auf meine pfSense neu Installieren.Habe in diesem Zuge eine paralell Installation mit deinen Ideen auch gleich eingerichtet, Livinlight.
Aber beide Installationen wiesen den oben genannten Fehler auf.
Nun bin ich daraufgestossen, das mein Eintrag in der "Redirect Info" (unter Menüpunkte "Services - Proxy Filter - Common ACL") falsch war!
Dieser darf nur```
http://192.168.254.250/sgerror.php?url=401Lautet er so wie im Bsp. Beschrieben``` http://192.168.254.250/sgerror.php?url=401 Unauthorized access to URL [u] for client [n] sprich werden dem Link noch andere Informationen übergeben dan reagiert der squidGuard nicht mehr! Jetzt muss ich nur noch meine sgerror.php verschönern und das ganze Passt! Danke Livinlight für deine Ideen und Lösungsansätze! BTW. Das "Hackerl" bei "Not to Allow IP addresses in URL" greift nur dann Wenn der User eine Seite Direkt im Browser aufrufen will, jedoch nicht wenn die pfSense auf die Fehlerseite umleitet! Von mir aus kann der Thread geclosed werden! mfg Karli[/u]
-
Sehr schön das du eine Lösung gefunden hast.
Ich würde jetzt nur nochmal wissen wollen, ob du noch die gleichen Firewallregeln benutzt?
Meiner Ansicht nach kommunizieren deine Clients nämlich nicht über Regel 4 sondern über die letzte Regel mit Webservern.mfg.
Livinlight -
hi,
die regel nummer 4 habe ich laut deinem vorschlag abgeändert!
Sprich i habe den port für meinen transparenten proxy freigegeben, und port 80 auf meine pfsense gesperrt!mfg