最新公告 |
当前位置: 首页 > 新闻与文档 > 深信服 >

如何在qmail里配置smtp

时间:2012-06-09 10:48来源:港湾互联网络 作者:港湾网络编辑 点击:
qmail是一个因特网邮件传送代理(简写为mta),它运行在linux/unix兼容系统下,是一个直接代替unix下sendmail软件的邮件传送程序。qmail使用smtp协议与其它系统上

在qmail里配置smtp不复杂,请看下文。

一、操作系统

rathat linux 6.2

二、必需的软件

1、qmail-1.03 ()

2、checkpassword (cr.yp.to/checkpwd.html) 或 vpopmail ()

3、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 < /etc/tcp.smtp

3、将qmail-smtpd.c 拷贝到qmail 的源文件目录里,最好先将原文件备份。

单独编译 qmail-smtpd 。(vi makefile;找到跟qmail-smtpd有关的命令)

./compile qmail-smtpd.c

./load qmail-smtpd rcpthosts.o commands.o timeoutread.o \

timeoutwrite.o ip.o ipme.o ipalloc.o control.o constmap.o \

received.o date822fmt.o now.o qmail.o cdb.a fd.a wait.a \

datetime.a getln.a open.a sig.a case.a env.a stralloc.a \

alloc.a substdio.a error.a str.a fs.a auto_qmail.o `cat \

socket.lib`

4、将新生成的qmail-smtpd 拷贝到/var/qmail/bin 目录下。为了与原来的执行文件有区别,

这里把新的执行文件改名为 qmail-smtpd.auth 。

5、设置 /bin/checkpassword 或 /home/vpopmail/bin/vchkpw 可以setuid和setgid。这点

很重要,否则认证无法通过。这是因为smtpd 的进程是由qmaild 执行的。而密码验证程序

原来只使用于pop3进程,分别由root或vpopmail执行,为的是读shadow或数据库中的密码,

并取出用户的邮件目录。这些操作qmaild 都没有权限去做。如果smtp进程要调用密码验证

程序,则必须要使用 setuid 和setgid 。其实这点大可放心,这两个密码验证程序都是带

源代码的,本身非常安全,只需要放在安全的目录里就可以了(设置其他用户除qmaild 可

执行外都没有权限执行;其实如果没有其他shell帐户,也就不用这么麻烦了)。

chmod 4755 /bin/checkpassword 或

chmod 4755 /home/vpopmail/bin/vchkpw

6、命令行测试:

如果使用的是vpopmail,要把下面的 /bin/checkpassword 换成 /home/vpopmail/bin/vchkpw 。

#su - qmaild -c "/var/qmail/bin/qmail-popup localhost /bin/checkpassword pwd"〈回车>

+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>&1 | /var/qmail/bin/splogger smtpd 3 &

(其中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>&1 \

| /var/qmail/bin/splogger smtpd 3 &

如果使用的是vpopmail,要把上面的 /bin/checkpassword 换成 /home/vpopmail/bin/vchkpw 。

8、kill掉原来的smtpd进程,启动新的smtpd进程。

9、在客户端上使用 outlookexpress 和 netscape 4.6 以上版本的邮件软件进行检验。

四、以上设置在 checkpassword 和 vpopmail 两种验证方式下均已实践通过。

通过上文的介绍,我们都知道了如何在qmail里配置smtp,希望对大家有所帮助!

【编辑推荐】

【责任编辑:褚杰 tel:(010)68476606】


  • (0票)
  • (0票)
  • (0票)
  • (0票)
  • (0票)
  • (0票)
  • 原文:如何在qmail里配置smtp 返回操作系统首页

    (责任编辑:admin)
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线----------------------------
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    用户名: 验证码: 点击我更换图片
    栏目列表
    推荐内容
    驱白巴布期片 白癜风的发病原因 复方卡力孜然酊 白癜风早期能治愈吗 北京军颐中医医院 白癜风早期能治愈吗 北京军颐中医医院 北京军颐中医医院 补骨脂注射液 白癜风症状 白癜风治疗医院 北京白癜风医院 治疗白癜风最好的方法 北京军颐中医医院 头部白癜风的症状 白癜风传染吗 白癜风的发病原因 北京白癜风医院哪家好 白癜风的危害 白癜风早期症状 白癜风的治疗 白癜风症状 白癜风治疗 专业治疗白癜风医院哪家好 白癜风早期能治愈吗 白癜风症状 白癜风能治愈吗 白癜风治疗 白癜风治疗方法 白癜风怎么治疗 儿童白癜风发病的原因 白癜风的危害 白癜风治疗要花多少钱 白癜风去哪里治疗最好 白癜风治疗医院 如何治疗白癜风好 白癜风能治愈吗 什么方法治疗白癜风好 廊坊治疗白癜风最好的专科医院 白癜风怎么治疗好 白癜风早期能治愈吗 白癜风哪里治疗好 治疗白癜风的偏方有哪些 怎么治疗白癜风好 石家庄白癜风最好的医院 怎么治疗白癜风好 治疗白癜风哪家医院好 治疗牛皮癣,北京牛皮癣医院 白癜风治疗最好医院 白癜风能治愈吗 白癜风能治愈吗 白癜风早期症状 白癜风专科医院 治疗白癜风医院 白癜风早期症状是怎么样 天津治疗白癜风哪家医院效果最好 北京白癜风军颐中医医院 白癜风治疗医院 白癜风如何治疗 白癜风医院 治疗白癜风最好医院 牛皮癣 牛皮癣治疗 牛皮癣医院 治疗白癜风多少钱 北京治疗白癜风最好医院 白癜风早期症状 治疗白癜风偏方
    How To Get Rid Of Stretch Marks
    How to Get Rid of Acne Scars
    how to get rid of flakes
    how to ask a girl out
    how to get a girl to like you
    How To Talk To Girls
    How To Impress A Girl