《web-Mail服務的搭建》

Linux.應用發表於2014-06-18

首先是搭建後臺服務:

下載下面2個軟體包 extmail-1.2.tar.gz

extman-1.1.tar.gz

建立一個extsuite目錄,固定格式 mkdir /var/www/extsuite

將2個壓縮包解壓到/var/www/extsuite/目錄 tar zxf extman-1.1.tar.gz -C /var/www/extsuite/

tar zxf extmail-1.2.tar.gz -C /var/www/extsuite/

切換到/var/www/extsuite/ cd /var/www/extsuite/ 將2個壓縮後的目錄改名,原目錄太長了。 mv extmail-1.2/ extmail

mv extman-1.1/ extman

cd extman 上面我們建立了一個extsuite目錄,為什麼非得是extsuite。因為下面一個檔案webman.cf.default裡面寫的很多引數預設的路徑/var/www/extsuite/extman/這個路徑。

cd extman/docs/

下面這個檔案裡面預設寫了很多mail服務資料庫的配置,將其直接匯入。

mysql -uroot -predhat < extmail.sql

vim init.sql //將裡面的加密密碼改為名文密碼

這個檔案寫了很多關於mail使用者,郵箱,別名等服務在mysql服務寫入的資料

mysql -uroot -predhat < init.sql

我們將/var/www/extsuite/extman/docs下三個關於mail的郵箱,域名,別名的檔案cp到/etc/postfix目錄下.

cp mysql_virtual_alias_maps.cf mysql_virtual_domains_maps.cf mysql_virtual_mailbox_maps.cf /etc/postfix/

校驗這三個檔案是否正確:mysql:/etc/postfix這個必須絕對路徑  

postmap -q "support@extmail.org" mysql:/etc/postfix/mysql_virtual_alias_maps.cf

postmap -q "postmaster@extmail.org" mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

postmap -q "extmail.org" mysql:/etc/postfix/mysql_virtual_domains_maps.cf

檢視一些postfix的引數,通過過濾獲取關於vitual項 postconf -d | grep virtual 將其加入到postfix的主配置檔案,使其自動讀取。

postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql_virtual_domains_maps.cf

postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

postconf -e virtual_alias_maps=mysql:/etc/postfix/mysql_virtual_alias_maps.cf

我們使用的是虛擬使用者,當然也要建立一個虛擬使用者。

useradd -u 800 -s /sbin/nologin vmail 將其引數寫入main.cf檔案,自動生效。

postconf -e virtual_gid_maps=static:800

postconf -e virtual_uid_maps=static:800

指定虛擬使用者的mail儲存位置。

postconf -e virtual_mailbox_base=/home/vmail/

postconf -e inet_interfaces=all //所有人可以使用mail服務

配置完後重啟載入。

 postfix reload 測試,發封郵件試試。 mail support@extmail.org

mailq cd /home/vmail/

 

搭建前臺服務:

cd extmail/ 建立前臺mail主配置檔案

cp webmail.cf.default webmail.cf

vim INSTALL 檢視幫助

將下面的行復制到Apache配置檔案下

NameVirtualHost *:80

<VirtualHost *:80>

ServerName mail.example.com

DocumentRoot /var/www/extsuite/extmail/html/

ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi

Alias /extmail /var/www/extsuite/extmail/html

SuexecUserGroup vuser vgroup </VirtualHost>

vim /etc/httpd/conf/httpd.conf

<VirtualHost *:80>

ServerName mail.extmail.org //訪問該目錄的域名

DocumentRoot /var/www/extsuite/extmail/html/

ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi

Alias /extmail /var/www/extsuite/extmail/html

SuexecUserGroup vmail vmail //有效使用者和組

</VirtualHost>

192.168.2.249   mail.extmail.org //在瀏覽器客戶端做個解析

/etc/init.d/httpd restart  //重啟apache服務

cd /var/www/extsuite/ //預設這些檔案任何人都可以使用,但我們服務是以vmail使用者身份去訪問下面的檔案

chown -R vmail.vmail *

yum install perl-CGI //再次重新整理發現服務不支援CGI模組

vim webmail.cf

SYS_LOG_ON = 0 //關閉日誌功能

SYS_MAILDIR_BASE = /home/vmail //將主配置檔案收郵件的目錄修改成我們預設的路徑

SYS_CRYPT_TYPE = plain //使用明文密碼

SYS_MYSQL_USER = extmail //修改登入mysql資料庫所使用的使用者和密碼 SYS_MYSQL_PASS = extmail

 

