2012-05-09 11:51:29 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
action=$1
|
|
|
|
ip=$2
|
2015-05-27 12:25:08 +02:00
|
|
|
service=$3
|
2012-05-09 11:51:29 +02:00
|
|
|
|
2015-07-06 13:28:54 +02:00
|
|
|
curDir=$(dirname $0)
|
2015-05-29 15:21:27 +02:00
|
|
|
|
2015-07-06 13:28:54 +02:00
|
|
|
cd $curDir
|
2012-05-09 11:51:29 +02:00
|
|
|
|
2015-07-06 13:28:54 +02:00
|
|
|
source bancount.cfg
|
|
|
|
|
|
|
|
if [ -f "GeoIP.dat" ]
|
2015-07-03 16:18:06 +02:00
|
|
|
then
|
|
|
|
allInfoIp=`geoiplookup $ip`;
|
|
|
|
else
|
2015-07-06 13:28:54 +02:00
|
|
|
allInfoIp=`geoiplookup -f GeoIP.dat $ip`;
|
2015-07-03 16:18:06 +02:00
|
|
|
fi
|
2015-07-03 16:04:10 +02:00
|
|
|
|
2012-05-09 11:51:29 +02:00
|
|
|
geoip () {
|
2015-07-06 13:28:54 +02:00
|
|
|
echo $allInfoIp | awk -F, '{print $2}' | sed s/\ //
|
2015-07-03 16:04:10 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
countryCode () {
|
|
|
|
echo $allInfoIp $ip | awk -F ": " '{ print $2 }' | awk -F "," '{ print $1 }' | head -n 1
|
2012-05-09 11:51:29 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
case $action in
|
|
|
|
|
|
|
|
ban)
|
2015-07-13 09:59:01 +02:00
|
|
|
mysql $mysqldb -u $mysqluser --password=$mysqlpw -e "INSERT INTO bans (ip, service, ban_date, ban_time, country, countryCode) VALUES ( '$ip', '$service', '`date +%F`', '`date +%T`', '`geoip`', '`countryCode`');"
|
2012-05-09 11:51:29 +02:00
|
|
|
;;
|
|
|
|
|
|
|
|
unban)
|
2015-07-13 09:59:01 +02:00
|
|
|
mysql $mysqldb -u $mysqluser --password=$mysqlpw -e "INSERT INTO unbans (ip, service, unban_date, unban_time, country, countryCode) VALUES ( '$ip', '$service', '`date +%F`', '`date +%T`', '`geoip`', '`countryCode`');"
|
2012-05-09 11:51:29 +02:00
|
|
|
;;
|
|
|
|
|
|
|
|
*)
|
2015-07-06 13:28:54 +02:00
|
|
|
cat << EOF
|
2012-05-09 11:51:29 +02:00
|
|
|
Fail2BanCount - by k6b - MySQL logger
|
|
|
|
|
2015-07-06 13:28:54 +02:00
|
|
|
$(basename $0) <ban/unban> <ip> <service>
|
2012-05-09 11:51:29 +02:00
|
|
|
|
|
|
|
Performs geoip lookup and stamps time
|
|
|
|
and date into MySQL database.
|
|
|
|
EOF
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
2015-07-06 13:28:54 +02:00
|
|
|
esac
|