2013-10-18 14:06:19 +02:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
2014-10-21 09:20:18 +02:00
|
|
|
|
# $1 client_ip_as_string
|
|
|
|
|
# $2 data_direction
|
|
|
|
|
# $3 pps_as_string
|
|
|
|
|
# $4 action (ban or unban)
|
2013-10-18 14:06:19 +02:00
|
|
|
|
|
2014-06-09 13:58:55 +02:00
|
|
|
|
email_notify="root,please_fix_this_email@domain.ru"
|
2013-10-18 14:06:19 +02:00
|
|
|
|
|
2013-10-19 16:01:24 +02:00
|
|
|
|
# Далее возможны два варианта:
|
|
|
|
|
# это первый запуск, при котором нужно банить IP (на stdin пусто)
|
|
|
|
|
# это второй запуск, когда скрипт уже собрал (если смог) детали об атаке (на stdin даные об атаке)
|
2013-10-18 14:06:19 +02:00
|
|
|
|
|
2014-10-21 09:20:18 +02:00
|
|
|
|
if [ "$4" = "unban" ]; then
|
|
|
|
|
# Unban actions if used
|
|
|
|
|
exit 0
|
|
|
|
|
fi
|
|
|
|
|
|
2014-11-27 16:43:00 +01:00
|
|
|
|
if [ "$4" = "ban" ]; then
|
|
|
|
|
cat | mail -s "FastNetMon Guard: IP $1 blocked because $2 attack with power $3 pps" $email_notify;
|
|
|
|
|
# You can add ban code here!
|
|
|
|
|
# iptables -A INPUT -s $1 -j DROP
|
|
|
|
|
# iptables -A INPUT -d $1 -j DROP
|
|
|
|
|
exit 0
|
|
|
|
|
fi
|