[原创]在QMAIL+VPOPMAIL上配置TMDA指要(反垃圾邮件)
TMDA是一个很有意思的反垃圾邮件程序,推荐大家试试~~后果自负~~呵呵
Installing TMDA with vpopmail
在QMAIL+VPOPMAIL上配置TMDA指要
(基于FreeBSD v4.7r)
阿土/Aborigen Yin
tutu@bsdbase.com
http://www.bsdbase.com
2003.01.12
版权声明:
本文参考了http://tmda.net/以及http://www.visca.com/tmda/tmda_vpop.html;
你可以在保留版权信息的前提下自由传播本文而无需经过作者同意,有任何修改建议请告知作者。
Tagged Message Delivery Agent (TMDA)
是一个开放源码软件,该软件用于减少垃圾邮件SPAM/UCE (junk-mail)对最终邮件用户的影响;
我假设你对QMAIL+VPOPMAIL有一定的了解。
建议你先阅读软件的相关文档再进行如下配置。
参考URL:
http://tmda.net/
http://tmda.net/index.html
http://tmda.net/features.html
http://tmda.net/releases/
#configure tmda with vpopmail
http://www.visca.com/tmda/tmda_vpop.html
#该软件是使用python语言写的,如果你的系统没有预装python,通过ports安装;
#如何通过ports安装软件不在本文讨论的范围之内,如果你不知道,请自行参考相关文档;
cd /usr/ports/lang/python
make clean
make install
make clean
#我习惯把的源码包放在这个地方
mkdir -p /usr/local/src/distfiles
cd /usr/local/src/distfiles
#也许,当你读到这个文档时,已经有更新的版本出来了,
#先到http://tmda.net/releases/看看吧:P
#fetch http://tmda.net/releases/tmda-0.68.tgz
tar xfz tmda-0.68.tgz -C /var/vpopmail
#使用不带版本号的符号连接目录方便以后升级
ln -s /var/vpopmail/tmda-0.68 /var/vpopmail/tmda
cd /var/vpopmail/tmda
./compileall
bin/tmda-keygen -V > keygen.log
#作者希望知道自己的软件在什么平台上安装了。
#如果你觉得这个软件不错把keygen.log寄给jason-tmdausage@mastaler.com吧。
#TMDA是针对单个邮件用户的,如果你是邮件管理员,把这些操作编成脚本程序也许更符合你的需要;
#configure for eben@bsdbase.com
#假设你已经添加eben@bsdbase.com这个用户。
cd /var/vpopmail/domains/bsdbase.com
#建一个垃圾桶devnull@bsdbase.com
#vi .qmail-devnull
| /var/vpopmail/bin/vdelivermail '' delete
ln -s .qmail-devnull .qmail-devnull-default
chmod 600 .qmail-devnull
cd /var/vpopmail/domains/bsdbase.com/eben
#此目录以及下级目录和文件都属于vpopmail:vchkpw,目录权限为700,文件权限为600;
mkdir .tmda
chmod 700 .tmda
cd /var/vpopmail/domains/bsdbase.com/eben
#http://www.visca.com/tmda/tmda_vpop.html 里说的已经被改名;
#2002-11-13 Jason R. Mastaler <jasonrm@hrothgar.la.mastaler.com>
#* sample.tmdarc: Renamed sample.config.
#配置样板文件
cp /var/vpopmail/tmda/templates/confirm_accept.txt .tmda
cp /var/vpopmail/tmda/templates/confirm_request.txt .tmda
cp /var/vpopmail/tmda/templates/bounce.txt .tmda
chmod 600 .tmda/*
#如果你希望TMDA发出的信息是中文的,可以自行修改此文本文件;
cd .tmda
mkdir log
chmod 700 log
mkdir lists
chmod 700 lists
touch lists/incoming
chmod 600 incoming
#vi lists/incoming
#通过那些已经通过校验的地址。
from-file /var/vpopmail/domains/bsdbase.com/eben/.tmda/lists/whitelist ok
cd /var/vpopmail/domains/bsdbase.com
#通过该文件调用TMDA的过滤器,这里跟tmda带的文档有点不同,其文档里说的是qmail不带vpopmail的情况。
#vi .qmail-eben
#开头的这个注释在一切都配置好后删除,TMDA才生效;
#| preline /var/vpopmail/tmda/bin/tmda-filter -c /var/vpopmail/domains/bsdbase.com/eben/.tmda/.tmdarc
/var/vpopmail/domains/bsdbase.com/eben/Maildir/
ln -s .qmail-eben .qmail-eben-default
chmod 600 .qmail-eben
#vi /var/vpopmail/domains/bsdbase.com/eben/.tmda/.tmdarc
CONFIRM_ACCEPT_TEMPLATE = "/var/vpopmail/domains/bsdbase.com/eben/.tmda/confirm_accept.txt"
# Note: CONFIRM_APPEND is a filename to which a sender's e-mail address
# should be automatically appended once they confirm a message.
# This must be a whitelist type file. You can't use your 'incoming'
# file here. See above, NOTE 1.
CONFIRM_APPEND = "/var/vpopmail/domains/bsdbase.com/eben/.tmda/lists/whitelist"
# No use wasting bandwidth sending spammers back their own junk!
CONFIRM_MAX_MESSAGE_SIZE = 5000
DATADIR = "/var/vpopmail/domains/bsdbase.com/eben/.tmda/"
DELIVERED_CACHE = "/var/vpopmail/domains/bsdbase.com/eben/.tmda/pending/.delivered_cache"
FILTER_INCOMING = "/var/vpopmail/domains/bsdbase.com/eben/.tmda/lists/incoming"
import time
localtime = time.localtime(time.time())
YYYYmm = time.strftime('%Y-%m',localtime)
#调试的时候打开下面的日志
#LOGFILE_INCOMING = "/var/vpopmail/domains/bsdbase.com/eben/.tmda/log/tmdalog." + YYYYmm
#LOGFILE_DEBUG = "/var/vpopmail/domains/bsdbase.com/eben/.tmda/log/debug"
PENDING_CACHE = "/var/vpopmail/domains/bsdbase.com/eben/.tmda/pending/.msgcache"
TEMPLATE_DIR = "/var/vpopmail/domains/bsdbase.com/eben/.tmda/"
BOUNCE_ENV_SENDER = "devnull@bsdbase.com"
#end of .tmdarc
chmod 600 .tmdarc
#生成密匙
/usr/local/tmda/bin/tmda-keygen
################################################
Generating a unique, 160-bit private key, please wait a moment..
7ae6756aa25009da25c94506aaa3886f15eb9287
Now paste the above key into ~/.tmda/crypt_key
and make sure to keep your key secret! (chmod 600 ~/.tmda/crypt_key)
###############################################
#把输出中的密匙保存为文件
echo 7ae6756aa25009da25c94506aaa3886f15eb9287>/var/vpopmail/domains/bsdbase.com/eben/.tmda/crypt_key
chmod 600 /var/vpopmail/domains/bsdbase.com/eben/.tmda/crypt_key
chown -R vpopmail:vchkpw /var/vpopmail/domains/bsdbase.com/*
chown -R vpopmail:vchkpw /var/vpopmail/domains/bsdbase.com/.*
cd /var/vpopmail/domains/bsdbase.com
#vi .qmail-eben
#去掉开头的注释,开始使用TMDA.
| preline /var/vpopmail/tmda/bin/tmda-filter -c /var/vpopmail/domains/bsdbase.com/eben/.tmda/.tmdarc
/var/vpopmail/domains/bsdbase.com/eben/Maildir/
#针对某个域设置检验
#vi /var/vpopmail/domains/bsdbase.com/eben/.tmda/lists/whitelist
#可以使用通配符
*@163.com
*@people.com.cn
#end
#注意:
#许多的由程序自动寄出的邮件不可能回复TMDA发出的校验信。
#必须正确的设置incoming规则才能处理诸如邮件列表发出的信。
#在此不作讨论。
#如果你偷懒,可以下载我做的样板,具体怎么用自己看看了:P
http://www.bsdbase.com/download/qmail/tmda-config-sample.tgz