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

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

摘要

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

  By ideal

  目前网上关于qmail+LDAP的配置不是很多,而且大多数是英文的。而qmail和openldap的配置没有详细的配置文档。前一段时间因为工作关系配置了qmail+LDAP的服务器。现在将其整理处理,以供大家参考。希望对于大家有所帮助。

  Qmail 是基于类似UNIX操作系统的Internet Mail Transfer Agent (MTA) 。我的安装环境是linux7.1 内核是2.4.2,gcc version 2.96,组件全部安装。

  安装步骤

  1.操作系统:

  Red Hat Linux 7.1 kernel 2.4.2 gcc 2.96

  2.所需软件包:

  qmail-1.03.tar.gz (http://www.qmail.org)

  ucspi-tcp-0_88_tar.gz (http://cr.yp.to/ucspi-tcp.html)

  checkpassword-0_90_tar.gz (http://cr.yp.to/checkpwd.html)

  qmail-ldap-1_03-20010301_patch.gz (http://www.nrg4u.com/)

  openldap-2_0_7.tgz (http://www.openldap.org)

  daemontools, ftp://cr.yp.to/daemontools/daemontools-0.70.tar.gz

  3.主机IP地址和域名配置,在本例中为:

  IP:172.18.6.111

  域名:longshine.com

  4. System requirements

  5. 安装步骤

  将所有需要安装的包拷贝到/usr/local/src/qmail目录项目

  mkdir -p /usr/local/src/qmail

  mv *.tar.gz /usr/local/src/qmail

  然后解开安装下面步骤解开这些包

  su -

  umask 022

  cd /usr/local/src/qmail

  tar zxvf qmail-1.03.tar.gz

  tar xvf ucspi-tcp-0.88.tar.gz

  tar zxvf daemontools-0.70.tar.gz

  tar zxvf checkpassword-0.90.tar.gz

  解开的数据包应该处在qmail-1.03, ucspi-tcp-0.88, daemontools-0.70和checkpassword-0.90目录下,进入qmail目录。

  cd qmail-1.03

  建立相应的安装目录

  由于qmail安装程序会产生其需要的子目录,所以只要生成安装所需的'home' 目录:

  mkdir /var/qmail

  ln -s /usr/man /var/qmail/man

  mkdir /etc/qmail

  ln -s /etc/qmail /var/qmail/control

  ln -s /usr/sbin /var/qmail/bin

  生成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

  编译安装

  现在可以编译安装qmail:

  make setup check

  在编译安装完成,需要进行配置如果DNS配置正确,只需执行下面的命令:

  ./config

  如果config在DNS中不能找到主机名,则需要执行config-fast 脚本:

  ./config-fast longshine. com

  qmail 现在已经安装起来了,下面开始是启动和配置qmail。

  安装 ucspi-tcp

  进入 ucspi-tcp 目录:

  cd /usr/local/src/qmail/ucspi-tcp-0.88

  make

  make setup check

  这样ucspi-tcp 安装起来了。

  安装daemontools

  进入 daemontools 目录:

  cd /usr/local/src/qmail/daemontools-0.70

  make

  make setup check

  安装checkpassword

  进入 checkpassword 目录:

  cd /usr/local/src/qmail/checkpassword-0.90

  make

  make setup check

  注: 在某些LINUX版本中(我的安装环境redhat 7.1), 如Red Hat 7,可能在编译过程中会生成错误:

  ./compile tai64nlocal.c

  tai64nlocal.c: In function `main':

  tai64nlocal.c:54: warning: assignment makes pointer from integer without a cast

  tai64nlocal.c:55: dereferencing pointer to incomplete type

  等等….

  如果这样按照下面说明编辑tai64nlocal.c

  #include

  更改为:

  #include

  生成/service 目录:

  mkdir /service

  最后配置svscan 使得当系统启动时候自动允许。编辑 /etc/inittab 文件将下面一行加入文件最后(注意是在一行中):

  SV:123456:respawn:env - PATH=/usr/local/bin:/usr/sbin:/usr/bin:/bin svscan /service /dev/console 2>/dev/console

  然后执行下面命令重新读人/etc/inittab:

  kill -HUP 1

  可以使用'ps -ef | grep svscan' 或者 'ps waux | grep svscan' 证实svscan 正在运行。

  启动qmail

  2.8.1. /var/qmail/rc

  编辑产生/var/qmail/rc文件将下面命令进入其中

  #!/bin/sh

  # Using stdout for logging

  # Using control/defaultdelivery from qmail-local to deliver messages by default

  exec env - PATH='/var/qmail/bin:$PATH'

  qmail-start '`cat /var/qmail/control/defaultdelivery`'

  chmod 755 /var/qmail/rc

  mkdir /var/log/qmail

  在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) 为了使root用户也能收发邮件,使用如下命令:

  # su alias

  $ cd

  $ /var/qmail/bin/maildirmake Maildir

  $ echo ./Maildir/ >.qmail

  # echo ./Mailbox/ >/var/qmail/control/defaultdelivery

  系统start-up 文件

  生成qmailctl 脚本

  #!/bin/sh

  # For Red Hat chkconfig

  # chkconfig: - 30 80

  # description: the qmail MTA

  PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin

  export PATH

  QMAILDUID=`id -u qmaild`

  NOFILESGID=`id -g qmaild`

  case '$1' in

  start)

  echo 'Starting qmail'

  if svok /service/qmail-send ; then

  svc -u /service/qmail-send

  else

  echo qmail-send service not running

  fi

  if svok /service/qmail-smtpd ; then

  svc -u /service/qmail-smtpd

  else

  echo qmail-smtpd service not running

  fi

  if [ -d /var/lock/subsys ]; then

  touch /var/lock/subsys/qmail

  fi

  ;;

  stop)

  echo 'Stopping qmail...'

  echo ' qmail-smtpd'

  svc -d /service/qmail-smtpd

  echo ' qmail-send'

  svc -d /service/qmail-send

  if [ -f /var/lock/subsys/qmail ]; then

  rm /var/lock/subsys/qmail

  fi

  ;;

  stat)

  svstat /service/qmail-send

  svstat /service/qmail-send/log

  svstat /service/qmail-smtpd

  svstat /service/qmail-smtpd/log

  qmail-qstat

  ;;

  doqueue|alrm|flush)

  echo 'Sending ALRM signal to qmail-send.'

  svc -a /service/qmail-send

  ;;

  queue)

  qmail-q
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,