最新动态
最新动态
LINUX实战:阻止远程IP进行ssh登录密码猜解

验(一):阻止远程IP进行ssh登录密码猜解

#实验概述:

UPWEN公司的Web服务器最近经常受到外部的渗透测试,系统日志log里记录了大量的远程IP尝试密码猜解的方式频繁ssh登录Web服务器;由于Web服务器的重要性,需要通过防御手段来阻止、减少密码频繁猜解的动作。

UPWEN公司的UP楠哥编写一个脚本/tmp/checkip.sh,实现每5分钟检查一次,如果发现通过ssh登录失败次数超过10次,自动将此远程IP放入tcp_Wrapper的黑名单中予以禁止防问,这样可以有效的减少频繁密码猜解。

接下来,我们查看如何具体实现。

#环境描述:

操作系统:Centos7.x、RHEL8.x。

#具体实现:

vim /tmp/checkip.sh 

#!/bin/bash

#定义休眠时间

sleeptime=300

#定义通过ssh登录失败次数

num=10

#定义黑名单文件

file=/etc/hosts.deny

#无限循环

while true;do

#将失败登录的记录逐行读入变量

lastb | grep ssh|awk -F "[ ]+" '{print $3}'|uniq -c | while read conn ip;do

 #判断失败次数

if  [ "$conn" -ge "$num" ];then

 #判断记录的IP是否存在

egrep -q ^sshd.*$ip $file

#如果不存在记录,将追加记录至指定黑名单文件

[ $? -ne 0 ] &&  echo "sshd:$ip" >> $file

fi

done

sleep $sleeptime

done 

#结果:

通过终端工具进行通过ssh登录失败次数10次以上,达到频繁的交互式登录的效果。


此时,UP楠哥所写的shell脚本监控到非法登录到10次以上,会把此远程IP送到/etc/hosts.deny中,触发了tcp_tcp_wrappers,实现无法基于ssh进行远程登录。

#知识点:

tcp_wrappers机制;

shell脚本中的while循环;

shell脚本中的if判断语句;

awk 文本处理工具。


在线QQ客服
开班咨询
考试咨询
服务热线
0532-55680853
老师微信号
微信公众号
商桥在线咨询
点击咨询