×××lamp+postfix全功能郵件服務器

第一章 postfix所需軟件包及存放目錄

本實驗實在linux下rhel-server-5.4來實現postfix郵件服務器的架構,下面列出所需相關軟件包:

httpd-2.2.9.tar.gz 安裝源碼包apache

mysql-5.0.56.tar.gz 安裝源碼包mysql

php-5.2.6.tar.bz2 安裝php軟件

postfix-2.4.6.tar.gz postfix主程序

postfix-2.4.6-vda-ng.patch.gz postfix的補丁包

dovecot-1.1.4.tar.gz IMAP和POP3郵件服務器軟件

squirrelmail-1.4.13.tar.bz2 web界面郵件管理

extman-0.2.5.tar.gz 郵件後臺管理程序

extmail-1.0.5.tar.gz web界面郵件管理

courier-authlib-0.60.2.tar.bz2 SMTP發信認證

Unix-Syslog-1.1.tar.gz

DBI-1.607.tar.gz

DBD-mysql-4.011.tar.gz 以上三個包爲extmail的倚賴包

GD-2.41.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 以上四個包爲extman的倚賴包

下面開始進行postfix郵件服務器的搭建:

以上軟件包分別上傳到服務器的“/”(root的home目錄下)下:

第二章 平臺結構

2.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/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

這裏我們並沒有將Suexec編譯進apache中去,提到這個的原因是因爲後面我們裝postfix時候的後臺管理extman是通過CGI的方式來調用程序的,如果不啓用Suexec的話那麼就會限制其他用戶調用CGI程序,但考慮到啓用Suexec的風險我們在此就不啓用它了。(啓用方式:--enable-suexec –with-suexec-caller=daemon –with-suexec-docroot=/usr/local/apache2/htdocs)

2.2安裝mysql軟件:

添加mysql用戶,如果安裝系統時候已經裝過mysql會提示用戶已存在,建議在安裝前先卸載掉系統自帶的mysql,卸載完成後必須重啓,否則新裝的mysql會無法啓動,提示錯誤信息3306端口被佔有:

[root@localhost ~]# useradd -M -s /sbin/nologin mysql

[root@localhost ~]# tar -zxvf mysql-5.1.45.tar.gz -C /usr/local/src/

[root@localhost ~]# cd /usr/local/src/mysql-5.1.45/

[root@localhost mysql-5.1.45]# ./configure --prefix=/usr/local/mysql

[root@localhost mysql-5.1.45]# make

[root@localhost mysql-5.1.45]# make install

配置mysql:

複製主配置文件:

[root@localhost mysql-5.1.45]# cp support-files/my-medium.cnf /etc/my.cnf

[root@localhost mysql-5.1.45]# /usr/local/mysql/bin/mysql_install_db --user=mysql

初始化數據庫:

[root@localhost mysql-5.1.45]# chown -R root:mysql /usr/local/mysql

[root@localhost mysql-5.1.45]# chown -R mysql /usr/local/mysql/var

添加庫文件路徑:

[root@localhost mysql-5.1.45]# echo "/usr/local/mysql/lib/mysql/" >> /etc/ld.so.conf

刷新庫文件搜索路徑:

[root@localhost mysql-5.1.45]# ldconfig

後臺安全啓動 (如果顯示啓動並且卡住不動按回車):

[root@localhost mysql-5.1.45]# /usr/local/mysql/bin/mysqld_safe --user=mysql &

複製啓動腳本:

[root@localhost mysql-5.1.45]# cp support-files/mysql.server /etc/init.d/mysqld

賦予腳本執行權限:

[root@localhost mysql-5.1.45]# chmod +x /etc/init.d/mysqld

添加到系統自動啓動服務中:

[root@localhost mysql-5.1.45]# chkconfig --add mysqld

默認啓動mysql:

[root@localhost mysql-5.1.45]# chkconfig mysqld on

查看mysql在什麼級別啓動或者關閉:

[root@localhost mysql-5.1.45]# chkconfig --list mysqld

設置系統全局的環境變量PATH值,方便使用mysql數據庫命令:

[root@localhost mysql-5.1.45]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

重新讀取:

[root@localhost ~]# . /etc/profile

2.3安裝php軟件

[root@localhost ~]# tar -jxvf php-5.3.2.tar.bz2 -C /usr/local/src/

[root@localhost ~]# cd /usr/local/src/php-5.3.2/

[root@localhost php-5.3.2]# ./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.2]# make

[root@localhost php-5.3.2]# make install

複製配置文件:

[root@localhost php-5.3.2]# cp php.ini-production /usr/local/php5/php.ini

修改apache服務的主配置文件使其支持php:

[root@localhost php-5.3.2]# vim /usr/local/apache2/conf/httpd.conf

310 AddType application/x-httpd-php .php

167 DirectoryIndex index.php index.html

2.4測試php是否與apache整合成功

[root@localhost php-5.3.2]# vim /usr/local/apache2/htdocs/test.php

<?php

phpinfo();

