Category Archives: Spam

Spam

擋 mail spam

擋 mail spam 要量力而為,沒有那個菊花就不要吃那個藥 (概念很重要,概念不對就是討罵),說明如下:

  • 原則:官方的 mail server (像是學校、公司的) 的最高原則是:「不可以誤擋,就算誤擋,也必須是全世界所有的人都誤擋」,而非官方的 mail server (像是大家都認識的專屬 server) 隨便你自己玩。
  • 第一層:DNSBL,關於什麼是 DNSBL 的文章,您可以參考 SpamCop and SpamCup (這是中文網頁) 這篇裡面提到的一些前因後果。一定可以用的是 bl.spamcop.net (SpamCop)、xbl.spamhaus.org (Spamhaus)、relays.ordb.org (ORDB),分別擋 Spam Source、Exploited Source、Open Relay。KKcity 的成果您可以看 kkcity.blogspot.com 的報表。如果你不會收 ePaper (PChome) 的電子報,你可以把 xbl.spamhaus.org 改成 sbl-xbl.spamhaus.org。(原因是:sbl.spamhaus.org 會列入「subscribe 後還繼續送廣告」的業者,而 PChome 正式其中之一)
  • 第二層:Greylisting,關於 Greylisting 的說明,您可以參考 「在 Postfix 上強力的 antispam 機制:Postgrey」這份文件裡面的說明。國內目前有用 Greylisting 的單位您可以看 Greylisting (Wiki) 這份表,ISP 部分,最大的幾個有 gigigaga.com、giga.net.tw (GigaMedia)、ttn.com.tw (TTN) 在使用,我相信應該都用得很滿意,不然應該上架十分鐘後就會下架了。
  • 第三層:Content Filter,你不一定要使用 Content Filter,因為前兩者檔下的 Spam 已經相當多了 (nctu.edu.tw 只使用前兩項),如果真的想要擋下更多 Spam,而且 CPU resource 夠力,你可以用 SpamAssassinDSpamQuick Spam Filter,或是其他類似的軟體。

也許以後會再加上一些東西吧 XD (看到什麼就玩什麼 :~)

SpamCop and SpamCup

這篇 [文件] SpamCop (擋廣告信) 是我在 tw.bbs.comp.386bsd 上寫的,使用 GNU Free Documentation License Version 1.2, November 2002 作為授權,修一下讓他符合 Blog 的格式。

THANKS

rafan at infor.org
對於 Sendmail 提供比較好的處理方式。(雖然他也是用 Postfix 的)

SpamCop

先講什麼是 SpamCop

呃,如果你不知道 SpamCop 的話,你把他當作是一個國外還算有名的 Anti-Spam 組織就可以了…

你把廣告信交給他,他會把廣告信信件標頭 (header) 的 IP,以及廣告信內容所用到的 link 抓出來,然後自動送信給負責的單位。

如果對方一直沒有回信,他就把對方列入黑名單 (black list),而你可以透過 DNSBL 使用這份黑名單。

這篇文章會講的

這篇文章會講的東西包括了:

  • 我是 mail server 的管理員,要怎麼使用 SpamCop 的 DNSBL 幫我擋廣告信。(包括 SendmailPostfix)
  • 我是程式開發者,我的程式要怎麼使用 SpamCop 的 DNSBL 擋廣告信。
  • 我想要在金錢上幫助 SpamCop
  • 我想要在人力上幫助 SpamCop

mail server 使用 SpamCop 擋廣告信 (Sendmail)

請先登入成 root,換到 /etc/mail 目錄下:

# cd /etc/mail

在 freebsd.mc 內加上:

FEATURE(`enhdnsbl’, `bl.spamcop.net’, `”Spam blocked see: http://spamcop.net/bl.shtml?”$&{client_addr}’, `t’)dnl

編譯順便重跑 sendmail:

# make
# make restart

mail server 使用 SpamCop 擋廣告信 (Postfix)

在 /usr/local/etc/postfix/main.cf (或是 /etc/postfix/main.cf) 新增這行,或是修改 smtpd_client_restrictions 這行:

smtpd_client_restrictions = reject_rbl_client bl.spamcop.net, reject_rbl_client relays.ordb.org, reject_rbl_client xbl.spamhaus.org

改完後重跑 Postfix

postfix reload

程式開發者要怎麼使用 SpamCop 的 DNSBL 擋廣告信

你拿到一個 IP address 後,你必須透過 DNS 查詢這個 IP 是否在 SpamCop 的黑名單內。

假設該 IP 是 140.113.27.50,那麼你必須查詢:

50.27.113.140.bl.spamcop.net
(將 IP 的四個數字倒過來後加上 .bl.spamcop.net)

