1。封ip
针对有些垃圾邮件发送方是固定的ip或者固定ip段,那我们可以限制他们的smtp连接
vi tcp.smtp
218.61.128.61:deny
限制218.61.128.61的机器跟我的qmail服务器有任何smtp的连接
或者:
218.61.128.:deny
禁止218.61.128网段的机器跟我的qmail有任何的smtp连接。
然后
tcprules tcp.smtp.cdb tcp.smtp.tmp
生成新的tcp.smtp.cdb
当然你也可以通过iptables来限制smtp端口的连接。
2。封某个帐号
主要针对某些比较正规的垃圾邮件发送者
vi /var/qmail/control/badmailfrom
编辑/var/qmail/control/badmailfrom文件(如果没有可以新建一个)将要拒收的邮件地址写入,每条记录为一行如:
123@123.com
这样所有FROM来自123@123.com的邮件都会被邮件服务器拒收。
同样也可以对一个域进行拒收,在badmailfrom文件中加入
@test.com
这样所有来自test.com的任何地址的电子邮件都会被服务器拒收。
3。设置.qmail-default文件
vi /var/qmail/alias/.qmail-default
/var/vpopmail/bin/vdelivermail '' bounce-no-mailbox
这样垃圾邮件发过来,如果是一个不存在的邮箱,会自动弹回邮件,并告知no this mailbox
4。使用第三方的rbl服务,其实就是利用dns反查询,可以防止有些人自架mail server发垃圾信的行为。
我用的是中国反垃圾邮件联盟的CDL+DNS反查询方式的实时黑名单技术,这个服务是免费的,但必须申请才能使用
申请服务后,在你的SMTP启动脚本,加上/usr/local/bin/rblsmtpd,如下
#!/bin/sh
QMAILDUID=qmaild
NOFILESGID=nofiles
/usr/local/bin/tcpserver -H -R -l 0 -t 1 -v -p -x /var/vpopmail/etc/tcp.smtp.cdb -u $QMAILDUID -g $NOFILESGID 0
smtp /usr/local/bin/rblsmtpd -r cblplus.anti-spam.org.cn/var/qmail/bin/qmail-smtpd hostname /var/vpopmail/bin
/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2%26amp;1 | /var/qmail/bin/splogger smtpd 3 %26amp;