Linux服务器SMTP端口被盗用发送垃圾邮件,又GMAIL/Yahoo等列入垃

http://blog.csdn.net/thefirstwind/archive/2007/10/31/1858983.aspx作者:邢晓宁时间:2007年10月31日

标题:

Linux服务器SMTP端口被盗用发送垃圾邮件,又GMAIL/Yahoo等列入垃圾邮件列表之后的对策

1.问题描述:公司邮件服务器被挂成肉鸡,无限制的向外发送垃圾邮件,又gmail、yahoo列入了垃圾邮件黑名单,向gmail、yahoo发送邮件立即被退回。

2.对策:根据google推荐的策略,首先是添加邮件服务器的smtp auth送信认证,再有就是添加DNS端的电子签名(DomainKeys)。3.适应环境:操作系统 CentOS Redhat Fedoa 邮件服务器 Qmail DNS服务器 Bind邮件服务器插件 DomainKeys4.主要参考http://jeremy.kister.net/howto/dk.htmlhttp://domainkeys.sourceforge.net/http://machtype.com/~flesh_gogo/linux-other-bind-qmail-spf.html

[安装手册]邮件服务器端安装DomainKeys

# cd /usr/local/src/# wget http://cr.yp.to/software/qmail-1.03.tar.gz# wget http://superb-east.dl.sourceforge.net/sourceforge/domainkeys/libdomainkeys-0.68.tar.gz# wget http://www.qmail.org/qmail-1.03-dk-0.54.patch# wget http://jeremy.kister.net/code/qmail-dk-0.54-auth.patch # 可选,对应smtp-auth# tar -zxvf libdomainkeys-0.68.tar.gz# cd libdomainkeys-0.68# make# 如果出现错误 参考下面红色文字# make./libdomainkeys.a(dns_txt.o): In function `dns_text’:dns_txt.c:(.text+0x55): undefined reference to `__res_query’dns_txt.c:(.text+0xd3): undefined reference to `__dn_expand’dns_txt.c:(.text+0x18b): undefined reference to `__dn_expand’collect2: ld はステータス 1 で終了しましたmake: *** [dktest] エラー 1# make clean# echo -lresolv > dns.lib# make# tar -zxvf /usr/local/src/qmail-1.03.tar.gz# echo ‘gcc -O2 -include /usr/include/errno.h’ > qmail-1.03/conf-cc# patch -d qmail-1.03/ < ../qmail-1.03-dk-0.54.patch# patch -d qmail-1.03/ < ../qmail-dk-0.54-auth.patch # 可选,对应 smtp-auth# cd qmail-1.03# make qmail-dk# cp qmail-dk /var/qmail/bin/# cp qmail-dk.8 /var/qmail/man/man8/# chown qmailq /var/qmail/bin/qmail-dk# chmod 4711 /var/qmail/bin/qmail-dk

生成电子密钥

#mkdir -p /etc/domainkeys/`hostname -d`/#cd /etc/domainkeys/`hostname -d`/ 在DNS端用“邮件服务器域名” 代替上面的 `hostname -d`#/usr/local/ssl/bin/openssl genrsa -out rsa.private 768#/usr/local/ssl/bin/openssl rsa -in rsa.private -out rsa.public -pubout -outform PEM#mv rsa.private default#chown -R qmailq /etc/domainkeys#chmod 0600 default

生成公钥

#grep -v ^- rsa.public | perl -e ‘while(<>){chop;$l.=$_;}print "t=y; p=$l;/n";’t=y; p=MHwwD7XKKIUeTXPTzPrXQIDAQABJhALrzMz86s1SVjDKmD5Rj/Nakwk41i7bDmGHjRIccPf1Po7Ng57XKKIUeTXPTzPr7XKKIUeTXPTzPrXQIDAQABn+ulatFGT99qDW7roK3nb48Uwen3sKmiLHTsIYH7i3t4MFn7XKKIUeTXPTzPrXQIDAQAB;

DNS服务器端最后添加_domainkey.example.com. IN TXT "t=y; o=-";default._domainkey.example.com. IN TXT "DomainKey_from_step_5"

# vi /var/named/chroot/var/named/邮件服务器域名$TTL 3D@ IN SOA DNS服务器. postmaster.邮件服务器域名. ( 200106074 1M 15M 4W 1D)

NS DNS服务器. MX 10 邮件服务器.

ns IN A 邮件服务器IPwww IN A 邮件服务器IPmail IN A 邮件服务器IPasset IN A 邮件服务器IP以下为添加部分_domainkey.邮件服务器域名. IN TXT "t=y; o=-";default._domainkey.邮件服务器域名. IN TXT "生成的公钥"

邮件服务器端修改qmailqueue文件

# ln /var/qmail/bin/qmail-queue /var/qmail/bin/qmail-queue.orig# ln /var/qmail/bin/qmail-dk /var/qmail/bin/qmail-queue.new# mv /var/qmail/bin/qmail-queue.new /var/qmail/bin/qmail-queue

修改tcp.smtp文件,返信策略

# vi /etc/tcp.smtp10.0.0.2:allow,RELAYCLIENT="",DKSIGN="/etc/domainkeys/邮件服务器域名/default",QMAILQUEUE="bin/qmail-dk":allow,DKVERIFY="DEGIJKfh",QMAILQUEUE="bin/qmail-dk"127.:allow,RELAYCLIENT=""

从新创建cdb文件

tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

最后把环境变两添加到/etc/profile文件中

# echo "QMAILQUEUE=/var/qmail/bin/qmail-dk" >> /etc/profile# echo "DKSIGN=/etc/domainkeys/`hostname -d`/default" >> /etc/profile# echo "export QMAILQUEUE DKSIGN " >> /etc/profile# source /etc/profile

别忘记从新启动qmail和dns服务哦。

任何的限制,都是从自己的内心开始的。

Linux服务器SMTP端口被盗用发送垃圾邮件,又GMAIL/Yahoo等列入垃

相关文章:

你感兴趣的文章:

标签云: