CentOS5 Qmail邮件系统

在CentOS5中安裝Qmail 商業郵件系統系統性能簡介本文是筆者在業余時間學習和研究Qmail 系統時所做的筆記, 全部資料均來自Google 網上所搜索到公開資源(Open Source),本文

在CentOS5中安裝Qmail 商業郵件系統

系統性能簡介

本文是筆者在業余時間學習和研究Qmail 系統時所做的筆記, 全部資料均來自Google 網上所

搜索到公開資源(Open Source),本文所涉及的所有需下載安裝的資源, 均為以GPL 授權, 而且 可提供商業用途的免費軟件. 本手册遵守GPL 协议, 欢迎任何人士加入意见和修改.

全文按功能分为十四节, 因为太长所以分为多篇来发表.

================================================================================

目錄指南

================================================================================

第一節: 安装前的准备;

第二節: 安装Qmail 的基本系统;

第三節: 安装协助Qmail 运作的工具套件;

第四節: 安装vpopmail 虚拟域名管理系统;

第五節: 安装病毒邮件防护系统ClamA V;

第六節: 安装垃圾邮件过滤系统SpamAssassin;

第七節: 設置Qmail 的運行腳本;

第八節: 安装Qmailadmin 和修正Domain Quota;

第九節: 安装Courier(authlib imap sqwebmail maildrop)和配置SSL 支持;

第十節: 安装SquirrelMail;

第11節: 安装Horde-Webmail;

第12節: 安装扫描程序qmail-scanner;

第13節: 配置POP3的SSL 支持;

第14節: 安裝Vqadmin 管理工具;

================================================================================

================================================================================

性能簡介:

================================================================================

按照本安裝手冊部屬配置的Qmail 郵件系統, 將會是一個具備完整功能的商業郵件系統, 能滿足

大中小型企業的電子?**枨?, 也適合于專門提供電郵服務的ISP 網路公司. 它具備专業和商業 電郵系統的所有標準功能, 能保證向商業用戶提供安全, 穩定和高效的電子商務.

,

1) 支持多虚拟域名的设置, 每臺主機可支持數千乃至更多個虛擬域名;

2) 支持數據庫來儲存管理信息, 用戶信息儲存在MySQL 數據庫中(無需Linux 系統賬號), 增強了

安全性和靈活性;

3) 支持賬戶數目限額和郵箱空間限額:

- 每个域名可设置最大空間容量和郵箱數目, 用戶可自行调整郵箱账户的空間大小; - 用户具有管理功能, 包括增加和刪除帳號, 設置別名, 修改密码以及分配和調整空間; - 用戶可設置無限制數量的別名(包括轉發);

4) 支持POP3协议接收电邮, 支持SSL 安全連接, 支持SMTP 認證;

5) 支持多種Webmail 界面管理和收发电邮;

6) 自動掃描進出網關的電郵信息(包括接收, 發送和轉發), 可以設置使用QHPSI 來進行高性能

掃描, 能有效阻止病毒電郵和过滤垃圾郵件;

================================================================================

================================================================================

系統管理方式

================================================================================

啟動Qmail 系統: qmailctl start

停止Qmail 系統: qmailctl stop

Qmail 系統預設的腳本命令集: /var/qmail/bin/

TCP Server 的服務目錄路徑: /service(鏈接/var/qmail/supervise/)

添加, 刪除和管理電郵命令集: /home/vpopmail/bin/

一個查詢電郵域名的操作范例:

--------------------------------------------------------------------------------

cd /home/vpopmail/bin/;

./vdominfo test.com #返回信息如下:

- - - - - - - - - - - - - - - - - - - - - - - - -

domain: test.com

uid: 809

gid: 809

,

dir: /home/vpopmail/domains/test.com

users: 2

- - - - - - - - - - - - - - - - - - - - - - - - -

--------------------------------------------------------------------------------

一個添加電郵域名的操作范例:

--------------------------------------------------------------------------------

cd /home/vpopmail/bin/;

./vadddomain test.com;

Please enter password for postmaster:

enter password again:

--------------------------------------------------------------------------------

一個添加電郵帳號的操作范例:

--------------------------------------------------------------------------------

cd /home/vpopmail/bin/;

/vadduser [email]email@test.com[/email]

Please enter password for [email]email@test.com[/email]:

enter password again:

--------------------------------------------------------------------------------

一個刪除電郵帳號的操作范例:

--------------------------------------------------------------------------------

cd /home/vpopmail/bin/;

./vdeluser [email]email@test.com[/email]

--------------------------------------------------------------------------------

一個刪除電郵域名的操作范例:

--------------------------------------------------------------------------------

cd /home/vpopmail/bin/;

./vdeldomain test.com

