blob: d8a00c43fce604d4df9a069042ad08cc07aab29c [file] [log] [blame]
#!/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 <if> Listen on interface <if>
# -u <uname> Run snort uid as <uname> user (or uid)
# -g <gname> Run snort uid as <gname> 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 <id> Include 'id' in snort_intf<id>.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