|
|
centos7用的是firewall 添加单个黑名单只需要把ip添加到 /etc/hosts.deny4 D% A" h5 o, M" C+ _
格式 sshd IP:deny
9 z7 X( V' K1 s vim /etc/hosts.deny 添加你要禁止的ip就可以了
' L/ U4 N7 M9 T; Y/ s ( c7 R7 a$ Q) y7 Q
这是允许的 /etc/hosts.allow ) m# x: Q/ `" M- c
sshd:19.16.18.1:allow
" F& D6 p5 y$ m1 Fsshd:19.16.18.2:allow( H$ q" E, U1 I; ?5 R6 ~
( g" x) e' h- A9 W+ m1 s X
找了个,多次失败登录即封掉IP,防止暴力破解的脚本 亲测有效 超过5次的就加到黑名单
" P" | j; x2 f% I7 X
2 O2 S, j* s; R9 ]/ g5 |* n. q% H/ Q1、编辑脚本 vim /usr/local/bin/secure_ssh.sh2 a6 u, o" M4 {/ K
- #! /bin/bash
# m5 p* t1 Y' u" e& \# V - cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt
8 J$ D8 p' N* [6 J# B - for i in `cat /usr/local/bin/black.txt`
1 ^& A1 T( u5 o& \ - do
+ G% D/ ?& W) \ l; U; \ - IP=`echo $i |awk -F= '{print $1}'`
/ R$ J J$ ^2 I) Y9 M - NUM=`echo $i|awk -F= '{print $2}'`& x1 Q- r! @, G9 c1 O& J
- if [ $NUM -gt 5 ];then) T) y9 c2 y( N* O
- grep $IP /etc/hosts.deny > /dev/null
; {8 r3 V! R+ u - if [ $? -gt 0 ];then
; n7 I2 P' E( x2 ] O - echo "sshd:$IP:deny" >> /etc/hosts.deny
) \6 C' R# Z0 f/ ~# `( W - fi* W# S) J4 C" U) _" O, r
- fi
( l8 j- L2 c1 {( c* K0 \7 ? - done
复制代码 2、创建记录登录失败次数的文件 touch /usr/local/bin/black.txt3 {/ x9 N! h8 ^; ^' P: B
+ N) M) n" ?3 |1 q2 l" x1 D3、添加定时 5分钟执行一次
2 x$ }9 @! c6 k! q/ C0 Y9 }/ U0 Y" ]; U3 L( B
*/5 * * * * sh /usr/local/bin/secure_ssh.sh
" \) }* l8 J! d7 F: |" G) V
5 ~8 ?/ R0 e: }! k! q6 Z1 f2 x4、测试 ssh登录147 ssh 192.168.1.147
, S. N4 @; E5 ?3 N 9 U7 ^' K& y& c ^2 f+ J0 C# y
5、查看黑名单列表是否记录 cat /usr/local/bin/black.txt) u' a4 B- K9 F+ s1 }

/ V+ R3 x! d! t, D, ]) s1 w" {2 K6、查看黑名单列表看是否添加进去了 cat /etc/hosts.deny
- I' G+ N/ S( L, {; z0 V# I , d& t: z" f. @7 [, h
! C) \7 b% m% i! E' y
- y/ m8 \+ k3 e, F( b8 i4 E' L8 D% n1 Z9 e6 K' Y
|
|