是否有 A record 或 CNAME record,如果有查到,則代表該 IP 在 SpamCop 的黑名單內。
在幫助 SpamCop
在幫助 SpamCop 前,建議您到 SpamCop 註冊:http://www.spamcop.net/anonsignup.shtml

填入 “Display name (full name or alias)” 及 “Email address” 即可,其他的如果您有興趣瞭解再填就好了。

填完後他匯寄一封信到信箱,信裡面會給你一組密碼,像這樣:

[…]
username: gslin@ccca.nctu.edu.tw
password: mypassword
[…]

你可以利用這組帳號密碼登入進去,修改你的密碼:
http://www.spamcop.net/mcgi?action=loginform

我想要在金錢上幫助 SpamCop

絕大部分的網路交易都是透過信用卡。

你可以透過贊助加 “Fuel” 到你的 Reporting account:
http://www.spamcop.net/mcgi?action=paymenu (基本上我覺得這個只是加爽的)

或是你可以挑他們 USD$30/year 的 Webmail 服務:(以 Horde 架設的)
http://www.spamcop.net/ces/individuals.shtml (我覺得這個還比較有用)

我想要在人力上幫助 SpamCop

SpamCop 靠的是收到 Spam 的人 Report,所以會需要利用人判斷是不是 Spam。

當你收到 Spam 後,你連到 http://www.spamcop.net/ 登入,將信件的標頭及內文一起貼到中間的大框框就可以了。

另外,我們提供 mutt 的使用者偷懶的方式,請先安裝 MIME::Lite

# cd /usr/ports/mail/p5-MIME-Lite
# make install clean

再將下面的 code 放入 /usr/local/bin/SpamCop.pl:

#!/usr/bin/perl

use MIME::Lite;
use strict;

my @mails = <STDIN>;
my $mail = join("", @mails);
my $msg = MIME::Lite->new(From => $ARGV[0],
    To => $ARGV[1],
    Subject => 'Report',
    Type => 'html/text',
    Data => $mail);
$msg->send();

然後在 .muttrc 裡面放:

macro index Y “<pipe-entry>SpamCop.pl gslin@ccca.nctu.edu.tw submit.6XXXXXXXXXXXXXXX@spam.spamcop.net\n” “report spam”
macro pager Y “<pipe-entry>SpamCop.pl gslin@ccca.nctu.edu.tw submit.6XXXXXXXXXXXXXXX@spam.spamcop.net\n” “report spam”

其中的 gslin@ccca.nctu.edu.tw 當然要換成自己的 e-mail address,而 submit.6XXXXXXXXXXXXXXX@spam.spamcop.net 要換成你在 login 時所看到的那個 e-mail address。

以後你在 mutt 裡面看到 Spam 就直接按 ‘Y’ 就可以將 Spam 送給 SpamCop 了。

SpamCop 收到後會 mail 一封確認信件給你,你收到後點 url 去處理即可。

危險的工具

我不打算在這邊講解他的用法,因為他屬於危險的工具。不過對於進階使用者來說會相當方便:http://sourceforge.net/projects/spamcup

這隻程式會自動幫你處理 submit 進去的 Spam。

DNS-anti-spam.php

剛剛才在 DNS-anti-spam.php 的作者網頁上 (Yet another anti-spam measure) 留言,結果才十五分鐘作者就回信了 :)

Date: Thu, 17 Feb 2005 13:16:59 +0100
From: John Sinteur <john@sinteur.com>
Subject: Re: [the Daily Irrelevant] Comment: “Yet another anti-spam measure”
To: gslin <gslin@gslin.org>
X-Mailer: Apple Mail (2.619.2)

On Feb 17, 2005, at 13:07, gslin wrote:

>You should use “sbl-xbl.spamhaus.org.” instead of
>”sbl-xbl.spamhaus.org” (add dot in the end), this will increasing
>performance when your /etc/resolv.conf have many “search” item, and
>avoid some stupid problem when wildcard A RR was set… :)
>

Good call – I’ll change the code!

-John

Open Source Community 的好處之一 :)

gethostbyname 的問題

現在這家 hosting 的 gethostbyname() 以及 checkdnsrr() 都怪怪的 (可以參考 http://gslin.org/gethostbyname.php 以及 http://netnews.nctu.edu.tw/~gslin/gethostbyname.php),所以透過 DNSBL 查詢 spamhaus 擋 spammer 的動作就沒辦法作了,我只好在 DNS-anti-spam.php 上動一些手腳…

最簡單的方是就是改檢查傳回值是不是 /^127\./ (因為目前看到的 DNSBL 都會用 127.x.x.x 當作傳回值),改了以後「理論上」應該沒問題了…