|
|
centos7用的是firewall 添加单个黑名单只需要把ip添加到 /etc/hosts.deny
+ h2 F% e& `& L$ y3 Y格式 sshd IP:deny
- A; w3 Y& g& _. b: o8 q8 A, K vim /etc/hosts.deny 添加你要禁止的ip就可以了- b3 `; E/ i8 v9 E1 |. L
4 ^. h+ {! U- ]
这是允许的 /etc/hosts.allow / D0 ?1 z/ x2 r7 j
sshd:19.16.18.1:allow
! g0 @' I- ]& Z% |sshd:19.16.18.2:allow. b( S$ Z9 ?- M- L- o% o1 U
. T3 ?9 [+ p, G2 B7 o& a9 M4 m* g找了个,多次失败登录即封掉IP,防止暴力破解的脚本 亲测有效 超过5次的就加到黑名单( R: V$ W/ O" y0 U) V; H" c
; w7 U8 ^) y. W
1、编辑脚本 vim /usr/local/bin/secure_ssh.sh
7 D! p3 x S( h: L: l" \- #! /bin/bash3 L4 [) T! T' r- a" u
- cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt* ?2 G$ I% _' G" u) q
- for i in `cat /usr/local/bin/black.txt`4 e) V \7 [: j/ r* X; e
- do
( g% J2 T7 j4 @) l" `! S6 p% V - IP=`echo $i |awk -F= '{print $1}'`' ^$ g6 N* r$ ~* u6 H
- NUM=`echo $i|awk -F= '{print $2}'`
+ ~2 ^8 M. l9 L) X& k& J- \ - if [ $NUM -gt 5 ];then' ?' A9 s# L* T+ M0 g3 M' G
- grep $IP /etc/hosts.deny > /dev/null
' ~, N/ h4 |4 F1 l* @% |+ ~ - if [ $? -gt 0 ];then) q5 q$ w1 b( [, H& x' m
- echo "sshd:$IP:deny" >> /etc/hosts.deny, w9 p. ~/ J' \0 _% T0 _9 v# E
- fi
6 @9 u+ Q; d' l5 O9 \ - fi; a6 m, q" Y. y0 O
- done
复制代码 2、创建记录登录失败次数的文件 touch /usr/local/bin/black.txt
- D! Q( J) @7 J1 i, C( ~6 [& {& a8 I8 l# z6 u
3、添加定时 5分钟执行一次 4 A% \* D' D" ]3 [6 D. u5 K
$ T" p) H0 E9 j" f1 {& h: A
*/5 * * * * sh /usr/local/bin/secure_ssh.sh
6 A, N5 c. c) k- D9 G/ b/ N _; J+ L4 q6 o! ~% r
4、测试 ssh登录147 ssh 192.168.1.147
5 E5 Q: P1 `! Z- G3 C0 R
6 y' K& x+ |4 u% z+ v4 A) N5、查看黑名单列表是否记录 cat /usr/local/bin/black.txt) R# r- U1 d' b$ _+ q/ `& T
% ?8 H! h( M: M6 v3 s# }# [
6、查看黑名单列表看是否添加进去了 cat /etc/hosts.deny
, F- s$ N0 R( c
& y' e! A% M, z i" l0 p. s+ F" Z
4 F, K2 ]7 ~' R3 U4 e7 Z% w$ ~$ i( a3 L/ y; K: j& \8 K; H
. ]8 n \( \5 S9 m$ _4 _' ~ |
|