?>

[root@localhost ~]# /usr/local/apache2/bin/apachectl start

在瀏覽器中輸入http://192.168.2.1/test.php 看到下圖表示跟apache服務整合成功

clip_p_w_picpath002

Mysql測試:

編輯測試腳本:

[root@localhost ~]# vim /usr/local/apache2/htdocs/testdb.php

<?php

$link=mysql_connect('localhost', 'root', '');

If (!$link) echo "Fail!!!";

else echo "Success!!!";

mysql_close();

?>

在瀏覽器中輸入網址http://192.168.2.1/testdb.php 看到下圖表示跟mysql服務整合成功

clip_p_w_picpath004

第三章 安裝postfix軟件

3.1安裝postfix之前首先停止掉系統自帶的sendmail軟件:

[root@localhost ~]# service sendmail stop

[root@localhost ~]# chkconfig --level 35 sendmail off

3.2編譯安裝postfix軟件

[root@localhost ~]# groupadd -g 1200 postdrop

[root@localhost ~]# groupadd -g 1000 postfix

[root@localhost ~]# useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix

[root@localhost ~]# tar -zxvf postfix-2.6.2.tar.gz -C /usr/local/src/

[root@localhost ~]# cd /usr/local/src/

[root@localhost src]# cd postfix-2.6.2

[root@localhost postfix-2.6.2]# make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS' 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -lssl -lcrypto'

[root@localhost postfix-2.6.2]# make

進行安裝,安裝過程中會出現互動提問,直接選擇默認設置即可。

[root@localhost postfix-2.6.2]# make install

第四章 配置postfix

 4.1 postfix主配文件修改

[root@localhost postfix-2.6.2]# vim /etc/postfix/main.cf

75 myhostname = mail.wisefund.com主機名

83 mydomain = wisefund.com郵件域名

99 myorigin = $mydomain外發郵件時發件人地址中的郵件域名

113 inet_interfaces = all 默認監聽端口爲所有

160 mydestination = $myhostname, $mydomain可接收的郵件地址中的域名

412 home_mailbox = Maildir/ 郵件存儲位置格式

[root@localhost postfix-2.6.2]# postfix check 檢查配置

[root@localhost postfix-2.6.2]# postfix start 啓動

4.2 Smtp發送郵件測試

郵件本地賬戶管理:

[root@localhost ~]# groupadd mailusers

[root@localhost ~]# useradd -g mailusers -s /sbin/nologin user1

[root@localhost ~]# passwd user1

[root@localhost ~]# useradd -g mailusers -s /sbin/nologin test

[root@localhost ~]# passwd test

SMTP發送郵件測試:

[root@localhost ~]# telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.localdomain (127.0.0.1).

Escape character is '^]'.

220 mail.wisefund.com ESMTP Postfix

Hello localhost宣告客戶端主機地址

502 5.5.2 Error: command not recognized

220 mail.wisefund.com ESMTP Postfix

502 5.5.2 Error: command not recognized

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>

Subject:hello 標記開始寫信

hello!!!!

. “點”表示信件結束

250 2.0.0 Ok: queued as ABDE418421C

quit 退出

221 2.0.0 Bye

Connection closed by foreign host.

查看接收到的郵件,按tab鍵補齊:

clip_p_w_picpath006

第五章 Dovecot 郵局軟件安裝(提供pop3/imap4協議)

5.1安裝Dovecot

[root@localhost ~]# useradd -M -s /sbin/nologin dovecot

[root@localhost ~]# tar -zxvf dovecot-1.1.4.tar.gz -C /usr/local/src/

[root@localhost ~]# cd /usr/local/src/dovecot-1.1.4/

[root@localhost dovecot-1.1.4]# ./configure --sysconfdir=/etc --with-mysql

[root@localhost dovecot-1.1.4]# make

[root@localhost dovecot-1.1.4]# make install

5.2安裝完成

配置複製主配置文件:

[root@localhost dovecot-1.1.4]# cp /etc/dovecot-example.conf /etc/dovecot.conf

[root@localhost dovecot-1.1.4]# vim /etc/dovecot.conf

24 protocols = imap pop3 指定郵局協議

48 disable_plaintext_auth = no 允許明文密碼認證

88 ssl_disable = yes 禁用SSL機制

209 mail_location = maildir:~/Maildir設置郵件存儲格式和位置

建pam認證文件:

[root@localhost dovecot-1.1.4]# vim /etc/pam.d/dovecot

auth required pam_nologin.so

auth include system-auth

account include system-auth

session include system-auth

啓動:

[root@localhost dovecot-1.1.4]# /usr/local/sbin/dovecot -c /etc/dovecot.conf

5.3 POP3郵件接收測試

[root@localhost ~]# telnet localhost 110

Trying 127.0.0.1...

Connected to localhost.localdomain (127.0.0.1).

Escape character is '^]'.

+OK Dovecot ready.

user user1

+OK

pass 123

+OK Logged in.

list

+OK 1 messages:

1 489

