在 ijliao 那邊看到電子地圖:Multimap.com 與 Maporama,玩了一下發現雖然沒有 Google Maps 好用,不過操作起來還算便利… (比起國內某家用 Java 做的,hmmm…)
不過像是新竹:Multimap.com、Maporama,資訊太少了點吧 :p
Computer Technical Notes
在 ijliao 那邊看到電子地圖:Multimap.com 與 Maporama,玩了一下發現雖然沒有 Google Maps 好用,不過操作起來還算便利… (比起國內某家用 Java 做的,hmmm…)
不過像是新竹:Multimap.com、Maporama,資訊太少了點吧 :p
這篇 [文件] SpamCop (擋廣告信) 是我在 tw.bbs.comp.386bsd 上寫的,使用 GNU Free Documentation License Version 1.2, November 2002 作為授權,修一下讓他符合 Blog 的格式。
rafan at infor.org
對於 Sendmail 提供比較好的處理方式。(雖然他也是用 Postfix 的)
先講什麼是 SpamCop…
呃,如果你不知道 SpamCop 的話,你把他當作是一個國外還算有名的 Anti-Spam 組織就可以了…
你把廣告信交給他,他會把廣告信信件標頭 (header) 的 IP,以及廣告信內容所用到的 link 抓出來,然後自動送信給負責的單位。
如果對方一直沒有回信,他就把對方列入黑名單 (black list),而你可以透過 DNSBL 使用這份黑名單。
這篇文章會講的東西包括了:
請先登入成 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
在 /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
你拿到一個 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
絕大部分的網路交易都是透過信用卡。
你可以透過贊助加 “Fuel” 到你的 Reporting account:
http://www.spamcop.net/mcgi?action=paymenu (基本上我覺得這個只是加爽的)
或是你可以挑他們 USD$30/year 的 Webmail 服務:(以 Horde 架設的)
http://www.spamcop.net/ces/individuals.shtml (我覺得這個還比較有用)
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 的作者網頁上 (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 的好處之一 :)
我之前講過我現在這家 hosting 的 gethostbyname() 及 checkdnsrr() 都怪怪的:gethostbyname 的問題,今天得到回信了,對方告知原因是 /etc/resolv.conf 的 search 有 “nozonenet.com”,而他們又有對 nozonenet.com 設 wildcard A RR,所以所有查不到的 record 都會被指到 nozonenet.com 所設的 wildcard A RR。
這類的問題早在 n 年前就遇過了,要不讓他加 search 後面所指定的 query 的方法就是在 string 後面加上 ‘.’。也就是說,本來查 “119.54.113.140.xbl.spamhaus.org” 的 string,最後面加上 ‘.’ 變成 “119.54.113.140.xbl.spamhaus.org.”,這樣就 okay 了 :P
等下寫個信跟 DNS-anti-spam.php 的作者講一下好了…
邊喝水邊看文章,看到這篇就突然嗆到了:We’ll ship when the product is ready.,這是引用自 IEBlog 的 IE7 的一段話:
I’ve gotten questions about the ship date. Yes, we have a date in mind. I’ll talk about the date after we get feedback from customers and partners. We’re going to release a beta and listen, then refresh the beta and listen some more. We’ll ship when the product is ready.
終於看到 ClamAV For Windows 了!
在 Neowin.net 看到的:Microsoft, eBAY, PayPal, Visa Launch Phish Report Network。
由 Microsoft、eBay (其中 eBay == Paypal)、Visa 所發起的 Phish Report Network。
晚點來看有沒有 IE & Firefox Plugins 可以用。
Slashdot 上看到的爆炸消息:SHA-1 Broken。這是對岸的強者們把 MD5、SHA-0 給幹掉後,再把 SHA-1 給幹掉…
PS:我們提到 cryptographic hash function 的 broken,通常是指 hash collision (比較容易),而非 reverse function (難度較高)。
用 Perl 寫了一支小程式,用 WWW::Mechanize 把某個 url 抓下來再貼到 ImageVenue 上:
#!/usr/bin/perl use File::Basename; use Getopt::Std; use WWW::Mechanize; use strict; my %opt; getopts('dp:', \%opt); my $debug = 0; $debug = 1 if (defined($opt{'d'})); my $proxy; if (defined($opt{'p'})) { $proxy = $opt{'p'}; } elsif (defined($ENV{'http_proxy'})) { $proxy = $ENV{'http_proxy'}; } my $url = shift() or die(); chdir('/tmp'); &main(); sub main { my $outfile = sprintf('%s', basename($url)); print('* Filename: ', $outfile, "\n"); # Get my $agent = WWW::Mechanize->new(); $agent->proxy($proxy) if ($proxy ne ''); $agent->get($url); my $content = $agent->content(); open(O, '> ' . $outfile); print(O $content); close(O); print('* Filesize: ', length($content), "\n"); # then upload $agent->get('http://www.imagevenue.com/'); $agent->form_number(1); $agent->field('file1', $outfile); $agent->submit(); print($agent->content()) if ($debug); # tell me the url $agent->form_name('form8'); my $imgurl = $agent->value('select'); chomp($imgurl); $imgurl =~ s/\s+//g; print('* Output URL: ', $imgurl, "\n"); # delete temp file unlink($outfile); }