From d72b3e64c2515546b78a7cf099157799481da130 Mon Sep 17 00:00:00 2001 From: Stefan Schantl Date: Thu, 2 Aug 2018 19:54:22 +0200 Subject: [PATCH] suricata: Introduce basic initscript Add a very basic initscript, which currently allows to start/stop/restart suricata and check if the daemon is running. The script will detect when starting suricata how many CPU cores are present on the system and will launch suricata in inline mode (NFQUEUE) and listen to as much queues as CPU cores are detected. Signed-off-by: Stefan Schantl --- config/rootfiles/common/armv5tel/initscripts | 1 + config/rootfiles/common/i586/initscripts | 1 + config/rootfiles/common/x86_64/initscripts | 1 + src/initscripts/system/suricata | 65 ++++++++++++++++++++ 4 files changed, 68 insertions(+) create mode 100644 src/initscripts/system/suricata diff --git a/config/rootfiles/common/armv5tel/initscripts b/config/rootfiles/common/armv5tel/initscripts index 66a7be55b8..c4265905ee 100644 --- a/config/rootfiles/common/armv5tel/initscripts +++ b/config/rootfiles/common/armv5tel/initscripts @@ -79,6 +79,7 @@ etc/rc.d/init.d/snort etc/rc.d/init.d/squid etc/rc.d/init.d/sshd etc/rc.d/init.d/static-routes +etc/rc.d/init.d/suricata etc/rc.d/init.d/swap etc/rc.d/init.d/swconfig etc/rc.d/init.d/sysctl diff --git a/config/rootfiles/common/i586/initscripts b/config/rootfiles/common/i586/initscripts index 8f3d41476d..1153439777 100644 --- a/config/rootfiles/common/i586/initscripts +++ b/config/rootfiles/common/i586/initscripts @@ -79,6 +79,7 @@ etc/rc.d/init.d/snort etc/rc.d/init.d/squid etc/rc.d/init.d/sshd etc/rc.d/init.d/static-routes +etc/rc.d/init.d/suricata etc/rc.d/init.d/swap etc/rc.d/init.d/sysctl etc/rc.d/init.d/sysklogd diff --git a/config/rootfiles/common/x86_64/initscripts b/config/rootfiles/common/x86_64/initscripts index 8f3d41476d..1153439777 100644 --- a/config/rootfiles/common/x86_64/initscripts +++ b/config/rootfiles/common/x86_64/initscripts @@ -79,6 +79,7 @@ etc/rc.d/init.d/snort etc/rc.d/init.d/squid etc/rc.d/init.d/sshd etc/rc.d/init.d/static-routes +etc/rc.d/init.d/suricata etc/rc.d/init.d/swap etc/rc.d/init.d/sysctl etc/rc.d/init.d/sysklogd diff --git a/src/initscripts/system/suricata b/src/initscripts/system/suricata new file mode 100644 index 0000000000..e2950281c6 --- /dev/null +++ b/src/initscripts/system/suricata @@ -0,0 +1,65 @@ +#!/bin/sh +######################################################################## +# Begin $rc_base/init.d/suricata +# +# Description : Suricata Initscript +# +# Author : Stefan Schantl +# +# Version : 01.00 +# +# Notes : +# +######################################################################## + +. /etc/sysconfig/rc +. ${rc_functions} + +PATH=/usr/local/sbin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin; export PATH + +eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) +eval $(/usr/local/bin/readhash /var/ipfire/suricata/settings) + +case "$1" in + start) + # Get amount of CPU cores. + NFQUEUES= + CPUCOUNT=0 + while read line; do + [ "$line" ] && [ -z "${line%processor*}" ] && NFQUEUES+="-q $CPUCOUNT " && ((CPUCOUNT++)) + done /dev/null 2>/dev/null + + # Don't report returncode of rm if suricata was not started + exit 0 + ;; + + status) + statusproc /usr/bin/suricata + ;; + + restart) + $0 stop + $0 start + ;; + + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; +esac + +chmod 644 /var/log/suricata/* 2>/dev/null + +# End $rc_base/init.d/suricata -- 2.39.2