歡迎您光臨本站 註冊首頁

postfix全功能郵件系統xiutuo成功實戰

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

postfix全功能郵件系統xiutuo成功實戰

+++++++++++++++++++++++++++++++++++++++++++
秀脫實戰筆記之postfix病毒過濾和反垃圾實戰篇:
   QQ:     6541657
EMAIL:xiutuo@gmail.com



postfix-2.5.1_postfixadmin-2.2.0-rc3_
dovecot-1.0.12_SpamAssassin-3.2.4
_amavisd-new-2.5.4_clamav-0.92.1
pam_mysql_cyrus-sasl-auth
外加webmail:squirrelmail-1.4.13
apache2.2.6_php-5.2.5_mysql5_gd

秀脫blog:http://hi.baidu.com/xiutuo/

其他部分請參考:
1.postfix最新源碼病毒過濾和反垃圾實戰篇(軟體安裝部分)
2.postfix最新源碼病毒過濾和反垃圾實戰篇(配置部分)
3.postfix最新源碼病毒過濾和反垃圾實戰篇(調試和錯誤解決)
4.postfix最新源碼病毒過濾和反垃圾實戰篇之配置文件說明

http://hi.baidu.com/xiutuo/blog/item/0bded026bd64e0138b82a171.html




++++++++++++++++++++++++++++++++++++++++++
功能:
postfix完全虛擬用戶,採用mysql資料庫,虛擬用戶映射的真實用戶和組是postfix
pop3:dovecot作為郵局服務,mysql認證
本地郵件代理mta(lda)使用dovecot,可以對每個用戶進行郵件容量限制。
postfix用戶和組的id都是12345
smtp認證:採用cyrus-sasl-auth認證功能-通過pam調用pam_mysql-md5加密
採用postfixadmin來管理虛擬域和用戶以及郵箱別名
通過amavis-new做中間件,介於郵件服務和反垃圾、病毒過濾服務之間
反垃圾功能:spamassasin,在垃圾郵件標題提示**spam**,並通知管理員
病毒過濾:clamav,病毒郵件直接丟棄並存在放在病毒隔離目錄,並通知管理員
webmail:squirrelmail-1.4.13通過web頁面發送電子郵件,最大附件上傳10m

-----------------
環境:
****伺服器端
操作系統:contos4.5
ip:192.168.1.230
域名:xiutuo.com
全域名稱:xt.xiutuo.com
mx記錄:mail.xiutuo.com
下載所有軟體包放在/home/xiutuo/software目錄下
dns:
ypbind-1.17.2-13.rpm
bind-utils-9.2.4-24.EL4.rpm
bind-9.2.4-24.EL4.rpm
bind-libs-9.2.4-24.EL4.rpm
bind-chroot-9.2.4-24.EL4.rpm
pam_mysql:
pam_mysql-0.7RC1.tar.gz
後綴名.so文件安裝/lib/security/目錄下
cyrus-sasl:
cyrus-sasl-md5-2.1.19-5.EL4.rpm
cyrus-sasl-plain-2.1.19-5.EL4.rpm
cyrus-sasl-devel-2.1.19-5.EL4.rpm
cyrus-sasl-2.1.19-5.EL4.rpm
cyrus庫文件安裝在/usr/lib/sasl2/
postfix:
postfix-2.5.1.tar.gz
安裝路徑 /usr(採用默認的安裝路徑)
postfixadmin:
postfixadmin-2.2.0-rc3.tar.gz
安裝路徑 /usr/local/apache2/htdocs/postfixadmin
squirrelmail:
安裝路徑 /usr/local/apache2/htdocs/webmail
apache2:
apache2.2.6.tar.gz
安裝路徑 /usr/local/apache2
mysql5資料庫:
安裝路徑 /usr/local/mysql
建立postfix資料庫和相關虛擬用戶的使用的表,
參照postfixadmin提供的sql腳本DATABASE_MYSQL.TXT
訪問資料庫用戶root,密碼123456
php5:php-5.2.5.tar.gz
安裝路徑 /usr/local/php
dovecot--pop3,imap:源碼安裝路徑/usr/local
dovecot-1.0.12.tar.gz
amavis-new:
amavisd-new-2.5.4.tar.gz
安裝路徑 /usr/local
clamav:
clamav-0.92.1.tar.gz
安裝路徑 /usr/local
SpamAssassin
Mail-SpamAssassin-3.2.4.tar.gz
採用perl命令安裝,安裝成perl模塊:
perl -MCPAN -e shell
需要總的perl 模塊:見文章最後附錄