--------------------------------------------------------------------------------

一個用來添加域名(支持限額) 腳本(/home/vpopmail/bin/adddomain.pl)的使用范例: --------------------------------------------------------------------------------

cd /home/vpopmail/bin/;

./adddomain-hung.pl;

Please input the new domain:test.com

Please enter password for postmaster:

enter password again:

domain testhung1.com has been create success

Please set the pop user quota for the domain:5

set quota success!

--------------------------------------------------------------------------------

,

電郵域名及此域下的電郵賬戶在這里: /home/vpopmail/domains/

新收郵件目錄: /home/vpopmail/domains/yourdomain/youremailaccount/.Mkdir/new/ 已讀郵件目錄: /home/vpopmail/domains/yourdomain/youremailaccount/.Mkdir/cur/

================================================================================

================================================================================

用戶使用方法

================================================================================

超級用戶管理頁面: [url]http://xxx.xxx.xxx.xxx/cgi-bin/qmailadmin[/url]

[User Account] 请输入 postmaster

[Domain Name] 请输入 yourdomain

[Password] 请输入 postmasterpassword

普通用戶管理頁面: [url]http://xxx.xxx.xxx.xxx/cgi-bin/qmailadmin[/url]

[User Account] 请输入 youremailaccount

[Domain Name] 请输入 yourdomain

[Password] 请输入 yourpassword

用戶網頁電郵: [url]http://xxx.xxx.xxx.xxx/cgi-bin/sqwebmail[/url]

[User ID] 请输入 youremail@yourdomain

[Password] 请输入 yourpassword

用戶網頁電郵: [url]http://xxx.xxx.xxx.xxx/squirrelmail/[/url]

帐号: youremail@yourdomain

密码: yourpassword

用戶網頁電郵: [url]http://xxx.xxx.xxx.xxx/horde/[/url]

使用者名稱: youremail@yourdomain

密码 : yourpassword

POP3客户端设置:

主机名称: xxx.xxx.xxx.xxx

帐户名称: youremailaccountyourdomain

邮箱密码: yourpassword

================================================================================

,

================================================================================

附加資源文件

================================================================================

qmail-install-online-src.rar 是本安装中需要修改補丁的部分资源和執行腳本;

qmail-install-online-menu-text.rar 是本安裝手冊的TEXT 文本;

qmail-install-online-src-all.tar.gz 是本人最近一次成功安裝的全部資源;

若有讀者需要上述資源, 歡迎聯絡本人:

QQ: 507649008

MSN: [email]chengkinhung@hotmail.com[/email]

SKYPE: chengkinhung

EMAIL: [email]chengkinhung@gmail.com[/email]

第一節: 安装前的准备

检查Linux 系统, 调整适合Qmail 系统运行的环境, 配置用户, 组权限和相关目录;

1) 检查系统的C 编译环境;

--------------------------------------------------------------------------------

因为Qmail 源代码的安装配置档中使用了名称为"cc" 的C 编译器, 所以, 如果你的系统中没有

相应的名为"cc" 的编译命令, 那么就必须修改安装配置档conf-cc 和conf-ld, 确保安装程序 能找到适合的C 编译器.

在Linux 的命令提示行下, 敲入 cc 然后回车:

cc;

cc: no input files (注: 这是C 编译器返回的反应信息)

如果您得到上面類似"no input files"的反應, 這表明在您系統的缺省搜索訪問路徑上有一 個(適合于本安裝) 可用的C 編譯器.

如果没有类似反应, 请继续测试執行如下的C 編譯命令:

/usr/bin/cc;

/usr/bin/gcc;

/usr/local/bin/cc;

/usr/local/bin/gcc;

/usr/ccs/bin/cc;

如果上面的測試命令沒有一個能起作用, 请參考您的系统**之相關說明文檔, 确认您的系统

,

中有可用的C 编译器及其正确的路径; 例如对于Red Hat Linux,可用如下RPM 命令來查詢:

rpm -qa | grep gcc;

rpm -qa | grep egcs;

如果上面的測試命令有任何一個能起作用, 说明你的系统中有可用的C 编译器, 但因為路径或 名称不符合本安装的要求, 因此在安裝Qmail 之前, 需要修正Qmail 的安裝資源中關于C 編譯器

的設置档. 在Qmail 的源程序中, 關于C 編譯環境的配置參數包含在名為 conf-cc 和conf-ld 的 兩個文件中. 若要修改配置档 conf-cc 和conf-ld, 请用编辑器打开conf-cc 和conf-ld 文件, 然后置换文件中所有的 "cc" 为适合您系統中的C 编译器名称即可(通常是在第一行).

