#! /bin/sh
# Copyright (c) hersch24
# All rights reserved.
# Author: hersch24,
# <hersch24@freenet.de>
#
# /etc/init.d/syncookies
# start/stop syncookies
# (DDoS-Protection)
NAME=SynCookies
DESC="DDoS-Protection"
LFILE=/var/log/syn.log
case "$1" in
start)
echo -e "Starting $DESC: $NAME\n"
echo -e "setting proc module: "
( echo 1 > /proc/sys/net/ipv4/tcp_syncookies ) >>$LFILE 2>&1
if [ $? = "0" ]; then
echo -e "\E[32;40mWORKING !\E[0m"
exit 0
else
echo -e "\E[31;40mERROR !\E[0m"
fi
echo -e "setting sysctl.conf: "
( sed "s/.*net.ipv4.tcp_syncookies.*/net.ipv4.tcp_syncookies=1/g" /etc/sysctl.conf > /etc/sysctl.bak ) >>$LFILE 2>&1
if [ $? = "0" ]; then
mv /etc/sysctl.bak /etc/sysctl.conf
echo -e "\E[32;40mWORKING !\E[0m"
exit 0
else
echo -e "\E[31;40mERROR !\E[0m"
echo -e "\E[34;40mshow syn.log and try to fix\E[0m"
fi
;;
stop)
echo -e "Stopping $DESC: $NAME\n"
echo -e "setting proc module: "
( echo 0 > /proc/sys/net/ipv4/tcp_syncookies ) >>$LFILE 2>&1
if [ $? = "0" ]; then
echo -e "\E[32;40mSTOPPED !\E[0m"
exit 0
else
echo -e "\E[31;40mERROR !\E[0m"
fi
echo -e "setting sysctl.conf: "
( sed "s/.*net.ipv4.tcp_syncookies.*/net.ipv4.tcp_syncookies=0/g" /etc/sysctl.conf > /etc/sysctl.bak ) >>$LFILE 2>&1
if [ $? = "0" ]; then
mv /etc/sysctl.bak /etc/sysctl.conf
echo -e "\E[32;40mSTOPPING !\E[0m"
exit 0
else
echo -e "\E[31;40mERROR !\E[0m"
echo -e "\E[34;40mshow syn.log and try to fix\E[0m"
fi
;;
*)
echo $NAME $DESC
echo "Usage: /etc/init.d/syncookies (start|stop)"
exit 1
;;
esac
exit 0