.

retr 1

+OK 489 octets

Return-Path: <[email protected]>

X-Original-To: [email protected]

Delivered-To: [email protected]

Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])

by mail.wisefund.com (Postfix) with SMTP id ABDE418421C

for <[email protected]>; Tue, 10 Apr 2012 17:56:18 +0800 (CST)

Subject:hello

Message-Id: <[email protected]>

Date: Tue, 10 Apr 2012 17:56:18 +0800 (CST)

From: [email protected]

To: undisclosed-recipients:;

hello!!!!

.

quit

+OK Logging out.

Connection closed by foreign host.

第六章 安裝Webmail軟件

6.1 squirrelmail安裝

[root@localhost ~]# tar -jxvf squirrelmail-1.4.19.tar.bz2 -C /usr/local/apache2/htdocs/

[root@localhost ~]# cd /usr/local/apache2/htdocs/

[root@localhost htdocs]# mv squirrelmail-1.4.19 webmail

6.2 配置webmail

[root@localhost ~]# cd /usr/local/apache2/htdocs/webmail/

[root@localhost webmail]# mkdir -p attach data

[root@localhost webmail]# chown -R daemon:daemon attach/ data/

[root@localhost webmail]# chmod 730 attach/

[root@localhost webmail]# cp config/config_default.php config/config.php

創建配置文件:

[root@localhost webmail]# vim config/config.php

231 $imap_server_type = 'dovecot';

499 $data_dir = '/usr/local/apache2/htdocs/webmail/data/';

517 $p_w_upload_dir = '/usr/local/apache2/htdocs/webmail/attach/';

1012 $squirrelmail_default_language = 'zh_CN';

1027 $default_charset = 'zh_CN.UTF-8';

118 $domain = 'wisefund.com';

重啓 apache 服務:

[root@localhost webmail]# /usr/local/apache2/bin/apachectl restart

客戶端IE地址欄中輸入 http://mail.wisefund.com/webmail (前提mail.wisefund.com可以被解析,否則用ip)即可看見下圖:

clip_p_w_picpath008

到此我們的postfix+webmail已經安裝完成,但是爲了使我們更好的管理維護郵件服務器的前端與後臺接下來我們來安裝extmail和extman以便實現我們的需求。

第七章 初始化 extman 軟件

7.1 數據庫腳本

[root@localhost ~]# service mysqld restart

[root@localhost ~]# tar -zxvf extman-0.2.5.tar.gz -C /usr/local/src/

[root@localhost ~]# cd /usr/local/src/extman-0.2.5/docs/

[root@localhost docs]# mysql -u root -p < extmail.sql

腳本導入數據庫的時候會詢問密碼,默認情況下root用戶密碼爲空:

[root@localhost docs]# mysql -u root -p &lt;init.sql

第八章 配置 Postfix

[root@localhost postfix-2.6.2]# postconf -m |grep mysql

mysql(這一步很重要,雖然不影響接下來的安裝,但是在extmail時,發送郵件會出錯,導致郵件無法發送和接收,此時就要卸載postfix,然後重新編譯安裝)

8.1 修改配置文件

[root@localhost docs]# vim /etc/postfix/main.cf

160 #mydestination = $myhostname, $mydomain該行需要註釋掉

649 virtual_mailbox_base = /mailbox 指定虛擬郵箱存儲目錄的路徑起點

650 virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf指定虛擬郵件用戶對應的別名文件位置

651 virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf指定記錄虛擬郵箱地址與存儲位置對應關係的映射文件位置

652 virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf設置postfix服務器可以接收的虛擬郵件域的域名

653 virtual_uid_maps = static:1000設置所有虛擬郵件用戶映射的本地用戶的UID號

654 virtual_gid_maps = static:1000設置所有虛擬郵件用戶映射的本地組的GID 號

[root@localhost docs]# cd /usr/local/src/extman-0.2.5/docs/

在上面的三行配置中指定了這三個文件:

[root@localhost docs]# cp mysql_virtual_* /etc/postfix/

第九章 虛擬用戶設置SMTP發信認證

9.1 軟件安裝

注意:確認系統中的rpm格式的mysql 軟件被卸載

[root@localhost ~]# tar -jxvf courier-authlib-0.62.4.tar.bz2 -C /usr/local/src/

[root@localhost ~]# cd /usr/local/src/courier-authlib-0.62.4/

[root@localhost 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@localhost courier-authlib-0.62.4]# make

[root@localhost courier-authlib-0.62.4]# make install

[root@localhost courier-authlib-0.62.4]# make install-configure

9.2 添加courier-authlib的庫文件路徑

[root@localhost ~]# vim /etc/ld.so.conf

/usr/local/courier-authlib/lib/courier-authlib/

[root@localhost ~]# ldconfig

9.3 修改authdaemonrc主配置文件

[root@localhost ~]# cd /usr/local/courier-authlib/etc/authlib/

[root@localhost authlib]# cp authdaemonrc authdaemonrc.bak