例如, 如果你的系统中可用的C 编译器名为"gcc", 或者是必须带路径访问的"/usr/bin/gcc", 那么就请编辑 conf-cc 和conf-ld 两个文件(这两个文件在qmail-1.03的资源当中, 后面将要 介绍如何下载这些资源), 将文件中的"cc" 改为"gcc" 或者"/usr/bin/gcc".

请注意: RedHat系统虽然使用gcc, 但通常会有一個连接(/usr/bin/cc)指向 /usr/bin/gcc, 这种情况下就不用修改配置档了. (由此亦可见, 有另一个比修改配置档更简单的方法, 就是 建立一个名为 cc 的连接, 指向您系统中可用的C 编译器即可).

--------------------------------------------------------------------------------

2) 检查系统所需的必要组件(apache php mysql和named);

--------------------------------------------------------------------------------

#检查系统组件:

rpm -qa | grep httpd;

rpm -qa | grep php;

rpm -qa | grep mysqld;

rpm -qa | grep bind; (这是检查named, RedHat的Name Server预设是Bind)

请注意: 系统组件对保障Qmail 邮件系统的高效运行至关重要,Qmail 的各种特性, 包括稳定性

和安全性都依赖于这些组件与Linxu 操作系统的整合程度, 如果尚未安装系统组件, 建议重新 安装Linux 操作系统, 让操作系统的安装程序自动安装和调整这些系统组件, 以达至最佳性能. --------------------------------------------------------------------------------

3) 保证系统能自动启动如下三个组件(在项目前加入

号);

--------------------------------------------------------------------------------

setup; ->System Service;

mysqld

,

named

#手工启动相关服务的命令

service httpd start; 或者 service httpd restart;

service mysqld start; 或者 service mysqld restart;

service named start; 或者 service named restart;

--------------------------------------------------------------------------------

4) 关闭SELINUX;

--------------------------------------------------------------------------------

vi /etc/sysconfig/selinux;

#如果看到有此行: SELINUX=enforcing

#请改成如下: SELINUX=disabled

#SELINUX如有改动, 必须保存并重新启动Linux: reboot

请注意: 本系统要求关闭SELinux, 并非是因为SELinux 不支持Qmail 系列邮件系统, 而是因为在

SELinux 下配置完整功能的商业邮件服务相当麻烦. 您如果有需要在邮件服务器中启用SELinux,

请参考下列网站:

官方网站: http://www.nsa.gov/selinux/

维基**: http://zh.wikipedia.org/wiki/SELinux

维基英文: http://en.wikipedia.org/wiki/SELinux

IBM DW : http://www.ibm.com/developerworks/cn/linux/s-selinux/index.html

--------------------------------------------------------------------------------

5) 如果RedHat 系统安装了预设的套件sendmail 或postfix, 请先刪除它们;

--------------------------------------------------------------------------------

rpm -e --nodeps sendmail;

rpm -e --nodeps postfix;

rpm -e --nodeps sendmail-cf;

刪除sendmail 的时候,也许会看到如下的警告信息(RPM删除套件前会备份相关的设置档) : warning: /var/log/mail/statistics saved as /var/log/mail/statistics.rpmsave

warning: /etc/mail/submit.cf saved as /etc/mail/submit.cf.rpmsave

說明: 上述套件其實無需刪除, 但為保證Qmail 系統的穩定運行, 必須確認已經停止其服務, 或 更改相應的服務端口, 以及調整默認的鏈接.

--------------------------------------------------------------------------------

6) 为了避免已经存在的文件导致相关命令不能正确运行, 请先删除以下目录;

--------------------------------------------------------------------------------

rm -rf /var/qmail;

rm -rf /var/log/qmail;

,

rm -rf /service;

请注意: 这里假设以上目录在您的系统中并未使用, 如果在您的系统已经有其他程序应用了 上述目录, 请谨慎考虑删除这些目录可那能引起的后果;

--------------------------------------------------------------------------------

7) 需要预先检查的用户和组;

--------------------------------------------------------------------------------

运行Qmail 系統需要在Linux 系统中添加两个新组和7个新用户, 在Qmail 的源程序中有一個名為

INSTALL.ids 的文件, 此文件包含了介紹如何在各種系統中添加用戶和組的命令. 如下是此文件

中開頭部分所介紹的, 在Solaris,Linux 和FreeBSD 中添加用戶和組的命令:

vi INSTALL.ids;

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

On some systems there are commands that make this easy. Solaris and

Linux:

# 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

FreeBSD 2.2:

# pw groupadd nofiles

# pw useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent

# pw useradd qmaild -g nofiles -d /var/qmail -s /nonexistent

# pw useradd qmaill -g nofiles -d /var/qmail -s /nonexistent

# pw useradd qmailp -g nofiles -d /var/qmail -s /nonexistent

