• <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防止垃圾郵件 I. 簡介 II. 本文對象 III. 防垃圾郵件策略的一般問題 IV. 防垃圾郵件的特殊問題 V. 必備的基礎 VI. 一般觀點 ? "垃圾郵件無法阻止" ? "防垃圾郵件是用戶的責任" ? "防垃圾郵件是系統管理員的責任" ? 其他 VII. 用戶的選擇 ?

    如何利用qmail防止垃圾郵件



    I. 簡介
    II. 本文對象
    III. 防垃圾郵件策略的一般問題
    IV. 防垃圾郵件的特殊問題
    V. 必備的基礎
    VI. 一般觀點
     ? "垃圾郵件無法阻止"
     ? "防垃圾郵件是用戶的責任"
     ? "防垃圾郵件是系統管理員的責任"
     ? 其他
    VII. 用戶的選擇
     ??使用第三方實時的黑名單列表
     ??使用自己建立的黑名單列表
     ??使用標記的郵件
    VIII.系統管理員的選擇
     ??從網絡層考慮,拒絕可疑的主機通過你的SMTP服務發送郵件
     ??利用SMTP進程拒絕已知的垃圾郵件發件人
     ??使用qmail-smtpd 拒絕信頭或信封有問題的郵件
     ??
    IX. Other Resources
    X. History
    XI. Comments/Feedback



    I. 簡介



     ? 本文從多種角度闡述了防垃圾郵件的意義,并提出一些可行的方法防止在您的網絡中出現大量的垃圾郵件。



    II.閱讀對象



     ?本文適用于:



     ?UNIX 系統管理員
     ?qmail管理員
     ?系統設計人員
     ?偶爾關心垃圾郵件問題的用戶



    III. 一般問題
     ?
     ?一般來說,我們把垃圾郵件定義為那些不經允許就擅自發送的大量的商業郵件,也就是電子郵件宣傳品。垃圾郵件一般很難防范,因為發送者們總是有許多好用的工具來發送他們的垃圾郵件,輕而易舉,而你往往可能很難找到那些發送者。另一方面,垃圾郵件總是偽裝成普通郵件的樣子,除非你打開它知道他的內容,否則光從郵件頭短短的信息里,很難知道它是否是垃圾郵件。沒有什么技術可以完全自動的檢測一份郵件是否是你所要的,還是垃圾郵件。但是,我們可以用一些方法,來盡可能的減少你郵件系統的垃圾郵件。



     ?關于上述問題的精確詳盡的解釋,建議你閱讀 IETF Anti Spam Recomendations 。 David E. Sorkin 先生撰寫了一份文檔,名叫" Technical and Legal Approaches to Unsolicited Electronic Mail",不妨一讀.



    IV. 特殊問題



     ? 任何處理過或正在處理防垃圾郵件工作的人,都會對以下幾個問題印象深刻:



     ? 有必要為了減少垃圾郵件的數量而耗費大量的時間和資源嗎?
     ? 防止垃圾郵件是系統管理員的責任還是最終用戶的責任?
     ? 對一封可能的垃圾郵件,是應該立即丟棄呢還是作上標記繼續轉發?
     ? 如果你或你的系統管理員配置系統時出現錯誤,導致垃圾郵件的問題,作為管理員是否要為此負責?
     ? 你是否因該接受那些看上去內容合法,但是發件人出現在黑名單的那些郵件?
     ? 你是否因該接受那些回復地址、信封、發信地址不合法的郵件?
     ?
    V. 減少垃圾郵件的必備基礎



    不正確的使用.qmail-default文件往往導致垃圾郵件的問題。



     ? 不要因為偷懶而僅僅使用 .qmail-default 的缺省設置,它會認為qmail系統的所有mailbox名都是合法的,而不管該mailbox是否真的存在。這一點可能被人利用,導致垃圾郵件的增加。典型的如:"sales@domain.com", "webmaster@domain.com"等相似的郵件地址。



     ? 注意,你的 .qmail-default是一把雙刃劍,正確的設置也可以用來有效的防御垃圾郵件--拒絕那些無效的郵件地址。




    及時報告收到垃圾郵件的情況。
     
     ? 類似SpamCOP這樣的服務能使事情更有效率。具體請看資源列表。




    培訓教育



     ? 培訓你的用戶、朋友和所有關心垃圾郵件問題的人,告訴他們為什么要防止垃圾郵件,他們必須做什么。垃圾郵件發送者之所以會成功,有部分原因就是最終用戶不重視也不知道如何防范垃圾郵件。



    確認你的郵件系統設置正確
     ?
     ? 你的所有的郵件系統都要有合法的主機名和ip地址(最好是這樣)。使得其他的系統能夠正常解析你的主機名和地址。這樣,你的郵件收發器能夠得到標準的信息,包括錯誤消息。這樣你就可以根據你收到的消息來判斷系統設置是否合意,是否有必要對某些地址做防范??傊?,使一切標準化是件好事。



    VI.關于處理垃圾郵件的一般觀點。



     ? 一下是一些關于處理垃圾郵件的一般觀點。我們在這里拋出這些觀點,是為了讓讀者注意到防止垃圾郵件時需要深思的問題。你可以注意到,在這些截然不同的觀點中,尋找一個皆大歡喜的解決垃圾郵件的方案是非常困難的。



    觀點一:垃圾郵件永遠無法禁止



     ? 持有這種觀點的人認為:要想精確地鑒別一封email是否是垃圾郵件是幾乎不可能的,即使你知道誰是垃圾郵件的制造者,你也很難追究他的法律責任。防止垃圾郵件是一件耗時耗力的事,而且可能導致正常郵件的丟失。



     ? 這一類用戶通常無法忍受因為拒絕垃圾郵件而導致正常郵件丟失的事情發生。



    觀點二:防止垃圾郵件是最終用戶的責任。



     ? 這種觀點的持有者往往是系統管理員。他們認為既然鑒別垃圾郵件是如此之困難,就應該由最終用戶來決定是否拒絕某些可疑的垃圾郵件。由于在郵件系統范疇下拒絕一封郵件可能會導致用戶的信賴危機,因此系統管理員理所當然的把拒絕垃圾郵件的任務交給最終用戶。讓他們來決定什么地方的郵件應該被退回,什么郵件應該接受。而且,他們覺得有的用戶可能樂意收到某些商業郵件列表,那么決定郵件生死的大事還是有別人來完成吧。



     ? 這一類用戶認為,用戶有責任為拒絕垃圾郵件的行為負責,即便因此丟失郵件,也純粹是用戶的個人行為。



    觀點三:“拒絕垃圾郵件是系統管理員的責任”



     ? 持有這種觀點的人認為:既然垃圾郵件先要經過郵件系統,又有那么多得現成工具來防止垃圾郵件,那么,這么重要的事情理所當然應該由我們的郵件系統管理員來負責。往往許多執行系統管理行為的用戶(不是指郵件系統管理員)和終用戶在經歷了無休止的垃圾郵件騷擾后,對這樣的事情已經無能為力,特別是那些極討厭垃圾郵件的系統管理員來說,他們已經忍無可忍,在經歷了長期的痛苦后,開始抱怨起他們的郵件系統管理員來。



     ? 對于那些粗心大意的系統管理員(他們因不正確配置系統導致很容易被用來發送垃圾郵件),這樣的觀點顯然有作用。最常見得就是:“open relay”問題,這種不負責任的設置可以使任何人輕易使用你的郵件系統來發送垃圾郵件,這種配置不當的管理有時導致垃圾郵件泛濫,因而,系統管理員顯然有責任修改配置以使系統能夠抵御垃圾郵件。



     ? 持有這種觀點得人為了降低垃圾郵件的數量,甚至可以忍受部分正常郵件的丟失。對于系統管理員的小錯誤引起的正常郵件拒絕接受,他們還是能夠接受。



    其他觀點



     ? 除了上述的幾類觀點之外,還有一些特殊的觀點:



     ? 有的人認為,應該拒絕所有出現在各種黑名單列表里的發信人的郵件。但有另外一些人則認為,這些黑名單也未必總是準確公平,因為他們內含了各自的評判標準,完全依賴第三方的黑名單可能導致大量的合法郵件被拒絕接收。甚至更極端的用戶則徹底反對第三方的黑名單列表,因為他們認為制造和維護黑名單列表的人在觀點上有偏見,不公平。



     ? 還有的人認為,如果一封郵件沒有的包含合法的格式,都應該被視作垃圾郵件,或者至少把它當作潛在的垃圾郵件來處理。常見的情況是,郵件沒有合法的“From”地址或者信封格式有問題。如果對這種信件做回復的話會導致回復被退回。因為種種原因,許多垃圾信件都會有這種情況,因此,他們認為應該把這類的信件都按照垃圾郵件處理。而反對者認為,往往有很多原因導致正常郵件的格式有問題,因而不能一概而論。



    VII. 用戶的選擇



     ? 這個部分主要討論最終用戶在防治垃圾郵件時的選擇。閱讀這段文章的前提是,用戶具備郵件客戶軟件的配置知識(比如outlook)并且有修改軟件配置的需要。如果對任何一點感到疑惑的話,請詢問你的系統管理員以尋求幫助。



     ? 從防治垃圾郵件的觀點看來,最終用戶的選擇是有限的。比如,當一封郵件到達客戶端時,通常認為郵件投遞系統已經接受這個地址的郵件了,因此這時就需要最終用戶來過濾這個郵件??蓜e小看過濾郵件的功能(有的時候又叫做基于規則的投遞策略),它可是一個很強大的工具,不僅在防治垃圾郵件上有很大用處,在其他許多領域也有用武之地。比如我們在outlook中用到的“郵件規則”,可以實現指定郵件的轉移、轉發等自動化工作。在多數情況下,這是最終用戶的最好選擇。



     ? UNIX平臺下最廣為人之的過濾工具就是procmail,看過《大教堂與集市》一文的人都知道,該文的作者就是procmail的作者。這個軟件確實不錯,它使用一種基于“處方”的腳本來處理郵件的轉發、路由、拒絕等工作,具體的標準可以由你自己制定,非常靈活方便。其他平臺下也有大量的郵件工具,并提供豐富的過濾功能,具體的使用依賴于你的操作系統和使用習慣。比較優秀的有:最新版本的Eudora, Outlook, Netscape Mail等等。



    使用第三方的黑名單列表



     ? procmail可以方便的讓你使用第三方的黑名單列表。通過設置你的 .procmailrc 文件,使用 tblcheck和origip.pl程序,你可以對你任何想要處理的郵件做操作。以下是一個 .procmailrc 文件的簡單范本,我們也把它稱為“處方”。




    MAILDIR=$HOME/mail
    SPAMFOLDER=$MAILDIR/junkmail
    LOGFILE=$MAILDIR/log



    :0h
    TCPREMOTEIP=| origip.pl
    LOG="Remote IP: \"$TCPREMOTEIP\""



    :0
    * !^From.*myfriend@domain.com
    * ! ? if [ -n "$TCPREMOTEIP" ]; \
     ?? then /usr/local/bin/rblcheck -q "$TCPREMOTEIP"; fi
    {
     ??? LOGABSTRACT=all
     ??? LOG="Filter: RBL-filtered address: \"$TCPREMOTEIP\""
     ??? :0:
     ??? $SPAMFOLDER
    }




     ? 上面的這個處方可以過濾任何出現在ORBS (Open Relay Blocking System), RBL (Realtime Blackhole list)和 DUL (Dial-up User List)列表里的郵件。




    使用你自己的黑名單列表



     ? 有好幾種方法來設置你的procmail,使之能夠通過一個本地的黑名單文件來防御潛在的垃圾郵件,又能保證合法郵件順利進入你的郵件系統。



     ? 這里,有一個很好的工具--SpamBouncer。它是一個procmail的擴展工具,很適合新手使用。你只要簡單的按照軟件的提示,就可以按照需要輕易完成本地黑名單列表的設置。



    使用標記的郵件和特殊專有的電子郵件地址,你可以使用多種方法來標記郵件。



    Tagged messages can mean several different things.
    標記郵件意味著幾件需要注意的事情。



     ? 一種比較有爭議的作法是,用戶在使用郵件投遞服務器之前,必須先發送一份郵件到服務器,經過服務器的地址認證之后,該用戶就可以使用這臺服務器繼續發送他的郵件了。這種方法在用戶的發送地址有效期內是比較方便的,特別對于一些漫游用戶,既能保障安全又不會太過麻煩。



     ? 如果是在黑名單上的地址發送郵件,就需要通過特殊的密碼段,確保服務器不會將你的郵件當作垃圾郵件丟棄。如果代發郵件來自一些新聞組站點,那就在你的代發郵件中使用過期屬性,以保證郵件投遞能夠正常執行。




    以下是一些資源鏈接:



    SpamBouncer has a mechanism for tagged messenging
    Thomas Erskine wrote tms (Tagged Message Sender), which also does this.
    Jason R. Mastaler has taken tms and extended the project into Tagged Message Delivery Agent.
    Brett Randall has developed an avoidance technique especially for users participating in usenet and mailing list discussions.



    VIII. qmail系統管理員的選擇



     ? 這個部分的章節主要討論系統管理員如何在系統范圍內有效的阻止垃圾郵件現象。首先必須注意的是,你先要考慮前面提出的幾類問題,并且心里有數,有把握解決。因為你的任何一個改動系統的行為,都有可能導致正常用戶的收發郵件失效。



    拒絕來自非法DNS服務器的SMTP請求



     ? 在諸如FreeBSD或者Linux這樣的類UNIX系統中,都包含了某些公用標準以阻止那些不符合網絡協議的數據通過主機。典型的就是“基于主機名字訪問控制”了。而這個機制主要是通過著名的tcp_wrapper包實現的。在某些情況下,DNS沒有正確地配置,導致主機名被不正確的綁定在ip地址上,而這樣的主機名在系統中卻被認為是非法的。如果你是不幸的用戶,使用了這樣的主機發送郵件,就會被誤認為是垃圾郵件而丟棄。



     ? 假如你是用inetd服務進程在freebsd里進行操作,并且你的 /etc/hosts.allow 含有這樣的東東:



     ? ALL : PARANOID : RFC931 20 : deny



     ? 你也可以使用ucspi-tcp軟件包中的的tcpserver(推薦使用這種方法代替inetd處理郵件發送),如下:



     ? tcpserver -p -v -x/etc/tcp.smtp.cdb -u1007 -g1007 0 25 \
     ? qmail-smtpd 2>&1



    使用你的SMTP守護進程拒絕已知的垃圾郵件
    Using your SMTP daemon to reject "known" spammers



     ? 在 ucspi-tcp 包中有一個tblsmtpd工具,可以和包括qmail-smtpd這樣的標準SMTP服務器一同使用。
    package there is the rblsmtpd package, an alternative to the usual qmail-smtpd, and works with any SMTP server that runs under tcpserver.



     ? 如果你使用了 Life With Qmail這篇著名的文章來指導你的安裝的話,你會有類似下面的教本代碼。腳本位于:
     ? /var/qmail/supervise/qmail-smtpd/run
     ? 內容:



    #!/bin/sh
    QMAILDUID=`id -u qmaild`
    NOFILESGID=`id -g qmaild`
    MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`



    exec /usr/local/bin/softlimit -m 2000000 \
    /usr/local/bin/tcpserver -v -p -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
    -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \
    /usr/local/bin/rblsmtpd /var/qmail/bin/qmail-smtpd 2>&1



     ? 需要注意的是,上面的腳本是用了更新版本的rblsmtpd,如果使用的是早期的qmail就必須也采用匹配版本的服務工具包。當然,升級你的軟件包是值得的。



     ? 如果你仍在使用inetd守護進程,你也可以使用qmail在這樣的環境下有效的進行垃圾郵件控制;或者你需要用SmallWorks的RBL軟件來升級tcp_wrappers 。



     ? 如果你想在RBL里面使用ORBS數據庫(或者其他可通過DNS訪問的數據庫),你可以打開 "-r" 開關來加入新的數據庫:



    rblsmtpd -rrelays.orbs.org -rrbl.maps.vix.com



     ? Mike Silbersack 說 "如果你想要使用 *.mail-abuse.org 的漏洞列表, 你需要升級你的rblsmtpd,使他運行在具有A記錄的域名上。"



    使用qmail-smtpd拒絕帶有非法信封和"From"頭部的郵件
    Using qmail-smtpd to reject mail with invalid envelope or From headers



     ? 這方面的解決方案仍然模糊不清,作為作者,他非常希望讀者們能夠貢獻他們的經驗和技能來改善推薦的方案。



     ? 有不少qmail補丁,宣稱能夠給出拒絕非法信封和"From"郵件還有可疑垃圾郵件的解決方案(比如,信封是空的或者主機沒有合法的DNS)。注意到,這些補丁并不是qmail官方站點認可的標準件。



     ? Nagy Balazs 寫了一個補丁程序,可以識別出發送信封中的非法DNS域名。這樣可以避免你收到一些無法回復的信件。
     ?
     ? Erwin Hoffman 寫了一個qmail-smtpd的補丁程序SPAMCONTROL,能夠改進qmail的過濾能力并與RFC 2505兼容。他和 Noel Mistula 還寫了一些腳本用來過濾附件和郵件主題(同樣的是你也可以用procmail處理)。flame.org 站點的人們也寫了補丁來處理郵件頭的回退和標記功能。
     ?
     ? Will Harris 寫了一個補丁程序,使用新的控制文件,借助Perl表達式可以檢查信封發送者的合法性。



     ? Mark Delany 為qmail 1.01寫的補丁也能通過檢查發送者的信封匹配規則,接受和拒絕相應的郵件。



     ? Jonathan McDowell 的 X-Spam-Warning 郵件頭補丁程序可以在郵件頭添加必要的告警信息,規則可以從PRBS、RSS、RBL和DUL等庫里匹配無須額外的程序。這也是所謂標記郵件的通常做法。那樣,你的用戶就可以自由選擇如何標記郵件了。



     ? Jay Soffian 也寫了同樣的程序,但是使用的是現有的QMAILQUEUE 補丁而不是去修改qmail的源代碼。



     ? Chris Johnson 的程序允許你通過日志記錄投遞信息,用于濫發郵件的分析。



     ? 不過也要注意的是,如果不慎的系統配置錯誤,回導致形如 "user%hosta@hostb" 郵件地址被郵件服務器的投遞程序拒絕。具體信息請到 qmail.faqts 查看。



     ? 其實,很難非常有效的禁止你的系統用戶通過郵件服務器向外濫發郵件。雖然有不少的方法可以讓你的用戶很難創建并向外發送垃圾郵件。這一點往往被系統管里員忽略,他們的精力都放在如何防范接受垃圾郵件的末枝細節上了。別忘了,只有防范和控制一起努力,才能夠真正減少網絡上大量的垃圾郵件。



    Chris Johnson has written a patch for qmail called tarpit. Tarpitting is "the practice of inserting a small sleep in an SMTP session for each RCPT TO after some set number of RCPT TOs." This discourages a user from using a given system as a relay.



    IX. 其他資源



    實時的第三方漏洞解決方案。



    ORBS
    MAPS Realtime Blocking List
    MAPS Dial-Up User List
    RBLCheck script



    第三方垃圾郵件通告服務



    SpamCop
    Abuse.net
    More Links from abuse.net




    通用郵件相關工具



    qmail -
    anti-spam section
    ucspi-tcp - includes :
    tcpserver
    rblsmtpd
    Procmail-
     ?RBLCheck script
    SpamBouncer
    Tagged Message Sender (TMS)
    tcp_wrappers


    原文轉自: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>