当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 在Linux下用Qmail建部门邮件服务器

Linux服务器
商用服务器AIX资源监控与调制工具使用
INformIX-OnLine客户服务器结构建立方及单机运行
克隆的硬盘启动不了OpenServer的原因和对策
把旧的DOMINO服务器里的数据迁移新的服务器上
Web服务器记录中查找黑客踪迹的方法
实用技术:搭建简易Linux局域网服务器
小技巧:通过COM口管理Linux服务器
构造与系统用户无关的虚拟域邮件服务器
Linux下Web服务器架设攻略
RHELAS4系统应用:web服务器篇
在Redhat9.0上详尽配置DNS服务
实现远程为Linux服务器添加新分区
Linux下Telnet、ssh服务的配置和使用
Linux虚拟服务器的结构、调度算法综述
Linux下的CIPE服务器配置
使用daemontools在Linux上运行服务
samba服务详解
用SrvRepor远程监控和管理Linux服务器
FreeBSD下DHCP服务器详细配置
教您30分钟打造基于Linux的VPN服务器

Linux服务器 中的 在Linux下用Qmail建部门邮件服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 44 ::
收藏到网摘: n/a


一、安装环境
安装平台:RedHatLinux7.3
安装的机器:mail.mydomain.com
软件包:
qmail-1.03qmail基本系统
ucspi-tcp-0.88tcpsever等服务程序
daemontools-0.76监视工具
checkpassword-0.90pop3验证用户的程序
软件来源:
http://www.qmail.org
http://cr.yp.to/
http://inter7.com/main.html
注意:每个包安装前务必先仔细阅读INSTALL和FAQ,很多问题在FAQ都有解决方法。

二、安装步骤
1、准备工作
删除sendmail
#rpm-e--nodepssendmail
2、安装qmail
1)创建qmail安装目录
#mkdir/var/qmail
2)添加qmail必需的用户和组
#groupaddnofiles
#useradd-gnofiles-d/var/qmail/aliasalias
#useradd-gnofiles-d/var/qmailqmaild
#useradd-gnofiles-d/var/qmailqmaill
#useradd-gnofiles-d/var/qmailqmailp
#groupaddqmail
#useradd-gqmail-d/var/qmailqmailq
#useradd-gqmail-d/var/qmailqmailr
#useradd-gqmail-d/var/qmailqmails
3)解压、解包和编译
(假设这些包都下载到/tmp目录下)
#cd/tmp
#tarxzvfqmail-1.03.tar.gz
#cdqmail-1.03
进入qmail目录后,仔细阅读一下README和INSTALL文件.然后开始编译qmail
打DNS补丁
#vidns.c
跳到24行将PACKETSZ改为65536
#makesetupcheck
4)配置
#./config

#./config-fastmail.mydomain.com
5)建立系统别名
#(cd/var/qmail/alias;touch.qmail-postmaster.qmail-mailer-daemon.qmail-root)
#chmod644~alias/.qmail*
可以在这些别名文件中指定管理用户来接受这些系统邮件,如
#echoadmin>~alias/.qmail*
6)建立启动文件和用户的Maildir
说明:个人比较喜欢将Maildir改为.Maildir,以便列目录时隐藏掉
#cp-p/var/qmail/boot/home/var/qmail/rc
 #chmod755/var/qmail/rc
编辑/var/qmail/rc
修改其中./Mailbox成为./.Maildir以支持maildir的pop收信方式,如下:
 #!/bin/sh
 #Usingsploggertosendthelogthroughsyslog.
 #Usingqmail-localtodelivermessagesto~/Maildirbydefault.
 execenv-PATH="/var/qmail/bin:$PATH" qmail-start./.Maildir
其中sploggerqmail指令删除,以后改用multilog
已存在用户建立maildir:
$/var/qmail/bin/maildirmake~/.Maildir
$echo./.Maildir/>~/.qmail
建立maildir的方法(对于后面要建立的用户):
 #/var/qmail/bin/maildirmake/etc/skel/.Maildir
 #echo./.Maildir/>/etc/skel/.qmail
7)删除临时目录
#rm-rf/tmp/qmail-1.03
3、安装ucspi-tcp-0.88
#tarzxvfucspi-tcp-0.88.tar.gz
#cducspi-tcp-0.88
#make
#makesetupcheck
执行文件将被安装在/usr/local/bin中。

4、安装checkpassword
#tarzxvfcheckpassword-0.90.tar.gz
#cdcheckpassword-0.90
#make
#makesetupcheck
#chmodog-rx/bin/checkpassword
执行文件checkpassword将被安装在/bin中。
如果不对/etc/passwd中的用户开放mail,则不需要装checkpassword,而只要装vpopmail就行了。

5、安裝daemontools
#mkdir-p/package
#chmod1755/package
#cd/package

#tar-xvzfdaemontools-0.76.tar.gz
#cdadmin/daemontools-0.76

#package/install

