#!/bin/bash # $Header: /root/magellan-cvs/src/ipsec-tools/racoon.rc,v 1.1 2007-05-08 19:49:03 niro Exp $ #%rlevels: 3:s 4:s 5:s 0:k 1:k 2:k 6:k #%start: 30 #%stop: 30 #deps #%needs: #%before: #%after: source /etc/sysconfig/rc source $rc_functions checkconfig() { if [ ! -e ${SETKEY_CONF} ] ; then echo "You need to configure setkey before starting racoon." return 1 fi if [ ! -e ${RACOON_CONF} ] ; then echo "You need a configuration file to start racoon." return 1 fi if [ ! -z ${RACOON_PSK_FILE} ] ; then if [ ! -f ${RACOON_PSK_FILE} ] ; then echo "PSK file not found as specified." echo "Set RACOON_PSK_FILE in /etc/conf.d/racoon." return 1 fi case "`ls -Lldn ${RACOON_PSK_FILE}`" in -r--------*) ;; *) eerror "Your defined PSK file should be mode 400 for security!" return 1 ;; esac fi } case "$1" in start) checkconfig || exit 1 echo -e ${COLOREDSTAR}"Loading ipsec policies from ${SETKEY_CONF}." /usr/sbin/setkey -f ${SETKEY_CONF} if [ $? -eq 1 ] ; then echo "Error while loading ipsec policies" fi echo -e ${COLOREDSTAR}"Starting racoon ... " /usr/sbin/racoon -f ${RACOON_CONF} ${RACOON_OPTS} evaluate_retval update_svcstatus $1 splash svc_started "$(basename $0)" 0 ;; stop) echo -e ${COLOREDSTAR}"Stopping racoon ... " kill `cat /var/run/racoon.pid` evaluate_retval if [ -n "${RACOON_RESET_TABLES}" ]; then echo -e ${COLOREDSTAR}"Flushing policy entries ... " /usr/sbin/setkey -F /usr/sbin/setkey -FP evaluate_retval fi update_svcstatus $1 splash svc_stopped "$(basename $0)" 0 ;; restart) $0 stop sleep 1 $0 start ;; status) statusproc /usr/sbin/racoon ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac stop() { ebegin "Stopping racoon" kill `cat /var/run/racoon.pid` eend $? if [ -n "${RACOON_RESET_TABLES}" ]; then ebegin "Flushing policy entries" /usr/sbin/setkey -F /usr/sbin/setkey -FP eend $? fi }