Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login
    Introducing Netgate Nexus: Multi-Instance Management at Your Fingertips.

    pfsense-rule-order: script to keep firewall rules in the right order automatically

    Scheduled Pinned Locked Moved Firewalling
    19 Posts 4 Posters 407 Views 4 Watching
    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.
    • GertjanG Offline
      Gertjan @ngf
      last edited by

      @ngf said in pfsense-rule-order: script to keep firewall rules in the right order automatically:

      pfSense always adds new rules to the bottom of the list. Every time you add one and forget to drag it to the right position, your security policy silently breaks.

      Good policy, if applied, can't be broken (it wouldn't be good to start with).
      Let me explain with my 'policy' WAN rules :

      4ee22dfd-02dc-4932-82f8-672f7f61f6b3-image.png

      You see the last two rules ? These are the final 'block all' rules, separated for IPv6 and IPv4.
      And yes, these two rules are the same as the 'hidden' default behavior : block all.

      So, if you wanted to add a new WAN pass rule, it would be inserted at the bottom, being completely inoffensive. As soon as you see it, you have to drag it to to correct place, and save. Forgetting to do so won't get you fired. Policies won't get broken 😊

      @ngf said in pfsense-rule-order: script to keep firewall rules in the right order automatically:

      Tested on pfSense CE 2.7.2.

      Now you are breaking one of the most important security rules. 2.7.2 was good, and now 'ancient'.

      No "help me" PM's please. Use the forum, the community will thank you.

      johnpozJ 1 Reply Last reply Reply Quote 1
      • johnpozJ Offline
        johnpoz LAYER 8 Global Moderator @Gertjan
        last edited by

        @Gertjan that is actually a good policy.. And a very valid reason to have extra block rule there at the end vs just the hidden last rule. Nice..

        An intelligent man is sometimes forced to be drunk to spend time with his fools
        If you get confused: Listen to the Music Play
        Please don't Chat/PM me for help, unless mod related
        SG-4860 26.03.1 | Lab VMs 2.8.1, 26.03.1

        tinfoilmattT 1 Reply Last reply Reply Quote 0
        • tinfoilmattT Offline
          tinfoilmatt LAYER 8 @johnpoz
          last edited by

          Ditto for any LAN interfaces on which outbound filtering is performed. Plus it adds an easy logging 'toggle' for troubleshooting.

          GertjanG 1 Reply Last reply Reply Quote 0
          • GertjanG Offline
            Gertjan @tinfoilmatt
            last edited by

            @tinfoilmatt said in pfsense-rule-order: script to keep firewall rules in the right order automatically:

            Ditto for any LAN interfaces ..

            Initially, I listed that one as well. But I spotted something strange, so I withdrew it.
            So here it is :

            c67f922f-1fd3-4ce6-871d-0481dac0dbae-image.png

            After years of rule building ( I was in the past also a fan of "every packet needs its own rule", but then I found the cure and live was good again) I found rule number 3 and 4.
            I added a final block all rule, but this one could never match, as the perfect rules 3 and 4 exist.
            Still : rule 5 matches ones in a while 'something'. After a 'everything' there shouldn't be a 'something'.
            Right ?

            No "help me" PM's please. Use the forum, the community will thank you.

            tinfoilmattT 1 Reply Last reply Reply Quote 0
            • tinfoilmattT Offline
              tinfoilmatt LAYER 8 @Gertjan
              last edited by

              Whatever it's catching, I agree, is worth filtering.

              1 Reply Last reply Reply Quote 0
              • ngfN Offline
                ngf
                last edited by

                The actual issue I ran into was pfBlockerNG's cron job moving my "Block IoT" rule below some Allow rules every hour.
                it was already in the right place, pfBlockerNG just kept pushing it down.
                That's what the script is for.

                Regarding my version, yes, i know. i'm in the process of replacing the pfsense box.

                tinfoilmattT 1 Reply Last reply Reply Quote 0
                • tinfoilmattT Offline
                  tinfoilmatt LAYER 8 @ngf
                  last edited by

                  There are package settings which address auto-added rule ordering. Do those not cover your situation?

                  ngfN 1 Reply Last reply Reply Quote 0
                  • ngfN Offline
                    ngf @tinfoilmatt
                    last edited by

                    @tinfoilmatt said in pfsense-rule-order: script to keep firewall rules in the right order automatically:

                    There are package settings which address auto-added rule ordering. Do those not cover your situation?

                    I looked at the pfBlockerNG rule order settings but they control where pfBlockerNG places its own auto rules relative to manual ones, not the order of manual rules themselves.
                    my issue was specifically manual rules getting reordered relative to each other, so those settings didn't help in my case.

                    tinfoilmattT 1 Reply Last reply Reply Quote 0
                    • tinfoilmattT Offline
                      tinfoilmatt LAYER 8 @ngf
                      last edited by tinfoilmatt

                      my issue was specifically manual rules getting reordered relative to each other

                      This wouldn't be caused by pfBlockerNG's cron job. The order of non-pfBlockerNG auto-added rules (i.e., 'manual rules') could only be changed manually.

                      What do you have for that package setting—"Firewall > pfBlockerNG > IP > IP Interface/Rules Configuration > Firewall 'Auto' Rule Order"?

                      ngfN 1 Reply Last reply Reply Quote 0
                      • ngfN Offline
                        ngf @tinfoilmatt
                        last edited by

                        @tinfoilmatt said in pfsense-rule-order: script to keep firewall rules in the right order automatically:

                        Firewall 'Auto' Rule Order

                        aa4b408f-ea7b-4cc8-a7c8-c0cffee10854-image.png

                        tinfoilmattT 1 Reply Last reply Reply Quote 0
                        • tinfoilmattT Offline
                          tinfoilmatt LAYER 8 @ngf
                          last edited by

                          Interesting. So those last two settings in the drop-down can and do affect 'manual rule' ordering.

                          So then why not use the default setting which leaves "All other rules" unaffected by pfBlockerNG?

                          ngfN 1 Reply Last reply Reply Quote 0
                          • ngfN Offline
                            ngf @tinfoilmatt
                            last edited by

                            @tinfoilmatt I was not aware that this setting also affects manual rule ordering.
                            i will change back to the default and disable the script temporarily to see if that alone solves the problem.
                            thank you very much.

                            tinfoilmattT 1 Reply Last reply Reply Quote 0
                            • tinfoilmattT Offline
                              tinfoilmatt LAYER 8 @ngf
                              last edited by tinfoilmatt

                              Additionally (and with the default setting there)—if for whatever reason you need a pass rule above pfBlockerNG's auto-added block rules, then the way to do that would be by way of the "Permit" feed group action options (i.e., actions "Permit Inbound" for WAN interface/s, "Permit Outbound" for LAN interface/s, or "Permit Both"). This would be the cleanest and most automated way to "whitelist" any pfBlockerNG false positives.

                              ngfN 1 Reply Last reply Reply Quote 0
                              • ngfN Offline
                                ngf @tinfoilmatt
                                last edited by

                                @tinfoilmatt said in pfsense-rule-order: script to keep firewall rules in the right order automatically:

                                Additionally (and with the default setting there)—if for whatever reason you need a pass rule above pfBlockerNG's auto-added block rules, then the way to do that would be by way of the "Permit" feed group action options (i.e., actions "Permit Inbound" for WAN interface/s, "Permit Outbound" for LAN interface/s, or "Permit Both"). This would be the cleanest and most automated way to "whitelist" any pfBlockerNG false positives.

                                Thanks, I'll check with the default setting.
                                If that solves the reordering problem, the script is still useful as a general safety net for rule ordering, but the main reason here was clearly misconfiguration on my part.

                                tinfoilmattT 1 Reply Last reply Reply Quote 0
                                • tinfoilmattT Offline
                                  tinfoilmatt LAYER 8 @ngf
                                  last edited by

                                  At one point, I would've spent a lot of time parsing that blue infoblock in my own mind. I'm certain there are good use cases for the non-default options. But it either never occured to me, or I had forgotten that those last two do affect non-pfBlockerNG rule ordering. Thanks for the refresher.

                                  By the way, I like what you're doing with your blocklist-manager tool.

                                  ngfN 1 Reply Last reply Reply Quote 0
                                  • ngfN Offline
                                    ngf @tinfoilmatt
                                    last edited by

                                    @tinfoilmatt same here, i had no idea that setting affected manual rules until now, good to know.

                                    🙏 thanks for the kind words on blocklist-manager, glad it's useful!

                                    GertjanG 1 Reply Last reply Reply Quote 0
                                    • GertjanG Offline
                                      Gertjan @ngf
                                      last edited by

                                      @ngf

                                      A newer pfSense will also give you access to the latest version pfBlockerng.
                                      Your issue might auto solve itself.

                                      No "help me" PM's please. Use the forum, the community will thank you.

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