#!/bin/bash
# 获取ESTABLISHED连接数最多的前10个ip并写入临时文件/tmp/DDoS/temp_dropip,排除了内部ip段192.168|127.0开头的.通过for循环将temp_dropip里面的ip通过iptables全部drop掉,然后写到日志文件/var/log/ddos
# ESTABLISHED的意思是建立连接。表示两台机器正在通信
# chmod +x /root/bin/DDoS.sh
# 计时器*/1 * * * * /root/bin/DDoS.sh
ESTABLISHED_NUM=4 #一分钟内的还在连接的次数
TIME_LENGTH=5 #当前时间以前多少分钟
CURRENT=$(date "+%Y-%m-%d %H:%M:%S")
TIMESTAMP=$(date -d "$CURRENT" +%s)
t2=$(($TIMESTAMP + $TIME_LENGTH * 60))
DIR="/tmp/DDoS/"
if [ ! -d $DIR ]; then
mkdir -p $DIR
fi
SOURCE="${DIR}dropip.txt"
TEMP_SOURCE="${DIR}temp_dropip.txt"
DEL_TARGET="${DIR}target.txt"
TMP="${DIR}temp.txt"
#校验ip是否合法
function check_ip() {
IP=$1
if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
FIELD1=$(echo $IP | cut -d. -f1)
FIELD2=$(echo $IP | cut -d. -f2)
FIELD3=$(echo $IP
DDos的防御-(shell2)
最新推荐文章于 2023-12-13 19:42:25 发布