一、操作系统
RatHatLinux6.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
userrealuser〈回车
+OK
passpassword〈回车
如果结果显示的是用户目录,说明成功了;如果显示"-ERRauthorizationfailed",除检查
密码外,还要检查用户上级的各个目录是否可读,还有密码验证程序的权限是否设置正确。
7、修改smtpd启动命令行,原来是:
/usr/local/bin/tcpserver-H-R-l0-t1-c100-x/etc/tcp.smtp.cdb-u604-g601
0smtp/var/qmail/bin/qmail-smtpd2%26amp;1|/var/qmail/bin/sploggersmtpd3%26amp;
(其中604是qmaild的UID,601是qmaild的GID),改为:
/usr/local/bin/tcpserver-H-R-l0-t1-c100-x/etc/tcp.smtp.cdb-u604-g601
0smtp/var/qmail/bin/qmail-smtpd.auth/bin/checkpassword/bin/true2%26amp;1
|/var/qmail/bin/sploggersmtpd3%26amp;
如果使用的是vpopmail,要把上面的/bin/checkpassword换成/home/vpopmail/bin/vchkpw。
8、KILL掉原来的smtpd进程,启动新的smtpd进程。
9、在客户端上使用OutlookExpress和Netscape4.6以上版本的邮件软件进行检验。
四、以上设置在checkpassword和vpopmail两种验证方式下均已实践通过。
,