# pw groupadd qmail

# pw useradd qmailq -g qmail -d /var/qmail -s /nonexistent

# pw useradd qmailr -g qmail -d /var/qmail -s /nonexistent

# pw useradd qmails -g qmail -d /var/qmail -s /nonexistent

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

在本安装手冊中所配置的Qmail 系統的運行用戶和組, 與上述方式產生的用戶和組稍有不同, 因為我們指定了这些组和用户的GID 和UID. 采用固定的用戶ID 來運行Qmail 系統的目的, 是

,

為了方便系統后續的升級和遷移等維護工作, 這對于需要眾多郵件主機, 以及經常需要在各 主機之間遷移郵箱用戶的系統, 或者需要配置集群(例如雙機備份) 的系統, 是非常值得采用 的方式.

如下是本安裝手冊中將會使用的GID 和UID:

GID: 801, 802

UID: 800,801,802,803,804,805,806

關于UID 和GID 的說明:

Linux 系统使用GID 和UID 来识别用户身份, 如果/etc/passwd档中出现两个以上重复ID, 那么 只有最后一个ID 才会是有效用户. 所以, 如果您的系統中已經存在这些GID 或UID 的話, 那么

安装过程就可能无法正确产生相关的目录和文件,Qmail 系统可能会因此而失败. 因此, 建议 您在执行安装之前, 首先检查一下您當前的系统中的用戶和組, 是否已经有别的用戶和組 正在使用上述GID 和UID. 如果发现系统已经存在上述GID 和UID, 那么就要首先修改这些ID

数值, 以免产生重复ID.

为了保持系统一致性, 连续性和易迁移性, 建议您针对你的系统的特性, 选择一个并不常用 的UID 和GID 来安装Qmail. 尽量采用统一UID 和GID 来安装您的所有Qmail 系统, 可以避免系統

在后續的維護工作中修改系統的GID 和UID 的麻煩.

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

參考資料: 如要修改操作系统现有用户的GID 和UID, 请参照如下方法:

--------------------------------------------------------------------------------

vi /etc/passwd;

请记住您要修改的相关ID 和其对应的用户名, 改完GID 和UID 后, 記得要修改系統中所有此用戶

的文件和目綠, 可参照如下的FIND 命令来达到目的:

find / -uid [UID] –exec chown [USER] {} ;

find / -gid [GID] –exec chown [GROUP] {} ;

上述[UID]和[GID]为旧用户的ID 数值, 而[USER]和[GROUP]则是此ID 相对应的用户名, 例如, 若

用户htt 原先的UID 和GID 为801, 那么:

find / -uid 801 -exec chown htt {} ; (查找UID 为101的文件和目录, 改为用户htt 的新UID;)

,

find / -gid 801 -exec chown .htt {} ; (查找GID 为101的文件和目录, 改为组htt 的新GID;) --------------------------------------------------------------------------------

8) 建立Qmail 系统的运行目录, 设置系统的用户和组以及相关权限;

--------------------------------------------------------------------------------

#逐步执行如下系列命令, 产生运行Qmail 系统所需的用户, 组和相关目录:

groupadd -g 801 qmail;

groupadd -g 802 nofiles;

mkdir -p /var/qmail; (这是qmail 运行程序的目录)

chown root.qmail /var/qmail;

useradd -g nofiles -d /var/qmail/alias -s /sbin/nologin -p'*' -u 800 alias;

useradd -g nofiles -d /var/qmail -M -s /sbin/nologin -p'*' -u 801 qmaild;

useradd -g nofiles -d /var/qmail -M -s /sbin/nologin -p'*' -u 802 qmaill;

useradd -g nofiles -d /var/qmail -M -s /sbin/nologin -p'*' -u 803 qmailp;

useradd -g qmail -d /var/qmail -M -s /sbin/nologin -p'*' -u 804 qmailq;

useradd -g qmail -d /var/qmail -M -s /sbin/nologin -p'*' -u 805 qmailr;

useradd -g qmail -d /var/qmail -M -s /sbin/nologin -p'*' -u 806 qmails;

mkdir /var/log/qmail;

mkdir /var/log/qmail/qmail-send;

mkdir /var/log/qmail/qmail-smtpd;

mkdir /var/log/qmail/qmail-pop3d;

chown -R qmaill:root /var/log/qmail;

chmod -R 750 /var/log/qmail;

mkdir /var/qmail/supervise;

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

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

mkdir -p /var/qmail/supervise/qmail-pop3d/log;

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

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

chmod t /var/qmail/supervise/qmail-pop3d;

第二節: 安装Qmail 的基本系统 (上)

================================================================================

1) 下载Qmail 主程序(請選擇a 或者b 方式):

================================================================================

标签: