|
|
centos7用的是firewall 添加单个黑名单只需要把ip添加到 /etc/hosts.deny$ U3 ^6 y7 t! f& k- q% o5 r
格式 sshd IP:deny- ]; r6 K+ o2 d4 \1 F% j
vim /etc/hosts.deny 添加你要禁止的ip就可以了2 }& S& Q7 @6 i8 |8 g9 R
8 h' P; e3 G8 a# q2 b- _
这是允许的 /etc/hosts.allow
& k& `, m, P# H: G5 Fsshd:19.16.18.1:allow0 z; a9 U! R8 L: |/ R I+ @! F7 m
sshd:19.16.18.2:allow
$ V- G- F+ n1 o$ b
- z5 r. |1 r* ^$ K3 V5 B找了个,多次失败登录即封掉IP,防止暴力破解的脚本 亲测有效 超过5次的就加到黑名单
1 |# d) {3 N. d$ N+ K/ V' N" P; H2 a+ w! {' m; }$ M
1、编辑脚本 vim /usr/local/bin/secure_ssh.sh
( m% i$ A4 [% l7 K- #! /bin/bash
) s8 E# s& b, q - cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt
% `! s- m$ J# t* M+ B& r) r1 F - for i in `cat /usr/local/bin/black.txt`. D, M9 p) {, C
- do! {7 R; f0 x8 ?( I4 ~
- IP=`echo $i |awk -F= '{print $1}'`+ `: K. @* q/ T5 ^
- NUM=`echo $i|awk -F= '{print $2}'`
6 B- v, R3 J7 S, t8 s% k& R - if [ $NUM -gt 5 ];then5 y* s1 j: n7 F; [
- grep $IP /etc/hosts.deny > /dev/null
. z. N% }# [6 F C8 m9 U8 Z - if [ $? -gt 0 ];then
7 r/ O, F2 x N" l" _# n. R - echo "sshd:$IP:deny" >> /etc/hosts.deny9 x+ s* Y; p, P) W2 T' P
- fi
' I: U% B, T! m: k9 ]9 j - fi
" A/ l( X7 r( u% g4 \+ @+ U5 s% {4 Q - done
复制代码 2、创建记录登录失败次数的文件 touch /usr/local/bin/black.txt+ d/ M$ Z ?" {" a5 [$ J; V+ ?
4 ~! o" U' g" x. v2 A; L9 D
3、添加定时 5分钟执行一次
5 L$ e* n" \8 Z( _" v
* Z3 V r+ Z' Q% F, K* h( { */5 * * * * sh /usr/local/bin/secure_ssh.sh
7 b# k4 c+ W7 E9 s' n$ p( @
2 c& L* O$ C$ d4、测试 ssh登录147 ssh 192.168.1.147
, i- O) `, E' |# Y2 J7 m4 }
5 _/ S3 @- O9 X: g( `5、查看黑名单列表是否记录 cat /usr/local/bin/black.txt, y0 d5 r) r( h" R. V" X, l

* E/ l# A; m7 w( u8 W6、查看黑名单列表看是否添加进去了 cat /etc/hosts.deny# p# @+ D+ Y ~* v/ v8 b

$ c% c; T: l+ O* J( [( r/ e
9 {7 S1 |1 D. b& m+ _: A; I2 Z
6 z/ A3 l0 w5 O3 a0 F. f2 \! e! O* b, j* P5 l# n0 i
|
|