****客戶端
郵件客戶端outlook express
或者foxmail
-----------------
一:軟體安裝
0. dns安裝,請參照blog文章:
http://hi.baidu.com/xiutuo/blog/item/047f3c06b966e6780308810b.html
cyrus-sasl的rpm包安裝:
# rpm -ivh cyrus-sasl*
1.apache2_php5_mysql5 安裝見blog文章:
http://hi.baidu.com/xiutuo/blog/item/e7b42b31ca4d191aebc4aff0.html
切記安裝該組合需要其他的軟體包!!!
編譯php的時候記得加上--enable-mbstring,
否則使用setup.php安裝postadmin的時候,(當然可以忽略這個錯誤)
提示錯誤如下:
Error: Depends on: multibyte string - NOT FOUND
pam_mysql安裝:
# ./configure --with-pam-mods-dir=/lib/security \
--with-mysql=/usr/local/mysql \
--with-pam=/usr \
--with-cyrus-sasl2 \
--with-openssl
必須這樣安裝,才不會出錯。

2.安裝postfixadmin
# cd /home/xiutuo/software
# tar -zxvf postfixadmin-2.2.0-rc3.tar.gz
# mv postfixadmin-2.2.0-rc3 /usr/local/apache2/htdocs/postfixadmin
# cd /usr/local/apache2/htdocs/postfixadmin
# 把postfixadmin目錄下的sql腳本DATABASE_MYSQL.TXT
# 導入mysql,建立postfix資料庫並賦予postfix用戶,密碼123456
# mysql -u root < DATABASE_MYSQL.TXT
# 配置postfixadmin 資料庫連接參數
# vi config.inc.php
修改以下參數
//$CONF['configured'] = false; 註釋此行,在運行postfixadmin時
$CONF['database_type'] = 'mysql'; //資料庫類型
$CONF['database_host'] = 'localhost'; //資料庫伺服器名
$CONF['database_user'] = 'postfix'; //資料庫用戶名
$CONF['database_password'] = '123456'; //資料庫用戶密碼
$CONF['database_name'] = 'postfix';   //資料庫名
$CONF['database_prefix'] = ''; //庫前綴,這裡為空
$CONF['admin_email'] = xiutuo@xiutuo.com]'xiutuo@xiutuo.com'; //管理帳號
$CONF['smtp_server'] = 'localhost'; //郵件伺服器ip
$CONF['smtp_port'] = '25'; //郵件伺服器埠
$CONF['encrypt'] = 'md5'; //密碼加密方式,選擇自己需要的
$CONF['quota'] = 'YES'; //如果需要對用戶郵箱進行限制,請用yes
其他參數根據自己需要修改!
# 設置postfixadmin文件夾許可權和屬組。
# chown -R xiutuo:xiutuo postfixadmin
# chmod -R 755 postfixadmin
插入相關管理員和虛擬域名數據
管理員xiutuo@xiutuo.com 密碼123456
虛擬域 xiutuo.com,xt.xiutuo.com virtual.com
用戶郵箱:test@xiutuo.com]xt@xiutuo.com,test@xiutuo.com 密碼都是123456
註:mailbox表中quota就是容量限制欄位。dovecot 默認採用k作為容量限制單位。
INSERT INTO `domain` (`domain`, `description`, `aliases`, `mailboxes`,
`maxquota`, `quota`, `transport`, `backupmx`, `created`, `modified`,
`active`) VALUES ('virtual.com', 'virtual.com', 10, 10, 0, 0, 'virtual',
0, '2008-03-25 21:14:11', '2008-03-25 21:14:11', 1),('xiutuo.com',
'xiutuo.com', 0, 0, 0, 0, 'dovecot', 0, '0000-00-00 00:00:00',
'0000-00-00 00:00:00', 1),('xt.xiutuo.com', 'ddd', 10, 10, 0, 0,
'virtual', 0, '2008-03-25 21:16:10', '2008-03-25 21:16:10', 1);
INSERT INTO `domain_admins` (`username`, `domain`, `created`, `active`)
VALUES (xiutuo@xiutuo.com]'xiutuo@xiutuo.com', 'ALL', '0000-00-00 00:00:00', 1);
INSERT INTO `mailbox` (`username`, `password`, `name`, `maildir`, `quota`,
`domain`, `created`, `modified`, `active`) VALUES (xt@xiutuo.com]'xt@xiutuo.com',
'e10adc3949ba59abbe56e057f20f883e', 'e10adc3949ba59abbe56e057f20f883e',
xt@xiutuo.com]'xt@xiutuo.com', 0, 'xiutuo.com', '0000-00-00 00:00:00',
'2008-04-01 16:00:20', 1),(xiutuo@virtual.com]'xiutuo@virtual.com',
'e10adc3949ba59abbe56e057f20f883e', 'xiutuo', xiutuo@virtual.com/]'xiutuo@virtual.com/',
0, 'virtual.com', '2008-03-25 21:14:42', '2008-03-25 21:14:42', 1),
(test@xiutuo.com]'test@xiutuo.com', 'e10adc3949ba59abbe56e057f20f883e', 'test',
test@xiutuo.com/]'test@xiutuo.com/', 0, 'xiutuo.com', '2008-03-26 20:44:39', '2008-03-26 20:44:39', 1);
超級用戶管理地址:
http://xt.xiutuo.com/postfixadmin/admin
普通用戶管理地址
http://xt.xiutuo.com/postfixadmin/users
3.dovecot安裝
先卸載系統自帶的dovecot-0.99
增加dovecot用戶用來啟動dovecot
# useradd dovecot -d /dev/null -s /sbin/nologin
# rpm -e dovecot
# cd /home/xiutuo/software
# tar -zxvf dovecot-1.0.12.tar.gz
# cd dovecot-1.0.12
# ./configure --sysconfdir=/etc --with-mysql
# make
# make install
# cp /etc/dovecot-example.conf /etc/dovecot.conf
沒有配置好dovecot.conf時,請先別啟動dovecot
啟動dovecot:
# dovecot -c /etc/dovecot.conf
弄成開機自啟動,自己寫個簡單腳本,仿照mysql的自啟動方式。
或者總結在在/etc/rc.d/rc.local加入
dovecot -c /etc/dovecot.conf
4.postfix安裝:
# rpm -e sendmail --nodeps   #卸載系統自帶的sendmail
# 增加postfix用戶和postfix用戶組
# adduser postfix -d /dev/null -s /sbin/nologin
# 建立虛擬用戶郵件目錄
# mkdir /var/vmail
# chown postfix:postfix /var/vmail
# cd /home/xiutuo/software
# tar -zxvf postfix-2.5.1.tar.gz
postfix採用默認安裝路徑,支持mysql,和dovecot-sasl-auth

