Linux 版 (精华区)

发信人: cliff (狗皮膏藥), 信区: Linux
标  题: LDAP应用概述与qmail+LDAP安装配置 
发信站: 哈工大紫丁香 (2001年04月01日12:01:20 星期天), 转信

发布者:gloomy 阅读次数:227  
1 概述 
计算机网络经过长期的发展,不同的操作系统和应用程序以不同的格式在网络上存
储了大量的信息,一个网络管理员无法在一个集中的信息库中,以方便的方法管理
网络信息和资源。用户必须使用不同的应用程序获取不同的信息和资源,这大大增
加了用户的负担,也使许多信息难于共享,从而在一定程度上制约了网络的发展,
因而需要一种新的技术,能够以通用的格式和方式实现信息的存储和共享,实现网
络的共享。 

目录服务技术就是用于实现上述需求的。目录服务可以命名、描述和指定一个企业
范围内的用户和资源,从而简化通信与管理;它可以使用户通过简单的搜索查找资
源及其他用户;它可以帮助管理人员收集和控制散布与该机构的信息,并可以使他
们通观地审视这些信息。 目前基于目录服务的各种网上应用越来越多。特别是随
着Intranet的崛起以及轻型目录服务LDAP(Lightweight Directory Access 
Protocol)的开发,人们对其价值的认识日趋明朗。 

本文档详细描述了Unix中常用的邮件服务器qmail的安装和配置过程,以及qmail和
LDAP的整合,重点在于qmail的基本应用及其通过LDAP Server来进行Pop3认证的配
置过程,对于其它诸如邮件网关、邮件虚拟域、邮件列表、SMTP认证等不做叙述。
本文档假定你对qmail邮件服务器和OpenLDAP的LDAP Server有基本的了解,在各种
软件包安装之前,请认真阅读软件包附带的相关安装说明文档。 

邮件服务器基于LDAP的应用扩展,是目前基于LDAP管理Internet信息的应用之一,
此外基于LDAP的WWW网关也是使用LDAP的一个方向,下图给出了这两种应用的总体
结构: 



2 安装前的准备 
操作系统 
RedHat Linux 6.2 

所需软件包 
1. qmail-1.03.tar.gz (http://www.qmail.org) 
2. ucspi-tcp-0_88_tar.gz (http://cr.yp.to/ucspi-tcp.html) 
3. checkpassword-0_90_tar.gz (http://cr.yp.to/checkpwd.html) 
4. qmail-ldap-1_03-20010301_patch.gz (http://www.nrg4u.com/) 
5. openldap-2_0_7.tgz (http://www.openldap.org) 

主机IP地址和域名配置,在本例中为: 
IP:192.168.0.117 
DomainName :gloomy.openet.com.cn 
(LDAP Server的RootDN为:dc=gloomy dc=openet dc=com dc=cn) 
3 安装与配置 
1. 卸载SendMail邮件系统 
由于大多数Linux发行版本中都预装了SendMail邮件系统,所以在安装qmail 邮件
服务器前最好卸载SendMail邮件服务器,使用如下命令: 
#netsysv (取消系统boot时启动SendMail) 
#mv /usr/lib/sendmail /usr/lib/sendmail.bak 
#mv /usr/sbin/sendmail /usr/sbin/sendmail.bak 
#mv /usr/bin/newaliases /usr/bin/newaliases.bak 
#mv /usr/bin/mailq /usr/bin/mailq.bak 

2. 安装qmail软件包 
a) 首先确定qmail的安装路径,若选默认安装的话,使用如下命令,否则需要修改
qmail软件包中相应的conf*文件: 
#mkdir /var/qmail 
b) 增加qmail所需要的组和用户,使用如下命令: 
#groupadd nofiles 
#useradd -g nofiles -d /var/qmail/alias alias 
#useradd -g nofiles -d /var/qmail qmaild 
#useradd -g nofiles -d /var/qmail qmaill 
#useradd -g nofiles -d /var/qmail qmailp 
#groupadd qmail 
#useradd -g qmail -d /var/qmail qmailq 
#useradd -g qmail -d /var/qmail qmailr 
#useradd -g qmail -d /var/qmail qmails 
a) 编译qmail源代码并安装,使用如下命令: 
#tar zxvf qmail-1.03.tar.gz 
#cd qmail-1.03 
#make setup check 
d) 建立相应的配置文件,使用如下命令: 
#config-fast gloomy.openet.com.cn 
#cd /var/qmail/alias 
#touch .qmail-postmaster .qmail-mailer-daemon .qmail-root 
#chmod 644 qmail* 
e) 选择邮件的存储方式: 
在qmail中,支持三种邮件存储方式,分别是典型的/var/spool/mail方式、传统的
Unix user/Mailbox方式和新的 user/Maildir方式,其中前两种方式为大多数的邮
件客户端所支持,但是它们均存在安全上的隐患,所以在这里使用了第三种方式,
下面分别叙述三种方式的建立方法: 
/var/spool/mail 方式 
#cp /var/qmail/boot/proc /var/qmail/rc 
user/Mailbox 方式 
#cp /var/qmail/boot/home /var/qmail/rc 
user/Maildir 方式 
1)#cp /var/qmail/boot/home /var/qmail/rc 
2)建立相应的邮件用户,例如:#useradd test 
#passwd test 
3)使用qmail提供的工具建立Maildir,命令如下: 
$ /var/qmail/bin/maildirmake Maildir 
$ echo ./Maildir/ .qmail 
(注意这里必须以用户权限建立邮箱) 
4)修改 /var/qmail/rc 文件,把其中的/Mailbox 改为/Maildir/ 
5) 为了使root用户也能收发邮件,使用如下命令: 
# su alias 
$ cd 
$ /var/qmail/bin/maildirmake Maildir 
$ echo ./Maildir/ .qmail 
f) 建立启动qmail的shell文件run_mail,其内容为: 
#cat run_mail 
csh -cf ‘/var/qmail/rc’ & 

