#!/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/suricata/settings) # Name of the firewall chain. FW_CHAIN="IPS" # Optional options for the Netfilter queue. NFQ_OPTS="--queue-bypass " # Array containing the 4 possible network zones. network_zones=( red green blue orange ) # Mark and Mask options. MARK="0x2" MASK="0x2" # PID file of suricata. PID_FILE="/var/run/suricata.pid" # Function to get the amount of CPU cores of the system. function get_cpu_count { CPUCOUNT=0 # Loop through "/proc/cpuinfo" and count the amount of CPU cores. while read line; do [ "$line" ] && [ -z "${line%processor*}" ] && ((CPUCOUNT++)) done /dev/null 2>/dev/null evaluate_retval # Allow reading the pidfile. chmod 644 $PID_FILE # Flush the firewall chain flush_fw_chain # Generate firewall rules generate_fw_rules fi ;; stop) boot_mesg "Stopping Intrusion Detection System..." killproc -p $PID_FILE /var/run # Flush firewall chain. flush_fw_chain # Remove suricata control socket. rm /var/run/suricata/* >/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 ;; reload) # Send SIGUSR2 to the suricata process to perform a reload # of the ruleset. kill -USR2 $(pidof suricata) # Flush the firewall chain. flush_fw_chain # Generate firewall rules. generate_fw_rules ;; *) echo "Usage: $0 {start|stop|restart|reload|status}" exit 1 ;; esac chmod 644 /var/log/suricata/* 2>/dev/null # End $rc_base/init.d/suricata