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

    Snort won't start after upgrade to 21.02 on SG-3100

    Scheduled Pinned Locked Moved IDS/IPS
    43 Posts 12 Posters 9.9k 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.
    • S
      SteveITS Galactic Empire @rek0n
      last edited by

      @styxl said in Snort won't start after upgrade to 21.02 on SG-3100:

      is there a fix for this in the hopper

      I'm not a dev but if the issue is with PHP then it could go all the way back to Zend to find and fix it. And then it would presumably be in a p2 patch. I'm not optimistic it will be "soon."

      @rek0n I haven't done this myself but this seems like the right path:

      • get a copy of the 2.4.5 installer from Netgate (go.netgate.com)
      • install 2.4.5
      • set to Previous Stable Version in System/Update (to install 2.4.5 packages not 2.5)
      • install desired packages
      • restore configuration
      • double check Previous Stable Version is still set

      Pre-2.7.2/23.09: Only install packages for your version, or risk breaking it. Select your branch in System/Update/Update Settings.
      When upgrading, allow 10-15 minutes to restart, or more depending on packages and device speed.
      Upvote 👍 helpful posts!

      R H 2 Replies Last reply Reply Quote 0
      • R
        rek0n @SteveITS
        last edited by

        @teamits It seems that since I do not have an active subscription, so I am unable to create a ticket. I tried searching ftp repositories, and discovered that there are community releases, but these seem all to be amd64. Since I have the SG-3100 that is on arm64 Im wondering where I could obtain the SG-3100 arm64 2.4.5 image..

        M 1 Reply Last reply Reply Quote 0
        • M
          marcosm Netgate @rek0n
          last edited by

          There have been no news as of yet. To roll back, you may create an account and request the previous stable version. A support subscription is not required.

          1 Reply Last reply Reply Quote 0
          • bmeeksB
            bmeeks
            last edited by bmeeks

            You can follow the status of the bug here: https://redmine.pfsense.org/issues/11466.

            As you can see in the notes, I worked on finding the bug as far as I could go. The issue is within PHP itself, and appears limited to the 32-bit ARM processor in the SG-3100. I say this because the identically same PHP code runs without issue on 64-bit ARM hardware such as the SG-1100 and also on all Intel hardware. PHP crashing is why Snort won't start.

            1 Reply Last reply Reply Quote 1
            • styxlS
              styxl
              last edited by

              It is sad we are being forced to choose between security/stability and access. The SG-3100 is a good viable product and a lot of Small to Medium Enterprises use it. I am still surprised that Netgate is yet to patch this knowing a lot of their SG-3100 installs are using SNORT as an IPS/IDS. Personally i chose to rollback and wait until a patch is published but one of my peers decided to ditch the SG-3100 and buy an SG-5100.... unfortunately i dont have that kind of money.

              S 1 Reply Last reply Reply Quote 2
              • S
                SteveITS Galactic Empire @styxl
                last edited by

                @styxl said in Snort won't start after upgrade to 21.02 on SG-3100:

                Netgate is yet to patch this

                But that's the thing, if it's a PHP problem Netgate may have to wait for Zend to fix it? Zend tends to update once a month and the March 4 update just came out. Plus if it's a compilation bug and not a code bug I would think that makes it harder. And if a new PHP is included in a 21.2-p2 then Netgate would presumably need to test all of pfSense before release. (I don't have any inside knowledge of this, I'm just connecting dots.)

                Pre-2.7.2/23.09: Only install packages for your version, or risk breaking it. Select your branch in System/Update/Update Settings.
                When upgrading, allow 10-15 minutes to restart, or more depending on packages and device speed.
                Upvote 👍 helpful posts!

                1 Reply Last reply Reply Quote 0
                • B
                  Biggy823
                  last edited by

                  I too have run into this issue. I spent too much time trying to get this to work before coming across this post. Netgate should flag the upgrade and caution Snort users that it will break their setup. Does anyone have any idea when this will be fixed? I don't want have to pull out the SG-3100 out of my environment. I think it's a great product.

                  Thanks

                  1 Reply Last reply Reply Quote 1
                  • B
                    bartekmao
                    last edited by

                    Having the same issue, as I understood from the bug report it seems to be more of an PHP issue now. Too bad Netgate did not warn us before upgrading.

                    1 Reply Last reply Reply Quote 0
                    • jimpJ
                      jimp Rebel Alliance Developer Netgate
                      last edited by

                      For the PHP crashes, try the patch to disable PHP PCRE JIT on #11466 Note 32.

                      You can install the System Patches package and then create an entry for the patch URL https://redmine.pfsense.org/attachments/download/3707/patch-disable-pcrejit-arm.diff to apply the fix.

                      Then run console menu options 16 and 11 to restart PHP and the GUI, or reboot.

                      Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                      Need help fast? Netgate Global Support!

                      Do not Chat/PM for help!

                      S 1 Reply Last reply Reply Quote 1
                      • S
                        s0m3f00l @jimp
                        last edited by

                        @jimp I have applied the patch and will begin testing. I use Suricata, OPENVPN, and PfBlockerNG so hopefully this fixes things and we can mark it solved.

                        1 Reply Last reply Reply Quote 0
                        • R
                          rsm4
                          last edited by

                          This post is deleted!
                          1 Reply Last reply Reply Quote 0
                          • R
                            rsm4
                            last edited by

                            This sounds like it fixes the PHP issue, but what about the Snort issue? These are two separate problems on the SG-3100. PHP is crashing, but also, on my SG-3100, Snort starts and then Snort core dumps when it starts looking at traffic.

                            I applied the diff above and restarted PHP and the GUI. I no longer see the PHP errors (in the few hours since I have applied it), but I still see Snort crashing:

                            "Jun 12 10:21:42 sg3100 kernel: pid 92832 (snort), jid 0, uid 0: exited on signal 10"

                            My SG-2220 (Intel-based) of course is working fine with Snort.

                            bmeeksB 1 Reply Last reply Reply Quote 0
                            • bmeeksB
                              bmeeks @rsm4
                              last edited by bmeeks

                              @rsm4 said in Snort won't start after upgrade to 21.02 on SG-3100:

                              This sounds like it fixes the PHP issue, but what about the Snort issue? These are two separate problems on the SG-3100. PHP is crashing, but also, on my SG-3100, Snort starts and then Snort core dumps when it starts looking at traffic.

                              I applied the diff above and restarted PHP and the GUI. I no longer see the PHP errors (in the few hours since I have applied it), but I still see Snort crashing:

                              "Jun 12 10:21:42 sg3100 kernel: pid 92832 (snort), jid 0, uid 0: exited on signal 10"

                              My SG-2220 (Intel-based) of course is working fine with Snort.

                              Snort on the SG-3100 is likely never going to be 100% fixed. The Signal 10 error is due to choices made by the compiler used for 32-bit ARM processors. The compiler is choosing to use a pair of memory load/store opcodes that do not perform automatic fixup of non-aligned memory access. This happens in the Snort binary due to the way certain data structures are packed in memory and then later accessed via pointers with casting. Intel and AMD processors (along with the 64-bit ARM models) perform the auto-fixup always, and thus the memory alignment hardware bus error (Signal 10 error) is avoided with that hardware.

                              That means the flaky Snort binary code works fine on all Intel and AMD hardware, and lots of other 64-bit stuff as well. There is thus zero incentive for the Snort team to spend the time and energy required to refactor the Snort binary code so that it works in the edge case with 32-bit ARM hardware. Ergo, I don't see the Signal 10 errors on SG-3100 boxes ever getting fixed.

                              If Snort won't run for you on that hardware, either change hardware, or abandon Snort. Those are really the only two options.

                              S 1 Reply Last reply Reply Quote 0
                              • S
                                SteveITS Galactic Empire @bmeeks
                                last edited by

                                @bmeeks said in Snort won't start after upgrade to 21.02 on SG-3100:

                                or abandon Snort

                                You’ve probably answered/posted this, but does that apply to Suricata also? That’s probably the easiest pivot and I don’t think we’ve had problems with it on 3100s.

                                Pre-2.7.2/23.09: Only install packages for your version, or risk breaking it. Select your branch in System/Update/Update Settings.
                                When upgrading, allow 10-15 minutes to restart, or more depending on packages and device speed.
                                Upvote 👍 helpful posts!

                                bmeeksB 1 Reply Last reply Reply Quote 0
                                • bmeeksB
                                  bmeeks @SteveITS
                                  last edited by bmeeks

                                  @steveits said in Snort won't start after upgrade to 21.02 on SG-3100:

                                  @bmeeks said in Snort won't start after upgrade to 21.02 on SG-3100:

                                  or abandon Snort

                                  You’ve probably answered/posted this, but does that apply to Suricata also? That’s probably the easiest pivot and I don’t think we’ve had problems with it on 3100s.

                                  If Suricata starts throwing Signal 10 errors, then yes, it would be likely unfixed. The most recent PHP patch fixed (or rather worked around) another ARM 32-bit problem with the regular expression engine in PHP. That problem caused Signal 11 (segmentation fault) errors in PHP which then crashed the Suricata PHP code. Signal 10 errors are memory bus hardware errors caused by non-aligned memory access (that is, attempting to access memory locations at addresses not word-aligned).

                                  This is just me speaking and my personal opinion, but the 32-bit ARM platform should never have happened. The compiler tools for it (in FreeBSD, at least) seem ill-suited to compiling some legacy C-code, because they choose to use CPU opcodes that do not perform auto-fixup on non-aligned memory access. There are many legacy C-code programs that do just that (attempt non-aligned memory access). True, these are technically "errors" on the part of the programmer, but as I've stated before, all Intel and AMD hardware automatically fixes these non-aligned access attempts and the binary executable just rolls along (albeit, with a very slightly reduced efficiency due to the auto-fixup). So there is really no incentive for the code to be fixed as it works just fine on all other hardware.

                                  The 32-bit ARM hardware, though, will generate a hardware fault when non-aligned access is attempted with two of its opcodes. The thing that chaps me is every opcode executed by the ARMv7 chip in the SG-3100 will perform auto-fixup of non-aligned access save just two of them, and those two are the ones the compiler chooses to use for some memory operations unless you disable all optimizations. This is what causes the Signal 10 errors in Snort (and possibly Suricata as well). The errors in the C code are not easy to fix, because they are caused by packed data structures, and changing the "packing" very likely will have unintended consequences all over the C code. In short, it ain't an easy fix at all!

                                  Lastly, there is another large looming problem with Suricata on ARM 32-bit applicances. The version is currently 4.1.9 and it is not going to be updated. That's because Suricata versions 5 and higher require Rust, and Rust does not exist for the 32-bit ARM platform.

                                  The SG-3100 is a fine firewall appliance when used as just a firewall. It has problems, though, with certain packages including Snort, Suricata and possibly others. Part of the reason is the more limited RAM, but another is the quirkiness of the 32-bit ARM compiler.

                                  M 1 Reply Last reply Reply Quote 2
                                  • M
                                    marcosm Netgate @bmeeks
                                    last edited by

                                    @bmeeks

                                    Thanks for the info. If I understand correctly, this should be avoided with the patch at:
                                    https://github.com/pfsense/FreeBSD-ports/blob/devel/security/snort/files/patch-pfSense-ARM317.diff

                                    However, I'm not entirely sure how to verify if that patch is being applied correctly or not.

                                    @rsm4
                                    Are you still getting the signal 10 after rebooting the firewall?

                                    R 1 Reply Last reply Reply Quote 0
                                    • R
                                      rsm4 @marcosm
                                      last edited by

                                      @marcos-ng said in Snort won't start after upgrade to 21.02 on SG-3100:

                                      @rsm4
                                      Are you still getting the signal 10 after rebooting the firewall?

                                      Yes. I just rebooted the firewall and this is how it showed in the logs:

                                      Jun 13 17:03:09 fw snort[96250]: Commencing packet processing (pid=96250)
                                      Jun 13 17:03:36 fw kernel: pid 96250 (snort), jid 0, uid 0: exited on signal 10

                                      It automatically started snort on bootup and then it crashed with the signal 10 almost 30 seconds after it started processing packets.

                                      I'm not seeing any PHP crashes since applying the patch diff, but Snort is still broken.

                                      S 1 Reply Last reply Reply Quote 1
                                      • S
                                        s0m3f00l @rsm4
                                        last edited by

                                        @rsm4 Suricata is also having a lot of issues I would avoid.

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

                                          All I can't pinpoint exactly whats wrong but the packages I am having trouble with on the SG-3100 in 21.05 with the patch applied are

                                          • suricata
                                          • pfblockerng-dev

                                          It seems they both stop working without much of an error message other than stopped. Unfortunately my time for troubleshooting has come to an end. And I need to return this connection to production w/o things breaking every 2 or 3 days.

                                          I would really like some insight into what the DEVs are using to test AND what is the recommended HW for small sites. 5100 seems like overkill but we need something that is going to be supported and not dropped after 3 or so years. Juniper/cisco make great firewall only routers, I was led to believe that the SG-3100 could do more than that. But it appears thats going away.

                                          So in small sites what is the recommended HW that devs are testing for?

                                          1 Reply Last reply Reply Quote 0
                                          • H
                                            Hichem @SteveITS
                                            last edited by

                                            @steveits said in Snort won't start after upgrade to 21.02 on SG-3100:

                                            @styxl said in Snort won't start after upgrade to 21.02 on SG-3100:

                                            is there a fix for this in the hopper

                                            I'm not a dev but if the issue is with PHP then it could go all the way back to Zend to find and fix it. And then it would presumably be in a p2 patch. I'm not optimistic it will be "soon."

                                            @rek0n I haven't done this myself but this seems like the right path:

                                            • get a copy of the 2.4.5 installer from Netgate (go.netgate.com)
                                            • install 2.4.5
                                            • set to Previous Stable Version in System/Update (to install 2.4.5 packages not 2.5)
                                            • install desired packages
                                            • restore configuration
                                            • double check Previous Stable Version is still set

                                            We just bought 2 x SG-3100 with 21.02 how we get the stable version ?
                                            Because snort and suricata dont work and we can't use 2 x SG-3100 without IDS/IPS in our datacenter.

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