一次性讲完,用linux编写一个通用的实时在后台监测防止ddos攻击脚本,每20秒钟检测一次(shell变量配置),直接给出完整的案例,无需解释,限制每个ip每秒钟和服务器建立的最大TCP连接数(sh...

以下是一个示例脚本,注意这仅仅是一个示例,并不能直接使用,需要根据实际情况进行修改:

#!/bin/bash

# 配置参数
check_interval=20 # 检测间隔,单位为秒
max_conn=10 # 每秒最大连接数
log_dir="/home/ddos" # 日志目录
log_size=100 # 日志文件大小,单位为MB
ban_time=3600 # 封禁时长,单位为秒

# 循环检测
while :
do
    # 获取当前时间
    now=`date +%s`

    # 获取每个 IP 每秒建立的 TCP 连接数
    # -n 指定时间间隔,单位为秒,此处为 1 秒
    # -z 指定统计时间粒度,单位为秒,此处为 1 秒
    # -s 指定过滤器,此处为 tcp 连接建立
    # -v 指定统计值,此处为 ip 数量
    # -x 指定过滤器补充信息,此处为端口
    # -i 指定网卡
    # -o 指定输出格式,此处为 CSV 格式
    # 以上命令会输出如下数据:
    # 时间戳,端口,IP地址,数量
    # 其中时间戳是从 1970-01-01 00:00:00 开始的秒数
    conn_data=`tcpdump -n -z 1 -s 0 -v -x -i eth0 -oX - 'tcp[tcpflags] & (tcp-syn) != 0' | awk -F"," '{print $1","$5","$6","$10}'`

    # 遍历每个 IP
    while read line
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值