分享
 
 
 

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

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

摘要

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-qstat

qmail-qread

;;

reload|hup)

echo 'Sending HUP signal to qmail-send.'

svc -h /service/qmail-send

;;

pause)

echo 'Pausing qmail-send'

svc -p /service/qmail-send

echo 'Pausing qmail-smtpd'

svc -p /service/qmail-smtpd

;;

cont)

echo 'Continuing qmail-send'

svc -c /service/qmail-send

echo 'Continuing qmail-smtpd'

svc -c /service/qmail-smtpd

;;

restart)

echo 'Restarting qmail:'

echo '* Stopping qmail-smtpd.'

svc -d /service/qmail-smtpd

echo '* Sending qmail-send SIGTERM and restarting.'

svc -t /service/qmail-send

echo '* Restarting qmail-smtpd.'

svc -u /service/qmail-smtpd

;;

cdb)

tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

chmod 644 /etc/tcp.smtp.cdb

echo 'Reloaded /etc/tcp.smtp.'

;;

help)

cat <

stop -- stops mail service (smtp connections refused, nothing goes out)

start -- starts mail service (smtp connection accepted, mail can go out)

pause -- temporarily stops mail service (connections accepted, nothing leaves)

cont -- continues paused mail service

stat -- displays status of mail service

cdb -- rebuild the tcpserver cdb file for smtp

restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it

doqueue -- sends qmail-send ALRM, scheduling queued messages for delivery

reload -- sends qmail-send HUP, rereading locals and virtualdomains

queue -- shows status of queue

alrm -- same as doqueue

flush -- same as doqueue

hup -- same as reload

HELP

;;

*)

echo 'Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}'

exit 1

;;

esac

exit 0

此脚本可以通过http://www.lifewithqmail.org/qmailctl-script-dt70获得

使用vi 生成/var/qmail/bin/qmailctl基本将上面内容放入其中, 然后将其安装在

/etc/init.d

/etc/rc.d/init.d

执行下面命令,产生链接:

ln -s ../init.d/qmail /etc/rc0.d/K30qmail

ln -s ../init.d/qmail /etc/rc1.d/K30qmail

ln -s ../init.d/qmail /etc/rc2.d/S80qmail

ln -s ../init.d/qmail /etc/rc3.d/S80qmail

ln -s ../init.d/qmail /etc/rc4.d/S80qmail

ln -s ../init.d/qmail /etc/rc5.d/S80qmail

ln -s ../init.d/qmail /etc/rc6.d/K30qmail

ln -s /var/qmail/bin/qmailctl /etc/init.d/qmail

使得脚本可以执行 qmailctl且进入系统命令中

chmod 755 /var/qmail/bin/qmailctl

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

supervise 基本

现在产生qmail services目录:

mkdir -p /var/qmail/supervise/qmail-send/log

mkdir -p /var/qmail/supervise/qmail-smtpd/log

chmod +t /var/qmail/supervise/qmail-send

chmod +t /var/qmail/supervise/qmail-smtpd

生成/var/qmail/supervise/qmail-send/run 文件:

#!/bin/sh

exec /var/qmail/rc

生成/var/qmail/supervise/qmail-send/log/run 文件:

#!/bin/sh

exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail

生成 /var/qmail/supervise/qmail-smtpd/run 文件:

#!/bin/sh

QMAILDUID=`id -u qmaild`

NOFILESGID=`id -g qmaild`

MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`

exec /usr/local/bin/tcpserver -v -R -l 0 -x /etc/tcp.smtp.cdb -c '$MAXSMTPD'

-u '$QMAILDUID' -g '$NOFILESGID' 0 smtp /var/qmail/bin/qmail-smtpd 2>&1

生成concurrencyincoming 控制文件:

echo 20 > /var/qmail/control/concurrencyincoming

chmod 644 /var/qmail/control/concurrencyincoming

生成/var/qmail/supervise/qmail-smtpd/log/run 文件:

#!/bin/sh

exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd

使得所生成的脚本可执行:

chmod 755 /var/qmail/supervise/qmail-send/run

chmod 755 /var/qmail/supervise/qmail-send/log/run

chmod 755 /var/qmail/supervise/qmail-smtpd/run

chmod 755 /var/qmail/supervise/qmail-smtpd/log/run

建立log 目录:

mkdir -p /var/log/qmail/smtpd

chown qmaill /var/log/qmail /var/log/qmail/smtpd

将supervise 链接到/service:

ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service

注: qmail 系统应该自动起来。如果不想此时候启动,执行:

qmailctl stop'

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有