[root@localhost authlib]# vim authdaemonrc

27 authmodulelist="authmysql"

34 authmodulelistorig="authmysql"

[root@localhost authlib]# chmod -R 755 /usr/local/courier-authlib/var/spool/authdaemon

9.4 修改authmysqlrc 文件

[root@localhost ~]# cd /usr/local/courier-authlib/etc/authlib/

[root@localhost authlib]# cp authmysqlrc authmysqlrc.bak

[root@localhost authlib]# vim authmysqlrc

26 MYSQL_SERVER localhost  數據庫服務器位置

27 MYSQL_USERNAME extmail  數據庫管理員賬戶

28 MYSQL_PASSWORD extmail  數據庫管理員賬戶密碼

50 MYSQL_SOCKET /tmp/mysql.sock  文件位置

69 MYSQL_DATABASE extmail  虛擬用戶數據庫

84 MYSQL_USER_TABLE mailbox  從mailbox表獲得郵件賬戶信息

93 MYSQL_CRYPT_PWFIELD password  從password字段獲得賬戶密碼

114 MYSQL_UID_FIELD uidnumber   從uidnumber字段獲得映射的本地用戶UID

120 MYSQL_GID_FIELD gidnumber  從gidnumber字段獲得映射的本地組GID

129 MYSQL_LOGIN_FIELD username   從username字段獲得賬戶名稱,帶@後綴

134 MYSQL_HOME_FIELD concat('/mailbox/',homedir) 合併出用戶的宿主目錄路徑

151 MYSQL_MAILDIR_FIELD concat('/mailbox/',maildir) 合併出用戶的郵件存儲路徑

9.5 複製腳本,啓動服務

[root@localhost authlib]# cd /usr/local/src/courier-authlib-0.62.4/

[root@localhost courier-authlib-0.62.4]# cp courier-authlib.sysvinit /etc/init.d/courier-authlib

[root@localhost courier-authlib-0.62.4]# chmod 755 /etc/rc.d/init.d/courier-authlib

[root@localhost courier-authlib-0.62.4]# chkconfig --level 35 courier-authlib on

[root@localhost courier-authlib-0.62.4]# service courier-authlib start

[root@localhost courier-authlib-0.62.4]# ps aux |grep courier-authlib

第十章 修改Cyrus sasl 設置

[root@localhost ~]# vim /usr/lib/sasl2/smtpd.conf

pwcheck_method:authdaemond

authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket

第十一章 修改Dovecot配置

11.1修改Dovecot

[root@localhost ~]# vim /etc/dovecot.conf

209 mail_location = maildir:/mailbox/%d/%n/Maildir

900 passdb sql {

902 args = /etc/dovecot-mysql.conf

903 }

963 userdb sql {

965 args = /etc/dovecot-mysql.conf

966 }

11.2 建立數據查詢配置文件

[root@localhost ~]# 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’

第十二章 建立虛擬用戶

12.1 建立郵箱目錄並調整權限

[root@localhost ~]# mkdir -p /mailbox/extmail.org/postmaster/Maldir

[root@localhost ~]# cd /mailbox/extmail.org/postmaster/Maldir/

[root@localhost Maldir]# chown -R postfix:postfix /mailbox

啓動服務

[root@localhost Maldir]# dovecot

12.2 虛擬用戶測試

確認authlib服務

[root@localhost ~]# /usr/local/courier-authlib/sbin/authtest -s login [email protected] extmail

成功提示信息:

clip_p_w_picpath010

第十三章 ExtMail平臺

13.1平臺安裝

首先安裝三個依賴包:(以下三個包在編譯安裝過程可能會提示 警告信息 隱式函數 計算出的變量值未被使用等,只要沒有error信息就一切ok)

[root@localhost ~]# tar -zxvf Unix-Syslog-1.1.tar.gz -C /usr/local/src/

[root@localhost ~]# cd /usr/local/src/Unix-Syslog-1.1/

[root@localhost Unix-Syslog-1.1]# perl Makefile.PL

[root@localhost Unix-Syslog-1.1]# make

[root@localhost Unix-Syslog-1.1]# make install

[root@localhost ~]# tar -zxvf DBI-1.616.tar.gz -C /usr/local/src/

[root@localhost ~]# cd /usr/local/src/DBI-1.616/

[root@localhost DBI-1.616]# perl Makefile.PL

[root@localhost DBI-1.616]# make

[root@localhost DBI-1.616]# make install

[root@localhost ~]# tar -zxvf DBD-mysql-4.020.tar.gz -C /usr/local/src/

[root@localhost ~]# cd /usr/local/src/DBD-mysql-4.020/

[root@localhost DBD-mysql-4.020]# perl Makefile.PL

[root@localhost DBD-mysql-4.020]# make

[root@localhost DBD-mysql-4.020]# make install

安裝ExtMail:

[root@localhost ~]# tar -zxvf extmail-1.0.5.tar.gz -C /usr/local/apache2/htdocs/

[root@localhost ~]# cd /usr/local/apache2/htdocs/

