屋頂隔熱、屋頂隔熱材料
屋頂防水隔熱、建築隔熱、屋頂工程
拆除工程壁紙壁紙樣式最多,提供壁紙客製化服務
壁紙上千種壁紙歡迎您的洽詢

首頁  •  j2h 論壇 • 程式設計討論     • 

[轉貼]防砍站軟體

房東:新手
發表時間:2007-02-12


Apache IPCOP
幾個比較知名的網站管理員大概都有這樣的困擾,那就是網站常被砍站軟體所強力下載,結果造成主機的 CPU loading 過重,最後竟然會導致死掉∼唉!真是的∼人怕出名豬怕肥吶!先來解釋一下什麼是砍站吧!

所謂的『砍站』,就是以類似多點連線下載的持續性訊息傳遞軟體進行網站資料的下載,而且, 一啟用該軟體,該軟體就將『整個網站』的內容都給他 download 下來,很厲害吧!沒錯!是很厲害,但是卻也害死人了∼怎麼說呢?

因為這種軟體常常會為了加快 download 的速度,所以採用多點連線的方式,也就是會持續不斷的向 Server 發出要求封包,而由於這些封包並不見得能夠成功的讓 Server 把資料傳導給 Client 端,常常會無法投遞就是啦!這樣的結果就是.....造成 Server 要一直不斷的回應,又無法正確的回應出去, 此外,要求太過頻繁,結果主機應接不暇,最後....就當機了...真的是林老師ㄌㄟ∼

我們這個小站的主機古早以前,就是因為這樣的原因,導致服務常常斷斷續續的,並且,由於 CPU loading 太高,結果讓正常連線進來看資料的網友沒有足夠的資源,因此網頁開啟的速度就變的很慢∼唉∼ 這些砍站的人,也太不道德啦!

由於這種砍站軟體真的很麻煩,一不注意馬上就又會被砍站而當機,三天兩頭就要重新開機一次,完全讓 Linux 的穩定性無法發揮!真是氣死了∼後來,鳥哥就自行寫了一個 scripts 來擋這樣的 IP !我的作法是這樣的:

由於砍站軟體會多點連續下載,因此,同一個 IP 在同一個時間內,會有相當多的連線發生;
由於他是重複不斷的要求連線,因此剛剛建立的連線在達成下載的目的後,會立刻死掉, 而又多生出其他的連線出來,因此,這個時候他的連線情況就變的相當的不正常了!
由於某些較舊的砍站軟體並不會『欺騙』主機,所以,會在主機的登錄檔裡面記錄住 Teleport 的標記!
既然如此的話,那麼我就讓我的主機每分鐘去檢查兩個東西(1)先檢查 log file ,如果有發現到相關的 Teleport 字詞,就將該 IP 抵擋掉;(2)使用 netstat 來檢查同一個 IP 的同時連線,如果該連線超過一個值(例如同時有 12 個連線)的話,那麼就將該 IP 抵擋掉!
此外,由於上面的方案可能會將 Proxy 的 Client 端也同時抵擋掉,真是可憐啊! 這個時候,這支程式就會主動的將(1)的情況的主機抵擋 3 天,至於(2)的情況則抵擋2小時! 過了該抵擋的時限後,該 IP 即可又連上我們的主機了!
大致上就是這樣吧!這樣的一程式需要與 iptables 相互配合,所以,請先查閱一下簡易防火牆設定那一篇文章,然後再來下載這支程式吧! 這支程式您可以在底下的網址下載喔!

http://linux.vbird.org/download/index.php?action=detail&fileid=47
詳細的安裝步驟鳥哥已經以中文寫在該檔案裡面了,所以請先查看一下該檔案的前面說明部分吧!此外, Study Area 的 netman 大哥也已經開發了一套很棒的防砍站的程式了! 在防堵砍站的原理上面是完全相同的,不過寫法可能不是很雷同就是了!如果有需要的話,也可以前往 Study-Area 搜尋一下囉!

http://phorum.study-area.org/viewtopic.php?t=13643




  • 贊助網站       

    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!
    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務

  • 1 樓住戶:小乖
    發表時間:2007-02-15

    我都適用這樣的方法擋,理論上應該可以防君子偷link,小人我就不知道了。
    將所有中文字轉為成下列格式後,利用php的函是將其編碼後送出,再用javascript解碼,除非機器人還支援javascript的解碼節動作,不然應該可以撐一下下...應該滿管用的,目前還沒發現蝦咪bug

    $web_login="歡迎光臨



    請輸入通行認證



    認證編號或電話




    $msg

    ";
    $web_login=rawurlencode(stripslashes($web_login));
    echo "";


    2 樓住戶:小寶
    發表時間:2007-02-15

    你可以試試用 Javaforbidden 來作連結呼叫的方法!
    離線瀏覽的軟體之所以能砍站,就是把該站的所有〔連結〕以另存新檔(目標)的方式,一一把每個連結存下來。而這個方法是防止一般人未點取連結,直接以另存新檔放試抓網頁的(是否可以防止砍站軟體我不知道,未試過!不過你可以試試!)。

    〈forbidden language="Javaforbidden"〉
    〈!--
    function show(i,j) {
    ref = location.href;
    ref = ref.substring(ref.length);
    url = "網站網址"+"資料夾名稱/";
    if (j == "T") { url += i+"htm"; }
    else { url += i+".htm"; }
    url += ref;
    window.open(url,"DEMO");
    }
    // --〉
    〈/forbidden〉

    〈A HREF="forbiddenshow('01');" 〉連結1〈/A〉〈BR〉
    〈A HREF="forbiddenshow('02');" 〉連結2〈/A〉〈BR〉
    〈A HREF="forbiddenshow('03');" 〉連結3〈/A〉〈BR〉
    〈A HREF="forbiddenshow('04');" 〉連結4〈/A〉〈BR〉
    〈A HREF="forbiddenshow('05');" 〉連結5〈/A〉〈BR〉



     共 2 人回應  選擇頁數 【第1 頁】 

    姓名:
    佈告內容:
    其他選項: