• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 針對qmail我是這樣防止垃圾郵件的

    發表于:2007-05-25來源:作者:點擊數: 標簽:
    針對qmail我是這樣防止垃圾郵件的 1,安裝qmail的時候增加smtpauth,這是大家都清楚的。這樣避免了一些惡意的人隨意使用你的 服務器 。 2,配合smtpauth需要進行對ip地址的控制。比如對本地地址就不再限制其權限了。 3,修改ucspi-tcp-x.xx的代碼,編輯文件r

    針對qmail我是這樣防止垃圾郵件的

    1, 安裝qmail的時候增加smtp auth,這是大家都清楚的。這樣避免了一些惡意的人隨意使用你的服務器。
    2, 配合smtp auth需要進行對ip地址的控制。比如對本地地址就不再限制其權限了。
    3, 修改ucspi-tcp-x.xx的代碼,編輯文件rblsmtpd.c。
    原文件中的"rbl.maps.vix.com",修改為"relays.ordb.org"。編譯后使它支持對垃圾郵件服務器的查詢。其工作原理是將一臺服務器的IP地址反向書寫,然后向提供服務的服務器查詢,如果被登記為垃圾服務器,就返回127.0.0.2,這樣本機服務器就無法和垃圾服務器通信了,舉例說明,某服務器1.2.3.4來連接你的服務器,于是查詢4.3.2.1.relays.ordb.org,如果返回127.0.0.2就表明是垃圾服務器,否則就是正常的服務器。如果你自己的IP也能夠返回127.0.0.2的話,就要趕快和www.ordb.org聯系了,這說明你的服務器由問題了。
    4, 編譯了代碼之后,修改smtpd.sh啟動腳本。1002,1001對應qmaild的uid與gid.
    /usr/local/bin/tcpserver -q -p -R -c 100 -u 1002 -g 1001 -x /vmail/etc/tcp.smtp.cdb 0 smtp /usr/local/bin/rblsmtpd -b -r 'relays.ordb.org:Open relay problem - see <URL:http://ordb.org/lookup/?host=%IP%>' /var/qmail/bin/qmail-smtpd /vmail/bin/vchkpw /usr/bin/true /bin/md5checkpw  /usr/bin/true 2>&1  &
    5, 對qmail中增加badrcptto控制。
    Qmail中缺省有一個配置文件叫做badmailfrom,字面意思很簡單,只要列進這個列表就是要干掉的郵件。Mailfrom自然是源地址,同樣我們可以控制目標地址,也就是對rcpt to的控制,所以把空文文件命名為badrcptto。
    先修改一個簡單的文件qmail-showctl.c,查找badmailfrom,復制該行,將badmailfrom改為badrcptto,編譯后,就可以顯示badrcptto控制文件中的內容了,不過這個修改中看不中用。
    接下來修改qmail-smtpd.c,這就動真格的了。還是跟著badmailfrom走,查找bmf相關的單詞,對應復制,并將其修改為brt。
    并在void smtp_mail(arg) char *arg;函數中增加對brtcheck的調用。
      if (flagbarf) { err_bmf(); return; }
      if (relayclient) {
        --addr.len;
        if (!stralloc_cats(&addr,relayclient)) die_nomem();
        if (!stralloc_0(&addr)) die_nomem();
      }
      else
        if (!addrallowed()) { err_nogateway(); return; }
      if (!env_get("RELAYCLIENT") && brtcheck()) { err_brt(); return; }
      if (!stralloc_cats(&rcptto,"T")) die_nomem();
      if (!stralloc_cats(&rcptto,addr.s)) die_nomem();
      if (!stralloc_0(&rcptto)) die_nomem();
      out("250 ok\r\n");
    }
    6, 針對垃圾郵件的特征定制代碼。
    前人的經驗介紹了不少,自己也不能太懶惰,也整理了一些不順眼的郵件。
    正常來講,郵件地址的開頭應該是字母,不應該是數字,盡管現在很多服務器能夠支持全數字的郵件地址,所以我的做法是只要是@前只有數字的就橫刀砍死。
    我們來看這樣一個地址 a@b.cn,盡管我不知道是不是有這樣的域名,但是這應該是最短的郵件地址了,所以一個郵件地址至少有6個字節,低于的殺,a@b.c顯然不合法,自然不用理會他的內容。郵件地址超短有問題,超長也不多好,定義一個長度,太長的同樣有問題。
    其實我想說的就是對發信人的地址進行分析,合法通過,非法干掉。
    對應以上分析修改了qmail-smtpd.c的addrparse函數。

    都是前人的經驗,整理了一下,千萬不要追究我侵權。

     gadfly 回復于:2003-08-12 12:32:02
    很不錯,比較全面

    qmail anti-spam section 還有其它一些工具,

    可以動態的針對主題內容進行過濾。

    有興趣可以參看
    http://www.fanqiang.com/a6/b4/20011124/0810001589.html

     wolf1980 回復于:2003-08-17 16:43:08
    真不錯!

     emylekao 回復于:2004-11-18 10:32:30
    第三點說的內容與http://www.chrishardie.com/tech/qmail/qmail-antispam.html#sysoption1文中說的
    rblsmtpd -rrelays.ordb.org -rblackholes.mail-abuse.org
    作用一致嗎?那篇文章中好像沒有提到要修改源代碼。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>