MLDonkey屏蔽Leecher的方法

原文地址:http://www.ied2k.com/forum/index.php?showtopic=18838
作者:moh

名字起的有點大 🙂
最近搞好了TrafficShapping,這樣MLDonkey就可以全放開上傳了,但是吸血騾,尤其是迅雷來吸的太多了。利用周末Google了一下,可以做到屏蔽部分吸血騾。但是有如下幾個缺點:

  1. 沒有DLP這麼全面,主要是屏蔽國內的迅雷,快車之類的。
  2. 偶有漏網的。
  3. 有誤傷。
  4. 可能會佔用一部分資源,尤其是剛啟動fail2ban時。

所以完美主義者,騾道主義者就不要用了 🙂 期待你們開發出好的MLDonkey可用的DLP 😛

下面是步驟,我用的是Gentoo系統,可能會與別的版本不太一樣,但應該是大同小異。

  1. 首先,要修改MLDonkey的一個配置,用web控制,還是用Telnet敲命令,還是直接修改~/.mldonkey/download.ini都隨便,命令是
    set verbosity "mct"

    完成後,去~/.mldonkey/mlnet.log看看,會發現有很多過去沒有見過的log文件,mct的意思就是顯示Client的Tag。當然還有很多的不同的選項可以改,具體可以看~/.mldonkey/download.ini里的解釋。

  2. 安裝fail2ban,Gentoo就簡單了,直接emerge就可以,其它的版本應該也不會太難。
  3. 修改/etc/fail2ban/jail.conf,在末尾加上。
    [dlp-iptables]
     
    enabled = true
    filter = dlp
    action = iptables-allports[name=dlp, protocol=tcp]
    logpath = /home/xxxx/.mldonkey/mlnet.log
    maxretry = 1

    具體的logpath要換成自己的 🙂

  4. 新建/etc/fail2ban/filter.d/dlp.conf,加入如下的內容
    # Fail2Ban configuration file
    #
    # Author: Sparkplug
    # http://sparkplug-moh.blogspot.com
    #
     
    [INCLUDES]
     
    # Read common prefixes. If any customizations available -- read them from
    # common.local
    before = common.conf
     
     
    [Definition]
     
    _daemon = dlp
     
    # Option: failregex
    # Notes.: regex to match the password failures messages in the logfile. The
    # host must be matched by a group named "host". The tag "" can
    # be used for standard IP/hostname matching and is only an alias for
    # (?:::f{4,6}(IMG:style_emoticons/default/smile.gif) ?(?P[\w\-.^_]+)
    # Values: TEXT
    #
    failregex = ip: <HOST>:.*(xthame|Flashget|VeryCD|QQDownload|FreeCD|dianlei|TUOTU|PPMule|eMuleBT|kaggo|Chinfo|21cn)
    ip: <HOST>:.*\(version\)=\(60\) \(mod_version
    ip: <HOST>:.*mod_version\)=\(.*(ery|easy)
    ip: <HOST>:(80|65535)
    <HOST>:.*(xthame|Flashget|VeryCD|QQDownload|FreeCD|dianlei|TUOTU|PPMule|eMuleBT|kaggo|Chinfo|21cn)
    <HOST>:.*0.48a
    <HOST>:.*mod_version.*(ery|easy)
    <HOST>:(80|65535)
    # Option: ignoreregex
    # Notes.: regex to ignore. If this regex matches, the line is ignored.
    # Values: TEXT
    #
    ignoreregex =

    其中failregex里的紅色部分(轉載註:請參考原帖)是屏蔽了VeryCD的MOD,包括那個什麼EasyMule,原因是它們違反了GPL協議,除了DLP不開源外,具體可以去Google:「easymule amule」(轉載註:請參考EasyMule2涉嫌抄襲aMule代碼);第一行里VeryCD的TAG,這樣名字里VeryCD的Client也一樣會屏蔽,如果不想屏蔽VC的MOD或者名字里加了VeryCD的 Client的話就不要載入這些了,直接去掉就可以。

    這些只是屏掉了國內一些Client,有人能把DLP里的Username_Hard和Modstring_Hard整理出來做個完全的就更好了 🙂
    另外,所有0.48a的emule版本都屏掉了,有誤殺,阿彌陀佛,罪過罪過 🙂

  5. 運行fail2ban,
    /etc/init.d/fail2ban start

    如果沒有問題,

    rc-update add fail2ban default

    另外,也可以在MLDonkey里輸入

    set verbosity "up"

    再根據相應的調整/etc/filter.d/dlp.conf就可以吸這些吸血騾的血了,是不是太邪惡了 :mrgreen:

6條評論隱藏

  1. 2009年11月16日 周一 16:41 | 回復

    linux的,強!

  2. #2 antivc
    2009年12月10日 周四 16:45 | 回復

    支持,太好了。

  3. #3 oskarguan
    2011年2月23日 周三 06:48 | 回復

    ban port的話
    bp 80
    bp 65535
    也可以

  4. #4 majia321
    2011年5月4日 周三 20:26 | 回復

    再根據相應的調整/etc/filter.d/dlp.conf

    不明白這裡,求教調整範例 ➡

  5. #5 8X
    2011年12月13日 周二 08:43 | 回復

    怎麼感覺很多<code>只適用Gentoo

  6. #6 noraneko
    2011年12月16日 周五 15:56 | 回復

    爲免誤殺、秖是不得已纔用IP過濾。

1條Trackback/Pingback顯示

發表評論

您的Email將不會顯示出來。頭像請至Gravatar.com註冊上傳。*號標註項為必填。

*
*
*
標籤用法
字數:0