首页 运维 Linux 查看内容

Centos7防SSH暴力破解shell脚本

2022-3-6 10:52 1944 0

摘要: 什么是暴力破解?简单来说就是对一个服务器进行无数次尝试登陆,并用不同的密码进行登陆直到可以登陆成功。暴力破解的基本步骤可以分为以下几步:1)找到对应的Linux服务器ip地址2)扫描端口号:22 nmap扫描端口3) ...
关键词: List 破解 ip 暴力 firewall 脚本 firewalld 登录 登陆 进行

什么是暴力破解?简单来说就是对一个服务器进行无数次尝试登陆,并用不同的密码进行登陆直到可以登陆成功。暴力破解的基本步骤可以分为以下几步:

1)找到对应的Linux服务器ip地址

2)扫描端口号:22 nmap扫描端口

3)开始暴力破解 :一般破解你的root 密码,登录你的服务器,进行破坏、盗取你的重要的数据。

脚本内容如下:

cat auto_deny_ip_login.sh

#!/bin/bash
# Date:20220305
# centos7
# 自动检测IP暴力破解,禁止IP登录SSHD服务

Secure_File="/var/log/secure"
Deny_File="/etc/firewalld/zones/public.xml"
Start_Time=$(date +%Y%m%d%H%M)
IP_List="/tmp/firewalld.txt"

# 匹配IP次数
IPADDR=$(grep -i "failed" /var/log/secure |egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" |sort -nr |uniq -c|awk '$1>=5 {print $2}')
[ -f ${IP_List} ] || touch ${IP_List}
for i in $(echo -n ${IPADDR})
do
	# IP失败次数达到5就加入防火墙Firewalld禁止登录ssh服务两个小时
	grep -wq ${i} ${IP_List}
	if [ $? -ne 0 ];then
		firewall-cmd --zone=public --add-rich-rule="rule family=ipv4 source address="${i}" service name='ssh' drop" --permanent
		firewall-cmd --reload
		echo "${i} #${Start_Time}" >>${IP_List}
	else
		# 查询IP封停时间,大于等于两小时就删除此IP
		End_Time=$(date +%Y%m%d%H%M)
		IP_ADDR=$(egrep -v "^$|^#" ${IP_List} |awk -F'#' '{print $1,$2}' |awk '{if('${End_Time}'>=$2+200) print $1}')
		for j in $(echo -n ${IP_ADDR})
		do
			if [ ! -z ${j} ];then
				firewall-cmd --permanent --remove-rich-rule="rule family=ipv4 source address="${IP_ADDR}" service name='ssh' drop"
				firewall-cmd --reload
				sed -i "/${IP_ADDR}/d" ${IP_List} 
			fi
		done
	fi
done

# 保存脚本文件到把脚本/usr/local/bin/

添加定时任务执行:

crontab -e

*/1 * * * * sh /usr/local/bin/auto_deny_ip_login.sh

本文出处: https://www.toutiao.com/a7071638599279608355/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部