最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2015年04月06日 23:00:40   作者:張戈  
這篇文章主要介紹了Linux系統(tǒng)防CC攻擊自動拉黑IP增強(qiáng)版(Shell腳本),需要的朋友可以參考下

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

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

一、Shell代碼

#!/bin/bash
#Author:ZhangGe
#Desc:Auto Deny Black_IP Script.
#Date:2014-11-05
#取得參數(shù)$1為并發(fā)閾值,若留空則默認(rèn)允許單IP最大100并發(fā)(實際測試發(fā)現(xiàn),2M帶寬,十來個并發(fā)服務(wù)器就已經(jīng)無法訪問了!)
if [[ -z $1 ]];then
    num=50
else 
    num=$1
fi

#巧妙的進(jìn)入到腳本工作目錄
cd $(cd $(dirname $BASH_SOURCE) && pwd)

#請求檢查、判斷及拉黑主功能函數(shù)
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段的判斷功能,可根據(jù)需要自行修改以下代碼(請參考前天寫的腳本)
            #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
        #存在并發(fā)超過閾值的單IP就發(fā)送郵件
        if [[ `cat ./sendmail` == 1 ]];then sendmsg;fi
    fi
}

#發(fā)郵件函數(shù)
function sendmsg(){
    netstat -nutlp | grep "sendmail" >/dev/null 2>&1 || /etc/init.d/sendmail start >/dev/null 2>&1
    echo -e "From: 發(fā)郵件地址@qq.com\nTo:收郵件地址@qq.com\nSubject:Someone Attacking your system!!\nIts Ip is" >./message
    cat ./black_ip.txt >>./message
    /usr/sbin/sendmail -f 發(fā)郵件地址@qq.com -t 收郵件地址@qq.com -i <./message
    >./sendmail
}

#間隔10s無限循環(huán)檢查函數(shù)
while true
do 
    check
    #每隔10s檢查一次,時間可根據(jù)需要自定義
    sleep 10
done

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

復(fù)制代碼 代碼如下:

nohup ./deny_blackip.sh 50 &

執(zhí)行后會出現(xiàn)如下信息:

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

表示如果腳本產(chǎn)生輸出信息,將會寫入到nohup.out文件,可以看到當(dāng)前目錄已經(jīng)生成了一個空的nohup.out:

[root@Mars_Server iptables]# ll nohup.out
-rw------- 1 root root 0 Nov 5 21:15 nohup.out

好了,現(xiàn)在你執(zhí)行執(zhí)行ps aux 應(yīng)該可以找到如下進(jìn)程:

root   23630 0.0 0.2  5060 1224 pts/0  S  21:15  0:00 /bin/bash ./deny_blackip.sh
root   23964 0.0 0.0  4064  508 pts/0  S  21:19  0:00 sleep 10

①、模擬CC攻擊的服務(wù)器截圖:


②、被CC攻擊的服務(wù)器截圖:

③、攻擊IP被拉黑后的報警郵件:

測試時,模擬55個并發(fā)攻擊了20s,立馬就被拉黑了,效果很明顯!

四、附加說明

①、腳本發(fā)郵件需要安裝sendmail,若未安裝請執(zhí)行yum -y install sendmail安裝并啟動即可;

②、若要停止后臺運(yùn)行的腳本,只要使用ps aux命令找到該腳本的pid線程號,然后執(zhí)行kill -9 pid號即可結(jié)束;

③、關(guān)于腳本的單IP并發(fā)限制,我實際測試同時打開博客多個頁面并持續(xù)刷新,頂多也就產(chǎn)生十來個并發(fā),所以單IP超過50個并發(fā)就已經(jīng)有很大的問題了!當(dāng)然,文章的閾值設(shè)為50也只是建議值,你可以根據(jù)需求自行調(diào)整;

④、寫這個腳本,主要是為了彌補(bǔ)用crontab執(zhí)行時間間隔最低只能是1分鐘的不足,可以讓CC防護(hù)更嚴(yán)密,甚至每隔1S執(zhí)行一次!雖說腳本不怎么占用資源,不過還是建議10s執(zhí)行一次為佳,不用太過極端是吧?