# make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include \
-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl' \
'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm \
-L/usr/local/lib -lsasl2'
# make install
# 注意make install過程會提示postfix各個文件安裝路徑,直接回車選擇默認即可
成功安裝后,查看是否啟用了cyrus-sasl-auth認證
# postconf -a
cyrus
有cyrus說明ok了。
*********************************************
如果要編譯其他的請參照postfix安裝說明,切記
CCARGS開頭的都組合在一起,AUXLIBS開頭的組合在一起,如下面的
# make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/ \
-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/sasl2/include/sasl \
-I/usr/local/BerkeleyDB/include \
-DUSE_TLS -I/usr/local/ssl/include/openssl '
'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm \
-L/usr/local/sasl2/lib -lsasl2 \
-L/usr/local/BerkeleyDB/lib \
-L/usr/local/ssl/lib -lssl -lcrypto'
以上編譯支持mysql,cyrus_sasl,openssl,BerkeleyDB
------
# make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include \
-DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\"' \
'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm'
*********************************************
5.安裝SpamAssassin,以perl 模塊方式安裝
事先需要安裝的perl模塊
# perl -MCPAN -e shell
cpan> install HTML::Parser
cpan> install Mail::SPF
cpan> install Mail::SPF::Query
cpan> install IP::Country
cpan> install Razor2
cpan> install Net::Ident
cpan> install IO::Socket::INET6
cpan> install IO::Socket::SSL
cpan> install Compress::Zlib
cpan> install Mail::DomainKeys
cpan> install Mail::DKIM
cpan> install Archive::Tar
cpan> install IO::Zlib
cpan> install Encode::Detect
********************************************
在安裝這裡模塊時候會出現perl模塊依賴關係,處理原則,缺什麼安裝什麼。
安裝文檔全套需要的perl模塊列表見文章最後。
這裡推薦使用perl命令來安裝(比較慢),建議:
a.先下載相關源碼安裝。源碼安裝方法
# tar -zxvf perl模塊.tar.gz
# cd perl模塊目錄
# perl Makefile.PL
# make
# make install
b.如果源碼方式安裝出現out of date錯誤或者出現未知的perl依賴模塊時,
再使用perl命令安裝,這樣會很好的解決問題。
perl命令安裝方式(使用root用戶操作):
# perl -MCPAN -e shell
cpan> o conf prerequisites_policy ask
cpan> install Mail::SpamAssassin //安裝Mail::SpamAssassin模塊
cpan> quit   //退出
*******************************************

