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

    PfBlockerNG

    Scheduled Pinned Locked Moved pfBlockerNG
    1.2k Posts 210 Posters 1.8m 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.
    • G
      Gradius
      last edited by

      @BBcan177:

      @Gradius:

      I'm running the last 2.3 and getting a lot those errors:

      Hi, Those errors don't point to the issue unfortunately… Could you take a look at the file  /tmp/PHP_errors.log and see if it shows any other clues?

      It looks like the pfBlockerNG Cron task is being called, but there is no specific error indicated? Also take a look at the pfblockerng.log file around the timestamps of these errors, and see if they report any additional clues…

      -rw-r--r--   1 root  wheel       0 Apr 14 12:26 PHP_errors.log
      
      ===[  DNSBL Process  ]================================================
      
      Warning: Invalid argument supplied for foreach() in /usr/local/pkg/pfblockerng/pfblockerng.inc on line 3057
      
      Call Stack:
          0.0019     211244   1\. {main}() /usr/local/www/pfblockerng/pfblockerng.php:0
          0.0902    6447240   2\. pfblockerng_sync_cron() /usr/local/www/pfblockerng/pfblockerng.php:94
          0.0904    6450620   3\. sync_package_pfblockerng() /usr/local/www/pfblockerng/pfblockerng.php:387
      
      Clearing all DNSBL Feeds...  completed
      Validating database... completed
      Restarting Unbound ... completed
      DNSBL update [ 0 ]... completed
      ------------------------------------------
      
      1 Reply Last reply Reply Quote 0
      • G
        Gradius
        last edited by

        Part of coding apoint the error:

        		// Save alias statistics to file (Remove any feeds that are not referenced)
        		$handle = @fopen("{$pfb['dnsbl_info']}", 'w');
        		fwrite($handle, "# Keeping this file open in a file editor will interrupt DNSBL!\n");
        

        foreach ($dnsbl_info as $alias) {

        		if (in_array($alias[0], $alias_dnsbl_all)) {
        				fputcsv($handle, $alias);
        			}
        		}
        		@fclose($handle);
        
        1 Reply Last reply Reply Quote 0
        • BBcan177B
          BBcan177 Moderator
          last edited by

          @Gradius:

          Warning: Invalid argument supplied for foreach() in /usr/local/pkg/pfblockerng/pfblockerng.inc on line 3057

          Clearing all DNSBL Feeds…  completed
          Validating database... completed
          Restarting Unbound ... completed
          DNSBL update [ 0 ]… completed

          Does DNSBL have any defined Feeds? Its showing as "0"?  If you don't use DNSBL, then disable it, or add some Feeds…

          However, to fix this issue, will need to add two lines of code as indicated in Red below. I didn't adjust the line spacing, to make it easier for you to add in these two lines... Will get this added to the next Pull Request...

          // Save alias statistics to file (Remove any feeds that are not referenced)
                          $handle = @fopen("{$pfb['dnsbl_info']}", 'w');
                          fwrite($handle, "# Keeping this file open in a file editor will interrupt DNSBL!\n");
                          if (!empty($dnsbl_info)) {
                          foreach ($dnsbl_info as $alias) {
                                  if (in_array($alias[0], $alias_dnsbl_all)) {
                                          fputcsv($handle, $alias);
                                  }
                          }
                          }
                          @fclose($handle);

          "Experience is something you don't get until just after you need it."

          Website: http://pfBlockerNG.com
          Twitter: @BBcan177  #pfBlockerNG
          Reddit: https://www.reddit.com/r/pfBlockerNG/new/

          1 Reply Last reply Reply Quote 0
          • G
            Gradius
            last edited by

            Fixed.

            Thanks

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

              What up, @BBcan177!

              Long-time lurker, first-time poster. I think I've discovered a bug in your otherwise fantastic piece of software. I'm on the latest versions of everything and have DNSBL up and running smoothly. I have the North America list set to Alias Native for the United States only, and I have the pfb_NAmerica alias used in a WAN rule to allow access to an OpenVPN server running on pfSense from the public internet, but only from United States source IP's. I also have the option selected in pfBlockerNG to kill states during cron/force update. When I run a force update with the setup outlined above, after the block lists are updated, the log shows pfBlockerNG removing the states of what looks like all active connections to United States IP's with the culprit being [ pfB_NAmerica_v4-Inbound ]. This happens whether or not logging to the firewall log is enabled for the rule and whether or not the rule is set to disabled. Changing the list action to Alias Permit or Alias Match instead of Alias Native also doesn't change this behavior; states still get killed. Removing the alias from the rule or completely deleting the rule does end the update massacre.

              If a list is set to Alias Native, shouldn't pfBlockerNG only kill the states for that list if the alias is used in an active (not disabled) blocking rule? Also, I wouldn't expect that a list set to Alias Permit or Alias Match would ever have its states killed. Am I missing something?

              1 Reply Last reply Reply Quote 0
              • T
                trumee
                last edited by

                Hello,

                For Outbound Interface I have 'LAN' selected and 'Deny Both' in the IPv4 lists. Is it possible exclude a source ip address from the LAN interface? I dont want to use 'Deny Outbound'  for a particular ip address.

                Thanks

                1 Reply Last reply Reply Quote 0
                • BBcan177B
                  BBcan177 Moderator
                  last edited by

                  @trumee:

                  Hello,

                  For Outbound Interface I have 'LAN' selected and 'Deny Both' in the IPv4 lists. Is it possible exclude a source ip address from the LAN interface? I dont want to use 'Deny Outbound'  for a particular ip address.

                  Thanks

                  Try the Advanced Outbound Rule settings:

                  Create a pfSense Alias "ExcludedIP" and add any (lan) SRC IPs that you want to exclude… Check the "Invert" option. Also change the "Custom Protocol" setting to "TCP/UDP":


                    ( The created Firewall Rule is shown in the Red box )

                  NOTE - There is a bug with the existing package for "Outbound Protocol" settings. I have a fix for for this in the pfSense 2.3 version of pfBlockerNG in PR #107, that is waiting to be merged…

                  "Experience is something you don't get until just after you need it."

                  Website: http://pfBlockerNG.com
                  Twitter: @BBcan177  #pfBlockerNG
                  Reddit: https://www.reddit.com/r/pfBlockerNG/new/

                  1 Reply Last reply Reply Quote 0
                  • T
                    trumee
                    last edited by

                    Thanks for the screenshot. But instead of source, i have a destination?

                    1 Reply Last reply Reply Quote 0
                    • BBcan177B
                      BBcan177 Moderator
                      last edited by

                      Yes that is also part of the fix in PR #107… Sometimes copy/paste is a bad thing... Its really "Custom Source"... Wait for the next version and it should work for you :)

                      "Experience is something you don't get until just after you need it."

                      Website: http://pfBlockerNG.com
                      Twitter: @BBcan177  #pfBlockerNG
                      Reddit: https://www.reddit.com/r/pfBlockerNG/new/

                      1 Reply Last reply Reply Quote 0
                      • S
                        samoth
                        last edited by

                        Hey everyone,

                        My apologies, but I'm just not getting how to make the ipv4 lists work.

                        I have an i-blocklist subscription and I enter in the list and can see when I update that it's finding updates, but I don't see any alias created or any rules made outside of the country blocks.  Should I see any firewall alias's or rules after entering an ipv4 list/s?

                        I've done my fair share of looking through this thread and I still can't figure it out.  Any help would be greatly appreciated, even if its "no you're doing it wrong".

                        Thanks,
                        Tom

                        pfblocker_ipv4_list_screen.png
                        pfblocker_ipv4_list_screen.png_thumb
                        pfblocker_ipv4_list_screen2.png
                        pfblocker_ipv4_list_screen2.png_thumb

                        1 Reply Last reply Reply Quote 0
                        • BBcan177B
                          BBcan177 Moderator
                          last edited by

                          Hi Tom,

                          What does the text say just below the "Save" button :)

                          Goto the Update Tab and click "Force Update".

                          Also instead of blocking the world, best to permit the ones that you want. I've written about that in this thread and in Reddit.

                          "Experience is something you don't get until just after you need it."

                          Website: http://pfBlockerNG.com
                          Twitter: @BBcan177  #pfBlockerNG
                          Reddit: https://www.reddit.com/r/pfBlockerNG/new/

                          1 Reply Last reply Reply Quote 0
                          • S
                            samoth
                            last edited by

                            I do the force update, but it doesn't seem to have an effect.  Every time my tab (Chrome) will show the spinning icon, and eventually I will get an nginx timeout.

                            1 Reply Last reply Reply Quote 0
                            • BBcan177B
                              BBcan177 Moderator
                              last edited by

                              What does the pfblockerng.log show? Goto the Log Browser tab to view it for clues. Never seen this issue before.

                              What pfSense version? What kind of hardware? If your blocking the world, you might be blocking DNS servers (if using the resolver) and IBlock urls might be in other Countries.

                              "Experience is something you don't get until just after you need it."

                              Website: http://pfBlockerNG.com
                              Twitter: @BBcan177  #pfBlockerNG
                              Reddit: https://www.reddit.com/r/pfBlockerNG/new/

                              1 Reply Last reply Reply Quote 0
                              • S
                                samoth
                                last edited by

                                Only log that will show is the pfblocker log, all other logs show failure to read.

                                I'm on 2.3 release and the hardware is a Dell Optiplex 960
                                https://www.dell.com/downloads/global/products/optix/en/desktop-optiplex-960-technical-guidebook-en.pdf.

                                pfblocker_ipv4_list_screen3.png
                                pfblocker_ipv4_list_screen3.png_thumb
                                pfblocker_ipv4_list_screen4.png
                                pfblocker_ipv4_list_screen4.png_thumb

                                1 Reply Last reply Reply Quote 0
                                • BBcan177B
                                  BBcan177 Moderator
                                  last edited by

                                  Are there any more lines in the pfblockerng.log file? Can you scroll down to see the end of the log? Those entries are ~24hrs ago. Did you select the Interfaces in the General Tab?

                                  "Experience is something you don't get until just after you need it."

                                  Website: http://pfBlockerNG.com
                                  Twitter: @BBcan177  #pfBlockerNG
                                  Reddit: https://www.reddit.com/r/pfBlockerNG/new/

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    samoth
                                    last edited by

                                    Thats all there is in the log.  Entries are recent, at least in my timezone :)  Interfaces are configured per the screenshot below.

                                    pfblocker_ipv4_list_screen5.png
                                    pfblocker_ipv4_list_screen5.png_thumb

                                    1 Reply Last reply Reply Quote 0
                                    • BBcan177B
                                      BBcan177 Moderator
                                      last edited by

                                      You clicked "Floating Rules". So any firewall rules will not show in the wan/lan tabs. Goto the floating tab to see the rules. If Cron is running. You will not be able to Force Update till cron completes. You should be able to hit "view" in the update Tab while Cron is running.

                                      "Experience is something you don't get until just after you need it."

                                      Website: http://pfBlockerNG.com
                                      Twitter: @BBcan177  #pfBlockerNG
                                      Reddit: https://www.reddit.com/r/pfBlockerNG/new/

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        samoth
                                        last edited by

                                        Here is what I have on the floating rules.  Should there be additional rules for ipv4 lists?

                                        pfblocker_ipv4_list_screen6.png
                                        pfblocker_ipv4_list_screen6.png_thumb

                                        1 Reply Last reply Reply Quote 0
                                        • BBcan177B
                                          BBcan177 Moderator
                                          last edited by

                                          @samoth:

                                          Here is what I have on the floating rules.  Should there be additional rules for ipv4 lists?

                                          Hi samoth, I sent you a PM…

                                          "Experience is something you don't get until just after you need it."

                                          Website: http://pfBlockerNG.com
                                          Twitter: @BBcan177  #pfBlockerNG
                                          Reddit: https://www.reddit.com/r/pfBlockerNG/new/

                                          1 Reply Last reply Reply Quote 0
                                          • N
                                            Nachtfalke
                                            last edited by

                                            Hi,

                                            I think I found the reason why DNSBL wasn't working for me when using together with squid and .PAC file.

                                            DNSBL creates to NAT rules to redirect ports 80 and 443 to the internal server on IP 127.0.0.1. But when using squid I am using ports 3128 and 3129.
                                            So I created a second NAT rule  - made a copy of the existing DNSBL rules - but with the squid ports.
                                            Further I let pfsense create an "associated firewall rule" to make sure that access is allowed and further I wanted to use it to enable logging on this rule.

                                            So after these additional configuration options it is working for me. I can see the 1x1 pixel gif when accessing http or https and I get the access logged in the pfBlockerng Alerts tab.

                                            So in a short summary I would say these additional steps have to be done when you want to use DNSBL togther with squid (and PAC file).

                                            • Define in the proxy PAC file to NOT use (go DIRECT and no through the proxy) the proxy for the DNSBL VIP. Probably best is to NOT use proxy for any private subnets like 192.168./16, 172.16./12, 10./8

                                            • Add an additional NAT rule for your proxy ports 3128 and 3129 - or whatever ports you used in your squid config

                                            • Create an "associated firewall rule" based on the NAT rule(s) you created and make sure it is placed in the correct order in your firewall rules and is not hidden by any other rule.

                                            @BBcan177
                                            Any idea to put an option into your package which allows the user to enable "Squid Proxy Support". Then the user should put in their squid ports and then DNSBL will automatically create an additional NAT rule for these ports and will create an additional Floating/Firewall rule. Then perhaps giving a little hint that when using PAC file the user needs to configure it PAC file to bypass proxy and go direct.
                                            Don't know if you need this when using tranparent proxy.

                                            This option should be disabled by default so it will not cause any problems for the majority of users who do not use squid proxy and DNSBL together.

                                            –--- EDIT -----
                                            It looks like the additional NAT rules are NOT needed.
                                            BUT the additional Firewall Rule IS needed.

                                            DNSBL_squid_NAT_fw_rule.png_thumb
                                            DNSBL_squid_NAT_fw_rule.png
                                            DNSBL_squid_NAT.png_thumb
                                            DNSBL_squid_NAT.png
                                            DNSBL_PAC_example.png_thumb
                                            DNSBL_PAC_example.png

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