adj 2007-11-29 21:52
Postgrey 安裝筆記
Greylisting原理:
假設某方寄信給我的Mail Server,Server會先傳回Error Code 450,正常的MTA會在一段時間後重送該封信件(約10分鐘),但發廣告信的軟體或套件將不會重送該封信件。目前有一套可行的方法為Postfix+Postgrey。
Postgrey官方網站: [url=http://isg.ee.ethz.ch/tools/postgrey/]http://isg.ee.ethz.ch/tools/postgrey/[/url]
一. 安裝所需套件:
1. Berkeley DB (也可用第2項做法)
至下方連結處抓最新版db套件
[url=http://www.sleepycat.com/download/db/index.shtml]http://www.sleepycat.com/download/db/index.shtml[/url]
wget [url=http://downloads.sleepycat.com/db-4.4.20.tar.gz]http://downloads.sleepycat.com/db-4.4.20.tar.gz[/url]
tar -zxvf db-4.4.20.tar.gz
cd db-4.4.20
./dist/configure
make
make install
2. perl相關套件
perl -MCPAN -e shell
cpan> install Net::Server
cpan> install IO::Multiplex
cpan> install BerkeleyDB
二. 安裝Postgrey
wget [url=http://isg.ee.ethz.ch/tools/postgrey/pub/postgrey-1.27.tar.gz]http://isg.ee.ethz.ch/tools/postgrey/pub/postgrey-1.27.tar.gz[/url]
tar -zxvf postgrey-1.27.tar.gz
cd postgrey-1.27
cp postgrey /usr/local/sbin
mkdir /var/spool/postfix/postgrey
chown postfix:postfix /var/spool/postfix/postgrey
cp postgrey_whitelist_clients postgrey_whitelist_recipients /etc/postfix/
三. 修改postfix設定檔
vi /etc/postfix/main.cf
新增如下的內容:
smtpd_recipient_restrictions =permit_mynetworks, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023
四. 設定開機自動執行
vi /etc/rc.d/rc.local
新增如下的內容:
/usr/local/sbin/postgrey --inet=10023 --user=postfix --group=postfix -d
五. 由maillog檢驗Postgrey是否運作正常
Aug 11 01:23:12 dns postfix/smtpd[22490]: connect from msu.epaper.com.tw[211.20.188.106]
Aug 11 01:23:12 dns postfix/smtpd[22490]: NOQUEUE: reject: RCPT from msu.epaper.com.tw[211.20.188.106]: 450 <[email=edm@mx1.epaper.co]edm@mx1.epaper.co[/email]
m.tw>: Sender address rejected: Domain not found; from=<[email=edm@mx1.epaper.com.tw]edm@mx1.epaper.com.tw[/email]> to=<[email=sykuo1224@lausu.com]sykuo1224@lausu.com[/email]> proto=ESMTP helo=<msu.
epaper.com.tw>
六. 亦可製作一個script檔置於/etc/rc.d/init.d/postgrey,內容如下:
#!/bin/bash
# chkconfig: 2345 36 36
# description: Postgrey Script
start() {
echo -n "Starting Postgrey: "
/usr/local/sbin/postgrey --inet=10023 --user=postfix --group=postfix --delay=300 -d
return 0
}
stop() {
killall postgrey
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
esac
參考文獻:
[url=http://www.postfix.org/SMTPD_POLICY_README.html]http://www.postfix.org/SMTPD_POLICY_README.html[/url]
[url=http://www.kozupon.com/mail/postgrey.html]http://www.kozupon.com/mail/postgrey.html[/url]
[url=http://www.yung.jp/hp/php/Postgrey.php]http://www.yung.jp/hp/php/Postgrey.php[/url]
轉貼自 酷學園:
[url=http://phorum.study-area.org/viewtopic.php?t=41357]http://phorum.study-area.org/viewtopic.php?t=41357[/url]