3. 测试qmail基本邮件系统 
首先启动qmail邮件服务器,然后测试邮件的收发,使用如下命令: 
#run_mail 
#echo to : ReceiverName | /var/qmail/bin/qmail-inject 
(其中 ReceiverName 为邮件接受者的ID,例如test) 
在邮件发送后,可以查找是否收到邮件,分三种方式,依赖邮件的存储方式: 
/var/spool/mail 方式 
$cd /var/spool 
$vi ReceiverName 
或者用 
$mail 
user/Mailbox 方式 
打开用户根目录下的Mailbox文件,看是否收到邮件 
user/Maildir 方式 
$cd Maildir 
$ls new 
(注意在以上测试时,如果发生错误,可以查看/var/log/maillog文件获得出错原
因) 

4. 添加Pop3和SMTP服务 
可以使用inetd超级服务器或TcpServer来建立相应的Pop3和SMTP服务,为了支持大
容量的邮件用户,建议使用TcpServer来监听服务端口启动相应的服务,建立命令
如下: 
#tar zxvf ucspi-tcp-0_88_tar.gz 
#cd ucspi-tcp-0.88 
#make setup check 
#tar zxvf checkpassword-0_90_tar.gz 
#cd checkpassword-0.90 
#make setup check 
修改上面建立的run_mail文件,修改后的内容如下: 
#cat run_mail 
csh -cf /var/qmail/rc & 
tcpserver –u 502 –g 501 -c 100 0 smtp /var/qmail/bin/qmail-smtpd & 
tcpserver -c100 0 pop3 /var/qmail/bin/qmail-popup gloomy.openet.com.cn 
/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir & 
修改/var/qmail/control/rcpthosts文件,来增加SMTP接收邮件的域 
例如:#cat /var/qmail/control/rcpthosts 
gloomy.openet.com.cn 
ldap,openet.com.cn 
tbs.openet.com.cn 
openet.com.cn 

5. 测试Pop3和SMTP服务 
首先启动qmail邮件服务器,然后测试,使用如下命令: 
1) 本地测试 
#run_mail 
#netstat –na | grep 25 
#netstat –na | grep 110 
#telnet localhost 110 
user test 
pass test 
list 
retr 1 
2) 远程测试 
利用Windows下的图形邮件客户端(如 outlook、foxmail等)来测试邮件的收发,
客户端邮件帐号的建立请参考附带的帮助文档。 

6. 为qmail增加LDAP支持 
qmail可以通过LDAP来代替传统的/etc/passwd方式的Pop3认证,以便提高认证效率
和有效的支持大容量的邮件客户,为了使qmail获得LDAP支持,需要在qmail的基础
上增加具备LDAP认证的Patch包,具体操作使用如下命令: 
#gunzip qmail-ldap-1_03-20010301_patch.gz 
#cd qmail-1.03 
#patch -p1 < /path to qmail-ldap patch/qmail-ldap patch name 
在patch包打好之后,需要修改qmail的Makefile文件来配置相应的LDAP信息,具体
如下(这里只说明必须修改的,其余的可选项请参考QLDAPINSTALL.TXT文档): 

1) -LDAPFLAGS = -DCLEARTEXTPASSWORD 
配置是否在LDAP目录中使用明文密码 
2) -LDAPLIBS = 
配置使用的LDAP接口库,在本例中为: 
-LDAPLIBS = -L/root/LdapServer/lib -lldap –llber –lldap_r –lpthread 
-lresolv 
3) -LDAPINCLUDES = 
配置使用的LDAP头文件,在本例中为: 
-LDAPINCLUDES = -I/root/LdapServer/include 
4)-SHADOWLIBS = -lcrypt –lshadow 
-SHADOWOPTS = -DPW_SHADOW 
配置使用的密码认证方式 
在Makefile设置修改完毕后,重新编译qmail源文件,然后覆盖安装qmail,使用如
下命令: 
#make setup check 

