当前位置:操作系统 > Unix/Linux >>

Qmail+LDAP安装配置实例(二)

摘要

  Qmail+LDAP安装配置实例(2002-07-02 12:31:03)

  By ideal

  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

  3)-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:
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,