shell脚本-DOS攻击防范(自动屏蔽攻击IP)

这篇具有很好参考价值的文章主要介绍了shell脚本-DOS攻击防范(自动屏蔽攻击IP)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

shell脚本-DOS攻击防范(自动屏蔽攻击IP)

原理:

找出异常ip

通过获取服务器access.log日志信息,获取时间在每分钟之内每个ip访问的次数来判断此ip是否是DOS攻击。

grep $(date +%d/%b/%Y:%H:%M) 过滤得到没分钟之内的page被访问的信息

awk '{a[$1]++}END{for (i in a)print i,a[i]}' 再通过awk命令过滤得到每分钟访问page的ip和次数

示例:

[root@localhost /]# grep $(date +%d/%b/%Y:%H:%M) /usr/local/nginx/logs/access.log | awk '{a[$1]++}END{for (i in a)print i,a[i]}'
192.168.70.1 2

再限制一下次数(例如60次)只取ip:

grep $(date +%d/%b/%Y:%H:%M) /usr/local/nginx/logs/access.log | awk '{a[$1]++}END{for (i in a)if(a[i] > 60)print i}'

屏蔽异常ip

先查看iptables中有没有对该ip的屏蔽,如果没有则执行屏蔽

if [ iptables -vnL | grep -c "$IP" -eq 0 ]; then
iptables -I -s $IP -j DROP

shell脚本

#!/bin/bash
DATE=$(date +%d/%b/%Y:%H:%M)
LOG_FILE=/usr/local/nginx/logs/access.log
ABNORMAL_IP=`tail -n5000 $LOG_FILE | grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i] > 60)print i}'`
for IP in $ABNORMAL_IP; do
        if [ `iptables -vnL | grep -c "$IP"` -eq 0 ]; then
                iptables -I -s $IP -j DROP
                echo "$(date + '%F_%T') $IP" >> /tmp/drop_ip.log
        fi
done

iptables命令补充说明

查看规则

iptables [参数]
  • -L 表示查看当前表的所有规则,默认查看的是 filter 表,如果要查看 nat 表,可以加上 -t nat 参数。
  • -n 表示不对 IP 地址进行反查,加上这个参数显示速度将会加快。
  • -v 表示输出详细信息,包含通过该规则的数据包数量、总字节数以及相应的网络接口。

iptables命令语法

iptables [-t table] COMMAND [chain] MATCH -j ACTION

规则管理-COMMAND
-A, --append chain rule-specification: 追加新规则于指定链的尾部;
-I, --insert chain [rulenum] rule-specification : 插入新规则于指定链的指定位置,默认为首部;
-R, --replace chain rulenum rule-specification : 替换指定的规则为新的规则;
-D, --delete chain rulenum : 根据规则编号删除规则,用–line-numbers查看;匹配的条件或标准-MATCH

MATCH匹配条件包括通用匹配条件扩展匹配条件

通用匹配条件
-s, --source address[/mask][,…] : 检查报文的源IP地址是否符合此处指定的范围,或是否等于此处给定的地址;
-d, --destination address[/mask][,…] : 检查报文的目标IP地址是否符合此处指定的范围,或是否等于此处给定的地址;
-p, --protocol protocol : 匹配报文中的协议,可用值tcp, udp, udplite, icmp, icmpv6,esp, ah, sctp, mh 或者 “all”, 亦可以数字格式指明协议;
-i, --in-interface name : 限定报文仅能够从指定的接口流入;only for packets entering the INPUT, FORWARD and PREROUTING chains.
-o, --out-interface name : 限定报文仅能够从指定的接口流出;for packets entering the FORWARD, OUTPUT and POSTROUTING chains.

-j ACTION------操作动作,ACCEPT、DROP、REJECT

ACCEPT : 接受
DROP : 忽略
REJECT : 拒绝

