当前位置: 首页 > wzjs >正文

淮安市建设工程初级职称申报网站张文宏说上海可能是疫情爆发

淮安市建设工程初级职称申报网站,张文宏说上海可能是疫情爆发,微网站如何做微信支付宝支付宝支付,深圳龙华区鹭湖社区简介 DDoS (分布式拒绝服务攻击)是一种恶意的网络攻击,旨在通过占用目标系统的资源,使其无法提供正常的服务。在DDoS攻击中,攻击者通常控制大量的被感染的计算机或其他网络设备,同时将它们协调起来向目标系…

简介

DDoS (分布式拒绝服务攻击)是一种恶意的网络攻击,旨在通过占用目标系统的资源,使其无法提供正常的服务。在DDoS攻击中,攻击者通常控制大量的被感染的计算机或其他网络设备,同时将它们协调起来向目标系统发起海量的请求,超出其处理能力范围,导致服务不可用。
防DDoS脚本指的是用于识别和阻止DDoS攻击的自动化脚本。这些脚本可以运行在网络设备如防火墙、入侵检测系统(IDS)等中,也可以在服务器上运行。

脚本编写

#!/bin/bash# 配置参数
LOG_DIR="/var/log/ddos"
ERROR_LOG="$LOG_DIR/error.log"
DETECTION_LOG="$LOG_DIR/detection.log"
PREVENTION_LOG="$LOG_DIR/prevention.log"
THRESHOLD=100   # 定义攻击阈值
BLOCK_TIME=600  # 定义阻止攻击者的时间(秒)
ARCHIVE_DIR="/var/log/ddos/archive"  # 存档目录# 创建日志目录
mkdir -p "$LOG_DIR"
mkdir -p "$ARCHIVE_DIR"# 检查是否以root用户运行
if [ "$(id -u)" != "0" ]; thenecho "This script must be run as root." >&2exit 1
fi# 检查ufw是否可用
if ! command -v ufw &> /dev/null; thenecho "ufw command not found. Please install ufw." >&2exit 1
fi# 主循环
while true; do# 获取当前网络流量CURRENT_TRAFFIC=$(netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n | tail -n 1 | awk '{print $1}')# 判断是否超过阈值if [ "$CURRENT_TRAFFIC" -gt "$THRESHOLD" ]; then# 记录攻击信息TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S")ATTACKER_IP=$(netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n | tail -n 1 | awk '{print $2}')echo "$TIMESTAMP - Detected DDoS attack from $ATTACKER_IP with $CURRENT_TRAFFIC connections" >> "$DETECTION_LOG"# 阻止攻击者的IPufw deny from "$ATTACKER_IP"# 记录阻止信息echo "$TIMESTAMP - Blocked IP: $ATTACKER_IP" >> "$PREVENTION_LOG"# 等待一段时间后解封IPsleep "$BLOCK_TIME"ufw delete deny from "$ATTACKER_IP"echo "$TIMESTAMP - Unblocked IP: $ATTACKER_IP" >> "$PREVENTION_LOG"fi# 每天轮转一次日志if [ "$(date '+%H%M')" == "0000" ]; then# 将当前日志归档ARCHIVE_FILE="$ARCHIVE_DIR/ddos_$(date +'%Y%m%d').log.gz"cat "$DETECTION_LOG" "$PREVENTION_LOG" >> "$ARCHIVE_FILE"# 清空当前日志> "$DETECTION_LOG"> "$PREVENTION_LOG"# 压缩存档文件gzip "$ARCHIVE_FILE"fi# 每分钟轮询一次sleep 60
done

脚本释义

# 配置参数
LOG_DIR="/var/log/ddos"
ERROR_LOG="$LOG_DIR/error.log"
DETECTION_LOG="$LOG_DIR/detection.log"
PREVENTION_LOG="$LOG_DIR/prevention.log"
THRESHOLD=100   # 定义攻击阈值
BLOCK_TIME=600  # 定义阻止攻击者的时间(秒)
ARCHIVE_DIR="/var/log/ddos/archive"  # 存档目录

这一段定义了脚本中使用的一些配置参数,例如日志目录、日志文件路径、攻击阈值、阻止攻击者的时间、以及存档目录。

# 创建日志目录
mkdir -p "$LOG_DIR"
mkdir -p "$ARCHIVE_DIR"

这里使用 mkdir -p 命令来创建日志目录和存档目录。 -p 参数会确保如果目录不存在的话,也会递归地创建它。

# 检查是否以root用户运行
if [ "$(id -u)" != "0" ]; thenecho "This script must be run as root." >&2exit 1
fi

这个部分检查脚本是否以 root 用户的身份运行。如果不是,脚本会输出错误信息并退出。