使用者註冊的實現: cd extman/

vim INSTALL

NameVirtualHost *:80

<VirtualHost *:80>

ServerName mail.example.com

DocumentRoot /path/to/your/document/root/

ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi

Alias /extman /var/www/extsuite/extman/html

SuexecUserGroup vuser vgroup

</VirtualHost>

ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi

Alias /extman /var/www/extsuite/extman/html

<VirtualHost *:80>

ServerName mail.extmail.org

DocumentRoot /var/www/extsuite/extmail/html/

ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi

Alias /extmail /var/www/extsuite/extmail/html

ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi

Alias /extman /var/www/extsuite/extman/html

SuexecUserGroup vmail vmail

</VirtualHost>

/etc/init.d/httpd restart 瀏覽器測試 http://mail.extmail.org/extman/cgi/index.cgi

會提示沒有主配置檔案:

 cp webman.cf.default webman.cf

修改郵件的有效使用者

SYS_MAILDIR_BASE = /home/vmail

臨時檔案

SYS_SESS_DIR = /tmp/

關閉驗證嗎功能呢個

SYS_CAPTCHA_ON = 0

使用明文密碼 SYS_CRYPT_TYPE = plain

 

# yum install -y perl-ExtUtils-MakeMaker perl Makefile.PL

# make install

SYS_CAPTCHA_ON = 1

SYS_CAPTCHA_LEN = 4 發現驗證碼顯示不出來:

get perl-GD-2.45-1.el6.rfx.x86_64.rpm

# rpm -ivh perl-GD-2.45-1.el6.rfx.x86_64.rpm

/var/www/extsuite/extman/addon

# cp mailgraph_ext/ /usr/local/ -r

/usr/local/mailgraph_ext

# vim mailgraph-init

BASEDIR=/usr/local/mailgraph_ext

# ./mailgraph-init

# yum localinstall rrdtool-perl-1.3.8-6.el6.x86_64.rpm

# /usr/local/mailgraph_ext/mailgraph-init start

File-Tail-0.99.3.tar.gz

# tar zxf File-Tail-0.99.3.tar.gz

cd File-Tail-0.99.3 # perl Makefile.PL

# yum install perl-Time-HiRes -y

# make install

# /usr/local/mailgraph_ext/mailgraph-init start

/var/www/extsuite/extman/daemon/cmdserver &

vim /etc/rc.d/rc.local

/var/www/extsuite/extman/daemon/cmdserver &

/usr/local/mailgraph_ext/mailgraph-init start

取消自由註冊:

cd extmail/

 vim webmail.cf

SYS_SHOW_SIGNUP = 0

yum search dovecot

yum search dovecot-mysql.x86_64 -y 主配置檔案不變。

vim 10-mail.conf

mail_location = maildir:/home/vmail/%d/%n/Maildir

first_valid_uid = 800

 

vim 10-auth.conf

!include auth-sql.conf.ext passdb {   driver = sql 找到下面的行,提示我們去找這個檔案,example-config/dovecot-sql.conf.ext

下面的是路徑/usr/share/doc/dovecot-2.0.9/example-config,這個檔案只是一個模板。

  # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext   args = /etc/dovecot/dovecot-sql.conf.ext }

我們將其cp到/etc/dovecot路徑下,

並修改以下引數。

driver = mysql

connect = host=localhost dbname=extmail user=extmail password=extmail

default_pass_scheme = PLAIN

password_query = \  

SELECT username, domain, password \

  FROM mailbox WHERE username = '%u' AND domain = '%d'

user_query = SELECT maildir, 800 AS uid, 800 AS gid FROM mailbox WHERE username = '%u'

豆腐塊的證書製作: /etc/pki/tls/certs

證書的名字:dovecot.pem 將其分別拷貝到公鑰和加密目錄下。

cp dovecot.pem /etc/pki/dovecot/certs/

cp dovecot.pem /etc/pki/dovecot/private/

/etc/init.d/dovecot restart

重啟就ok了。

下面是TLS和SASL證書模組和加密模組在mail服務中的新增。和msyql的載入一樣:

yum install -y cyrus-sasl-devel yum install -y openssl-devel

# cd postfix-2.11.0 //切換到加壓包的目錄

/root/postfix-2.11.0/README_FILES //這個目錄下的2個檔案,less SASL_README  less TLS_README 和mysql一塊重新編譯升級。

#  make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS' 'AUXLIBS=-L/usr/lib64/mysql -lmysqlclient -lz -lm -L/usr/lib64 -lsasl2 -lcrypto'

make upgrade

相關文章