邮箱服务器是放在内网映射的公司IP,开放端口后,一直被不停的暴力破解,郁闷死了。其中有个IP 有6W多次啊;从而利用脚本屏蔽IP访问。
1、脚本如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#! /bin/bash
# author: kuangl
# mial: kuangl@orient-media.com
# date: 2013-05-04
source
/etc/profile
awk
-F
"["
'/disconnect from unknown/ {print $NF}'
/var/log/maillog
|
grep
-
v
"189.154.4.22"
|
sed
"s/]//g"
|
sort
-nr|
uniq
-c|
sort
|
awk
'{print $1"="$2}'
>
/root/bad_ip_tmp
.txt
awk
-F
":"
'/verification failed/ {print $5}'
/var/log/maillog
|
grep
-
v
"189.154.4.22"
|
grep
-
v
"SASL"
|
sort
-nr|
uniq
-c|
awk
'{print $1"="$2}'
>>
/root/bad_ip_tmp
.txt
awk
-F
"-"
'/\/phpmyadmin\/scripts\/setup\.php/ {print $1}'
/var/log/httpd/access_log
|
grep
-
v
"189.154.4.22"
|
sort
-nr|
uniq
-c |
sort
-n |
awk
'{print $1"="$2}'
>>
/root/bad_ip_tmp
.txt
awk
-F
"-"
'/ZmEu/ {print $1}'
/var/log/httpd/access_log
|
grep
-
v
"189.154.4.22"
|
sort
-nr|
uniq
-c |
sort
-n |
awk
'{print $1"="$2}'
>>
/root/bad_ip_tmp
.txt
sort
/root/bad_ip_tmp
.txt|
uniq
>
/root/bad_ip
.txt
DEFINE=
"2"
for
i
in
$(
cat
/root/bad_ip
.txt)
do
NUM=`
echo
$i |
awk
-F
"="
'{print $1}'
`
IP=`
echo
$i|
awk
-F
"="
'{print $2}'
`
if
[ $NUM -
ge
$DEFINE ];
then
iptables -L -n|
grep
$IP >
/dev/null
if
[ $? -gt 0 ];
then
iptables -I RH-Firewall-1-INPUT 4 -s $IP -j DROP
fi
fi
done
|
2、假如任务计划5分钟运行一次
1
2
|
*
/5
* * * *
/home/kuangl/deny_bad_ip_for_smtp
.sh
0 1 * * *
/etc/init
.d
/iptables
restart
|
3、查看防火墙
1
2
3
4
5
6
7
8
9
|
DROP all -- 192.241.206.14 0.0.0.0
/0
DROP all -- 198.50.251.242 0.0.0.0
/0
DROP all -- 198.23.245.154 0.0.0.0
/0
DROP all -- 217.139.66.140 0.0.0.0
/0
DROP all -- 134.0.27.102 0.0.0.0
/0
DROP all -- 218.22.226.6 0.0.0.0
/0
DROP all -- 218.22.226.5 0.0.0.0
/0
DROP all -- 202.158.163.158 0.0.0.0
/0
DROP all -- 109.169.86.193 0.0.0.0
/0
|
本文转自 kuangling 51CTO博客,原文链接:http://blog.51cto.com/kling/1247154