佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Shell腳本配合iptables屏蔽來自某個國家的IP訪問

Shell腳本配合iptables屏蔽來自某個國家的IP訪問

熱門標簽:Linux服務(wù)器 鐵路電話系統(tǒng) 網(wǎng)站排名優(yōu)化 服務(wù)外包 百度競價排名 地方門戶網(wǎng)站 AI電銷 呼叫中心市場需求

星期六我們一位客戶受到攻擊,我們的網(wǎng)絡(luò)監(jiān)測顯示有連續(xù)6小時的巨大異常流量,我們立即聯(lián)系了客戶,沒有得到回應(yīng),我們修改和限制了客戶的 VPS,使得個別 VPS 受攻擊不會對整個服務(wù)器和其他 VPS 用戶造成任何影響,我們一直保持這個 VPS 為開通狀態(tài)(盡管一直受攻擊),攻擊又持續(xù)了24小時,星期天攻擊仍在繼續(xù),我們?nèi)虩o可忍,但是仍然無法聯(lián)系到客戶,我們向客戶網(wǎng)站的另一負責(zé)人詢問是否需要我們介入來幫助解決,這位負責(zé)人答應(yīng)后我們立即投入到與 DDoS 的戰(zhàn)斗中(我們動態(tài)掃描屏蔽壞 IP,現(xiàn)在客戶網(wǎng)站已恢復(fù)。整個過程很有意思,以后有時間再寫一篇博客來描述)。登錄到客戶 VPS 第一件事情就是查當前連接和 IP,來自中國的大量 IP 不斷侵占80端口,典型的 DDoS. 所以第一件事是切斷攻擊源,既然攻擊只攻80端口,那有很多辦法可以切斷,直接關(guān)閉網(wǎng)站服務(wù)器、直接用防火墻/iptables 切斷80端口或者關(guān)閉所有連接、把 VPS 網(wǎng)絡(luò)關(guān)掉、換一個 IP,⋯,等等。因為攻擊源在國內(nèi),所以我們決定切斷來自國內(nèi)的所有訪問,這樣看上去網(wǎng)站好像是被墻了而不是被攻擊了,有助于維護客戶網(wǎng)站的光輝形象,那么如何屏蔽來自某個特定國家的 IP 呢?

方法很容易,先到 IPdeny 下載以國家代碼編制好的 IP 地址列表,比如下載 cn.zone:

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

# wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone

有了國家的所有 IP 地址,要想屏蔽這些 IP 就很容易了,直接寫個腳本逐行讀取 cn.zone 文件并加入到 iptables 中:
復(fù)制代碼 代碼如下:

#!/bin/bash
# Block traffic from a specific country
# written by vpsee.com

COUNTRY="cn"
IPTABLES=/sbin/iptables
EGREP=/bin/egrep

if [ "$(id -u)" != "0" ]; then
   echo "you must be root" 1>2
   exit 1
fi

resetrules() {
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
}

resetrules

for c in $COUNTRY
do
        country_file=$c.zone

        IPS=$($EGREP -v "^#|^$" $country_file)
        for ip in $IPS
        do
           echo "blocking $ip"
           $IPTABLES -A INPUT -s $ip -j DROP
        done
done

exit 0


好 IP 和壞 IP 都被屏蔽掉了,這種辦法當然不高明,屏蔽 IP 也沒有解決被攻擊的問題,但是是解決問題的第一步,屏蔽了攻擊源以后我們才有帶寬、時間和心情去檢查 VPS 的安全問題。公布一份我們客戶被攻擊的網(wǎng)絡(luò)流量圖,在18點到0點所有帶寬都被攻擊流量占用,這時候客戶無法登錄 VPS,訪問者也無法訪問網(wǎng)站:

您可能感興趣的文章:
  • Shell監(jiān)控iptables運行狀態(tài)
  • Shell實現(xiàn)的iptables管理腳本分享
  • Shell腳本實現(xiàn)監(jiān)控iptables規(guī)則是否被修改
  • Shell腳本實現(xiàn)監(jiān)控iptables運行狀態(tài)
  • CentOS 7 下使用 iptables

標簽:崇左 衡水 湖南 銅川 仙桃 黃山 蘭州 湘潭

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Shell腳本配合iptables屏蔽來自某個國家的IP訪問》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    扶余县| 武川县| 榆社县| 合川市| 丹寨县| 班戈县| 富蕴县| 绥棱县| 杂多县| 那坡县| 遂川县| 永昌县| 富民县| 海宁市| 诸暨市| 阿克陶县| 康保县| 萨嘎县| 福安市| 五峰| 通榆县| 宁乡县| 白朗县| 卢氏县| 黔江区| 西充县| 东城区| 延寿县| 唐山市| 永清县| 于田县| 时尚| 华阴市| 卢湾区| 固原市| 新兴县| 治县。| 榆中县| 台东市| 乌拉特中旗| 喜德县|