[Pkg-ossec-devel] [SCM] Git repository for pkg-ossec branch, master, updated. f89fb2c00b1a2606035e5cd0e35b4ebe99f049ac
Javier Fernandez-Sanguino
jfs at debian.org
Wed Aug 29 16:31:30 UTC 2012
The following commit has been merged in the master branch:
commit 2e1a535e13114767caae9c8fafab8429a7e2779c
Author: Javier Fernandez-Sanguino <jfs at debian.org>
Date: Wed Aug 29 00:17:37 2012 +0200
Adjust the init.d script and enhance it to leave the result of the
ossec-control script in a log file
diff --git a/debian/ossec-hids-server.init b/debian/ossec-hids-server.init
index bc613b7..07f513a 100755
--- a/debian/ossec-hids-server.init
+++ b/debian/ossec-hids-server.init
@@ -1,8 +1,7 @@
#!/bin/sh
-# OSSEC Controls OSSEC HIDS
-# Author: Daniel B. Cid <dcid at ossec.net>
-# Modified for slackware by Jack S. Lai
-# Modified for Debian by Javier Fernandez-Sanguino
+#
+# Debian init.d file for OSSEC HIDS (server)
+# Created for Debian by Javier Fernandez-Sanguino <jfs at debian.org>
#
# OSSEC HIDS is a free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License (version 2) as
@@ -23,41 +22,85 @@
# active response.
### END INIT INFO
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-
-test $DEBIAN_SCRIPT_DEBUG && set -v -x
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="OSSEC Host-based Intrusion Detection System"
+NAME=ossec-hids-server
+DAEMON=/usr/lib/ossec/ossec-agentd
+DAEMON_ARGS=""
+PIDFILE=/var/run/ossec-hids/$NAME.pid
+SCRIPTNAME=/etc/init.d/$NAME
-DAEMON=ossec-hids
-NAME=ossec
-DESC="Host-based Intrusion Detection System"
-
-. /lib/lsb/init-functions
+# Exit if the package is not installed
+[ -x $DAEMON ] || exit 0
+# Load the information for the main configuration file
[ -e /etc/ossec-init.conf ] && . /etc/ossec-init.conf
-if [ "X${DIRECTORY}" = "X" ]; then
+if [ -z "${DIRECTORY}" ]; then
DIRECTORY="/var/ossec"
fi
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+test $DEBIAN_SCRIPT_DEBUG && set -v -x
+
+# Load the VERBOSE setting and other rcS variables
+. /lib/init/vars.sh
+
+# Define LSB log_* functions.
+# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
+. /lib/lsb/init-functions
+
# If we don't find DIRECTORY then exit without error, the
-# package is not installed
+# package is not properly installed
[ ! -e "${DIRECTORY}" ] && exit 0
-
-start() {
- [ -n "$DEBIAN_SCRIPT_DEBUG" ] && OUT=">/dev/null"
- ${DIRECTORY}/bin/ossec-control start $OUT
+# Create the directory for the pidfiles
+[ ! -e /var/run/ossec-hids ] && mkdir -p /var/run/ossec-hids
+
+# Log file for the ossec-control file
+LOGDIR=${DIRECTORY}/logs
+LOGFILE=${LOGDIR}/ossec-control.log
+
+# Function that tests the rules
+do_test_rules()
+{
+ echo | ${DIRECTORY}/ossec-logtest > /dev/null 2>&1;
+ if [ ! $? = 0 ]; then
+ log_failure_msg "the OSSEC ruleset is not valid, the daemon will not start. Review the output of ${DIRECTORY}/ossec-logtest"
+ return 1
+ fi
+ return 0
+}
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+ [ -n "$DEBIAN_SCRIPT_DEBUG" ] && OUT=">$LOGFILE 2>&1"
+ ${DIRECTORY}/bin/ossec-control start $OUT
return $?
+ # TODO REVIEW - Return
+ # 0 if daemon has been started
+ # 1 if daemon was already running
+ # 2 if daemon could not be started
}
-stop() {
- [ -n "$DEBIAN_SCRIPT_DEBUG" ] && OUT=">/dev/null"
- ${DIRECTORY}/bin/ossec-control stop
+do_stop() {
+ [ -n "$DEBIAN_SCRIPT_DEBUG" ] && OUT=">$LOGFILE 2>&1"
+ ${DIRECTORY}/bin/ossec-control stop $OUT
return $?
+ # TODO REVIEW - Return
+ # 0 if daemon has been stopped
+ # 1 if daemon was already stopped
+ # 2 if daemon could not be stopped
+ # other if a failure occurred
}
-status() {
- [ -n "$DEBIAN_SCRIPT_DEBUG" ] && OUT=">/dev/null"
- ${DIRECTORY}/bin/ossec-control status
+do_status() {
+ [ -n "$DEBIAN_SCRIPT_DEBUG" ] && OUT=">$LOGFILE 2>&1"
+ ${DIRECTORY}/bin/ossec-control status $OUT
return $?
}
@@ -65,37 +108,54 @@ status() {
case "$1" in
start)
log_daemon_msg "Starting $DESC " "$NAME"
- start
+ do_start
myret=$?
if [ $myret -eq 0 ] ; then
log_end_msg 0
else
+ log_failure_msg "review the logfile $LOGFILE"
log_end_msg 1
fi
exit $myret
;;
stop)
log_daemon_msg "Stopping $DESC " "$NAME"
- stop
+ do_stop
myret=$?
if [ $myret -eq 0 ] ; then
log_end_msg 0
else
+ log_failure_msg "review the logfile $LOGFILE"
log_end_msg 1
fi
exit $myret
;;
restart|force-restart|reload|force-reload)
- $0 stop
- $0 start
+ log_daemon_msg "Restarting $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1)
+ do_start
+ case "$?" in
+ 0) log_end_msg 0 ;;
+ 1) log_end_msg 1 ;; # Old process is still running
+ *) log_end_msg 1 ;; # Failed to start
+ esac
+ ;;
+ *)
+ # Failed to stop
+ log_end_msg 1
+ ;;
+ esac
;;
status)
log_daemon_msg "Status of $NAME"
- status
+ do_status
myret=$?
if [ $myret -eq 0 ] ; then
log_end_msg 0
else
+ log_failure_msg "review the logfile $LOGFILE"
log_end_msg 1
fi
exit $myret
@@ -106,3 +166,5 @@ case "$1" in
esac
exit 0
+
+
diff --git a/debian/ossec-hids-server.init.d b/debian/ossec-hids-server.init.d
deleted file mode 100644
index f4423e6..0000000
--- a/debian/ossec-hids-server.init.d
+++ /dev/null
@@ -1,154 +0,0 @@
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides: ossec-hids-server
-# Required-Start: $network $local_fs
-# Required-Stop:
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: <Enter a short description of the sortware>
-# Description: <Enter a long description of the software>
-# <...>
-# <...>
-### END INIT INFO
-
-# Author: Jose Antonio Quevedo Muñoz <joseantonio.quevedo at gmail.com>
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-DESC=ossec-hids-server # Introduce a short description here
-NAME=ossec-hids-server # Introduce the short server's name here
-DAEMON=/usr/sbin/ossec-hids # Introduce the server's location here
-DAEMON_ARGS="" # Arguments to run the daemon with
-PIDFILE=/var/run/$NAME.pid
-SCRIPTNAME=/etc/init.d/$NAME
-
-# Exit if the package is not installed
-[ -x $DAEMON ] || exit 0
-
-# Read configuration variable file if it is present
-[ -r /etc/default/$NAME ] && . /etc/default/$NAME
-
-# Load the VERBOSE setting and other rcS variables
-. /lib/init/vars.sh
-
-# Define LSB log_* functions.
-# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
-. /lib/lsb/init-functions
-
-#
-# Function that starts the daemon/service
-#
-do_start()
-{
- # Return
- # 0 if daemon has been started
- # 1 if daemon was already running
- # 2 if daemon could not be started
- start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
- || return 1
- start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
- $DAEMON_ARGS \
- || return 2
- # Add code here, if necessary, that waits for the process to be ready
- # to handle requests from services started subsequently which depend
- # on this one. As a last resort, sleep for some time.
-}
-
-#
-# Function that stops the daemon/service
-#
-do_stop()
-{
- # Return
- # 0 if daemon has been stopped
- # 1 if daemon was already stopped
- # 2 if daemon could not be stopped
- # other if a failure occurred
- start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
- RETVAL="$?"
- [ "$RETVAL" = 2 ] && return 2
- # Wait for children to finish too if this is a daemon that forks
- # and if the daemon is only ever run from this initscript.
- # If the above conditions are not satisfied then add some other code
- # that waits for the process to drop all resources that could be
- # needed by services started subsequently. A last resort is to
- # sleep for some time.
- start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
- [ "$?" = 2 ] && return 2
- # Many daemons don't delete their pidfiles when they exit.
- rm -f $PIDFILE
- return "$RETVAL"
-}
-
-#
-# Function that sends a SIGHUP to the daemon/service
-#
-do_reload() {
- #
- # If the daemon can reload its configuration without
- # restarting (for example, when it is sent a SIGHUP),
- # then implement that here.
- #
- start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
- return 0
-}
-
-case "$1" in
- start)
- [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME"
- do_start
- case "$?" in
- 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
- 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
- esac
- ;;
- stop)
- [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
- do_stop
- case "$?" in
- 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
- 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
- esac
- ;;
- status)
- status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
- ;;
- #reload|force-reload)
- #
- # If do_reload() is not implemented then leave this commented out
- # and leave 'force-reload' as an alias for 'restart'.
- #
- #log_daemon_msg "Reloading $DESC" "$NAME"
- #do_reload
- #log_end_msg $?
- #;;
- restart|force-reload)
- #
- # If the "reload" option is implemented then remove the
- # 'force-reload' alias
- #
- log_daemon_msg "Restarting $DESC" "$NAME"
- do_stop
- case "$?" in
- 0|1)
- do_start
- case "$?" in
- 0) log_end_msg 0 ;;
- 1) log_end_msg 1 ;; # Old process is still running
- *) log_end_msg 1 ;; # Failed to start
- esac
- ;;
- *)
- # Failed to stop
- log_end_msg 1
- ;;
- esac
- ;;
- *)
- #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
- echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
- exit 3
- ;;
-esac
-
-:
--
Git repository for pkg-ossec
More information about the Pkg-ossec-devel
mailing list