国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux系統防CC攻擊自動拉黑IP增強版(Shell腳本)

2024-08-28 00:01:11
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Linux系統防CC攻擊自動拉黑IP增強版(Shell腳本),需要的朋友可以參考下

前天沒事寫了一個防CC攻擊的Shell腳本,沒想到這么快就要用上了,原因是因為360網站衛士的緩存黑名單突然無法過濾后臺,導致WordPress無法登錄!雖然,可以通過修改本地hosts文件來解決這個問題,但是還是想暫時取消CDN加速和防護來測試下服務器的性能優化及安全防護。

前天寫的Shell腳本是加入到crontab計劃任務執行的,每5分鐘執行一次,今天實際測試了下,可還是可以用的,但是感覺5分鐘時間有點過長,無法做到嚴密防護。于是稍微改進了下代碼,現在簡單的分享下!

一、Shell代碼

#!/bin/bash#Author:ZhangGe#Desc:Auto Deny Black_IP Script.#Date:2014-11-05#取得參數$1為并發閾值,若留空則默認允許單IP最大100并發(實際測試發現,2M帶寬,十來個并發服務器就已經無法訪問了!)if [[ -z $1 ]];then    num=50else     num=$1fi#巧妙的進入到腳本工作目錄cd $(cd $(dirname $BASH_SOURCE) && pwd)#請求檢查、判斷及拉黑主功能函數function check(){    iplist=`netstat -an |grep ^tcp.*:80|egrep -v 'LISTEN|127.0.0.1'|awk -F"[ ]+|[:]" '{print $6}'|sort|uniq -c|sort -rn|awk -v str=$num '{if ($1>str){print $2}}'`    if [[ ! -z $iplist ]];        then        >./iplist/black_ip.txt        for black_ip in $iplist        do            #白名單過濾中已取消IP段的判斷功能,可根據需要自行修改以下代碼(請參考前天寫的腳本)            #exclude_ip=`echo $black_ip | awk -F"." '{print $1"."$2"."$3}'`            #grep -q $exclude_ip ./white_ip.txt            grep -q $black_ip ./white_ip.txt            if [[ $? -eq 0 ]];then                echo "$black_ip (white_ip)" >>./black_ip.txt            else                echo $black_ip >>./black_ip.txt                   iptables -nL | grep $black_ip ||(iptables -I INPUT -s $black_ip -j DROP & echo "$black_ip `date +%Y-%m-%H:%M:%S`">>./iplist/denylog.txt & echo 1 >./sendmail)            fi        done        #存在并發超過閾值的單IP就發送郵件        if [[ `cat ./sendmail` == 1 ]];then sendmsg;fi    fi}#發郵件函數function sendmsg(){    netstat -nutlp | grep "sendmail" >/dev/null 2>&1 || /etc/init.d/sendmail start >/dev/null 2>&1    echo -e "From: 發郵件地址@qq.com/nTo:收郵件地址@qq.com/nSubject:Someone Attacking your system!!/nIts Ip is" >./message    cat ./black_ip.txt >>./message    /usr/sbin/sendmail -f 發郵件地址@qq.com -t 收郵件地址@qq.com -i <./message    >./sendmail}#間隔10s無限循環檢查函數while truedo     check    #每隔10s檢查一次,時間可根據需要自定義    sleep 10done

二、執行腳本
將以上代碼保存為deny_blackip.sh之后,使用如下命令后臺執行腳本(后面的50表示并發數,可自行調整):

復制代碼 代碼如下:
nohup ./deny_blackip.sh 50 &

執行后會出現如下信息:

[root@Mars_Server iptables]# nohup ./deny_blackip.sh 50 & [1] 23630[root@Mars_Server iptables]# nohup: ignoring input and appending output to `nohup.out'

表示如果腳本產生輸出信息,將會寫入到nohup.out文件,可以看到當前目錄已經生成了一個空的nohup.out:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 无棣县| 汤原县| 瑞丽市| 永福县| 杨浦区| 桦甸市| 砀山县| 和顺县| 大新县| 修文县| 七台河市| 定结县| 永和县| 彰武县| 邯郸县| 盘山县| 嵩明县| 周宁县| 罗源县| 盘锦市| 舞钢市| 白城市| 诏安县| 古浪县| 周口市| 蒙自县| 武清区| 洛浦县| 安国市| 双鸭山市| 长泰县| 大悟县| 绥德县| 独山县| 商城县| 泰来县| 蕉岭县| 祁门县| 琼中| 大余县| 邵阳市|