设为首页收藏本站
ORF反垃圾邮件系统

邮件服务器-邮件系统-邮件技术论坛(BBS)

 找回密码
 会员注册

QQ登录

只需一步,快速开始

查看: 6546|回复: 2

Sendmail环境下实现SMTP认证拒绝垃圾邮件

[复制链接]
发表于 2003-6-23 16:55:26 | 显示全部楼层 |阅读模式
Sendmail环境下实现SMTP认证拒绝垃圾邮件 <br>
<br>
<a target=_blank href=http://Linuxaid.com.cn>http://Linuxaid.com.cn</a> 01-07-18 08:18 2733p ideal <br>
-------------------------------------------------------------------------------- <br><br>
<br>
摘要:本文讨论了如何利用sendmail 邮件服务器软件,配合 cyrus sasl 身分认证程序库,建立对sendmail的SMTP认证功能以防止服务器被垃圾邮件发送者滥用。 <br>
<br>
前言 <br>
<br>传统的邮件传送协定 (SMTP)不具备对使用者身份进行认证的功能,此相当容易被恶意用户滥用,而导致自己的邮件服务器成为广告邮件或垃圾邮件的转送点,这是历史原因造成的。而没有身分认证功能的邮件传送机制,也造成系统管理或是网路管理人员,处理问题邮件追踪时的困难。 <br>
<br>因此大多数的邮件系统都拒绝为内部可信赖的园区网以外的使用者转发邮件(mail relay),但这种限制也造成了合法使用者使用上的不方便。例如出差或是下班回家之后,无法继续使用公司的邮件服务器发信。学生放假离开学校之后也不能使用学校的邮件主机发出信件,如果设定邮件服务器为open relay模式的,则可能会造成服务器转发功能被滥用。对于那些免费邮件服务提供商来说也存在着这样的问题。 <br>
<br>以往要解决这个问题,必须购买一些昂贵的商业邮件服务器,以便在使用者发出信件前先进行身份的认证。但是现在使用新版本的sendmail 邮件服务软件,搭配 cyrus sasl身分认证程序库,即可达成往日商业软件才有的身分认证功能。 <br>
<br>请在阅读本文之前先阅读本站的“sendmail快速指南一文”。 <br>
<br>
软件环境 <br>
<br>
cyrus-sasl-1.5.24 <a target=_blank href=ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/>ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/</a> 本地下载 <br>
sendmail.8.11.4 <a target=_blank href=http://www.sendmail.org/8.11.html>http://www.sendmail.org/8.11.html</a> 本地下载 <br>
<br>
操作系统为:Redhat 6.2 <br>
<br>
硬件环境:HP E60 单网卡 <br>
<br>
安装认证库 <br>
<br>如果先前已经安装有旧版本的 Cyrus SASL 请先将其移除,方法是手工删除/usr/lib/sasl或/usr/local/lib/sasl目录。 <br>
<br>
安装过程如下: <br>
<br>
[root@mail src]# cd /usr/src/ <br>
[root@mail src]# tar xvfz cyrus-sasl-1.5.24.tar.gz <br>
[root@mail src]# cd cyrus-sasl-1.5.24 <br>
[root@mail cyrus]# ./configure -prefix=/usr --enable-login --with-pwcheck --with-digest <br>
[root@mail cyrus]# make <br>
[root@mail cyrus]# make install <br>
<br>
安装完成后,建立一个/var/pwcheck目录,pwcheck程序要用此目录。 <br>
<br>
接下来必须设置 sendmail 的使用者身分查验方式,这里使用系统帐号与密来进行验证: <br>
<br>
[root@mail cyrus-sasl-1.5.24]# cd /usr/lib/sasl/ <br>
[root@mail sasl]# cat > Sendmail.conf <br>
pwcheck_method: shadow <br>
^D <br>
<br>
请特别留意Sendmail.conf开头的S字母必须为大写。 <br>
<br>
关于 Cyrus SASL 认证程序库更详细的说明,请参阅 Cyrus SASL for System Administrators。 <<a target=_blank href=http://www.sendmail.org/%7Eca/email/cyrus/sysadmin.html&gt>http://www.sendmail.org/%7Eca/email/cyrus/sysadmin.html&gt</a>; <br>
<br>
<br>
编译及配置Sendmail <br>
如果系统中正在执行旧版的sendmail请先将其停止,停止 sendmail 的方法是 killall sendmail 或是先找出 sendmail 的 pid 然后 kill pid 将其停止。 <br>
<br>
解压软件包: <br>
<br>
[root@email src]# tar xvfz sendmail.8.11.4.tar.gz <br>
[root@email src]# cd sendmail-8.11.4 <br>
<br>
在子目录devtools/Site/下创建site.config.mc文件,内容如下 <br>
<br>
PREPENDDEF(`confMAPDEF',`-DMAP_REGEX') <br>
PREPENDDEF(`confOPTIMIZE',`-O6') <br>
PREPENDDEF(`confOPTIMIZE',`-O6') <br>
APPENDDEF(`confENVDEF',`-DSASL') <br>
APPENDDEF(`conf_sendmail_LIBS',`-lsasl') <br>
APPENDDEF(`confLIBDIRS',`-L/usr/local/lib -L/usr/local/lib/sasl') <br>
APPENDDEF(`confINCDIRS',`-I/usr/local/include -I/usr/local/include/sasl') <br>
<br>
编译sendmail: <br>
<br>
[root@mail sendmail-8.11.4]# /usr/src/sendmail-8.11.4/sendmail <br>
[root@mail sendmail]# sh Build -c -f ../devtools/Site/site.config.mc <br>
<br>
安装: <br>
<br>[root@mail sendmail]# sh Build install <br>
<br>
生成配置文件: <br>
<br>[root@mail sendmail-8.11.4]# cd cf/cf/ <br>
<br>
创建文件sendmail.mc文件,内容如下: <br>
<br>
divert(-1) <br>
dnl This is the macro config file used to generate the /etc/sendmail.cf <br>
dnl file. If you modify thei file you will have to regenerate the <br>
dnl /etc/sendmail.cf by running this macro config through the m4 <br>
dnl preprocessor: <br>
dnl m4 /etc/sendmail.mc > /etc/sendmail.cf <br>
dnl You will need to have the Sendmail-cf package installed for this to work. <br>
include(`/usr/src/sendmail-8.11.4/cf') <br>
define(`confDEF_USER_ID',`8:12') <br>
OSTYPE(`linux') <br>
undefine(`UUCP_RELAY') <br>
undefine(`BITNET_RELAY') <br>
define(`confAUTO_REBUILD') <br>
define(`confTO_CONNECT', `1m') <br>
define(`confTRY_NULL_MX_LIST',true) <br>
define(`confDONT_PROBE_INTERFACES',true) <br>
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail') <br>
FEATURE(`smrsh',`/usr/sbin/smrsh') <br>
FEATURE(`mailertable',`hash -o /etc/mail/mailertable') <br>
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable') <br>
FEATURE(redirect) <br>
FEATURE(always_add_domain) <br>
FEATURE(use_cw_file) <br>
FEATURE(local_procmail) <br>
MAILER(smtp) <br>
MAILER(procmail) <br>
FEATURE(`access_db') <br>
FEATURE(`blacklist_recipients') <br>
dnl We strongly recommend to comment this one out if you want to protect <br>
dnl yourself from spam. However, the laptop and users on computers that do <br>
dnl not hav 24x7 DNS do need this. <br>
FEATURE(`accept_unresolvable_domains') <br>
dnl FEATURE(`relay_based_on_MX') <br>
TRUST_AUTH_MECH(`LOGIN PLAIN ')dnl <br>
define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl <br>
FEATURE(`no_default_msa')dnl turn off default entry for MSA <br>
DAEMON_OPTIONS(`Port=25, Name=MSA, M=E')dnl <br>
<br>
然后运行: <br>
<br>
[root@email cf]# sh Build sendmail.cf <br>
<br>
再对原有的配置文件备份以后,将新生成的sendmail.cf拷贝到目录/etc/mail中。 <br>
<br>
最后启动sendmail: <br>
<br>
[root@email mail]# /usr/sbin/sendmail -bd -q20m <br>
<br>
测试 <br>
<br>
检查SASL是否已经生效。过程如下: <br>
<br>
[root@mail cf]# sendmail -d0.1 -bv root | grep SASL <br>NETINET NETUNIX NEWDB QUEUE SASL SCANF SMTP USERDB XDEBUG <br>
<br>
其中有SASL,表示Sendmail确实支持SASL了。<br>
发表于 2004-4-15 11:16:53 | 显示全部楼层

Re:Sendmail环境下实现SMTP认证拒绝垃圾邮件

太老了,一点用处也没有!
发表于 2004-6-3 21:38:27 | 显示全部楼层

Re:Sendmail环境下实现SMTP认证拒绝垃圾邮件

是否可以在sendmail的配置作做出在转发的时候连通用户口令一齐转发<br>
?<br>
,就象现在很多的pop3?proxy一样?谢谢
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

小黑屋|手机版|Archiver|邮件技术资讯网    

GMT+8, 2019-11-17 09:47

Powered by Discuz! X3.2

© 2001-2016 Comsenz Inc.

本论坛为非盈利中立机构,所有言论属发表者个人意见,不代表本论坛立场。内容所涉及版权和法律相关事宜请参考各自所有者的条款。
如认定侵犯了您权利,请联系我们。本论坛原创内容请联系后再行转载并务必保留我站信息。此声明修改不另行通知,保留最终解释权。
*本论坛会员专属QQ群:邮件技术资讯网会员QQ群
*本论坛会员备用QQ群:邮件技术资讯网备用群

快速回复 返回顶部 返回列表