|
 |
栏目导栏 |
|
| |
|
|
|
|
 |
资料搜索 |
|
| |
|
|
|
|
 |
热门文章 |
|
| |
|
|
|
|
 |
最新文章 |
|
| |
|
|
|
| |
| |
|
|
|
|
1 概述 cLkLinux联盟 计算机网络经过长期的发展,不同的操作系统和应用程序以不同的格式在网络上存储了大cLkLinux联盟 量的信息,一个网络管理员无法在一个集中的信息库中,以方便的方法管理网络信息和资cLkLinux联盟 源。用户必须使用不同的应用程序获取不同的信息和资源,这大大增加了用户的负担,也cLkLinux联盟 使许多信息难于共享,从而在一定程度上制约了网络的发展,因而需要一种新的技术,能cLkLinux联盟 够以通用的格式和方式实现信息的存储和共享,实现网络的共享。 cLkLinux联盟 cLkLinux联盟 目录服务技术就是用于实现上述需求的。目录服务可以命名、描述和指定一个企业范围内cLkLinux联盟 的用户和资源,从而简化通信与管理;它可以使用户通过简单的搜索查找资源及其他用cLkLinux联盟 户;它可以帮助管理人员收集和控制散布与该机构的信息,并可以使他们通观地审视这些cLkLinux联盟 信息。 目前基于目录服务的各种网上应用越来越多。特别是随着Intranet的崛起以及轻cLkLinux联盟 型目录服务LDAP(Lightweight Directory Access Protocol)的开发,人们对其价值cLkLinux联盟 的认识日趋明朗。 cLkLinux联盟 cLkLinux联盟 本文档详细描述了Unix中常用的邮件服务器qmail的安装和配置过程,以及qmail和LDAPcLkLinux联盟 的整合,重点在于qmail的基本应用及其通过LDAP Server来进行Pop3认证的配置过程,cLkLinux联盟 对于其它诸如邮件网关、邮件虚拟域、邮件列表、SMTP认证等不做叙述。本文档假定你对cLkLinux联盟 qmail邮件服务器和OpenLDAP的LDAP Server有基本的了解,在各种软件包安装之前,请cLkLinux联盟 认真阅读软件包附带的相关安装说明文档。 cLkLinux联盟 cLkLinux联盟 邮件服务器基于LDAP的应用扩展,是目前基于LDAP管理Internet信息的应用之一,此外cLkLinux联盟 基于LDAP的WWW网关也是使用LDAP的一个方向,下图给出了这两种应用的总体结构: cLkLinux联盟 cLkLinux联盟 cLkLinux联盟 cLkLinux联盟 cLkLinux联盟 2 安装前的准备 cLkLinux联盟 操作系统 cLkLinux联盟 RedHat Linux 6.2 cLkLinux联盟 cLkLinux联盟 所需软件包 cLkLinux联盟 1. qmail-1.03.tar.gz (http://www.qmail.org) cLkLinux联盟 2. ucspi-tcp-0_88_tar.gz (http://cr.yp.to/ucspi-tcp.html) cLkLinux联盟 3. checkpassword-0_90_tar.gz (http://cr.yp.to/checkpwd.html) cLkLinux联盟 4. qmail-ldap-1_03-20010301_patch.gz (http://www.nrg4u.com/) cLkLinux联盟 5. openldap-2_0_7.tgz (http://www.openldap.org) cLkLinux联盟 cLkLinux联盟 主机IP地址和域名配置,在本例中为: cLkLinux联盟 IP:192.168.0.117 cLkLinux联盟 DomainName :gloomy.openet.com.cn cLkLinux联盟 (LDAP Server的RootDN为:dc=gloomy dc=openet dc=com dc=cn) cLkLinux联盟 3 安装与配置 cLkLinux联盟 1. 卸载SendMail邮件系统 cLkLinux联盟 由于大多数Linux发行版本中都预装了SendMail邮件系统,所以在安装qmail 邮件服务器cLkLinux联盟 前最好卸载SendMail邮件服务器,使用如下命令: cLkLinux联盟 #netsysv (取消系统boot时启动SendMail) cLkLinux联盟 #mv /usr/lib/sendmail /usr/lib/sendmail.bak cLkLinux联盟 #mv /usr/sbin/sendmail /usr/sbin/sendmail.bak cLkLinux联盟 #mv /usr/bin/newaliases /usr/bin/newaliases.bak cLkLinux联盟 #mv /usr/bin/mailq /usr/bin/mailq.bak cLkLinux联盟 cLkLinux联盟 2. 安装qmail软件包 cLkLinux联盟 a) 首先确定qmail的安装路径,若选默认安装的话,使用如下命令,否则需要修改qmailcLkLinux联盟 软件包中相应的conf*文件: cLkLinux联盟 #mkdir /var/qmail cLkLinux联盟 b) 增加qmail所需要的组和用户,使用如下命令: cLkLinux联盟 #groupadd nofiles cLkLinux联盟 #useradd -g nofiles -d /var/qmail/alias alias cLkLinux联盟 cLkLinux联盟 #useradd -g nofiles -d /var/qmail qmaild cLkLinux联盟 #useradd -g nofiles -d /var/qmail qmaill cLkLinux联盟 #useradd -g nofiles -d /var/qmail qmailp cLkLinux联盟 #groupadd qmail cLkLinux联盟 #useradd -g qmail -d /var/qmail qmailq cLkLinux联盟 #useradd -g qmail -d /var/qmail qmailr cLkLinux联盟 #useradd -g qmail -d /var/qmail qmails cLkLinux联盟 c) 编译qmail源代码并安装,使用如下命令: cLkLinux联盟 #tar zxvf qmail-1.03.tar.gz cLkLinux联盟 #cd qmail-1.03 cLkLinux联盟 #make setup check cLkLinux联盟 d) 建立相应的配置文件,使用如下命令: cLkLinux联盟 #config-fast gloomy.openet.com.cn cLkLinux联盟 cLkLinux联盟 #cd /var/qmail/alias cLkLinux联盟 #touch .qmail-postmaster .qmail-mailer-daemon .qmail-root cLkLinux联盟 #chmod 644 qmail* cLkLinux联盟 e) 选择邮件的存储方式: cLkLinux联盟 在qmail中,支持三种邮件存储方式,分别是典型的/var/spool/mail方式、传统的UnixcLkLinux联盟 user/Mailbox方式和新的 user/Maildir方式,其中前两种方式为大多数的邮件客户端cLkLinux联盟 所支持,但是它们均存在安全上的隐患,所以在这里使用了第三种方式,下面分别叙述三cLkLinux联盟 种方式的建立方法: cLkLinux联盟 /var/spool/mail 方式 cLkLinux联盟 #cp /var/qmail/boot/proc /var/qmail/rc cLkLinux联盟 user/Mailbox 方式 cLkLinux联盟 #cp /var/qmail/boot/home /var/qmail/rc cLkLinux联盟 user/Maildir 方式 cLkLinux联盟 1)#cp /var/qmail/boot/home /var/qmail/rc cLkLinux联盟 2)建立相应的邮件用户,例如:#useradd test cLkLinux联盟 #passwd test cLkLinux联盟 3)使用qmail提供的工具建立Maildir,命令如下: cLkLinux联盟 $ /var/qmail/bin/maildirmake Maildir cLkLinux联盟 $ echo ./Maildir/ .qmail cLkLinux联盟 (注意这里必须以用户权限建立邮箱) cLkLinux联盟 4)修改 /var/qmail/rc 文件,把其中的/Mailbox 改为/Maildir/ cLkLinux联盟 5) 为了使root用户也能收发邮件,使用如下命令: cLkLinux联盟 # su alias cLkLinux联盟 $ cd cLkLinux联盟 $ /var/qmail/bin/maildirmake Maildir cLkLinux联盟 $ echo ./Maildir/ .qmail cLkLinux联盟 f) 建立启动qmail的shell文件run_mail,其内容为: cLkLinux联盟 #cat run_mail cLkLinux联盟 csh -cf ‘/var/qmail/rc’ & cLkLinux联盟 cLkLinux联盟 3. 测试qmail基本邮件系统 cLkLinux联盟 首先启动qmail邮件服务器,然后测试邮件的收发,使用如下命令: cLkLinux联盟 #run_mail cLkLinux联盟 #echo to : ReceiverName | /var/qmail/bin/qmail-inject cLkLinux联盟 (其中 ReceiverName 为邮件接受者的ID,例如test) cLkLinux联盟 在邮件发送后,可以查找是否收到邮件,分三种方式,依赖邮件的存储方式: cLkLinux联盟 /var/spool/mail 方式 cLkLinux联盟 $cd /var/spool cLkLinux联盟 $vi ReceiverName cLkLinux联盟 或者用 cLkLinux联盟 $mail cLkLinux联盟 cLkLinux联盟 user/Mailbox 方式 cLkLinux联盟 打开用户根目录下的Mailbox文件,看是否收到邮件 cLkLinux联盟 user/Maildir 方式 cLkLinux联盟 $cd Maildir cLkLinux联盟 $ls new cLkLinux联盟 (注意在以上测试时,如果发生错误,可以查看/var/log/maillog文件获得出错原因) cLkLinux联盟 cLkLinux联盟 4. 添加Pop3和SMTP服务 cLkLinux联盟 可以使用inetd超级服务器或TcpServer来建立相应的Pop3和SMTP服务,为了支持大容量cLkLinux联盟 的邮件用户,建议使用TcpServer来监听服务端口启动相应的服务,建立命令如下: cLkLinux联盟 #tar zxvf ucspi-tcp-0_88_tar.gz cLkLinux联盟 #cd ucspi-tcp-0.88 cLkLinux联盟 #make setup check cLkLinux联盟 #tar zxvf checkpassword-0_90_tar.gz cLkLinux联盟 #cd checkpassword-0.90 cLkLinux联盟 #make setup check cLkLinux联盟 修改上面建立的run_mail文件,修改后的内容如下: cLkLinux联盟 #cat run_mail cLkLinux联盟 csh -cf '/var/qmail/rc' & cLkLinux联盟 tcpserver –u 502 –g 501 -c 100 0 smtp /var/qmail/bin/qmail-smtpd & cLkLinux联盟 tcpserver -c100 0 pop3 /var/qmail/bin/qmail-popup gloomy.openet.com.cncLkLinux联盟 /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir & cLkLinux联盟 修改/var/qmail/control/rcpthosts文件,来增加SMTP接收邮件的域 cLkLinux联盟 例如:#cat /var/qmail/control/rcpthosts cLkLinux联盟 gloomy.openet.com.cn cLkLinux联盟 ldap,openet.com.cn cLkLinux联盟 tbs.openet.com.cn cLkLinux联盟 openet.com.cn cLkLinux联盟 cLkLinux联盟 5. 测试Pop3和SMTP服务 cLkLinux联盟 首先启动qmail邮件服务器,然后测试,使用如下命令: cLkLinux联盟 1) 本地测试 cLkLinux联盟 #run_mail cLkLinux联盟 #netstat –na | grep 25 cLkLinux联盟 #netstat –na | grep 110 cLkLinux联盟 #telnet localhost 110 cLkLinux联盟 user test cLkLinux联盟 pass test cLkLinux联盟 list cLkLinux联盟 retr 1 cLkLinux联盟 2) 远程测试 cLkLinux联盟 利用Windows下的图形邮件客户端(如 outlook、foxmail等)来测试邮件的收发,客户cLkLinux联盟 端邮件帐号的建立请参考附带的帮助文档。 cLkLinux联盟 cLkLinux联盟 6. 为qmail增加LDAP支持 cLkLinux联盟 qmail可以通过LDAP来代替传统的/etc/passwd方式的Pop3认证,以便提高认证效率和有cLkLinux联盟 效的支持大容量的邮件客户,为了使qmail获得LDAP支持,需要在qmail的基础上增加具cLkLinux联盟 备LDAP认证的Patch包,具体操作使用如下命令: cLkLinux联盟 #gunzip qmail-ldap-1_03-20010301_patch.gz cLkLinux联盟 #cd qmail-1.03 cLkLinux联盟 #patch -p1 < /path to qmail-ldap patch/qmail-ldap patch name cLkLinux联盟 在patch包打好之后,需要修改qmail的Makefile文件来配置相应的LDAP信息,具体如下cLkLinux联盟 (这里只说明必须修改的,其余的可选项请参考QLDAPINSTALL.TXT文档): cLkLinux联盟 1) -LDAPFLAGS = -DCLEARTEXTPASSWORD cLkLinux联盟 配置是否在LDAP目录中使用明文密码 cLkLinux联盟 2) -LDAPLIBS = cLkLinux联盟 配置使用的LDAP接口库,在本例中为: cLkLinux联盟 -LDAPLIBS = -L/root/LdapServer/lib -lldap –llber –lldap_r –lpthreadcLkLinux联盟 -lresolv cLkLinux联盟 3) -LDAPINCLUDES = cLkLinux联盟 配置使用的LDAP头文件,在本例中为: cLkLinux联盟 -LDAPINCLUDES = -I/root/LdapServer/include cLkLinux联盟 cLkLinux联盟 4)-SHADOWLIBS = -lcrypt –lshadow cLkLinux联盟 -SHADOWOPTS = -DPW_SHADOW cLkLinux联盟 配置使用的密码认证方式 cLkLinux联盟 在Makefile设置修改完毕后,重新编译qmail源文件,然后覆盖安装qmail,使用如下命cLkLinux联盟 令: cLkLinux联盟 #make setup check cLkLinux联盟 cLkLinux联盟 7. 安装OpenLDAP cLkLinux联盟 本例中采用了OpenLDAP的开放源代码LDAP Server,详细的管理请参考cLkLinux联盟 (http://www.openldap.org)站点的文档以及《LDAP配置手册》,下面概述其安装配置cLkLinux联盟 过程: cLkLinux联盟 #tar zxvf openldap-2_0_7.tgz cLkLinux联盟 #cd openldap-2.0.7 cLkLinux联盟 #./configure cLkLinux联盟 #make depend cLkLinux联盟 #make cLkLinux联盟 #make test cLkLinux联盟 #make install cLkLinux联盟 修改OpenLDAP Server的配置文件,启动slapd服务器,具体如下: cLkLinux联盟 #cd path to LDAP Server/ cLkLinux联盟 #vi etc/openldap/slapd.conf cLkLinux联盟 主要修改slapd.conf文件中的如下部分,在本例中为: cLkLinux联盟 ############################################# cLkLinux联盟 # ldbm database definitions cLkLinux联盟 ############################################# cLkLinux联盟 database ldbm cLkLinux联盟 suffix "dc=gloomy , dc=openet , dc=com , dc=cn" cLkLinux联盟 rootdn "dc=gloomy , dc=openet , dc=com , dc=cn" cLkLinux联盟 rootpw secret cLkLinux联盟 index objectclass,mail,uid cLkLinux联盟 index qmailUser cLkLinux联盟 cLkLinux联盟 8. 配置qmail+LDAP cLkLinux联盟 在LDAP Server安装测试完毕后,修改并建立相应的qmail配置文件,增加对LDAPcLkLinux联盟 LookUp的支持,分为如下几步: cLkLinux联盟 1) 在/var/qmail/control/下建立相应的LDAP支持文件: cLkLinux联盟 #cat ldapserver cLkLinux联盟 192.168.0.117 cLkLinux联盟 #cat ldapbasedn cLkLinux联盟 dc=gloomy , dc=openet , dc=com , dc=cn cLkLinux联盟 #cat ldapobjectclass cLkLinux联盟 qmailUser cLkLinux联盟 2) 为LDAP添加相应的支持qmail邮件用户的schema: cLkLinux联盟 #cd qmail-1.03 cLkLinux联盟 #cp qmail.schema /root/LdapServer/etc/openldap/schema cLkLinux联盟 修改slapd.conf文件,加入下面一行: cLkLinux联盟 include /root/LdapServer/etc/openldap/schema/qmai.schema cLkLinux联盟 3) 修改前面建立的run_mail启动脚本,修改后的内容如下: cLkLinux联盟 #cat run_mail cLkLinux联盟 csh -cf '/var/qmail/rc' & cLkLinux联盟 tcpserver –u 502 –g 501 -c 100 0 smtp /var/qmail/bin/qmail-smtpd & cLkLinux联盟 tcpserver -c100 0 pop3 /var/qmail/bin/qmail-popup gloomy.openet.com.cncLkLinux联盟 /var/qmail/bin/auth_pop /var/qmail/bin/qmail-pop3d Maildir & cLkLinux联盟 cLkLinux联盟 9. 在LDAP DIT中增加qmail邮件用户目录 cLkLinux联盟 首先启动LDAP服务器,然后创建相应的*.ldif文件(有关LDIF文件的格式,请参考cLkLinux联盟 RFC2849的描述),插入LDAP数据库中,具体的命令如下: cLkLinux联盟 #/root/LdapServer/libexec/slapd cLkLinux联盟 在本例中建立的的交换文件为mailer.ldif,其具体内容如下: cLkLinux联盟 #cat mailer.ldif cLkLinux联盟 dn: cn=testUser , dc=gloomy , dc=openet , dc=com , dc=cn cLkLinux联盟 cn: testUser cLkLinux联盟 sn: testUser cLkLinux联盟 objectClass: top cLkLinux联盟 objectClass: person cLkLinux联盟 objectClass: inetOrgPerson cLkLinux联盟 objectClass: qmailUser cLkLinux联盟 mail: test@gloomy.openet.com.cn cLkLinux联盟 mailHost: gloomy.openet.com.cn cLkLinux联盟 mailMessageStore: /home/test/Maildir/ cLkLinux联盟 mailQuota: 1000000S,100C cLkLinux联盟 uid: test cLkLinux联盟 userPassword: test cLkLinux联盟 插入qmail用户目录到LDAP的目录信息树中,使用如下命令: cLkLinux联盟 #/root/LdapServer/bin/ldapadd –x –D”dc=gloomy,dc=openet,dc=com,dc=cn”cLkLinux联盟 –W –f mailer.ldif cLkLinux联盟 cLkLinux联盟 cLkLinux联盟 10. 测试基于LDAP的Pop3认证 cLkLinux联盟 在上述步骤完成后,从新测试qmail邮件系统的运行状况,主要从以下三个方面测试,具cLkLinux联盟 体命令如下: cLkLinux联盟 1) 本地测试 cLkLinux联盟 具体请参考上面小节3的方法 cLkLinux联盟 2) Pop3+SMTP测试 cLkLinux联盟 具体请参考上面小节5的方法 cLkLinux联盟 3) 测试工具 cLkLinux联盟 #/var/qmail/bin/qmail-ldaplookup –u test cLkLinux联盟 #/var/qmail/bin/qmail-ladplookup –m test@gloomy.openet.com.cn cLkLinux联盟 4 参考资料 cLkLinux联盟 1) Life with qmail (http://www.lifewithqmail.org/lwq.html) cLkLinux联盟 2) Life with qmail-LDAP (http://www.lifewithqmail.org/ldap/) cLkLinux联盟 3) QLDAPINSTALL (http://www.nrg4u.com/) cLkLinux联盟 4) Open LDAP 2.0 Administrator’s GuidecLkLinux联盟 (http://www.openldap.org/doc/admin/) cLkLinux联盟 5) 《LDAP配置手册》 cLkLinux联盟 5 总结 cLkLinux联盟 LDAP使得过去杂乱无序的网络资源和信息管理呈现出一种树状的有序体系,不但使cLkLinux联盟 Internet资源的管理和控制变得易于进行,而且同时在另外一方面也提高了各种信息和资cLkLinux联盟 源的使用效率,LDAP用10%的代价实现了X.500 DAP 90%的功能,是目前Internet上越来cLkLinux联盟 越广泛的应用之一,本文通过对qmail邮件服务器和LDAP整合应用的安装和配置的描述,cLkLinux联盟 希望能够对掌握LDAP这个下一代因特网服务与应用的基础提供一定的帮助。 cLkLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论 |
|
|
|
|
|