[root@localhost htdocs]# mv extmail-1.0.5 extmail

[root@localhost htdocs]# cd extmail

[root@localhost extmail]# chown -R postfix:postfix cgi

[root@localhost extmail]# cp webmail.cf.default webmail.cf

13.2 修改配置文件

[root@localhost extmail]# cd /usr/local/apache2/htdocs/extmail/

[root@localhost extmail]# vim webmail.cf

2 SYS_CONFIG = /usr/local/apache2/htdocs/extmail/  程序根目錄

5 SYS_LANGDIR = /usr/local/apache2/htdocs/extmail/lang  語言包文件目錄

8 SYS_TEMPLDIR = /usr/local/apache2/htdocs/extmail/html  系統模版目錄

112 SYS_MAILDIR_BASE = /mailbox  郵件存儲目錄

124 SYS_MYSQL_USER = extmail 訪問mysql數據庫的用戶

125 SYS_MYSQL_PASS = extmail 訪問mysql數據庫的用戶的密碼

126 SYS_MYSQL_DB = extmail  使用數據庫的名稱

127 SYS_MYSQL_HOST = localhost 數據庫服務器地址

128 SYS_MYSQL_SOCKET = /tmp/mysql.sock  數據庫套接文件位置

13.3 修改apache服務,添加虛擬主機

[root@localhost extmail]# vim /usr/local/apache2/conf/httpd.conf

66 User postfix

67 Group postfix

411 NameVirtualHost *:80

412 &lt;VirtualHost *:80>

413 ServerName mail.wisefund.com

414 DocumentRoot /usr/local/apache2/htdocs/extmail/html/

415 ScriptAlias /extmail/cgi/ "/usr/local/apache2/htdocs/extmail/cgi/"

416 Alias /extmail "/usr/local/apache2/htdocs/extmail/html/"

417 </VirtualHost>

這裏由於前面我們並沒有啓用Suexec 所以我們沒有在虛擬主機中添加 SuexecUerGroup postfix postfix

重啓apache服務:

[root@localhost extmail]# /usr/local/apache2/bin/apachectl restart

13.4 Extmail無法訪問問題原因

到這一步很多網上的文檔都會說這時候只要在客戶端訪問 http://mail.wisefund.com 就可以看到ExtMail的登錄界面,但是經過我很多次實踐改動配置得到的結果都是訪問頁面不存在404的錯誤提示頁面,一度我曾認爲可能是我之前編譯的那三個倚賴包有問題,或者是我的PHP有問題,以及cgi權限問題都想到但是結果依然是404頁面不存在,但是我可以很正常的看到訪問http://mail.wisefund.com時候頁面確實是跳轉到了http://mail.wisefund.com/extmail/cgi/index.cgi這個目錄,而且我這個目錄中文件確實存在,沒有任何問題,經過我多次嘗試終於找到原因如果要成功的訪問到這個頁面就必須把Extman裝上,並且在apache配置文件中寫入extman的路徑這樣我終於如願以償的看到了期望已久的ExtMail的登錄界面。(但是本人在安裝玩extman後任無法訪問,原因可能是沒有創建dns域,所以無法解析域名。此時就需要在測試主機上創建一個零時域名解析服務,做法:C:\Windows\System32\drivers\etc下用記事本編輯hosts文件,在最下面添加 192.168.2.1 mail.wisefund.com,然後保存退出)

clip_p_w_picpath012

clip_p_w_picpath014

第十四章 Extman平臺

14.1 安裝包

現安裝四個依賴包:

[root@localhost ~]# tar -zxvf GD-2.46.tar.gz -C /usr/local/src/

[root@localhost ~]# cd /usr/local/src/GD-2.46/

[root@localhost GD-2.46]# perl Makefile.PL

[root@localhost GD-2.46]# make

[root@localhost GD-2.46]# make install

[root@localhost ~]# tar -zxvf File-Tail-0.99.3.tar.gz -C /usr/local/src/

[root@localhost ~]# cd /usr/local/src/File-Tail-0.99.3/

[root@localhost File-Tail-0.99.3]# perl Makefile.PL

[root@localhost File-Tail-0.99.3]# make

[root@localhost File-Tail-0.99.3]# make install

[root@localhost ~]# rpm -ivh rrdtool-1.2.23-3.el5.i386.rpm

[root@localhost ~]# rpm -ivh rrdtool-perl-1.2.23-3.el5.i386.rpm

[root@localhost ~]# tar -zxvf extman-0.2.5.tar.gz -C /usr/local/apache2/htdocs/

[root@localhost ~]# cd /usr/local/apache2/htdocs/

[root@localhost htdocs]# mv extman-0.2.5 extman

[root@localhost htdocs]# cd extman

[root@localhost extman]# chown -R postfix:postfix cgi

臨時回話保存目錄:

[root@localhost extman]# mkdir /tmp/extman

[root@localhost extman]# chown -R postfix:postfix /tmp/extman

14.2 修改配置文件