iptables补充说明主要参考:[第二篇:CentOS7 iptables命令使用详情_centos7查看报文_hard-cly的博客-CSDN博客](https://blog.csdn.net/weixin_47554522/article/details/120196797?ops_request_misc={"request_id"%3A"168996413216800227431683"%2C"scm"%3A"20140713.130102334.."}&request_id=168996413216800227431683&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-120196797-null-null.142v90control,239v3insert_chatgpt&utm_term=centos7 iptables命令&spm=1018.2226.3001.4187)文章来源地址https://www.toymoban.com/news/detail-593201.html

到了这里,关于shell脚本-DOS攻击防范(自动屏蔽攻击IP)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IP风险画像:源头防范网络攻击的全面策略

    在当今数字化的时代,网络攻击呈现多样化和复杂化的趋势,为了确保网络的安全,制定全面的IP风险画像并从源头防范网络攻击是至关重要的。 ip数据云 将探讨如何通过建立IP风险画像来识别和应对潜在的威胁,从而实现更加安全可靠的网络环境。 1. IP风险画像 IP数据云

    2024年02月03日
    浏览(14)
  • [Asp.Net Core] 网站中的XSS跨站脚本攻击和防范

    漏洞说明: 跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Web脚本代码(html、javascript、css等),当用户浏览该页面时,嵌入其中的Web脚本代码会被执行,从而达到恶意攻击

    2023年04月14日
    浏览(18)
  • Linux shell脚本set -e原理(set -o errexit 命令出错退出)(|| true屏蔽前面子命令返回值)(用if判断即使命令返回值不为零也不会退出)

    set -e 是 Linux shell 中的一个选项,它的作用是在脚本执行过程中,一旦出现任何命令执行失败(返回非零的退出状态码),脚本就会立即退出。 具体原理如下: 当设置了 set -e 选项后,shell 会在每个命令执行后检查其退出状态码。 如果命令的退出状态码为非零,表示命令执行

    2024年02月22日
    浏览(14)
  • shell脚本实现批量IP地址ping测试

    假如需要用一台主机测试192.168.136.10~192.168.136.100的所有IP地址互通情况,手动一条一条显然并不现实,这时就需要脚本,可以省下很大精力。  

    2024年02月16日
    浏览(15)
  • Shell脚本中获取本机ip地址,Linux获取本地ip地址

    在 Shell 脚本中获取本机 IP 地址可以通过多种方式实现,这里介绍三种常用的方法: 1. 使用 ifconfig 命令获取本机 IP 地址 ifconfig 命令可以获取本机网卡的配置信息,包括 IP 地址。可以通过 grep 命令过滤出 IP 地址信息,再使用 awk 命令提取出具体的 IP 地址。示例代码如下:

    2024年02月11日
    浏览(21)
  • Shell自动化日志维护脚本

    简介: 系统日志对于了解操作系统的运行状况、故障排除和性能分析至关重要。然而,长期积累的日志文件可能变得庞大,影响系统性能。在这篇文章中,我们将介绍一个自动化的解决方案,使用 Bash 脚本来监控和维护系统日志文件,以确保它们的大小合理,避免磁盘爆满,

    2024年02月10日
    浏览(14)
  • shell脚本自动化部署tomcat

    在一个月黑风高的晚上,在公司把程序打包好后,发给现场,结果又被告知不能登录命令行界面部署程序(tomcat部署),只能提供一个shell脚本实现自动化部署,于是拿出我0.5年的开发经验,10分钟写了个shell脚本给到现场 我们先想想tomcat部署一个程序需要经过几个步骤: 1

    2024年02月10日
    浏览(16)
  • DoS攻击之Syn洪泛攻击原理及防御

    目录 0x1 DoS攻击 0x2 TCP协议三次握手 0x3 Syn攻击原理 3.1 SynFlood攻击方法 3.2 SynFlood攻击的防范 0x4 结语 DoS(Denial of Service)攻击,即拒绝服务攻击。其攻击手段是通过向攻击对象发送大量恶意数据包的方式,来大量占用目标主机的资源。使得目标主机不得不花费多数的资源来处理

    2024年02月04日
    浏览(19)
  • Dos和DDos攻击

    Denialof Service拒绝服务,利用程序漏洞或一对一资源耗尽的,攻击有计算机网络宽带攻击和连通性攻击 分类: D网络: 耗尽目标网络带宽资源    如: ICMP Flood, UDP Flood D协议: 攻击协议漏洞发起的拒绝服务攻击   如 : Syn Flood、Ping of Death、ARP、DNS、 802.11 、 SSL D应用: 大量频

    2024年02月08日
    浏览(13)
  • shell脚本监控ip和端口的运行状态并触发邮件告警

    ping端口shell代码 ping不通发邮件通知 直到ping通再次发送成功邮件 避免加入定时任务重复执行,须执行完本次才能继续下次,所以把上面代码加入下面代码中,在定时任务中执行下面代码判断代码是否在运行 十分钟执行一次 定时任务相关命令 安装邮件客户端 配置邮件mail.r

    2024年02月10日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包