当前位置:Linux教程 - Ldap - Qmail+LDAP安装配置实例<二>

Qmail+LDAP安装配置实例<二>

Qmail+LDAP安装配置实例<二>

http://Linuxaid.com.cn 01-08-10 17:07 575p 万月亮,许霆
--------------------------------------------------------------------------------


万月亮:[email protected]
许 霆:[email protected]

SMTP 访问控制
允许本地主机通过SMTP发信:
echo ''127.:allow,RELAYCLIENT=""""'' >>/etc/tcp.smtp
qmailctl cdb
停止已经安装的MTA
如果MTA 是Sendmail,应该使用下面命令中的一个停止sendmail 工作:
/etc/init.d/sendmail stop
/sbin/init.d/sendmail stop
/etc/rc.d/init.d/sendmail stop
或者下面命令停止
kill PID-of-sendmail
通过下面命令卸装Sendmail :
rpm -e --nodeps sendmail
最后,使用qmail版本的sendmail代替系统/usr/lib/sendmail的sendmail:
mv /usr/lib/sendmail /usr/lib/sendmail.old # ignore errors
mv /usr/sbin/sendmail /usr/sbin/sendmail.old # ignore errors
chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old # ignore errors
ln -s /var/qmail/bin/sendmail /usr/lib
ln -s /var/qmail/bin/sendmail /usr/sbin
注: 生成''sendmail链接是重要的,因为有许多应用涉及发mail。
最后一步产生系统别名(aliases)
echo alias > /var/qmail/alias/.qmail-root
echo alias > /var/qmail/alias/.qmail-postmaster
ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon
chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster
启动qmail
qmailctl start
添加pop3服务
生成 /var/qmail/supervise/qmail-pop3d/run 脚本包含下面内容:
#!/bin/sh
exec /usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup
longshine.com /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2>&1
生成/var/qmail/supervise/qmail-pop3d/log/run 脚本包含下面内容:
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t
/var/log/qmail/pop3d
建立log目录使得脚本可以执行且将此服务链接到/service:
chmod +t /var/qmail/supervise/qmail-pop3d
mkdir /var/log/qmail/pop3d
chown qmaill /var/log/qmail/pop3d
chmod 755 /var/qmail/supervise/qmail-pop3d/run
chmod 755 /var/qmail/supervise/qmail-pop3d/log/run
ln -s /var/qmail/supervise/qmail-pop3d /service
在qmailctl脚本中添加下面内容:
在qmailctl''的 ""start"" 部分:
if svok /service/qmail-pop3d ; then
svc -u /service/qmail-pop3d
else
echo qmail-pop3d service not running
fi
在qmailctl''的 ""stop"" 部分:
echo "" qmail-pop3d""
svc -d /service/qmail-pop3d
在qmailctl''的 ""stat"" 部分:
svstat /service/qmail-pop3d
svstat /service/qmail-pop3d/log
在qmailctl''的 ""pause"" 部分:
echo ""Pausing qmail-pop3d""
svc -p /service/qmail-pop3d
在qmailctl''的 ""cont"" 部分:
echo ""Continuing qmail-pop3d""
svc -c /service/qmail-pop3d
在qmailctl''的 ""restart"" 部分:
echo ""* Restarting qmail-pop3d.""
svc -t /service/qmail-pop3d
在/etc/hosts脚本中添加
172.18.6.111 longshine.com
qmail的测试
测试安装:
可以参照TEST.deliver 和 TEST.receive 文档测试其工作是否正常。注意日志是由 multilog 而不是splogger生成的。
测试Pop3和SMTP服务
  首先启动qmail邮件服务器,然后测试,使用如下命令:
  本地测试:
  #run_mail
  #netstat -na | grep 25
  #netstat -na | grep 110
  #telnet localhost 110
  user test
  pass test
  list
  retr 1
  远程测试:
  利用Windows下的图形邮件客户端(如 outlook、foxmail等)来测试邮件的收发。
为qmail增加LDAP支持
  qmail可以通过LDAP来代替传统的/etc/passwd方式的Pop3认证,以便提高认证效率和有效的支持大容量的邮件客户,为了使qmail获得LDAP支持,需要在qmail的基础上增加具备LDAP认证的Patch包,最好使用qmail新的压缩包,具体操作使用如下命令:
  #rm -rf qmail-1.03
  #zip -zxvf qmail-1.03.tar.gz
  #gunzip qmail-ldap-1_03-20010301_patch.gz
  #cd qmail-1.03
  #patch -p1 < ../ qmail-ldap-1.03-20010501.patch
  在patch包打好之后,需要修改qmail的Makefile文件来配置相应的LDAP信息,具体如下(这里只说明必须修改的,其余的可选项请参考QLDAPINSTALL.TXT文档):
  1) -LDAPFLAGS = -DCLEARTEXTPASSWORD
  配置是否在LDAP目录中使用明文密码。
  2) -LDAPLIBS =
  配置使用的LDAP接口库,在本例中为:
 LDAPLIBS=-L/usr/local/lib -L/usr/X11R6/lib/modules -lldap -llber -lldap_r -lpthread -lresolv
  4)-SHADOWLIBS = -lcrypt -lshadow
  -SHADOWOPTS = -DPW_SHADOW
  配置使用的密码认证方式。
  在Makefile设置修改完毕后,重新编译qmail源文件,然后覆盖安装qmail,使用如下命令:
  #make setup check
安装openldap
zip -zxvf openldap-2.07.tgz
cd openldap-2.07
./configure
make depend
make
make test
su root -c ''make install''
这样openldap安装完成
 在/var/qmail/control/下建立相应的LDAP支持文件:
  #cat ldapserver
  172.18.6.111
  #cat ldapbasedn
  dc=longshine , dc=com
  #cat ldapobjectclass
  qmailUser
将qmail.schema拷贝到openldap的相应目录下面
cp /usr/local/src/qmail/qmail-1.03/qmail.schema /usr/local/etc/openldap/schema/.
编辑configuration 文件 /usr/local/etc/openldap/slapd.conf)
database ldbm
suffix ""dc=longshine,dc=com""
rootdn ""cn=Manager,dc= longshine ,dc=""
rootpw secret
directory /usr/local/var/openldap-ldbm
增加相应的shema文件
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/qmail.schema
启动 SLAPD.
su root -c /usr/local/libexec/slapd
为了检测openldap是否运行和配置正确。可以执行ldapsearch命令进行检测。缺省的,ldapsearch 安装在/usr/local/bin/ldapsearch:
ldapsearch -x -b '''' -s base ''(objectclass=*)'' namingContexts
应该可以看见
dn:
namingContexts: dc=longshine,dc=com
增加目录的初始人口。
分为二步:
生成一个LDIF 文件
运行ldapadd

是编辑器生成一个LDIF 文件,包含如下内容:
dn: dc=,dc=
objectclass: dcObject
objectclass: organization
o:
dc:
dn: cn=Manager,dc=,dc=
objectclass: organizationalRole
cn: Manager
我的此文件Manager.ldif文件内容为dn: dc=longshine,dc=com,dc=cn
objectclass: dcObject
objectclass: organization
o: longshine
dc: longshine
dn: cn=Manager,dc=longshine,dc=com
objectclass: organizationalRole
cn: Manager
现在运行ldapadd程序
ldapadd -x -D ""cn=Manager,dc=longshine,dc=com"" -W -f /root/manager.ldif
如果要输入密码为secret。
增加qmail用户信息,生成test.ldif文件
dn: cn=testUser,dc=longshine,dc=com
cn: testUser
sn: testUser
objectClass: top
objectClass: person
objectClass: inetOrgPerson
objectClass: qmailUser
mail: [email protected]
mailHost: longshine.com
mailMessageStore: /home/test/Maildir/
mailQuota: 1000000S,100C
uid: test
userPassword: test
qmailUID: 508
qmailGID: 508
注qmailUID,qmailGID可以通过/etc/passwd文件查询到。使用下面命令进入
ldapadd -x -D ""cn=Manager,dc=longshine,dc=com"" -W -f /root/test.ldif
如果要输入密码为secret。
将/var/qmail/supervise/qmail-pop3d/run 脚本包含下面内容:
#!/bin/sh
exec /usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup
longshine.com /var/qmail/bin/auth_pop /var/qmail/bin/qmail-pop3d Maildir 2>&1
测试LDAP:
ldapsearch -x -b '''' -s base ''(objectclass=*)'' namingContexts
使用什么命令查看添加的时间是否正确。如果不正确可以使用
ldapdelete -x -D""cn=Manager,dc=longshine,dc=com"" -w secret ""cn=testUser,dc=longshine,dc=com""
删除,然后重新添加。
测试基于LDAP的Pop3认证
  在上述步骤完成后,从新测试qmail邮件系统的运行状况,主要从以下三个方面测试,具体命令如下:
本地测试
  具体请参考TEST.deliver 和 TEST.receive 的方法。
Pop3+SMTP测试
  telnet localhost 25 和telnet localhost 110
测试工具
  #/var/qmail/bin/qmail-ldaplookup -u test
  #/var/qmail/bin/qmail-ladplookup -m [email protected]
也可用Windows下的图形邮件客户端(如 outlook、foxmail等)来测试邮件的收发。
参考资料
Life with qmail (http://www.lifewithqmail.org/lwq.html)
QLDAPINSTALL (http://www.openldap.org/doc/admin/quickstart.html) qmail+LDAP安装与配置(http://www.chinabyte.com/builder/linux/linux_detail.shtm?id=1650&parid=1&dtype=1) X.D.Chen''