Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Probleme mit pfSense und squid(guard)

    Scheduled Pinned Locked Moved Deutsch
    8 Posts 2 Posters 8.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      karlimero
      last edited by

      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]
      
      1 Reply Last reply Reply Quote 0
      • K
        karlimero
        last edited by

        Da ich nach wie vor mit dem Problem kämpfe möchte ich meine Frage noch einmal pushen!

        Bitte um Hilfe!

        mfg
        Karli

        1 Reply Last reply Reply Quote 0
        • L
          Livinlight
          last edited by

          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

          1 Reply Last reply Reply Quote 0
          • K
            karlimero
            last edited by

            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

            1 Reply Last reply Reply Quote 0
            • L
              Livinlight
              last edited by

              Ä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

              1 Reply Last reply Reply Quote 0
              • K
                karlimero
                last edited by

                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=401

                
                Lautet 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]
                
                1 Reply Last reply Reply Quote 0
                • L
                  Livinlight
                  last edited by

                  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

                  1 Reply Last reply Reply Quote 0
                  • K
                    karlimero
                    last edited by

                    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

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post
                    Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.