[root@localhost extman]# vim /usr/local/apache2/htdocs/extman/webman.cf

2 SYS_CONFIG = /usr/local/apache2/htdocs/extman/ 程序根目錄

5 SYS_LANGDIR = /usr/local/apache2/htdocs/extman/lang 語言包文件目錄

8 SYS_TEMPLDIR = /usr/local/apache2/htdocs/extman/html 系統模版目錄

12 SYS_MAILDIR_BASE = /mailbox 郵件數據存放路徑

127 SYS_MYSQL_USER = webman 訪問mysql數據庫的用戶

128 SYS_MYSQL_PASS = webman 訪問mysql數據庫的用戶的密碼

129 SYS_MYSQL_DB = extmail 使用的數據庫名稱

130 SYS_MYSQL_HOST = localhost  數據庫服務器地址

131 SYS_MYSQL_SOCKET = /tmp/mysql.sock  數據庫套接文件位置

14.3 調整apache主配文件。添加extman相關目錄別名

[root@localhost extman]# vim /usr/local/apache2/conf/httpd.conf

411 NameVirtualHost *:80

412 <VirtualHost *:80>

413 ServerName mail.wisefund.com

414 DocumentRoot /usr/local/apache2/htdocs/extmail/html/

415 ScriptAlias /extmail/cgi/ "/usr/local/apache2/htdocs/extmail/cgi/"

416 Alias /extmail "/usr/local/apache2/htdocs/extmail/html/"

417 ScriptAlias /extman/cgi "/usr/local/apache2/htdocs/extman/cgi/"

418 Alias /extman "/usr/local/apache2/htdocs/extman/html/"

419 </VirtualHost>

重啓apache服務:

[root@localhost extman]# /usr/local/apache2/bin/apachectl restart

14.4 現在在客戶端訪問

http://mail.wisefund.com 就可以看見ExtMail的登錄界面了。

在客戶端訪問

http://mail.wisefund.com/extman 就可以看見Extman後臺管理登錄界面了

默認管理員賬戶:[email protected]

默認密碼:extmail*123*

 

clip_p_w_picpath018

clip_p_w_picpath020

clip_p_w_picpath022

clip_p_w_picpath024

clip_p_w_picpath026

clip_p_w_picpath028

clip_p_w_picpath030

clip_p_w_picpath032

clip_p_w_picpath034

clip_p_w_picpath036

第十五章 設置郵件系統的圖形化日誌信息

[root@localhost ~]# ln -f /usr/local/apache2/htdocs/extman/addon/mailgraph_ext/mailgraph-init /usr/sbin/

[root@localhost ~]# ln -sf /usr/local/apache2/htdocs/extman/addon/mailgraph_ext/qmonitor-init /usr/sbin/

[root@localhost ~]# cp -a /usr/local/apache2/htdocs/extman/addon/mailgraph_ext /usr/local/

[root@localhost ~]# mailgraph-init start

[root@localhost ~]# qmonitor-init start

[root@localhost ~]# echo "/usr/sbin/mailgraph-init start" &gt;&gt;/etc/rc.d/rc.local

[root@localhost ~]# echo "/usr/sbin/qmonitor-init start" &gt;&gt;/etc/rc.d/rc.local

clip_p_w_picpath038

第十六章 垃圾郵件過濾

16.1 根據客戶端的主機名/地址過濾郵件

首先在/etc/postfix/main.cf使用smtpd_client_restrictions配置參數,設置限制條件:

[root@localhost ~]# vim /etc/postfix/main.cf

655 smtpd_client_restrictions = check_client_access hash:/etc/postfix/access

設置客戶端地址訪問控制列表:

[root@localhost ~]# vim /etc/postfix/access

407 192.168.2 REJECT

408 192.168.2.1 OK

409 a.org REJECT

將access文件轉換爲hash數據庫文件:

[root@localhost ~]# postmap /etc/postfix/access

[root@localhost ~]# postfix stop

[root@localhost ~]# postfix start

進行測試:

clip_p_w_picpath040

經測試來自b.org的被過濾掉:

clip_p_w_picpath042

clip_p_w_picpath044

可以收到來自a.org的郵件:

clip_p_w_picpath046

16.2 根據客戶機HELO 信息中的主機名地址過濾郵件

[root@localhost ~]# vim /etc/postfix/main.cf

要求必須使用helo命令:

656 smtpd_helo_required = yes

拒絕使用無效主機名的主機:

657 smtpd_helo_restrictions = reject_invalid_hostname

[root@localhost ~]# postfix reload

clip_p_w_picpath048

16.3 根據發件人的地址過濾郵件

[root@localhost ~]# vim /etc/postfix/main.cf

656 smtpd_helo_required = yes

657 smtpd_helo_restrictions = mail.wisefund.com

指定mysql類型的查詢表文件和別名文件:

658 smtpd_sender_login_maps =

659 mysql:/etc/postfix/mysql_virtual_sender_maps.cf,

