#!/bin/sh # # Snort Startup Script modified for OpenEmbedded # # Script variables LAN_INTERFACE="$2" RETURN_VAL=0 BINARY=/usr/bin/snort PATH=/bin:/usr/bin PID=/var/run/snort_${LAN_INTERFACE}_ids.pid DEL_PID=$PID LOGDIR="/var/log/snort" DATE=`/bin/date +%Y%m%d` CONFIG_FILE=/etc/snort/snort.conf PROG=snort USER=root GROUP=root if [ ! -x "$BINARY" ]; then echo "ERROR: $BINARY not found." exit 1 fi if [ ! -r "$CONFIG_FILE" ]; then echo "ERROR: $CONFIG_FILE not found." exit 1 fi start() { [ -n "$LAN_INTERFACE" ] || return 0 # Check if log diratory is present. Otherwise, create it. if [ ! -d $LOGDIR/$DATE ]; then mkdir -d $LOGDIR/$DATE /bin/chown -R $USER:$USER $LOGDIR/$DATE /bin/chmod -R 700 $LOGDIR/$DATE fi /bin/echo "Starting $PROG: " # Snort parameters # -D Run Snort in background (daemon) mode # -i Listen on interface # -u Run snort uid as user (or uid) # -g Run snort uid as group (or gid) # -c Load configuration file # -N Turn off logging (alerts still work) (removed to enable logging) :) # -l Log to directory # -t Chroots process to directory after initialization # -R Include 'id' in snort_intf.pid file name $BINARY -D -i $LAN_INTERFACE -u $USER -g $GROUP -c $CONFIG_FILE -l $LOGDIR/$DATE -t $LOGDIR/$DATE -R _ids /bin/echo "$PROG startup complete." return $RETURN_VAL } stop() { if [ -s $PID ]; then /bin/echo "Stopping $PROG with PID `cat $PID`: " kill -TERM `cat $PID` 2>/dev/null RETURN_VAL=$? /bin/echo "$PROG shutdown complete." [ -e $DEL_PID ] && rm -f $DEL_PID [ -e $DEL_PID.lck ] && rm -f $DEL_PID.lck else /bin/echo "ERROR: PID in $PID file not found." RETURN_VAL=1 fi return $RETURN_VAL } status() { if [ -s $PID ]; then echo "$PROG is running as pid `cat $PID`:" else echo "$PROG is not running." fi } restart() { stop start RETURN_VAL=$? return $RETURN_VAL } case "$1" in start) start ;; stop) stop ;; status) status ;; restart|reload) restart ;; *) /bin/echo "Usage: $0 {start|stop|status|restart|reload}" RETURN_VAL=1 esac exit $RETURN_VAL