- 论坛徽章:
- 0
|
基于Linux平台企业邮件方案
一,.安装准备
我的服务器:mail.ourlab.org
host -t mx ourlab.org
rpm -e --nodpes sendmail postfix
安装qmail邮件服务器之前,当然你得配置好dns了,至于dns得mx怎么配置,不是我们今天要讲的重点。
首先为了安装顺利进行,大家先确认系统是否安装了以下程序,我们用一个简单的命令来查询:
rpm -qa |grep g++ gcc-g++ gdbm gdbm-devel openssl openssl-devel stunnel krb5-devel bzip2 bzip2-devel
然后删除系统自带的邮件系统,以免安装受影响
rpm -e --nodeps sendmail postfix
二.下载所需软件包
-----------------------------
附加要建立的目录:
mkdir -p /var/src/tar
mkdir -p /package
mkdir /var/qmail
-----------------------------
umask 0022
mkdir -p /var/src/tar (将tar.tar.gz解压后的文件存放在/var/src/tar下)
tar -xzf tar/netqmail-1.05.tar.gz
cd netqmail-1.05
./collate.sh
三,Qmail的安装软件
1.daemontools
mkdir -p /package
chmod 1755 /package
cd /package
tar -xpzf /var/src/tar/daemontools-0.76.tar.gz
cd admin/daemontools-0.76
patch -p1 < /var/src/netqmail-1.05/other-patches/daemontools-0.76.errno.patch
package/install
# 验证daemontools已经正常运行:
sleep 5
ps ax | grep svscan
# add the "clear" service
cd ../
mkdir clear
touch clear/down
cat > clear/run <<EOF
#!/bin/sh
yes '' | head -4000 | tr '\n' .
# When you want to clear the service errors, just run this:
# svc -o /service/clear
EOF
chmod +x clear/run
chmod a-w clear/down
ln -s /package/admin/clear /service/clear
2.ucspi-tcp
cd /var/src/
tar -xzf tar/ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
patch -p1 < /var/src/netqmail-1.05/other-patches/ucspi-tcp-0.88.errno.patch
# NOTE: If you are on the x86_64 platform, you need to remove the
# "-02" argument to gcc in conf-cc. See this for details
make
make setup check
3.qmail的安装
mkdir /var/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
cd /var/src
tar zxvf tar/toaster-scripts-0.8.1.tar.gz
-------------------------------------------------
cd netqmail-1.05/netqmail-1.05/
# 搜索函数straynewline中的451改为553
vi qmail-smtpd.c
# 当你的服务器收到无效格式的邮件时,会发送:"I am not going to accept that message at the moment,you can try again later",对方服务器收到后,几秒钟后又会发送同样的邮件给你,造成多次的重复。
# 改为553后,你的服务器将直接发送:"I am not going to accept that message,don't try sending it again.",告诉对方的服务器不要再发这封无效的信件。
# RedHat/Fedora用户可能需要为TLS补丁链接一个include文件
# 输入如下命令:
ln -s /usr/kerberos/include/com_err.h /usr/kerberos/include/krb5.h /usr/kerberos/include/profile.h /usr/include/
# 删除sendmail的链接
rm -rf /usr/sbin/sendmail
rm -rf /usr/lib/sendmail
make
make setup check
注意qmail的补丁将在vpopmail安装以后打
./config-fast mail.ourlab.org 你可以填写你实际邮件服务器的域名
设置管理员的邮箱地址。
cd /var/qmail/alias
echo "admin@ourlab.org" > .qmail-postmaster
echo "admin@ourlab.org" > .qmail-mailer-daemon
echo "admin@ourlab.org" > .qmail-root
chmod 644 ~alias/.qmail*
开启SPF设置
echo 3 > /var/qmail/control/spfbehavior
#添加qmail的帮助手册
echo MANPATH /var/qmail/man >> /etc/man.config
#为qmail服务建立监控目录和日志文件:
cd /var/src
cp toaster-scripts-0.8.1/rc /var/qmail/rc
chmod 755 /var/qmail/rc
mkdir /var/log/qmail
echo ./Maildir/ >/var/qmail/control/defaultdelivery
cp toaster-scripts-0.8.1/qmailctl /var/qmail/bin/
chmod 755 /var/qmail/bin/qmailctl
ln -s /var/qmail/bin/qmailctl /usr/bin
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
#Now create the supervise directories/scripts for the qmail services:
mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtpd/log
mkdir -p /var/qmail/supervise/qmail-pop3d/log
mkdir -p /var/qmail/supervise/qmail-pop3ds/log
cp /var/src/toaster-scripts-0.8.1/send.run /var/qmail/supervise/qmail-send/run
cp /var/src/toaster-scripts-0.8.1/send.log.run /var/qmail/supervise/qmail-send/log/run
cp /var/src/toaster-scripts-0.8.1/smtpd.run /var/qmail/supervise/qmail-smtpd/run
cp /var/src/toaster-scripts-0.8.1/smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run
cp /var/src/toaster-scripts-0.8.1/pop3d.run /var/qmail/supervise/qmail-pop3d/run
cp /var/src/toaster-scripts-0.8.1/pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run
# cp /var/src/toaster-scripts-0.8.1/stunnel.conf /var/qmail/supervise/qmail-pop3ds/
cp /var/src/toaster-scripts-0.8.1/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run
cp /var/src/toaster-scripts-0.8.1/pop3ds.log.run /var/qmail/supervise/qmail-pop3ds/log/run
echo 20 > /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming
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
chmod 755 /var/qmail/supervise/qmail-pop3d/run
chmod 755 /var/qmail/supervise/qmail-pop3d/log/run
chmod 755 /var/qmail/supervise/qmail-pop3ds/run
chmod 755 /var/qmail/supervise/qmail-pop3ds/log/run
mkdir -p /var/log/qmail/smtpd
mkdir -p /var/log/qmail/pop3d
mkdir -p /var/log/qmail/pop3ds
chown -R qmaill /var/log/qmail
允许daemontools来启动qmail
ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
检测qmail是否安装成功
sleep 5
qmailctl stat
四,Vpopmail的安装
vpopmail是一个以qmail为基础的虚拟域管理包;其允许在一个IP地址添加多个虚拟域;并且可以不需要使用系统帐号做邮件帐号。
参考:http://vpopmail.sf.net/
groupadd -g 89 vchkpw
useradd -u 89 -g vchkpw vpopmail
mkdir -p /home/vpopmail/etc
echo "ourlab.org" > /home/vpopmail/etc/defaultdomain
echo "localhost|0|vpopmail|52netseek|vpopmail" > ~vpopmail/etc/vpopmail.mysql
chown vpopmail:vchkpw ~vpopmail/etc/vpopmail.mysql
chmod 640 ~vpopmail/etc/vpopmail.mysql
chown -R vpopmail:vchkpw ~vpopmail/etc
mysql -u root -p
>CREATE DATABASE vpopmail;
>GRANT select,insert,update,delete,create,drop ON vpopmail.* TO vpopmail@localhost IDENTIFIED BY '52netseek';
>flush privileges;
>quit
cd /var/src
tar -xzf tar/vpopmail-5.4.13.tar.gz
cd vpopmail-5.4.13
patch -p0 < ../tar/vpopmail-5.4.13-cumulative-1.patch
./configure --enable-incdir=/usr/include/mysql --enable-libdir=/usr/lib/mysql --disable-roaming-users --enable-logging=p --disable-passwd --enable-clear-passwd --disable-domain-quotas --enable-auth-module=mysql --enable-auth-logging --enable-sql-logging --disable-valias --disable-mysql-limits --enable-learn-passwords
(在这要注意你的MYSQL安装的目录,和共享库目录)
make && make install-strip
#管理:
echo 'export PATH=$PATH:/home/vpopmail/bin' >> /etc/profile
source /etc/profile
echo '127.0.0.1:allow,RELAYCLIENT=""' > /home/vpopmail/etc/tcp.smtp
cd ~vpopmail/etc
tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
cd /home/vpopmail/bin
chmod 4755 vchkpw \\设置 smtp-auth
chown root.root vchkpw \\设置 smtp-auth
如果使用带验证的smtp,smtp进程要调用密码验证程序,则必须要使用 setuid 和setgid。提高vchkpw的权限,才能完成setgid操作。
# cd /home/vpopmail/bin
---------------------------------------------------------------------------------------------------------------
# 添加域,前面是域名,后面是管理员(postmaster)密码
# vadddomain ourlab.org 52netseek //应先生成一个其它的虚拟域名,不然会有问题,无法自动生成vpopmail数据库
# vadduser netseek@ourlab.org 52netseek
# 添加用户
vadduser -q 10m okman@ourlab.org 52netseek
vmoduser -c okman okman@ourlab.org
-----------------------------------------------------------------------------------------------------------------------
# 设置邮箱容量达到90%的警告信息
vi /home/vpopmail/domains/.quotawarn.msg
From: 邮箱管理员
Reply-To: postmaster@ourlab.org
To: 邮箱用户
Subject: 邮箱空间警告
Mime-Version: 1.0
Content-Type: text/html; charset=gb2312
Content-Transfer-Encoding: base64
您的邮箱空间已经达到90%.如果想继续使用,请删除一些信件.
如果需要帮助,请联系邮箱管理员:
Email : postmaster@ourlab.org
# 设置邮箱已满的警告信息
echo "邮件被拒绝,用户的邮箱空间已满." > /home/vpopmail/domains/.over-quota.msg
-------------------------------------------------------------------------------------------------------------
cd /var/src
cp toaster-scripts-0.8.1/vpopmailctl /var/qmail/bin/vpopmailctl
chmod 755 /var/qmail/bin/vpopmailctl
ln -s /var/qmail/bin/vpopmailctl /usr/bin
cd /var/src/netqmail-1.05/netqmail-1.05
bunzip2 -c ../../tar/qmail-toaster-0.8.3.patch.bz2 | patch -p0
make clean
make
qmailctl stop
make setup check
chown -R vpopmail:vchkpw /var/qmail/spam
make cert
make tmprsadh
-------------------scripts----------------------------------------------------------------------------------
#crontab -e //每天晚上更新temp keys
01 01 * * * /var/qmail/bin/update_tmprsadh > /dev/null 2>&1
# start qmail back up
qmailctl start
#allow daemontools to start vpopmail
ln -s /var/qmail/supervise/qmail-pop3d /var/qmail/supervise/qmail-pop3ds /service
#verify that it's running with vpopmailctl
sleep 5
vpopmailctl stat
# 检查服务
netstat -an | grep 110
ps -ef | grep qmail
ps -efl | grep "service errors" | grep -v grep
--------------------------Webmail的安装----------------------------
1.Apache的设置:
#vi /etc/httpd/conf/httpd.conf
Group Apache
User Apache
修改为:
User vpopmail
Group vchkpw
2.vi /etc/php.ini
max_execution_time=60
memory_limit=20M
post_max_size =10M
file_uploads=on
upload_max_filesize=10M
register_globals=On
session.bug_compat_42=0
session.bug_compat_warn=0
sendmail_path = /var/qmail/bin/qmail-inject
chmod 777 /var/lib/php/session/ -R
3.安装iGenus
tar zxvf igenus_2.0.2_20040901_release.tgz -C /var/www/
cd /var/www/
rm -rf html/
mv igenus html
#建temp文件夹
mkdir /tmp/temp
chmod -R 0755 /tmp/temp
chown -R vpopmail:vchkpw /tmp/temp
mkdir /home/netdisk
chmod -R 0755 /home/netdisk
chown -R vpopmail:vchkpw /home/netdisk
chmod -R 0755 /var/www/html/
chown -R vpopmail:vchkpw /var/www/html/
#cd /var/www/html/config
vi config_inc.php
$CFG_BASEPATH = "/var/www/html/"; \\改成你安装的目录
$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_USER = 'vpopmail'; \\vpopmail访问mysql的帐号
$CFG_MYSQL_PASS = '52netseek'; \\vpopmail访问mysql的密码
$CFG_MYSQL_DB = 'vpopmail'; \\数据库
$CFG_TEMP = "/tmp/temp"; \\删除$CFG_BASEPATH,并修改路径
vdeldomain ourlab.org //删除之前创建的域名
#mysql -uroot -p
use vpopmail;
drop table lastauth;
drop table vpopmail; // 这个表中没有.................
quit;
# vi /var/www/html/docs/iGENUS.sql
use vpopmail; //加入这一行
`pw_shell` varchar(20) default NULL, 在最后一个表的这个后面加上.
`pw_clear_passwd` varchar(16) default NULL, \\加入这一行
mysql -uroot -p < iGENUS.sql
------------装IGENUSWEB管理界面------------------------
Igenus管理页面工具(可选,我测试此处还有点问题,----基实用后面的qmailamdin+vqadmin管理起来也非常方便!)
tar -xzvf igenus_admin_0.1.tgz -C /var/www/html/
vi /var/www/html/admin/includes/config_inc.php
$CFG_VPOPMAIL_USER = "vpopmail"; \\改为你的帐号
$CFG_VPOPMAIL_PASS = "52netseek"; \\改为你的密码
$CFG_VPOPMAIL_PATH = "/home/vpopmail"; \\改为你的vpopmail安装目录 |
|