6.安裝clamav
# 注意安裝clamav-0.92.1需要zlib-1.2.3,否則報zlib有bug錯誤,
# 可以通過--disable-zlib-vcheck 參數忽略zlib報錯(不推薦)
# 增加啟動clamav的用戶clamav
# adduser clamav -d /dev/null -s /sbin/nologin
# id clamav
uid=12347(clamav) gid=12347(clamav) groups=12347(clamav)
# cd /home/xiutuo/software
# tar -zxvf clamav-0.92.1.tar.g
# cd clamav-0.92.1
# zlib-1.2.3安裝見apache2的安裝文檔,安裝在/usr/local/zlib目錄
***************************************
# tar zvxf zlib-1.2.3.tar.gz
# cd zlib-1.2.3
# ./configure --prefix=/usr/local/zlib --shared
# make
# make test
# make install
**************************************
# ./configure --prefix=/usr/local/clamav/ \
--with-zlib=/usr/local/zlib \
--with-user=clamav --with-group=clamav
# make
# make install
# touch /var/log/clamav/freshclam.log
# chmod 600 /var/log/clamav/freshclam.log
# chown clamav:clamav /var/log/clamav/freshclam.log
# freshclam -d
./freshclam: error while loading shared libraries: libiconv.so.2: cannot open sh
ared object file: No such file or directory
加個連接就好了
# ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
7.安裝amavisd-new.tar.gz
需要的模塊:
# perl -MCPAN -e shell
cpan> install Archive::Zip
cpan> install Compress::Zlib
cpan> install Convert::TNEF
cpan> install MIME::Base64
cpan> install MIME::Parser
cpan> install Mail::Internet
cpan> install Net::Server
cpan> install Digest::MD5
cpan> install IO::Stringy
cpan> install Time::HiRes
cpan> install Unix::Syslog
cpan> install BerkeleyDB
cpan> install Mail::ClamAV
cpan> install IO::Wrap
cpan> install IO::Stringy
cpan> install Unix::Syslog
cpan> install Compress::Zlib
cpan> install MIME::Words
cpan> install MIME::Head
cpan> install MIME::Body
cpan> install MIME::Entity
cpan> install MIME::Parser
cpan> install MIME::Decoder
cpan> install MIME::Decoder::Base64
cpan> install MIME::Decoder::Binary
cpan> install MIME::Decoder::QuotedPrint
cpan> install MIME::Decoder::NBit
cpan> install MIME::Decoder::UU
cpan> install MIME::Decoder::Gzip64
cpan> install Net::Server
cpan> install Net::Server::PreFork
此安裝過程需要其他的perl模塊列表見文章最後,提示少什麼裝什麼。
這裡我們使用clamav用戶來啟動amavis,就不單獨建立用戶了。
# mkdir /var/amavis
# cd /var/amavis
在/var/amavis目錄下建立tmp var db home四個目錄
# mkdir tmp var db home
# chown -R clamav:clamav /var/amavis
# chmod -R 750 /var/amavis
# cd /home/xiutuo/software
# tar -zxvf amavisd-new.tar.gz
# cd amavisd-new-2.5.4
# 安裝amavisd程序,並設置許可權
# cp amavisd /usr/local/sbin/
# chown root /usr/local/sbin/amavisd
# chmod 755 /usr/local/sbin/amavisd
# 安裝配置文件,並設置許可權
# cp amavisd.conf /etc/
# chown root:clamav /etc/amavisd.conf
# chmod 640 /etc/amavisd.conf
建立病毒郵件隔離存放目錄,請確保所在文件的屬主為非特權用戶!
必要定時對該目錄清空。
# mkdir /var/virusmails
# chown clamav:clamav /var/virusmails
# chmod 750 /var/virusmails
安裝軟體部分到此結束

————————————————————————————————————

[ 本帖最後由 xiutuo 於 2009-3-16 13:33 編輯 ]
《解決方案》

回復 #1 xiutuo 的帖子

os最好保持一下主流
《解決方案》

在centos4.7下實驗沒問題
《解決方案》

最近把相關軟體更新到了今年最新的,操作系統也在centos4.7實驗了,沒有任何問題,
當然我相信在centos5系列也沒有問題。
《解決方案》

文章寫得很具體,收藏了
《解決方案》

好帖,解決了我郵件系統的所有問題,謝謝。。


-----------------------------------
邊聽邊看邊賺錢,學習創業倆不誤,一個300元起點的創業好路子:
http://hi.baidu.com/emailsell/blog/item/a58db0dc231f27d18d10299b.html

[火星人 ] postfix全功能郵件系統xiutuo成功實戰已經有884次圍觀

http://coctec.com/docs/service/show-post-23263.html