7. 安装OpenLDAP 
本例中采用了OpenLDAP的开放源代码LDAP Server,详细的管理请参考(http:
//www.openldap.org)站点的文档以及《LDAP配置手册》,下面概述其安装配置过
程: 
#tar zxvf openldap-2_0_7.tgz 
#cd openldap-2.0.7 
#./configure 
#make depend 
#make 
#make test 
#make install 
修改OpenLDAP Server的配置文件,启动slapd服务器,具体如下: 
#cd path to LDAP Server/ 
#vi etc/openldap/slapd.conf 
主要修改slapd.conf文件中的如下部分,在本例中为: 
############################################# 
# ldbm database definitions 
############################################# 
database ldbm 
suffix "dc=gloomy , dc=openet , dc=com , dc=cn" 
rootdn "dc=gloomy , dc=openet , dc=com , dc=cn" 
rootpw secret 
index objectclass,mail,uid 
index qmailUser 

8. 配置qmail+LDAP 
在LDAP Server安装测试完毕后,修改并建立相应的qmail配置文件,增加对LDAP 
LookUp的支持,分为如下几步: 
1) 在/var/qmail/control/下建立相应的LDAP支持文件: 
#cat ldapserver 
192.168.0.117 
#cat ldapbasedn 
dc=gloomy , dc=openet , dc=com , dc=cn 
#cat ldapobjectclass 
qmailUser 
2) 为LDAP添加相应的支持qmail邮件用户的schema: 
#cd qmail-1.03 
#cp qmail.schema /root/LdapServer/etc/openldap/schema 
修改slapd.conf文件,加入下面一行: 
include /root/LdapServer/etc/openldap/schema/qmai.schema 
3) 修改前面建立的run_mail启动脚本,修改后的内容如下: 
#cat run_mail 
csh -cf /var/qmail/rc & 
tcpserver –u 502 –g 501 -c 100 0 smtp /var/qmail/bin/qmail-smtpd & 
tcpserver -c100 0 pop3 /var/qmail/bin/qmail-popup gloomy.openet.com.cn 
/var/qmail/bin/auth_pop /var/qmail/bin/qmail-pop3d Maildir & 

9. 在LDAP DIT中增加qmail邮件用户目录 
首先启动LDAP服务器,然后创建相应的*.ldif文件(有关LDIF文件的格式,请参考
RFC2849的描述),插入LDAP数据库中,具体的命令如下: 
#/root/LdapServer/libexec/slapd 
在本例中建立的的交换文件为mailer.ldif,其具体内容如下: 
#cat mailer.ldif 
dn: cn=testUser , dc=gloomy , dc=openet , dc=com , dc=cn 
cn: testUser 
sn: testUser 
objectClass: top 
objectClass: person 
objectClass: inetOrgPerson 
objectClass: qmailUser 
mail: test@gloomy.openet.com.cn 
mailHost: gloomy.openet.com.cn 
mailMessageStore: /home/test/Maildir/ 
mailQuota: 1000000S,100C 
uid: test 
userPassword: test 
插入qmail用户目录到LDAP的目录信息树中,使用如下命令: 
#/root/LdapServer/bin/ldapadd –x –D”dc=gloomy,dc=openet,dc=com,dc=cn
” –W –f mailer.ldif 

10. 测试基于LDAP的Pop3认证 
在上述步骤完成后,从新测试qmail邮件系统的运行状况,主要从以下三个方面测
试,具体命令如下: 
1) 本地测试 
具体请参考上面小节3的方法 
2) Pop3+SMTP测试 
具体请参考上面小节5的方法 
3) 测试工具 
#/var/qmail/bin/qmail-ldaplookup –u test 
#/var/qmail/bin/qmail-ladplookup –m test@gloomy.openet.com.cn 
4 参考资料 
1) Life with qmail (http://www.lifewithqmail.org/lwq.html) 
2) Life with qmail-LDAP (http://www.lifewithqmail.org/ldap/) 
3) QLDAPINSTALL (http://www.nrg4u.com/) 
4) Open LDAP 2.0 Administrator’s Guide (http://www.openldap.
org/doc/admin/) 
5) 《LDAP配置手册》 
5 总结 
LDAP使得过去杂乱无序的网络资源和信息管理呈现出一种树状的有序体系,不但使
Internet资源的管理和控制变得易于进行,而且同时在另外一方面也提高了各种信
息和资源的使用效率,LDAP用10%的代价实现了X.500 DAP 90%的功能,是目前
Internet上越来越广泛的应用之一,本文通过对qmail邮件服务器和LDAP整合应用
的安装和配置的描述,希望能够对掌握LDAP这个下一代因特网服务与应用的基础提
供一定的帮助。 
 


--
    灌 水 不 要 紧
    只 要 主 义 真
    封 了 咱 一 个 
    还 有 后 来 人

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: cliff.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:7.574毫秒