X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?p=ossec-hids.git;a=blobdiff_plain;f=src%2Finit%2Fossec-local.sh;h=1fd9cb0acba1c5824f9d0ca41e2280ed7b39e018;hp=259bd5df393e602a9ce7b1c159e94f3d57bce681;hb=6ef2f786c6c8ead94841b5f93baf9f43421f08c8;hpb=914feba5d54f979cd5d7e69c349c3d01f630042a diff --git a/src/init/ossec-local.sh b/src/init/ossec-local.sh index 259bd5d..1fd9cb0 100755 --- a/src/init/ossec-local.sh +++ b/src/init/ossec-local.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-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,14 +177,30 @@ disable() # Status function status() { + RETVAL=0 for i in ${DAEMONS}; do pstatus ${i}; if [ $? = 0 ]; then + RETVAL=1 echo "${i} not running..." 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 } @@ -190,24 +210,21 @@ start() SDAEMONS="${DB_DAEMON} ${CSYSLOG_DAEMON} ${AGENTLESS_DAEMON} ossec-maild ossec-execd ossec-analysisd ossec-logcollector 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: 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; @@ -224,6 +241,14 @@ start() # to internally create their PID files. sleep 2; unlock; + + ls -la "${DIR}/ossec-agent/" >/dev/null 2>&1 + if [ $? = 0 ]; then + echo "" + echo "Starting sub agent directory (for hybrid mode)" + ${DIR}/ossec-agent/bin/ossec-control start + fi + echo "Completed." } @@ -278,6 +303,13 @@ stopa() done unlock; + + ls -la "${DIR}/ossec-agent/" >/dev/null 2>&1 + if [ $? = 0 ]; then + echo "" + echo "Stopping sub agent directory (for hybrid mode)" + ${DIR}/ossec-agent/bin/ossec-control stop + fi echo "$NAME $VERSION Stopped" } @@ -286,13 +318,16 @@ stopa() case "$1" in start) + testconfig start ;; stop) stopa ;; restart) + testconfig stopa + sleep 1; start ;; status)