在 Linux 中写脚本来实时检测 DDoS 攻击事件,可以使用 netstat 命令来查看网络连接信息,并通过解析输出结果来判断是否有 DDoS 攻击。
下面是一个简单的脚本示例,它会每隔一段时间执行 netstat 命令,并分析输出结果来判断是否有 DDoS 攻击。如果有攻击,则会将攻击时间、被攻击的 IP 地址、时间、攻击报文等信息写入 /home 目录下的日志文件中。
``` #!/bin/bash
检测 DDoS 攻击的时间间隔(单位:秒)
INTERVAL=10
日志文件的路径
LOG_FILE="/home/ddos.log"
while true do # 执行 netstat 命令,并输出到临时文件 netstat -an > /tmp/netstat.log
# 分析临时文件中的内容,判断是否有 DDoS 攻击
# 这里假设如果有超过 1000 个 ESTABLISHED 状态的连接,就认为是 DDoS 攻击
count=$(grep ESTABLISHED /tmp/netstat.log | wc -l)
if [ $count -gt 1000 ]
then
# 获取当前时间
attack_time=$(date)
# 获取被攻击的 IP 地址和端口号
attacked_ip=$(grep ESTABLISHED /tmp/netstat.log | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -n 1 | awk '{print $2}')
attack_port=$(grep ESTABLISHED /tmp/netstat.log | awk '{print $5}' | awk -F: '{print $2}'