2007-05-03 20:03:13 +00:00
|
|
|
#!/usr/bin/bash -e
|
|
|
|
#
|
|
|
|
# fail2ban This init.d script is used to start fail2ban.
|
|
|
|
# (C) by Hanno Wagner <wagner@rince.de>, License is GPL
|
2015-10-08 14:09:46 +00:00
|
|
|
|
2007-05-03 20:03:13 +00:00
|
|
|
#set -x
|
|
|
|
|
|
|
|
. /lib/svc/share/smf_include.sh
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
|
|
F2B_CONF="/etc/fail2ban/fail2ban.conf"
|
|
|
|
if [ -n "$2" ] && [ -f "$F2B_CONF" ]; then
|
|
|
|
F2B_CONF="$2"
|
|
|
|
fi
|
|
|
|
|
|
|
|
ENV="/usr/bin/env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin:/opt/sfw/bin:/usr/sfw/bin"
|
|
|
|
|
2013-04-20 23:30:52 +00:00
|
|
|
# get socket/pid conf and check dir exists
|
|
|
|
# sock and pid default dirs are currently the same
|
|
|
|
# mkdir if it doesn't exist
|
|
|
|
SOCK_FILE=$(sed "/^\#/d" "$F2B_CONF" | grep "socket" | tail -1 | cut -d "=" -f2-)
|
|
|
|
SOCK_DIR=$(dirname $SOCK_FILE)
|
|
|
|
if [ -n "$SOCK_DIR" ]; then
|
|
|
|
if [ ! -d "$SOCK_DIR" ]; then
|
|
|
|
mkdir "$SOCK_DIR" || exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2007-05-03 20:03:13 +00:00
|
|
|
case $1 in
|
|
|
|
start)
|
2013-04-20 23:30:52 +00:00
|
|
|
# remove any lingering sockets
|
|
|
|
# don't quote the var for the -e test
|
|
|
|
if [ -n "$SOCK_FILE" ]; then
|
|
|
|
if [ -e $SOCK_FILE ]; then
|
|
|
|
rm -f $SOCK_FILE || exit 1
|
|
|
|
fi
|
|
|
|
fi
|
2007-05-03 20:03:13 +00:00
|
|
|
[ -f /etc/fail2ban.conf ] || touch /etc/fail2ban.conf
|
|
|
|
echo "Starting fail2ban-server with $F2B_CONF"
|
|
|
|
eval $ENV /usr/local/bin/fail2ban-client start &
|
|
|
|
;;
|
|
|
|
stop)
|
|
|
|
echo "Stopping fail2ban-server with $F2B_CONF"
|
|
|
|
eval $ENV /usr/local/bin/fail2ban-client stop &
|
|
|
|
;;
|
|
|
|
reload | refresh )
|
|
|
|
echo "Reloading fail2ban-server with $F2B_CONF"
|
|
|
|
eval $ENV /usr/local/bin/fail2ban-client reload &
|
|
|
|
;;
|
|
|
|
restart | force-reload)
|
|
|
|
echo "Forcing reload of fail2ban-server with $F2B_CONF"
|
|
|
|
eval $ENV /usr/local/bin/fail2ban-client stop &
|
|
|
|
sleep 2
|
|
|
|
eval $ENV /usr/local/bin/fail2ban-client start &
|
|
|
|
;;
|
|
|
|
status)
|
|
|
|
/usr/local/bin/fail2ban-client status &
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo "Usage: /lib/svc/method/svc-fail2ban start|stop|status|refresh|restart|reload|force-reload" >&2
|
|
|
|
exit 2
|
|
|
|
;;
|
|
|
|
esac
|