一、實驗所需要的源碼包
httpd-2.2.19.tar.bz2 #安裝源碼包apache
mysql-5.0.81.tar.gz #安裝源碼包mysql
php-5.3.7.tar.bz2 #安裝php軟件
postfix-2.6.2.tar.gz #postfix主程序
postfix-2.6.2-vda-ng.patch.gz #postfix的補丁包
dovecot-1.1.4.tar.gz #IMAP和POP3郵件服務器軟件
squirrelmail-1.4.13.tar.bz2 #web界面郵件管理
zh_CN-1.4.13-20071220.tar.bz2 #漢化包
extman-0.2.5.tar.gz #郵件後臺管理程序
extmail-1.0.5.tar.gz #web界面郵件管理
courier-authlib-0.62.4.tar.bz2 #SMTP發信認證
Unix-Syslog-1.1.tar.gz
DBI-1.616.tar.gz
DBD-mysql-4.020.tar.gz #以上三個包爲extmail的倚賴包
GD-2.46.tar.gz
File-Tail-0.99.3.tar.gz
rrdtool-1.2.23-3.el5.i386.rpm
rrdtool-perl-1.2.23-3.el5.i386.rpm
二.準備工作
1.安裝所需環境,必要的軟件包
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# yum groupinstall "Development Libraries" "Development Tools" "Legacy Software Development" "X Software Development"
2.把系統自帶的mysql卸載並停用sendmail
[root@localhost ~]# yum remove mysql
[root@localhost ~]# service sendmail stop
關閉 sm-client: [確定]
關閉 sendmail: [確定]
[root@localhost ~]# chkconfig sendmail off
[root@localhost ~]# rpm -e sendmail –nodeps
三.平臺結構
下面我們將把所有需要的安裝包解壓到/usr/local/src/下面以方便我們統一管理維護
[root@localhost ~]# tar -jxvf httpd-2.2.19.tar.bz2 -C /usr/local/src/
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# ll
總計 8
drwxr-xr-x 11 cms 500 4096 2011-05-21 httpd-2.2.19
[root@localhost src]# cd httpd-2.2.19/
[root@localhost httpd-2.2.19]# ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
[root@localhost httpd-2.2.19]# make
[root@localhost httpd-2.2.19]# make install
[root@localhost ~]# useradd -M -s /sbin/nologin mysql #添加mysql用戶,如果安裝系統時候已經裝過mysql會提示用戶已存在,建議在安裝前先卸載掉系統自帶的mysql,卸載完成後必須重啓,否則新裝的mysql會無法啓動,提示錯誤信息3306端口被佔有
[root@localhost ~]# tar -zxvf mysql-5.0.81.tar.gz -C /usr/local/src/
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# ll
總計 16
drwxr-xr-x 12 cms 500 4096 03-23 03:41 httpd-2.2.19
drwxrwxrwx 39 7155 wheel 4096 2009-04-16 mysql-5.0.81
[root@localhost src]# cd mysql-5.0.81/
[root@localhost mysql-5.0.81]# ./configure --prefix=/usr/local/mysql
[root@localhost mysql-5.0.81]# make
[root@localhost mysql-5.0.81]# make install
安裝完成。
配置mysql
[root@localhost mysql-5.0.81]# cp support-files/my-medium.cnf /etc/my.cnf #複製主配置文件
[root@localhost mysql-5.0.81]# /usr/local/mysql/bin/mysql_install_db --user=mysql #初始化
[root@localhost mysql-5.0.81]# chown -R root:mysql /usr/local/mysql
[root@localhost mysql-5.0.81]# chown -R mysql /usr/local/mysql/var
[root@localhost mysql-5.0.81]# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf #添加庫文件路徑
[root@localhost mysql-5.0.81]# ldconfig #刷新庫文件搜索路徑
[root@localhost mysql-5.0.81]# /usr/local/mysql/bin/mysqld_safe --user=mysql & #後臺安全啓動 (如果顯示啓動並且卡住不動按回車)
[1] 27986
[root@localhost mysql-5.0.81]# Starting mysqld daemon with databases from /usr/local/mysql/var
[root@localhost mysql-5.0.81]# cp support-files/mysql.server /etc/init.d/mysqld #複製啓動腳本
[root@localhost mysql-5.0.81]# chmod +x /etc/init.d/mysqld #賦予腳本執行權限
[root@localhost mysql-5.0.81]# chkconfig --add mysqld #添加到系統自動啓動服務中
[root@localhost mysql-5.0.81]# chkconfig mysqld on #默認啓動mysql
查看mysql在什麼級別啓動或者關閉
[root@localhost mysql-5.0.81]# chkconfig --list mysqld
mysqld 0:關閉 1:關閉 2:啓用 3:啓用 4:啓用 5:啓用 6:關閉
設置系統全局的環境變量PATH值,方便使用mysql數據庫命令
[root@localhost mysql-5.0.81]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
3.安裝php軟件
[root@localhost ~]# tar -jxvf php-5.3.7.tar.bz2 -C /usr/local/src/
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# ll
總計 24
drwxr-xr-x 12 cms 500 4096 03-23 03:41 httpd-2.2.19
drwxrwxrwx 39 7155 wheel 4096 03-23 04:16 mysql-5.0.81
drwxr-xr-x 13 1000 1000 4096 2011-08-17 php-5.3.7
[root@localhost src]# cd php-5.3.7/
[root@localhost php-5.3.7]# ./configure --prefix=/usr/local/php5 --enable-mbstring --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5
[root@localhost php-5.3.7]# make
[root@localhost php-5.3.7]# make test #可省略此步
[root@localhost php-5.3.7]# make install
[root@localhost php-5.3.7]# cp php.ini-production /usr/local/php5/php.ini #複製配置文件
修改apache服務的主配置文件使其支持php
[root@localhost php-5.3.7]# vim /usr/local/apache2/conf/httpd.conf
LoadModule php5_module modules/libphp5.so #確認這行存在,如果沒有就重新編譯php
AddType application/x-httpd-php .php #添加這行記錄
DirectoryIndex index.php index.html #在這行添加關於php格式的首頁
然後保存退出
4.測試php是否與apache整合成功
[root@localhost php-5.3.7]# vim /usr/local/apache2/htdocs/test.php #添加下面的內容
<?php
phpinfo();
[root@localhost php-5.3.7]#
?>
[root@localhost php-5.3.7]# /usr/local/apache2/bin/apachectl start #啓動apache服務
在瀏覽器中輸入http://192.168.2.50 看到以下結果
在瀏覽器中輸入http://192.168.2.50/test.php 看到下圖表示跟apache服務整合成功
Mysql測試
[root@localhost php-5.3.7]# vim /usr/local/apache2/htdocs/testdb.php #添加下面的內容
<?php
$link=mysql_connect(‘localhost’ , ‘test’, ‘’);
If (!$link) echo “Fail!!!”;
else echo “Success!!!”;
mysql_close();
?>
在IE瀏覽器中輸入網址http://192.168.2.50/testdb.php看到下圖表示跟mysql服務整合成功
四.安裝postfix並進行配置
1.安裝配置dns
[root@localhost ~]# yum install bind bind-chroot caching-nameserver
[root@localhost ~]# cd /var/named/chroot/etc/
[root@localhost etc]# ll
總計 32
-rw-r--r-- 1 root root 405 03-22 16:58 localtime
-rw-r----- 1 root named 1230 2009-07-30 named.caching-nameserver.conf
-rw-r----- 1 root named 955 2009-07-30 named.rfc1912.zones
-rw-r----- 1 root named 113 03-23 05:05 rndc.key
[root@localhost etc]# cp -p named.caching-nameserver.conf named.conf
[root@localhost etc]# vim named.conf
[root@localhost etc]# vim named.rfc1912.zones
生成數據庫文件
[root@localhost etc]# cd ../var/named/
[root@localhost named]# ll
總計 72
drwxrwx--- 2 named named 4096 2004-08-26 data
-rw-r----- 1 root named 198 2009-07-30 localdomain.zone
-rw-r----- 1 root named 195 2009-07-30 localhost.zone
-rw-r----- 1 root named 427 2009-07-30 named.broadcast
-rw-r----- 1 root named 1892 2009-07-30 named.ca
-rw-r----- 1 root named 424 2009-07-30 named.ip6.local
-rw-r----- 1 root named 426 2009-07-30 named.local
-rw-r----- 1 root named 427 2009-07-30 named.zero
drwxrwx--- 2 named named 4096 2004-07-27 slaves
[root@localhost named]# cp -p localhost.zone a.org.db
[root@localhost named]# vim a.org.db
[root@localhost named]# vim /etc/resolv.conf
修改主機名
[root@localhost named]# vim /etc/sysconfig/network
重啓系統
[root@localhost ~]# init 6
重新啓動dns
[root@mail ~]# service named start
啓動 named: [確定]
[root@mail ~]# chkconfig --add named
[root@mail ~]# chkconfig named on
[root@mail ~]# dig -t mx a.org
Dns安裝完成
2.啓動mysql數據庫,並給mysql的root用戶設置密碼“redhat”
[root@mail ~]# service mysqld start
[root@mail ~]# chkconfig mysqld on
[root@mail ~]# netstat -tupln|grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 3249/mysqld
[root@mail ~]# mysqladmin -uroot password 'redhat
3.啓動saslauthd服務,並將其加入到自動啓動隊列
[root@mail ~]# service saslauthd start
啓動 saslauthd: [確定]
[root@mail ~]# chkconfig saslauthd on
4.編譯安裝postfix軟件
[root@mail ~]# groupadd -g 1200 postdrop
[root@mail ~]# groupadd -g 1000 postfix
[root@mail ~]# useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix #創建宿主目錄 附屬組
[root@mail ~]# tar -zxvf postfix-2.6.2.tar.gz -C /usr/local/src/
[root@mail ~]# cp postfix-2.6.2-vda-ng.patch.gz /usr/local/src/ #補丁文件,用以支持虛擬用戶設置配額
[root@mail ~]# cd /usr/local/src/
[root@mail src]# ll
總計 52
drwxr-xr-x 12 cms 500 4096 03-23 02:59 httpd-2.2.19
drwxrwxrwx 39 7155 wheel 4096 03-23 03:06 mysql-5.0.81
drwxr-xr-x 17 postfix postfix 4096 03-23 03:39 php-5.3.7
drwxr-xr-x 16 1001 wheel 4096 2009-05-20 postfix-2.6.2
-rw-r--r-- 1 root root 12661 03-23 04:19 postfix-2.6.2-vda-ng.patch.gz
[root@mail src]# gunzip postfix-2.6.2-vda-ng.patch.gz
[root@mail src]# cd postfix-2.6.2
[root@mail postfix-2.6.2]# patch -p1 <../postfix-2.6.2-vda-ng.patch #打補丁(注意此處-p1,後面是數字1而不是字母l)
以上顯示錶示補丁已經打上。
[root@mail postfix-2.6.2]# make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH_DUSE_CYRUS_SASL -I/usr/local/include/sasl' 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/local/lib/sasl2 -lsasl2'
[root@mail postfix-2.6.2]# make
[root@mail postfix-2.6.2]# make install
安裝過程中會出現互動提問,直接選擇默認(按“Enter”)設置即可
5.編輯postfix主配置文件
[root@mail postfix-2.6.2]# vim /etc/postfix/main.cf
Inet_interfaces = all #默認設置
myhostname = mail.a.org #主機名
mydomain = a.org #郵件域名
myorigin = $mydomain #外發郵件時發件人地址中的郵件域名
[root@mail postfix-2.6.2]# postfix check #檢查配置
[root@mail postfix-2.6.2]# postfix start #啓動postfix
postfix/postfix-script: starting the Postfix mail system
6.編輯postfix的啓動腳本
[root@mail ~]# mkdir cms
[root@mail ~]# cd cms/
[root@mail cms]# cp /mnt/cdrom/Server/postfix-2.3.3-2.1.el5_2.i386.rpm ./
[root@mail cms]# ll
總計 3652
-r--r--r-- 1 root root 3734257 03-23 05:07 postfix-2.3.3-2.1.el5_2.i386.rpm
[root@mail cms]# rpm2cpio postfix-2.3.3-2.1.el5_2.i386.rpm |cpio -id
16333 blocks
[root@mail cms]# ll
總計 3664
drwxr-xr-x 5 root root 4096 03-23 05:08 etc
-r--r--r-- 1 root root 3734257 03-23 05:07 postfix-2.3.3-2.1.el5_2.i386.rpm
drwxr-xr-x 7 root root 4096 03-23 05:08 usr
drwxr-xr-x 3 root root 4096 03-23 05:08 var
[root@mail cms]# cd etc/rc.d/init.d/
[root@mail init.d]# ll
總計 4
-rwxr-xr-x 1 root root 2404 03-23 05:08 postfix
[root@mail init.d]# cp postfix /etc/init.d/postfix
[root@mail init.d]# service postfix start
啓動 postfix: [確定]
將其加入開機自啓動
[root@mail init.d]# chkconfig --add postfix
[root@mail init.d]# chkconfig postfix on
[root@mail init.d]#
7.連接postfix,驗正服務啓動狀況
[root@mail init.d]# telnet 192.168.2.50 25
Trying 192.168.2.50...
Connected to 192.168.2.50 (192.168.2.50).
Escape character is '^]'.
220 mail.a.org ESMTP Postfix
EHLO mail.a.org #此行爲輸入的內容
250-mail.a.org
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:[email protected] #此行爲輸入的內容
250 2.1.0 Ok
rcpt to:[email protected] #此行爲輸入的內容
250 2.1.5 Ok
data #此行爲輸入的內容
354 End data with <CR><LF>.<CR><LF>
111111111111111111111 #此行爲輸入的內容
.
250 2.0.0 Ok: queued as EC1D358197
quit #此行爲輸入的內容
221 2.0.0 Bye
Connection closed by foreign host.
You have new mail in /var/spool/mail/root
[root@mail init.d]# mail
五.安裝dovecot
1.安裝
[root@mail ~]# useradd -M -s /sbin/nologin dovecot
[root@mail ~]# tar -zxvf dovecot-1.1.4.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/dovecot-1.1.4/
[root@mail dovecot-1.1.4]# ./configure --sysconfdir=/etc --with-mysql
[root@mail dovecot-1.1.4]# make
[root@mail dovecot-1.1.4]# make install
[root@mail dovecot-1.1.4]# cp /etc/dovecot-example.conf /etc/dovecot.conf
[root@mail dovecot-1.1.4]# vim /etc/dovecot.conf
ssl_disable = yes #禁用SSL機制
protocols = pop3 imap #指定郵局協議
disable_plaintext_auth = no #允許明文密碼認證
mail_location = maildir:~/Maildir #設置郵件存儲格式和位置
#vim /etc/pam.d/dovecot #創建pam認證文件
auth required pam_nologin.so
auth include system-auth
account include system-auth
session include system-auth
[root@mail dovecot-1.1.4]# vim /etc/pam.d/dovecot
[root@mail dovecot-1.1.4]# usr/local/sbin/dovecot -c /etc/dovecot.conf #啓動(把這句話寫入開機腳本)
2.測試接收服務器dovecot
[root@mail dovecot-1.1.4]# telnet localhost 110
至此dovecot安裝成功。
六.安裝Webmail軟件
[root@mail ~]# tar -zxvf squirrelmail-webmail-1.4.22.tar.gz -C /usr/local/apache/htdocs/
[root@mail ~]# cd /usr/local/apache/htdocs/
[root@mail htdocs]# mv squirrelmail-webmail-1.4.22 webmail
[root@mail htdocs]# cd webmail/
[root@mail webmail]# mkdir -p attach data
[root@mail webmail]# chown -R daemon:daemon attach/ data/
[root@mail webmail]# chmod 730 attach/
[root@mail webmail]# cp config/config_default.php config/config.php
[root@mail webmail]# vim config/config.php
$squirrelmail_default_language = ‘zh_CN’;
$default_charset = ‘zh_CN.UTF-8’;
$domain = ‘wisefund.com’;
$smtpServerAddress = ‘localhost’; #設置發信服務器地址
$smtpPort = 25; #設置發信服務器端口
$imap_server_type = 'dovecot'; #設置收信服務器軟件
$imapPort = 143; #設置收信服務器端口
$data_dir = '/usr/local/apache2/htdocs/webmail/data/';
$p_w_upload_dir = '/usr/local/apache2/htdocs/webmail/attach/';
重啓服務進行測試
[root@mail webmail]# /usr/local/apache/bin/apachectl restart
輸入下面地址來測試
七.初始化 extman 軟件
1.初始化extman
[root@mail ~]# service mysqld restart
[root@mail ~]# tar -zxvf extman-0.2.5.tar.gz -C /usr/local/src/
[root@mail src]# cd /usr/local/src/extman-0.2.5/docs
[root@mail docs]# mysql -u root -p < extmail.sql #需要輸入密碼,我的root的密碼是redhat
[root@mail docs]# mysql -u root -p <init.sql
2.配置Postfix
[root@mail docs]# postconf -m |grep mysql #返回值有mysql,說明可以支持mysql 數據庫的查詢表
讓postfix支持虛擬域和虛擬用戶
[root@mail ~]# vim /etc/postfix/main.cf
#mydestination = $mydomain, $myhostname #該行需要註釋掉
virtual_mailbox_base = /mailbox #指定虛擬郵箱存儲目錄的路徑起點
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf #指定虛擬郵件用戶對應的別名文件位置
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.#指定記錄虛擬郵箱地址與存儲位置對應關係的映射文件位置
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf#設置postfix服務器可以接收的虛擬郵件域的域名
virtual_uid_maps = static:1000 #設置所有虛擬郵件用戶映射的本地用戶的UID號
virtual_gid_maps = static:1000 #設置所有虛擬郵件用戶映射的本地組的GID 號
#cd /usr/local/src/extman-0.2.5/docs
#cp mysql_virtual_* /etc/postfix/ #在上面的三行配置中指定了這三個文件
[root@mail docs]# cp mysql* /etc/postfix/
[root@mail docs]# mysql -u root -p
mysql> GRANT all privileges on extmail.* TO extmail@localhost IDENTIFIED BY 'extmail';
mysql> GRANT all privileges on extmail.* TO [email protected] IDENTIFIED BY 'extmail';
mysql> FLUSH PRIVILEGES; #讓設置的內容生效
八.虛擬用戶設置SMTP發信認證
1.安裝
[root@mail ~]# tar -jxvf courier-authlib-0.62.4.tar.bz2 -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/courier-authlib-0.62.4/
[root@mail courier-authlib-0.62.4]# ./configure --prefix=/usr/local/courier-authlib --without-stdheaderdir --with-authmysql --with-redhat --with-mysql-libs=/usr/local/mysql/lib/mysql --with-mysql-includes=/usr/local/mysql/include/mysql
[root@mail courier-authlib-0.62.4]# make
[root@mail courier-authlib-0.62.4]# make install
[root@mail courier-authlib-0.62.4]# make install-configure #生成默認配置文件authmysqlrc 和 authdaemonrc
[root@mail courier-authlib-0.62.4]# vim /etc/ld.so.conf #添加courier-authlib的庫文件路徑
include ld.so.conf.d/*.conf
/usr/local/mysql/lib/mysql
/usr/local/courier-authlib/lib/courier-authlib
[root@mail courier-authlib-0.62.4]# cd /usr/local/courier-authlib/etc/authlib/
[root@mail authlib]# cp authmysqlrc authmysqlrc.bak
[root@mail authlib]# vim authmysqlrc
MYSQL_SERVER #localhost 數據庫服務器位置
MYSQL_USERNAME #extmail 數據庫管理員賬戶
MYSQL_PASSWORD #extmail 數據庫管理員賬戶密碼
MYSQL_SOCKET #/tmp/mysql.sock 文件位置
MYSQL_DATABASE #extmail 虛擬用戶數據庫
MYSQL_USER_TABLE #mailbox 從mailbox表獲得郵件賬戶信息
MYSQL_CRYPT_PWFIELD #password 從password字段獲得賬戶密碼
MYSQL_UID_FIELD #uidnumber 從uidnumber字段獲得映射的本地用戶UID
MYSQL_GID_FIELD #gidnumber 從gidnumber字段獲得映射的本地組GID
MYSQL_LOGIN_FIELD #username 從username字段獲得賬戶名稱,帶@後綴
MYSQL_HOME_FIELD #concat('/mailbox/',homedir)合併出用戶的宿主目錄路徑
MYSQL_NAME_FIELD #name 從name 字段獲得賬戶名稱,不帶@後綴
MYSQL_MAILDIR_FIELD #concat('/mailbox/',maildir)合併出用戶的郵件存儲路徑
2.設置啓動腳本
[root@mail authlib]# cd /usr/local/src/courier-authlib-0.62.4/
[root@mail courier-authlib-0.62.4]# cp courier-authlib.sysvinit /etc/init.d/courier-authlib
[root@mail courier-authlib-0.62.4]# chmod 755 /etc/rc.d/init.d/courier-authlib
[root@mail courier-authlib-0.62.4]# chkconfig courier-authlib on
[root@mail courier-authlib-0.62.4]# chkconfig --add courier-authlib
[root@mail courier-authlib-0.62.4]# service courier-authlib start
修改Cyrus sasl 設置
[root@mail courier-authlib-0.62.4]# vim /usr/lib/sasl2/smtpd.conf
pwcheck_method:authdaemond
authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket
3.修改Dovecot配置
[root@mail courier-authlib-0.62.4]# vim /etc/dovecot.conf
修改如下:
mail_location = maildir:/mailbox/%d/%n/Maildir
####################
3auth default {
mechanisms = plain
passdb sql {
args = /etc/dovecot-mysql.conf
}
userdb sql {
args = /etc/dovecot-mysql.conf
}
4.建立數據查詢配置文件
[root@mail courier-authlib-0.62.4]# vim /etc/dovecot-mysql.conf
將下面的這些內容添加到配置文件中:
driver = mysql
connect = host=localhost dbname=extmail user=extmail password=extmail
default_pass_scheme = CRYPT #數據庫中存儲的密碼串的加密算法
password_query = SELECT username AS user,password AS password FROM mailbox WHERE username = ‘%u’ #查詢用戶密碼的語句
user_query = SELECT maildir, uidnumber AS uid, gidnumber AS gid FROM mailbox WHERE username = ‘%u’ #查詢用戶身份語句
[root@mail courier-authlib-0.62.4]# vim /etc/postfix/main.cf
home_mailbox = Maildir/
九.建立虛擬用戶
1.建立郵箱目錄並調整權限
[root@mail ~]# mkdir -p /mailbox/extmail.org/postmaster/Maldir
[root@mail ~]# cd /mailbox/extmail.org/postmaster/Maildir
[root@mail Maildir]# chown -R postfix:postfix /mailbox
[root@mail ~]# dovecot #啓動服務虛擬用戶測試
2.虛擬用戶測試
確認authlib服務
[root@mail ~]# /usr/local/courier-authlib/sbin/authtest -s login [email protected] extmail
Authentication succeeded. #成功提示信息
(其實這時候如果驗證不通過,後面的虛擬用戶也可以建立)
Authenticated: [email protected] (uid 1000, gid 1000)
Home Directory: /mailbox/extmail.org/postmaster
Maildir: /mailbox/extmail.org/postmaster/Maildir/
Quota: (none)
Encrypted Password: $1$phz1mRrj$3ok6BjeaoJYWDBsEPZb5C0
Cleartext Password: extmail
Options: (none)
十.ExtMail平臺
1.先安裝三個依賴包
[root@mail ~]# tar -zxvf Unix-Syslog-1.1.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/Unix-Syslog-1.1/
[root@mail Unix-Syslog-1.1]# perl Makefile.PL
[root@mail Unix-Syslog-1.1]# make
[root@mail Unix-Syslog-1.1]# make install
[root@mail ~]# tar -zxvf DBI-1.616.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/DBI-1.616/
[root@mail DBI-1.616]# perl Makefile.PL
[root@mail DBI-1.616]# make
[root@mail DBI-1.616]# make install
[root@mail ~]# tar -zxvf DBD-mysql-4.020.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/DBD-mysql-4.020/
[root@mail DBD-mysql-4.020]# perl Makefile.PL
[root@mail DBD-mysql-4.020]# make
[root@mail DBD-mysql-4.020]# make install
2.安裝extmail
[root@mail ~]# tar -zxvf extmail-1.0.5.tar.gz -C /usr/local/apache/htdocs/
[root@mail ~]# cd /usr/local/apache/htdocs/
[root@mail htdocs]# mv extmail-1.0.5 extmail
[root@mail extmail]# chown -R postfix:postfix cgi
[root@mail extmail]# cp webmail.cf.default webmail.cf
3.修改主配置文件
[root@mail extmail]# vim webmail.cf
SYS_CONFIG = /usr/local/apache2/htdocs/extmail/ #程序根目錄
SYS_LANGDIR = /usr/local/apache2/htdocs/extmail/lang #語言包文件目錄
SYS_TEMPLDIR = /usr/local/apache2/htdocs/extmail/html #系統模版目錄
SYS_MAILDIR_BASE = /mailbox #郵件存儲目錄
SYS_MYSQL_USER = extmail #訪問mysql數據庫的用戶
SYS_MYSQL_PASS = extmail #訪問mysql數據庫的用戶的密碼
SYS_MYSQL_DB = extmail #使用數據庫的名稱
SYS_MYSQL_HOST = localhost #數據庫服務器地址
SYS_MYSQL_SOCKET = /tmp/mysql.sock #數據庫套接文件位置
4.修改apache服務,添加虛擬主機
[root@mail ~]# vim /etc/httpd/httpd.conf
將下面的內容添加到配置文件中:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mail.wisefund.com
DocumentRoot /usr/local/apache2/htdocs/extmail/html/
ScriptAlias /extmail/cgi/ "/usr/local/apache2/htdocs/extmail/cgi/"
Alias /extmail "/usr/local/apache2/htdocs/extmail/html/"
</VirtualHost>
User postfix 找到 User 該用戶爲postfix
Group postfix 找到 Group 該組爲postfix
這裏由於前面我們並沒有啓用Suexec 所以我們沒有在虛擬主機中添加 SuexecUerGroup postfix postfix
重啓http服務
[root@mail ~]# /usr/local/apache2/bin/apachectl restart
十一.安裝Extman
1.先安裝四個依賴包
[root@mail ~]# tar -zxvf GD-2.46.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/GD-2.46/
[root@mail GD-2.46]# perl Makefile.PL
[root@mail GD-2.46]# make
[root@mail GD-2.46]# make install
[root@mail ~]# tar -zxvf File-Tail-0.99.3.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/File-Tail-0.99.3
[root@mail File-Tail-0.99.3]# perl Makefile.PL
[root@mail File-Tail-0.99.3]# make
[root@mail File-Tail-0.99.3]# make install
[root@mail ~]# rpm -ivh rrdtool-1.2.23-3.el5.i386.rpm
[root@mail ~]# rpm -ivh rrdtool-perl-1.2.23-3.el5.i386.rpm
2.安裝extman
[root@mail ~]# tar -zxvf extman-0.2.5.tar.gz -C /usr/local/apache/htdocs/
[root@mail ~]# cd /usr/local/apache/htdocs/
[root@mail htdocs]# mv extman-0.2.5 extman
[root@mail htdocs]# cd extman/
[root@mail extman]# chown -R postfix:postfix cgi
[root@mail extman]# mkdir /tmp/extman
[root@mail extman]# chown -R postfix:postfix /tmp/extman
3.調整apache主配文件,添加extman相關目錄別名
在apache的主配置文件中Extmail的虛擬主機部分,添加如下兩行:
ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
Alias /extman /var/www/extsuite/extman/html
[root@mail ~]# vim /etc/httpd/conf/httpd.conf
重啓http服務
[root@mail ~]# /usr/local/apache2/bin/apachectl restart
4.在客服端訪問測試
User1給user2發信:
登陸user2查看是否收到郵件
十二.設置郵件系統的圖形化日誌信息
[root@mail ~]# ln -sf
/usr/local/apache/htdocs/extman/addon/mailgraph_ext/mailgraph-init /usr/sbin
[root@mail ~]# ln -sf
/usr/local/apache/htdocs/extman/addon/mailgraph_ext/qmonitor-init /usr/sbin
[root@mail ~]# cp -a
/usr/local/apache/htdocs/extman/addon/mailgraph_ext /usr/local
[root@mail ~]# mailgraph-init start
[root@mail ~]# qmonitor start
[root@mail ~]# echo "usr/sbin/mailgraph-init start">> /etc/rc.d/rc.local
[root@mail ~]# echo "usr/sbin/qmonitor-init start">> /etc/rc.d/rc.local
十三.垃圾郵件過濾
1.根據客戶端的主機名/地址過濾郵件
[root@mail ~]# vim /etc/postfix/main.cf
smtpd_client_restrictions = check_client_access hash:/etc/postfix/access
[root@mail ~]# vim /etc/postfix/access
192.168.4 REJECT
192.168.4.1 OK
bbc.com REJECT
[root@mail ~]# postmap /etc/postfix/access
2.根據客戶機HELO 信息中的主機名地址過濾郵件
[root@mail ~]# vim /etc/postfix/main.cf
添加下面的兩行內容
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_invalid_hostname
[root@mail ~]# postfix reload
3.根據發件人的地址過濾郵件
[root@mail ~]# vim /etc/postfix/main.cf
在配置文件中添加下面內容
smtpd_sender_login_maps =mysql:/etc/postfix/mysql_virtual_sender_maps.cf,mysql:/etc/postfix/mysql_virtual_alias_maps.cf
smtpd_sender_restrictions=permit_mynetworks,reject_sender_login-mismatch,reject_non_fqdn_sender,reject_unknown_sender_domain,check_sender_accesshash:/etc/postfix/sender_access
[root@mail ~]# vim /etc/postfix/sendder_access
添加到文件中
[email protected] REJECT
marketing@ REJECT
fake.aptech.com REJECT
[root@mail ~]# postmap /etc/postfix/sender_access
4.根據收件人的地址過濾郵件
[root@mail ~]# vim /etc/postfix/main.cf
添加的內容
smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,reject_non_fqdn_recipient,reject_unknown_recipient_domain
重啓postfix
[root@mail ~]# service postfix restart
5.基於郵件內容的過濾
(1)安裝並配置MailScanner 掃描調度工具
[root@mail ~]# tar -zxvf MailScanner-4.84.3-1.rpm.tar.gz -C /usr/local/src/
[root@mail ~]# cd /usr/local/src/MailScanner-4.84.3-1/
[root@mail MailScanner-4.84.3-1]# ./install.sh
(2)修改配置文件MailScanner
[root@mail MailScanner-4.84.3-1]# vim /etc/MailScanner/MailScanner.conf
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA =postfix
Required SpamAssassin Score =7
High SpamAssassin Score = 10
Spam Actions = deliver header “X-Spam-Status: Yes”
High Soring Spam Actions = delete forward [email protected]
在文件中找到這些內容並修改成爲上面內容。
(3)配置Postfix 支持調用MailScanner:
[root@mail ~]# vim /etc/postfix/main.cf
header_checks = regexp: /etc/postfix/header_checks #啓用這行內容
[root@mail ~]# vim /etc/postfix/header_checks
/^Received:/ HOLD #在420的位置添加這行內容
(4)調整郵件過濾隊列的目錄屬主、屬組,並啓動MailScanner 服務程序:
[root@mail ~]# chown -R postfix.postfix /var/spool/MailScanner/incoming
[root@mail ~]# chown -R postfix.postfix /var/spool/MailScanner/quarantine
[root@mail ~]# service MailScanner start
[root@mail ~]# chkconfig MailScanner on
(5)安裝並配置SpamAssassin 垃圾郵件過濾器
[root@mail ~]# cd /mnt/cdrom/Server/
[root@mail Server]# yum install spamassassin-3.2.5-1.el5.i386.rpm
[root@mail ~]# service spamassassin start
[root@mail ~]# chkconfig spamassassin on
(6)安裝並配置F-Port 病毒查殺軟件
安裝F-Port 軟件包安裝過程中出現提示是按回車鍵接受默認設置
[root@mail ~]# tar -zxvf fp-Linux-i686-ws.tar.gz -C /opt/
[root@mail ~]# cd /opt/f-prot/
[root@mail f-prot]# ./install-f-prot.pl
升級F-Port 病毒庫(服務器要能夠訪問Internet 互聯網)
[root@localhost f-prot]# /opt/f-prot/fpupdate
[root@localhost f-prot]# crontab -e #計劃任務
[root@localhost f-prot]# service crond restart
[root@localhost f-prot]# chkconfig crond on
十四.Extman後臺管理設置
下面是郵件日誌分析圖