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

    Snort with OpenVPN Client uses 100% CPU

    Scheduled Pinned Locked Moved IDS/IPS
    3 Posts 2 Posters 1.7k 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.
    • A Offline
      athurdent
      last edited by

      Hi,

      first of all, many thanks to bmeeks and the other IDS/IPS contributors. I'm just getting started with Snort and the package works great so far.
      One thing I noticed while testing my new setup is that Snort seems to use 100% CPU when I transfer something big to my home while connected via VPN client. This is during a 15 MB/s transfer via WAN1:

      
      last pid: 74009;  load averages:  1.96,  1.17,  0.57                                                                                   up 0+21:02:28  13:02:53
      214 processes: 12 running, 138 sleeping, 64 waiting
      CPU: 18.1% user,  0.0% nice,  2.9% system,  4.7% interrupt, 74.3% idle
      Mem: 127M Active, 1265M Inact, 330M Wired, 356K Cache, 419M Buf, 6146M Free
      Swap: 16G Total, 16G Free
      
        PID USERNAME PRI NICE   SIZE    RES STATE   C   TIME    WCPU COMMAND
      84804 root     103    0  1190M   628M CPU7    7  13:31 100.00% /usr/local/bin/snort -R 28436 -D -q --suppress-config-log -l /var/log/snort/snort_igb128436 --p
         11 root     155 ki31     0K   128K CPU0    0  19.6H  91.89% [idle{idle: cpu0}]
         11 root     155 ki31     0K   128K CPU4    4  19.9H  89.06% [idle{idle: cpu4}]
         11 root     155 ki31     0K   128K RUN     6  19.8H  83.69% [idle{idle: cpu6}]
         11 root     155 ki31     0K   128K CPU2    2  20.0H  80.96% [idle{idle: cpu2}]
         11 root     155 ki31     0K   128K CPU5    5  19.8H  78.56% [idle{idle: cpu5}]
         11 root     155 ki31     0K   128K RUN     3  20.4H  76.27% [idle{idle: cpu3}]
      22391 root      91    0 21728K  5788K CPU6    6   6:10  67.29% /usr/local/sbin/openvpn --config /var/etc/openvpn/server1.conf
         11 root     155 ki31     0K   128K RUN     1  19.8H  63.67% [idle{idle: cpu1}]
         11 root     155 ki31     0K   128K RUN     7  19.8H  53.17% [idle{idle: cpu7}]
      
      

      I have a MultiWAN with 200Mbit and 50 Mbit WANs, and even when using the slower 50Mbit WAN OpenVPN takes 100% on one core.
      The OpenVPN Server is UDP on a random high port, not 1194. It's listening on 127.0.0.1 and uses Port Forwards as suggested in the Wiki for MultiWAN. AES-NI support is off.

      Snort is configured to only log and I have turned on nearly every preprocessor as suggested in the setup guide (OpenAppID is on, too.). I am using it on the WAN interfaces and not on LAN. It uses the free feeds from Snort (with free OINK code, set to Security) and the Emerging List (turned on most of the rules). I know this might be too much, but a 200MBit HTTP download from my LAN makes Snort use 37% on one core, so it seems to be OK for now. I also use a small suppress list found in the forum.
      Anyone else seeing this?

      1 Reply Last reply Reply Quote 0
      • A Offline
        athurdent
        last edited by

        As I know and trust most of my OpenVPN client IPs, I think it could be a good idea to just ignore them completely.
        It seems to be a good idea to do this via

        config bpf_file
        

        as described here
        https://netsecsupport.wordpress.com/2014/07/14/snort-ignore-traffic-with-a-bpf/

        I did not find a GUI option for this, I guess I need to implement this manually with my own file and the "Advanced configuration pass-through" option?

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

          Using the ADVANCED PASS-THROUGH option would be the mechanism for using that config directive.  You will find that on the INTERFACE SETTINGS tab for the specific interface.

          Bill

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