⑤、對于白名單過濾,只要將白名單IP保存到腳本同一目錄下的white_ip.txt文件中即可,若發(fā)現(xiàn)攻擊IP在白名單中,腳本不會直接拉黑,而是發(fā)一封郵件給你,讓你自己判斷這個白名單攻擊你是為毛?如果白名單需要支持IP段,請參考我前天寫的腳本即可。

就啰嗦這么多,主要還是自己用,然后分享出來給有需要的人一些參考,個人vps服務(wù)器雖說很少有人攻擊,但是基本的安裝防護(hù)還是必須要做的!希望本文對你有所幫助!

原文:http://zhangge.net/4649.html

相關(guān)文章

  • 詳解如何在 Linux 啟動時自動執(zhí)行命令或腳本

    詳解如何在 Linux 啟動時自動執(zhí)行命令或腳本

    這篇文章主要介紹了詳解如何在 Linux 啟動時自動執(zhí)行命令或腳本,主要有兩種方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • Linux 中如何切換相同程序的不同版本

    Linux 中如何切換相同程序的不同版本

    這篇文章主要介紹了 Linux 中如何切換相同程序的不同版本,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08
  • 詳解Linux iptables 命令

    詳解Linux iptables 命令

    iptables 是 Linux 管理員用來設(shè)置 IPv4 數(shù)據(jù)包過濾條件和 NAT 的命令行工具。這篇文章較詳細(xì)的給大家介紹了Linux iptables 命令,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-07-07
  • Linux下截屏并編輯的最佳工具

    Linux下截屏并編輯的最佳工具

    今天小編就為大家分享一篇關(guān)于Linux下截屏并編輯的最佳工具,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Linux QT Kit丟失及Version為空問題解決方案

    Linux QT Kit丟失及Version為空問題解決方案

    這篇文章主要介紹了Linux QT Kit丟失及Version為空問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • CentOS服務(wù)器環(huán)境下MySQL主從同步配置方法

    CentOS服務(wù)器環(huán)境下MySQL主從同步配置方法

    這篇文章主要介紹了CentOS服務(wù)器環(huán)境下MySQL主從同步配置方法,較為詳細(xì)的分析了CentOS服務(wù)器環(huán)境下MySQL主從同步的配置操作步驟、相關(guān)命令、使用方法與注意事項,需要的朋友可以參考下
    2018-03-03
  • Linux(CentOS)??同步服務(wù)器chrony的安裝配置和常用命令

    Linux(CentOS)??同步服務(wù)器chrony的安裝配置和常用命令

    Chrony是一款開源的網(wǎng)絡(luò)時間協(xié)議(NTP)客戶端和服務(wù)端軟件,旨在提供高精度的時間同步功能,相較于傳統(tǒng)的NTP實現(xiàn)如ntpd,Chrony提供了一些改進(jìn)和優(yōu)勢,包括更快的同步速度、低延遲、低CPU占用和低內(nèi)存消耗,本文介紹Linux(CentOS)??同步服務(wù)器chrony的安裝配置和常用命令
    2024-06-06
  • centos7.2搭建LAMP環(huán)境的具體操作方法

    centos7.2搭建LAMP環(huán)境的具體操作方法

    下面小編就為大家?guī)硪黄猚entos7.2搭建LAMP環(huán)境的具體操作方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • SVN服務(wù)備份操作步驟分享

    SVN服務(wù)備份操作步驟分享

    今天小編就為大家分享一篇關(guān)于SVN服務(wù)備份操作步驟分享,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • linux nand flash驅(qū)動編寫

    linux nand flash驅(qū)動編寫

    這篇文章主要介紹了linux nand flash驅(qū)動編寫,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04

最新評論

沁阳市| 仙游县| 措美县| 两当县| 榆林市| 延川县| 东至县| 绥德县| 利川市| 辛集市| 巴林右旗| 曲沃县| 舒兰市| 鹰潭市| 突泉县| 乌什县| 棋牌| 许昌县| 沾益县| 湖口县| 龙山县| 杭州市| 嘉义市| 会理县| 讷河市| 肥东县| 奉贤区| 平乐县| 汽车| 肥城市| 沐川县| 关岭| 青海省| 尤溪县| 伽师县| 大洼县| 远安县| 平谷区| 龙南县| 台湾省| 曲阜市|