# 检查ufw是否可用
if ! command -v ufw &> /dev/null; thenecho "ufw command not found. Please install ufw." >&2exit 1
fi

这个部分检查系统是否安装了 ufw 命令。如果没有安装,脚本会输出错误信息并退出。

# 主循环
while true; do

脚本进入一个无限循环,用于不断地监测网络流量。

    # 获取当前网络流量CURRENT_TRAFFIC=$(netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n | tail -n 1 | awk '{print $1}')

这一行使用 netstat 命令获取当前网络连接的信息,然后通过一系列的 awk、cut、sort 等命令进行处理,最终得到当前网络流量的连接数。

    # 判断是否超过阈值if [ "$CURRENT_TRAFFIC" -gt "$THRESHOLD" ]; then

这一行判断当前网络流量是否超过了预设的阈值。

        # 记录攻击信息TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S")ATTACKER_IP=$(netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n | tail -n 1 | awk '{print $2}')echo "$TIMESTAMP - Detected DDoS attack from $ATTACKER_IP with $CURRENT_TRAFFIC connections" >> "$DETECTION_LOG"

如果检测到攻击,脚本会获取当前时间戳和攻击者的IP地址,然后将攻击信息记录到检测日志中。

     # 阻止攻击者的IPufw deny from "$ATTACKER_IP"

使用 ufw 命令阻止攻击者的IP。

        # 记录阻止信息echo "$TIMESTAMP - Blocked IP: $ATTACKER_IP" >> "$PREVENTION_LOG"

将阻止信息记录到防攻击日志中。

        # 等待一段时间后解封IPsleep "$BLOCK_TIME"ufw delete deny from "$ATTACKER_IP"echo "$TIMESTAMP - Unblocked IP: $ATTACKER_IP" >> "$PREVENTION_LOG"

脚本会等待一段时间后,解封被阻止的IP,并将解封信息记录到防攻击日志中。

    # 每天轮转一次日志if [ "$(date '+%H%M')" == "0000" ]; then

这一段判断是否到了每天的午夜时分(00:00),如果是,则进行日志轮转。

        # 将当前日志归档ARCHIVE_FILE="$ARCHIVE_DIR/ddos_$(date +'%Y%m%d').log.gz"cat "$DETECTION_LOG" "$PREVENTION_LOG" >> "$ARCHIVE_FILE"

将当前的检测日志和防攻击日志合并,并将合并后的日志归档到指定的存档文件中。

        # 清空当前日志> "$DETECTION_LOG"> "$PREVENTION_LOG"

清空当前的检测日志和防攻击日志。

        # 压缩存档文件gzip "$ARCHIVE_FILE"fi

对归档文件进行压缩。

    # 每分钟轮询一次sleep 60
done

脚本结束。整个脚本会以每分钟一次的频率运行,不断监测网络流量,处理攻击,进行日志轮转。这是一个简单的示例,实际环境中可能需要根据需求进一步定制和优化。
在这里插入图片描述

http://www.dtcms.com/wzjs/287614.html

相关文章:

  • 第一源码网seo人才招聘
  • 可信的邢台做网站今日国内新闻最新消息10条
  • 上海公司车牌价格杭州哪家seo公司好
  • php网站开发练手项目网站优化平台
  • 软件工程中做视频网站百度网址大全下载到桌面
  • 怎么增加网站收录站内seo是什么意思
  • wordpress 字体不好看兰州seo优化
  • 免费学生网页制作百度seo排名原理
  • 长沙企业网站bt磁力猪
  • wordpress 用户量上限应用关键词优化
  • 网站备案号在哪里查询网络营销渠道策略有哪些
  • 棋牌网站制作价格宁波seo营销
  • 佛山专业做网站的公司百度旧版本
  • 百度电话客服24小时百度网站排名优化软件
  • 绵阳网站建设价格海外推广是做什么的
  • 医疗网站做药品是干嘛链接提取视频的网站
  • 做网站 侵权友情链接官网
  • 顺义专业建站公司2023年新闻热点事件
  • 设计师招聘网站推荐代运营套餐价格表
  • 成功的wordpress网站百度怎么做关键词优化
  • 淘宝上做网站余姚网站如何进行优化
  • 淮北哪些企业做网站临沂网站建设方案服务
  • 贵州城乡建设官方网站八宿县网站seo优化排名
  • 目前最好用的云电脑排行南昌seo优化公司
  • dedecms做视频网站seo外包公司怎么样
  • 辽阳网站建设公司成品网站源码在线看
  • 莆田网站建设电话应用下载app排行榜
  • 网站建设促销活动今天疫情最新消息
  • 文本文档做网站怎么加图片长沙免费建站网络营销
  • 吉林北京网站建设外贸出口平台网站