将/etc/inittab中最后一行的svscanboot注释掉
重启:#kill-HUP1
说明:改inittab是个人喜好
6、建立SMTP转信规则
1)建立/etc/tcp.smtp
內容为":allow"
#echo":allow">/etc/tcp.smtp
 此为接受任何Client端所发出子转送信件
 若要拒绝某些IP所发出的Relay则修改/etc/tcp.smtp如下
 192.10.10.:allow,RELAYCLIENT=""
 127.:allow,RELAYCLIENT=""
 如此,除192.10.10.*及127.*之外的所有地址,都将被拒绝转送信件。
 2)转换tcp.smtp成为cdb格式
#/usr/local/bin/tcprules/etc/tcp.smtp.cdb/etc/tcp.smtp.tmp</etc/tcp.smtp
注意:若对tcp.smtp有任何变更,都必須经过tcprules转换成为cdb文件才会生效。
 另外,tcp.smtp若为空白,则表示拒绝所有的转送,因为预设的规则为deny。
 至此,转送规则已建立,稍后将依此规则启动qmail-smtpd。
7、建立启动系统服务脚本
1)建立LOG目录
#mkdir/var/log/qmail
#chownqmaill.nofiles/var/log/qmail
#mkdir/var/log/qmail/smtpd
#chownqmaill.nofiles/var/log/qmail/smtpd
#mkdir/var/log/qmail/pop3d
#chownqmaill.nofiles/var/log/qmail/pop3d

2)设定services
 移除inetd.conf中有关smtp及pop3的设定(加上#号)
注:redhat7.3用xinetd代替inetd了,就不用改了
 编辑/etc/services,确认以下设定(实际并不按下面的顺序):
 smtp25/tcpmail
 #pop-3110/tcp#popversion3
 #pop-3110/udp
 pop3110/tcp
 pop3110/udp
3)写send/smtpd/pop3d的supervise脚本run
#cd/var/qmail
#mkdir-psupervise/qmail-send/log
#mkdir-psupervise/qmail-smtpd/log
#mkdir-psupervise/qmail-pop3d/log
#cdsupervise/qmail-send
#ln-s/var/qmail/rcrun
其它run内容如下:
qmail-send/log/run:
#!/bin/sh
exec/usr/local/bin/setuidgidqmaill/usr/local/bin/multilogt/var/log/qmail
qmail-smtpd/run:
#!/bin/sh
QMAILUID=`id-uqmaild`
QMAILGID=`id-gqmaild`
exec/usr/local/bin/tcpserver-v-p-x/etc/tcp.smtp.cdb-u$QMAILUID-g$QMAILGID0smtp/var/qmail/bin/qmail-smtpd2>&1
qmail-smtpd/log/run:
#!/bin/sh
exec/usr/local/bin/setuidgidqmaill/usr/local/bin/multilogt/var/log/qmail/smtpd
qmail-pop3d/run:
#!/bin/sh
exec/usr/local/bin/tcpserver-v-R0pop3/var/qmail/bin/qmail-popupmail.mydomain.com/bin/checkpassword/var/qmail/bin/qmail-pop3d.Maildir2>&1
qmail-pop3d/log/run:
#!/bin/sh
exec/usr/local/bin/setuidgidqmaill/usr/local/bin/multilogt/var/log/qmail/pop3d
4)建自启动脚本/etc/init.d/qmail
内容如下:
#!/bin/bash
#chkconfig:2345966
#
######################################################################
#Description:Scripttocontrolqmailprocess#
#File:/etc/rc.d/init.d/qmail#
######################################################################
#Setupenvironmentforscriptexecution

./etc/rc.d/init.d/functions

PATH=$PATH:/var/qmail/bin:/usr/local/bin
exportPATH

SVSCANPID="/var/run/svscan.pid"

stopQmail(){
if[-f$SVSCANPID];then
kill`cat$SVSCANPID`
rm-f$SVSCANPID
fi

svc-dx/var/qmail/supervise/qmail-pop3d/log
svc-dx/var/qmail/supervise/qmail-pop3d

svc-dx/var/qmail/supervise/qmail-smtpd/log
svc-dx/var/qmail/supervise/qmail-smtpd

svc-dx/var/qmail/supervise/qmail-send/log
svc-dx/var/qmail/supervise/qmail-send
}

case"$1"in
start)
echo"Startingqmail/smtp/pop3..."
cd/var/qmail/supervise
env-PATH="$PATH"svscan&
echo$!>$SVSCANPID
;;

stop)
echo"Stopingqmail/smtp/pop3..."
stopQmail
;;

restart)
$0stop
$0start
;;

status)
;;

*)
echo"Usage:$0{start|stop|status}"
exit1
esac

exit0

加入chkconfig管理
#chmod755qmail
#chkconfig-addqmail
运行ntsysv关闭或启动服务

三、tips
1、使用[email protected]形式的命名
#cd/var/qmail/alias
#echomydomain.com>>locals
2、改密码
对于仅开放mail的用户可将shell改成passwd
#useradd-s/usr/bin/passwduserName
然后用telnet改密码
3、qmail1.