一、操作系统 RatHat Linux 6.2 二、必需的软件 1、qmail-1.03 (www.qmail.org) 2、checkpassword (cr.yp.to/checkpwd.html) 或 vpopmail (www.inter7.com/vpopmail) 3、qmail-smtpd.c (www.nimh.org/hacks/qmail-smtpd.c) 关键文件 其实,qmail和checkpassword都可以是编译好的,并正在使用中的。这样只需一个文件就可以搞定, 而且不影响正常使用。 三、软件的安装 1、正常安装qmail,checkpassword 或 vpopmail 。 2、设置relay规则。 relay的意思是:服务器接受客户端的smtp请求,将客户端发往第三方的邮件进行转发。 relay 必须是可控制的。qmail下控制relay很简单,只要客户端接入的smtp进程的环境变量里 包含(RELAYCLIENT="")就允许relay ,否则拒收。实现方法是在/etc/tcp.smtp 里对需要relay 的IP逐条设置(RELAYCLIENT=""),然后用tcprules 生成规则表。因为本文要实现SMTP认证后的 relay ,不需要对任何IP进行预先设定,所以默认规则设置成“只对本服务器relay”。 echo '127.0.0.1:allow,RELAYCLIENT=""' > /etc/tcp.smtp /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp +OK ,〈">18789.978689240@localhost> user realuser〈回车> +OK pass password〈回车> 如果结果显示的是用户目录,说明成功了;如果显示"-ERR authorization failed",除检查 密码外,还要检查用户上级的各个目录是否可读,还有密码验证程序的权限是否设置正确。 7、修改smtpd启动命令行,原来是: /usr/local/bin/tcpserver -H -R -l 0 -t 1 -c 100 -x/etc/tcp.smtp.cdb -u604 -g601 0 smtp /var/qmail/bin/qmail-smtpd 2>%26amp;1 | /var/qmail/bin/splogger smtpd 3 %26amp; (其中604是qmaild 的UID,601是qmaild 的GID),改为: /usr/local/bin/tcpserver -H -R -l 0 -t 1 -c 100 -x/etc/tcp.smtp.cdb -u604 -g601 0 smtp /var/qmail/bin/qmail-smtpd.auth /bin/checkpassword /bin/true 2>%26amp;1 | /var/qmail/bin/splogger smtpd 3 %26amp; 如果使用的是vpopmail,要把上面的 /bin/checkpassword 换成 /home/vpopmail/bin/vchkpw 。 8、KILL掉原来的smtpd进程,启动新的smtpd进程。 9、在客户端上使用 OutlookExpress 和 Netscape 4.6 以上版本的邮件软件进行检验。 四、以上设置在 checkpassword 和 vpopmail 两种验证方式下均已实践通过。 ,
|