X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=src%2Finit%2Fossec-server.sh;h=d07993b3d9b86e7efad54096c76cabed3eccbd87;hb=6ef2f786c6c8ead94841b5f93baf9f43421f08c8;hp=307502d31724f26285b746ea150f7ffdeaab3a58;hpb=914feba5d54f979cd5d7e69c349c3d01f630042a;p=ossec-hids.git diff --git a/src/init/ossec-server.sh b/src/init/ossec-server.sh index 307502d..d07993b 100755 --- a/src/init/ossec-server.sh +++ b/src/init/ossec-server.sh @@ -22,7 +22,7 @@ fi NAME="OSSEC HIDS" -VERSION="v2.3" +VERSION="v2.7" AUTHOR="Trend Micro Inc." DAEMONS="ossec-monitord ossec-logcollector ossec-remoted ossec-syscheckd ossec-analysisd ossec-maild ossec-execd ${DB_DAEMON} ${CSYSLOG_DAEMON} ${AGENTLESS_DAEMON}" @@ -115,8 +115,8 @@ enable() { if [ "X$2" = "X" ]; then echo "" - echo "Enable options: database, client-syslog, agentless" - echo "Usage: $0 enable [database|client-syslog|agentless]" + echo "Enable options: database, client-syslog, agentless, debug" + echo "Usage: $0 enable [database|client-syslog|agentless|debug]" exit 1; fi @@ -126,12 +126,14 @@ enable() echo "CSYSLOG_DAEMON=ossec-csyslogd" >> ${PLIST}; elif [ "X$2" = "Xagentless" ]; then echo "AGENTLESS_DAEMON=ossec-agentlessd" >> ${PLIST}; + elif [ "X$2" = "Xdebug" ]; then + echo "DEBUG_CLI=\"-d\"" >> ${PLIST}; else echo "" echo "Invalid enable option." echo "" - echo "Enable options: database, client-syslog, agentless" - echo "Usage: $0 enable [database|client-syslog|agentless]" + echo "Enable options: database, client-syslog, agentless, debug" + echo "Usage: $0 enable [database|client-syslog|agentless|debug]" exit 1; fi @@ -145,8 +147,8 @@ disable() { if [ "X$2" = "X" ]; then echo "" - echo "Disable options: database, client-syslog, agentless" - echo "Usage: $0 disable [database|client-syslog|agentless]" + echo "Disable options: database, client-syslog, agentless, debug" + echo "Usage: $0 disable [database|client-syslog|agentless|debug]" exit 1; fi @@ -156,12 +158,14 @@ disable() echo "CSYSLOG_DAEMON=\"\"" >> ${PLIST}; elif [ "X$2" = "Xagentless" ]; then echo "AGENTLESS_DAEMON=\"\"" >> ${PLIST}; + elif [ "X$2" = "Xdebug" ]; then + echo "DEBUG_CLI=\"\"" >> ${PLIST}; else echo "" echo "Invalid disable option." echo "" - echo "Disable options: database, client-syslog, agentless" - echo "Usage: $0 disable [database|client-syslog|agentless]" + echo "Disable options: database, client-syslog, agentless, debug" + echo "Usage: $0 disable [database|client-syslog|agentless|debug]" exit 1; fi @@ -173,16 +177,31 @@ disable() # Status function status() { + RETVAL=0 for i in ${DAEMONS}; do pstatus ${i}; if [ $? = 0 ]; then echo "${i} not running..." + RETVAL=1 else echo "${i} is running..." fi - done + done + exit $RETVAL } +testconfig() +{ + # We first loop to check the config. + for i in ${SDAEMONS}; do + ${DIR}/bin/${i} -t ${DEBUG_CLI}; + if [ $? != 0 ]; then + echo "${i}: Configuration error. Exiting" + unlock; + exit 1; + fi + done +} # Start function start() @@ -190,24 +209,20 @@ start() SDAEMONS="${DB_DAEMON} ${CSYSLOG_DAEMON} ${AGENTLESS_DAEMON} ossec-maild ossec-execd ossec-analysisd ossec-logcollector ossec-remoted ossec-syscheckd ossec-monitord" echo "Starting $NAME $VERSION (by $AUTHOR)..." + echo | ${DIR}/bin/ossec-logtest > /dev/null 2>&1; + if [ ! $? = 0 ]; then + echo "OSSEC analysisd: Testing rules failed. Configuration error. Exiting." + exit 1; + fi lock; checkpid; - # We first loop to check the config. - for i in ${SDAEMONS}; do - ${DIR}/bin/${i} -t; - if [ $? != 0 ]; then - echo "${i}: Configuration error. Exiting" - unlock; - exit 1; - fi - done # We actually start them now. for i in ${SDAEMONS}; do pstatus ${i}; if [ $? = 0 ]; then - ${DIR}/bin/${i}; + ${DIR}/bin/${i} ${DEBUG_CLI}; if [ $? != 0 ]; then unlock; exit 1; @@ -286,15 +301,23 @@ stopa() case "$1" in start) + testconfig start ;; stop) stopa ;; restart) + testconfig stopa + sleep 1; start ;; + reload) + DAEMONS="ossec-monitord ossec-logcollector ossec-remoted ossec-syscheckd ossec-analysisd ossec-maild ${DB_DAEMON} ${CSYSLOG_DAEMON} ${AGENTLESS_DAEMON}" + stopa + start + ;; status) status ;;