一键屏蔽恶意IP!保护你的服务器免受攻击

作者头像

在当今互联网高速发展的时代,服务器安全显得尤为重要。恶意访问、SSH暴力破解等网络安全威胁层出不穷,如何有效地保护我们的服务器免受攻击成为了每个运维人员和网络管理员必须面对的问题。今天,阿影就来分享一些实用的脚本,帮助你轻松屏蔽恶意IP,提升服务器的安全性!

image.png

一、屏蔽每分钟访问超过200的IP

面对恶意的频繁访问,我们可以采取屏蔽IP的策略。以下是通过分析Nginx访问日志来屏蔽恶意IP的脚本:

#!/bin/bash  

DATE=$(date +%d/%b/%Y:%H:%M)  

# 通过tail读取最新的5000行Nginx访问日志,筛选出当前时间的记录,并统计每个IP的访问次数  
# 若某个IP的访问次数超过100次(可根据实际需求调整),则视为异常IP  
ABNORMAL_IP=$(tail -n5000 access.log | grep $DATE | awk '{a[$1]++}END{for(i in a)if(a[i]>100)print i}')  

# 遍历异常IP列表,检查iptables规则中是否已存在该IP的屏蔽规则  
# 若不存在,则添加屏蔽规则,阻止该IP的访问  
for IP in $ABNORMAL_IP; do  
    if [ $(iptables -vnL | grep -c "$IP") -eq 0 ]; then  
        iptables -I INPUT -s $IP -j DROP  
    fi  
done

脚本解析:

  1. 首先,我们通过date命令获取当前的日期和时间,以便后续筛选日志。

  2. 使用tail命令读取Nginx访问日志的最新5000行,通过grepawk筛选出当前时间的记录,并统计每个IP的访问次数。若某个IP的访问次数超过设定的阈值(这里为100次),则将其视为异常IP。

  3. 遍历异常IP列表,检查iptables规则中是否已存在该IP的屏蔽规则。若不存在,则使用iptables命令添加屏蔽规则,阻止该IP的访问。

二、屏蔽每分钟SSH尝试登录超过10次的IP

对于SSH暴力破解等恶意登录行为,我们也可以采取类似的策略进行屏蔽。以下是通过分析SSH登录日志来屏蔽恶意IP的脚本:

方法1:通过lastb获取登录状态

由于篇幅限制,这里仅展示部分关键代码。你可以通过lastb命令获取最近的登录记录,然后筛选出当前时间的记录,并统计每个IP的登录尝试次数。若某个IP的登录尝试次数超过设定的阈值(如10次),则将其视为异常IP,并进行屏蔽。

方法2:通过日志获取登录状态

对于使用OpenSSH的服务器,你可以通过分析/var/log/auth.log日志来屏蔽恶意IP。以下是相应的脚本示例:

#!/bin/bash  

DATE=$(date +"%b %d %H")  

# 通过tail读取最新的10000行SSH登录日志,筛选出当前时间的记录,并统计每个IP的登录尝试次数  
# 若某个IP的登录尝试次数超过5次(可根据实际需求调整),则视为异常IP  
ABNORMAL_IP="$(tail -n10000 /var/log/auth.log | grep "$DATE" | awk '/Failed/{a[$(NF-3)]++}END{for(i in a)if(a[i]>5)print i}')"  

# 遍历异常IP列表,检查iptables规则中是否已存在该IP的屏蔽规则  
# 若不存在,则添加屏蔽规则,并记录操作日志  
for IP in $ABNORMAL_IP; do  
    if [ $(iptables -vnL | grep -c "$IP") -eq 0 ]; then  
        iptables -A INPUT -s $IP -j DROP  
        echo "$(date +"%F %T") - iptables -A INPUT -s $IP -j DROP" >> ~/ssh-login-limit.log  
    fi  
done

脚本解析:

  1. 与前面类似,我们首先通过date命令获取当前的日期和时间。

  2. 使用tail命令读取SSH登录日志的最新10000行,通过grepawk筛选出当前时间的记录,并统计每个IP的登录尝试次数。若某个IP的登录尝试次数超过设定的阈值(这里为5次),则将其视为异常IP。

  3. 遍历异常IP列表,检查iptables规则中是否已存在该IP的屏蔽规则。若不存在,则使用iptables命令添加屏蔽规则,阻止该IP的访问,并将操作记录到日志文件中。

总结:

通过以上两个脚本示例,你可以轻松地屏蔽那些频繁访问或尝试SSH登录的恶意IP地址。这些脚本可以根据你的实际需求进行调整和优化。同时,请注意定期检查和更新你的iptables规则以及相关的日志文件以确保服务器的安全。在网络安全日益重要的今天希望这些实用的小技巧能帮助你更好地保护你的服务器免受攻击!

 

本站资源仅供学习交流使用请勿商业运营,严禁使用模板&源码从事违法,侵权等非法活动!如链接失效内容有误,请到评论反馈。

免费声明

  1. 本网站的文章内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ:304906607进行删除处理。
  2. 文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)。
  3. 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
  4. 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
  5. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
  6. 本站永久网址:https://www.aybk.cn
迅速找出占用CPU和内存资源的“元凶”进程
« 上一篇 04-30
2024 Google SEO【流量下降的原因和解法】
下一篇 » 04-29

发表评论

请先登录后才能发表评论

没有更多评论了

个人信息

HI好朋友 ! 请登录
开通会员,享受下载全站资源特权。
百度一下

随便看看

大家都在看

2025年 乙巳年 蛇年
13 : 36 : 00
公历日期
9月26日
农历日期
八月初五
星期
星期五
下午好
金秋时节,愿您收获满满
距离国庆节还有5天
登陆
还没有账号?立即注册
点击按钮进行验证
忘记密码?
登陆
忘记密码
已经有账号?马上登陆
获取验证码
重新获取(60s)
点击按钮进行验证
重置密码
注册
已经有账号?马上登陆
获取验证码
重新获取(60s)
点击按钮进行验证
立即注册