|
|
centos7用的是firewall 添加单个黑名单只需要把ip添加到 /etc/hosts.deny
- }! Q4 z* \/ ^. f, w$ F$ m" O1 K格式 sshd IP:deny0 m2 ]1 ~2 A0 O6 m1 t2 c
vim /etc/hosts.deny 添加你要禁止的ip就可以了' B. h* x3 b5 f, C
D% Y4 K) N [( Z1 `
这是允许的 /etc/hosts.allow
2 @8 s0 r5 B% L) msshd:19.16.18.1:allow
9 u/ y: I% R8 o$ h5 b1 H, z2 n! ]sshd:19.16.18.2:allow
; N: T6 D! }" L% g1 A0 J# Q6 c) a/ ^3 R$ t" D3 ]# z
找了个,多次失败登录即封掉IP,防止暴力破解的脚本 亲测有效 超过5次的就加到黑名单
4 m" o1 _2 Z$ V* ?& f2 U
1 [+ x' t3 c; s( G) I! G4 ?! r1、编辑脚本 vim /usr/local/bin/secure_ssh.sh$ ]: d5 Y* h' m, A
- #! /bin/bash
) s: L' n2 |6 Q3 u1 R6 S - cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt0 U# W. A* p/ ?1 i" f( Y/ F
- for i in `cat /usr/local/bin/black.txt`2 t+ x) X0 S& L0 f3 _3 h. S( I7 F
- do: M9 U v; x3 f, W4 A6 ~
- IP=`echo $i |awk -F= '{print $1}'`; X7 E, n8 O. p: M
- NUM=`echo $i|awk -F= '{print $2}'`
6 V$ s1 `! }! u$ L5 P% O6 Y$ Q# h - if [ $NUM -gt 5 ];then
/ O# e% g2 ^9 h5 F) M# h7 ^" E - grep $IP /etc/hosts.deny > /dev/null
4 k( B" J6 O2 ~" q - if [ $? -gt 0 ];then
" [* n2 Y/ w) u8 M+ X0 x9 { - echo "sshd:$IP:deny" >> /etc/hosts.deny
( K: `: l4 g) V$ y4 J - fi
3 y& W% Y, ?- e% J% u" I - fi
~ R$ A* z! o - done
复制代码 2、创建记录登录失败次数的文件 touch /usr/local/bin/black.txt0 o4 j, m1 S; K; n8 T7 |. f
/ ?- T( \1 ?- z' o1 I
3、添加定时 5分钟执行一次 . \+ X+ ^! [, H+ D
2 h" |7 F& b( i7 X0 x6 j
*/5 * * * * sh /usr/local/bin/secure_ssh.sh
8 z; d0 ]7 ]! w. j; Z9 v8 i
' }3 \* ^' F" F) S1 ]7 k4、测试 ssh登录147 ssh 192.168.1.147( s! o( S0 k( U# G$ ?

6 Q% p# I5 d1 l8 [4 |8 Q- j5、查看黑名单列表是否记录 cat /usr/local/bin/black.txt
* l) F! A% X- x" u6 ?* p) S ( h2 V5 C& ]0 w# Q/ {
6、查看黑名单列表看是否添加进去了 cat /etc/hosts.deny% p2 I8 ~1 U" Z6 ^
9 L# w6 D& f, y
" R! @" K4 z# y" w$ v1 y
# C! {& ~4 L7 S, J* a6 T- M
4 W6 X; E% k0 H9 k$ i |
|