|
centos7用的是firewall 添加单个黑名单只需要把ip添加到 /etc/hosts.deny
7 Q. }. {9 ?. u, d/ C: ~格式 sshdIP:deny0 ]1 `! b0 M, F. l( j- A7 }
vim /etc/hosts.deny 添加你要禁止的ip就可以了
/ y( P: T( [7 } E9 C( X3 \
2 u2 l) N: Y& K5 W. _* o$ L8 Z这是允许的 /etc/hosts.allow
7 B9 H* V& P' u( u2 gsshd:19.16.18.1:allow! e% K6 ?+ D+ X6 Z
sshd:19.16.18.2:allow1 f9 _5 i, F p
9 y; ~2 r' P! P# I
找了个,多次失败登录即封掉IP,防止暴力破解的脚本 亲测有效 超过5次的就加到黑名单, U3 e4 U) G: W+ H3 w6 O4 Z
, s0 J5 x) _$ l* S. U6 R4 E8 S1、编辑脚本 vim /usr/local/bin/secure_ssh.sh
0 P f5 \' \: i' U% O6 W& f$ _- #! /bin/bash
+ ^1 o8 u' ]! K; Z. Q% a4 A- a' x - cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt- W1 e! W6 w1 `+ s& y
- for i in `cat /usr/local/bin/black.txt`
* I0 O: \, e X; W3 j - do
4 m; Z0 j5 N6 f Y7 N& |) R3 r - IP=`echo $i |awk -F= '{print $1}'`
% i: O" _6 U+ x - NUM=`echo $i|awk -F= '{print $2}'`
* h( L( W9 E/ E5 A3 y6 M' @ - if [ $NUM -gt 5 ];then5 g S2 F3 O- G# J7 D' O
- grep $IP /etc/hosts.deny > /dev/null" r# C/ f) p' q J# P/ Y
- if [ $? -gt 0 ];then
a! `& A7 {* _* n& l$ \3 |/ q - echo "sshd:$IP:deny" >> /etc/hosts.deny
$ G4 e( S6 E8 b6 W - fi
. P" a( H* T% m! B& ? - fi0 Q, w# W+ ^9 E8 Z# Q1 H+ s( e
- done
复制代码 2、创建记录登录失败次数的文件 touch /usr/local/bin/black.txt' n0 v/ Y/ @! V
/ \" X5 c9 x9 B7 X+ ]1 ]
3、添加定时 5分钟执行一次 . {7 m- T3 d" l; a
& h1 K0 r: `1 p */5 * * * * sh /usr/local/bin/secure_ssh.sh% v/ u( T5 G9 [9 T. a0 `
5 }1 g1 D% z4 n) ?% j' s
4、测试 ssh登录147 ssh 192.168.1.147
" V4 G6 N/ W( S" i6 { b9 `& |- D9 R8 \& |9 ?
5、查看黑名单列表是否记录 cat /usr/local/bin/black.txt
0 ~4 K. S" B3 Z0 h; C7 w. w' F# [" w: P5 ~+ k" q- a: |5 S2 |
6、查看黑名单列表看是否添加进去了 cat /etc/hosts.deny4 f" h* A( I4 o! H- O1 \
& s U6 J- j4 p$ }- j: O: z( M) N D7 r! ~7 H/ i$ g( S; C
. ^+ v8 W I- u' h5 g4 `5 {! O
3 \, M6 p8 g1 \- n# I
|
|