什么是暴力破解?简单来说就是对一个服务器进行无数次尝试登陆,并用不同的密码进行登陆直到可以登陆成功。暴力破解的基本步骤可以分为以下几步:
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 --zoncf挑战外挂e=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 fidone
# 保存脚本文件到把脚本/usr/local/bin/
添加定时任务执行:
crontab -e
*/1 * * * * sh /usr/local/cf卡盟bin/auto_deny_ip_login.sh