660 mysql:/etc/postfix/mysql_virtual_alias_maps.cf

661 smtpd_sender_restrictions =

662 permit_mynetworks,

發件人與登錄用戶不匹配時拒絕:

663 reject_sender_login_mismatch,

發件人地址不屬於合法FQDN時拒絕:

664 reject_non_fqdn_sender,

發件人地址未知或不存在時拒絕:

665 reject_unknown_sender_domain,

用於指向含有郵件地址域名地址的查詢表,即rcpt to: 提供的信息  ---實際上是收件人地址:

666 check_sender_access hash:/etc/postfix/sender_access

667 inet_interfaces = 192.168.2.1,127.0.0.1

[root@localhost ~]# vim /etc/postfix/sender_access

user1@ REJECT

user2@ REJECT

[root@localhost postfix]# postfix reload

[root@localhost postfix]# postmap /etc/postfix/sender_access

clip_p_w_picpath050

16.4 根據收件人的地址過濾郵件

首先在/etc/postfix/main.cf配置收件人的地址過濾郵件

655 smtpd_client_restrictions = check_client_access hash:/etc/postfix/access

656 smtpd_helo_required = yes

657 smtpd_helo_restrictions = mail.wisefund.com

658 smtpd_sender_login_maps =

659 mysql:/etc/postfix/mysql_virtual_sender_maps.cf,

660 mysql:/etc/postfix/mysql_virtual_alias_maps.cf

661 smtpd_sender_restrictions =

662 permit_mynetworks,

663 reject_sender_login_mismatch,

664 reject_non_fqdn_sender,

665 reject_unknown_sender_domain,

666 check_sender_access hash:/etc/postfix/sender_access

允許本郵件系統發出的郵件:

667 smtpd_recipient_restrictions =

668 permit_mynetworks,

允許通過sasl認證的用戶作爲發件人:

669 permit_sasl_authenticated,

收件人地址域不包括在postfix授權網絡內時拒絕:

670 reject_unauth_destination,

收件人地址域不屬於合法FQDN時拒絕:

671 reject_non_fqdn_recipient,

收件人地址域或不存在時拒絕:

672 reject_unknown_recipient_domain

[root@localhost ~]# postfix reload

16.5 基於郵件內容的過濾

16.5.1安裝並配置MailScanner 掃描調度工具

1) 安裝MailScanner 掃描調度工具

[root@localhost ~]# tar -zxvf MailScanner-4.84.3-1.rpm.tar.gz

[root@localhost ~]# cd MailScanner-4.84.3-1

[root@localhost MailScanner-4.84.3-1]# ./install.sh

2) 修改配置文件MailScanner

[root@localhost MailScanner-4.84.3-1]# vim /etc/MailScanner/MailScanner.conf

131 Run As User = postfix

135 Run As Group = postfix

165 Incoming Queue Dir = /var/spool/postfix/hold

169 Outgoing Queue Dir = /var/spool/postfix/incoming

196 MTA = postfix

2231 Required SpamAssassin Score = 7

2499 High Scoring Spam Actions = delete forward [email protected]

3) 配置Postfix 支持調用MailScanner

[root@localhost MailScanner-4.84.3-1]# vim /etc/postfix/main.cf

517 header_checks = regexp:/etc/postfix/header_checks

[root@localhost MailScanner-4.84.3-1]# vim /etc/postfix/header_checks

420 /^Received:/HOLD

4) 調整郵件過濾隊列的目錄屬主、屬組,並啓動MailScanner 服務程序

[root@localhost ~]# chown -R postfix.postfix /var/spool/MailScanner/incoming/

[root@localhost ~]# chown -R postfix.postfix /var/spool/MailScanner/quarantine/

[root@localhost ~]# service MailScanner start

[root@localhost ~]# chkconfig --level 35 MailScanner on

16.5.2 安裝並配置SpamAssassin 垃圾郵件過濾器

1) 安裝並配置SpamAssassin 垃圾郵件過濾器

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/

[root@localhost ~]# cd /mnt/cdrom/Server/

[root@localhost Server]# yum install -y spamassassin

2) 修改配置文件local.cf

(位於“/etc/mail/spamassassin/local.cf”,一般不需要進行任何修改,保持默認設置即可)

3) 啓動SpamAssassin 服務

[root@localhost Server]# service spamassassin start

[root@localhost Server]# chkconfig --level 35 spamassassin on

15.5.3 安裝並配置F-Port 病毒查殺軟件

1) 安裝F-Port 軟件包安裝過程中出現提示是按回車鍵接受默認設置:

[root@localhost ~]# tar -zxvf fp-Linux-i686-ws.tar.gz -C /opt/

[root@localhost ~]# cd /opt/f-prot/

[root@localhost f-prot]# ./install-f-prot.pl

2) 升級F-Port 病毒庫(服務器要能夠訪問Internet 互聯網):

[root@localhost f-prot]# /opt/f-prot/fpupdate

[root@localhost f-prot]# crontab -e

00 8 * * * /opt/f-prot/fpupdate

