源碼實現Postfix全功能驗證服務器

 
一、實驗所需要的源碼包
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
三.平臺結構
1.安裝apache軟件
下面我們將把所有需要的安裝包解壓到/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
2安裝mysql軟件
[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服務
wps_clip_p_w_picpath-10736
在瀏覽器中輸入http://192.168.2.50 看到以下結果
wps_clip_p_w_picpath-7833
在瀏覽器中輸入http://192.168.2.50/test.php 看到下圖表示跟apache服務整合成功
wps_clip_p_w_picpath-820
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();
?>
wps_clip_p_w_picpath-25359
在IE瀏覽器中輸入網址http://192.168.2.50/testdb.php看到下圖表示跟mysql服務整合成功
wps_clip_p_w_picpath-23083
四.安裝postfix並進行配置
安裝postfix之前首先停止掉系統自帶的sendmail服務(前面已經停過)
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
wps_clip_p_w_picpath-12739
[root@localhost etc]# vim named.rfc1912.zones
wps_clip_p_w_picpath-12642
生成數據庫文件
[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
wps_clip_p_w_picpath-10177
[root@localhost named]# vim /etc/resolv.conf
wps_clip_p_w_picpath-2982
修改主機名
[root@localhost named]# vim /etc/sysconfig/network
wps_clip_p_w_picpath-22239
重啓系統
[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
wps_clip_p_w_picpath-27814
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)
wps_clip_p_w_picpath-28773
以上顯示錶示補丁已經打上。
[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          #外發郵件時發件人地址中的郵件域名
wps_clip_p_w_picpath-21406
wps_clip_p_w_picpath-25989
wps_clip_p_w_picpath-10317
[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 &lt;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
wps_clip_p_w_picpath-13550
至此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  
輸入下面地址來測試
wps_clip_p_w_picpath-5327
七.初始化 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  &lt;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&gt; GRANT all privileges on extmail.* TO [email protected] IDENTIFIED BY 'extmail';
mysql&gt; 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’      #查詢用戶身份語句
wps_clip_p_w_picpath-23312
[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
wps_clip_p_w_picpath-10739
重啓http服務
[root@mail ~]# /usr/local/apache2/bin/apachectl  restart
4.在客服端訪問測試
wps_clip_p_w_picpath-18581
wps_clip_p_w_picpath-18684
User1給user2發信:
wps_clip_p_w_picpath-16654
登陸user2查看是否收到郵件
wps_clip_p_w_picpath-629
十二.設置郵件系統的圖形化日誌信息
[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"&gt;&gt; /etc/rc.d/rc.local
[root@mail ~]# echo "usr/sbin/qmonitor-init start"&gt;&gt; /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
添加到文件中
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後臺管理設置
wps_clip_p_w_picpath-16666
wps_clip_p_w_picpath-15754
wps_clip_p_w_picpath-7249
wps_clip_p_w_picpath-19493
wps_clip_p_w_picpath-16091
wps_clip_p_w_picpath-27667
wps_clip_p_w_picpath-28817
下面是郵件日誌分析圖
wps_clip_p_w_picpath-10777
wps_clip_p_w_picpath-9767
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章