[root@localhost f-prot]# service crond restart

[root@localhost f-prot]# chkconfig --level 35 crond on

第十七章 Extman後臺管理設置

16.1 首頁概況

登錄進去首頁顯示系統管理員列表

clip_p_w_picpath052

clip_p_w_picpath054

17.2 添加用戶

基礎設置 設置用戶名,後面可選用戶所在的域。

用戶的磁盤限額、網絡磁盤限額以及過期日期是否激活等(默認磁盤、網絡磁盤限額爲5M)

設置完基本信息保存修改會提示密碼錯誤,所有要設置密碼之後纔可以保存修改。

clip_p_w_picpath056

17.2.1 密碼設置

設置密碼、密碼找回問題以及是否禁止用戶修改密碼

clip_p_w_picpath058

17.2.2 功能設置

這裏一般保持默認即可

clip_p_w_picpath060

clip_p_w_picpath062

17.3 添加別名

可以添加別名、別名所在的域,設置多個目標地址 提示 目標地址每行只能寫一個 並激活

clip_p_w_picpath064

clip_p_w_picpath066

17.4 添加域

基礎設置 設置域名、域名描述、最大用戶、最大別名、最大限額、最大網絡磁盤限額、傳輸方式、還有是否允許自由註冊(如果勾上這個選項的話,在ExtMail登錄頁面下面有一個免費註冊郵箱就可以註冊,如果不勾的話註冊免費郵箱時候就會提示域名不提供註冊服務!)是否激活域名、最後是域名過期日期。

clip_p_w_picpath068

17.4.1 模版設置

設置域名新賬戶默認限額、網絡磁盤限額、新賬戶默認生命週期以及新賬戶默認開啓的服務

clip_p_w_picpath070

clip_p_w_picpath072

17.5 添加管理員

管理員名稱、通用名、過期日期是否激活等。同普通用戶一樣需要設置密碼才能保存修改。

clip_p_w_picpath074

17.5.1 密碼相關設置

同普通用戶一樣也是 設置密碼、找回密碼問題與答案是否禁止用戶修改密碼等

clip_p_w_picpath076

17.5.2 管理域名

可以設置管理員管理的域名增加、刪除域名等

clip_p_w_picpath078

clip_p_w_picpath080

17.6 羣發郵件

按照提示說明可以設置郵件的羣發,可用於通知類型的郵件

clip_p_w_picpath082

17.7 圖像日誌

在這裏可以查看各類日誌分析郵件服務器是否正常

clip_p_w_picpath084

第十八章 Extmail登錄

18.1 郵件用戶登錄界面首頁

clip_p_w_picpath086

18.2 偏好設置

這裏可以設置個人的信息包括姓名、密碼及密碼問題等

clip_p_w_picpath088

其他選項卡同其他的郵件服務器一樣。

注意:一直登陸不上extman,提示校驗碼不對,是因爲系統時間和客戶端時間不對

 

第十九章 安裝過程出現問題解決:

19.1 apache啓動出錯:

[root@localhost ~]# /usr/local/apache2/bin/apachectl restart

p_w_picpath

[root@localhost ~]# fuser -k -n tcp 80

[root@localhost ~]# /usr/local/apache2/bin/apachectl start

19.2 postfix不支持mysql的解決辦法:

postconf –m

btree

cidr

environ

hash

nis

proxy

regexp

static

unix

所出錯誤:

[root@localhost ~]# telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.localdomain (127.0.0.1).

Escape character is '^]'.

[root@localhost ~]# tail /var/log/maillog

Apr 11 09:08:14 localhost postfix/smtpd[27864]: fatal: unsupported dictionary type: mysql

Apr 11 09:08:15 localhost postfix/master[27770]: warning: process /usr/libexec/postfix/smtpd pid 27864 exit status 1

Apr 11 09:08:15 localhost postfix/master[27770]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling

Apr 11 09:08:28 localhost postfix[27879]: fatal: usage: postfix [-c config_dir] [-Dv] command

Apr 11 09:09:19 localhost postfix/smtpd[27898]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled

解決辦法:

[root@localhost postfix-2.6.2]# cd /usr/local/src/

[root@localhost postfix-2.6.2]# cd postfix-2.6.2

[root@localhost postfix-2.6.2]# make clean

[root@localhost postfix-2.6.2]# cd ..

[root@localhost src]# rm -rf postfix-2.6.2

[root@localhost ]# tar -zxvf postfix-2.6.2.tar.gz -C /usr/local/src/

[root@localhost ]# cd /usr/local/src/

[root@localhost src]# cd postfix-2.6.2

[root@localhost postfix-2.6.2]# make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS' 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -lssl -lcrypto'

[root@localhost postfix-2.6.2]# make

[root@localhost postfix-2.6.2]# make install

[root@localhost postfix-2.6.2]# newaliases

[root@localhost postfix-2.6.2]# postconf -m

btree

cidr

environ

hash

mysql

nis

proxy

regexp

static

unix

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章