拓撲圖
dns server
192.168.101.95
配置正向和反向dns
mail server
192.168.101.85
APACHE
yum -y install *gcc* openssl-devel rpm -e httpd –nodeps rpm -e mysql --nodeps rpm -e php --nodepstar –zxvf httpd-2.2.19.tar.gz -C /usr/local/src
#cd /usr/local/src/httpd-2.2.19
#./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
#make
#make install
cd /usr/local/apache2/bin vim apachectl # chkconfig: 35 85 15 # description: Apache is a World Wide Web Server cp apachectl /etc/init.d/apache chkconfig --add apache chkconfig apache on service apache start vim /usr/local/apache2/conf/httpd.conf ServerName mail.bj.cn service apache stopmysql
useradd –M –s /sbin/nologin mysql
tar -zxvf mysql-5.0.40.tar.gz -C /usr/local/src
cd /usr/local/src/mysql-5.0.40
./configure --prefix=/usr/local/mysql --
with-mysqld-user=mysqlmake
make install
cp support-files/my-medium.cnf /etc/my.cnf
/usr/local/mysql/bin/mysql_install_db --user=mysql
chown -R root:mysql /usr/local/mysql
chown -R mysql /usr/local/mysql/var
echo “/usr/local/mysql/lib/mysql” >>/etc/ld.so.conf 添加庫檔案路徑
ldconfig 重新整理庫檔案搜尋路徑
/usr/local/mysql/bin/mysqld_safe --user=mysql &
cp support-files/mysql.server /etc/init.d/mysqld
chmod o+x /etc/init.d/mysqldchkconfig --add mysqld
chkconfig mysqld on
echo “PATH=$PATH:/usr/local/mysql/bin”>>/etc/profile
service mysqld start mysqladmin -u root password 123456 mysql -u root -p Enter password: (輸入密碼123456 )php
tar -jxvf php-5.3.0.tar.bz2 -C /usr/local/src
cd /usr/local/src/php-5.3.0
./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
make test
cp php.ini-dist /usr/local/php5/php.ini
vim /usr/local/apache2/conf/httpd.conf
修改apache服務的主配置檔案使其支援php
LoadModule php5_module modules/libphp5.so 确認這行的存在,如果沒有就重新編譯php
AddType application/x-httpd-php .php 添加這行記錄
DirectoryIndex index.php index.html 在這行添加關于php格式的首頁
然後儲存退出
測試php是否與apache整合成功
#vim /usr/local/apache2/htdocs/test.php
<?php
phpinfo();
?>
在浏覽器中輸入http://192.168.101.95/test.php看到下圖表示跟apache服務整合成功
Mysql測試
#vim /usr/local/apache2htdocs/testdb.php
$link=mysql_connect(‘localhost’,‘test’,‘’);
If (!$link) echo “Fail!!!”;
else echo “Success!!!”;
mysql_close();
postfix
service sendmail stop chkconfig sendmail off groupadd -g 1200 postdrop groupadd -g 1000 postfix useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfixcd
tar -zxvf postfix-2.6.5.tar.gz -C /usr/local/src/ cp postfix-2.6.5-vda-ng.patch.gz /usr/local/src/ cd /usr/local/src/ gunzip postfix-2.6.2-vda-ng.patch.gz cd postfix-2.6.2 patch -p1 < ../postfix-2.6.2-vda-ng.patch yum -y install db*-devel cyrus-sasl-devel make makefilesvim /etc/postfix/main.cf
Inet_interfaces = all 預設設定
myhostname = mail.bj.cn 主機名
mydomain = bj.cn郵件域名
myorigin = $mydomain 外發郵件時發件人位址中的郵件域名
mydestination = $mydomain,$myhostname 可接收的郵件位址中的域名
home_mailbox = Maildir/ 郵件存儲位置格式
#postfix check 檢查配置
#postfix start
echo "/usr/sbin/postfix start" >> /etc/rc.local groupadd mailusers useradd -g mailusers -s /sbin/nologin tom useradd -g mailusers -s /sbin/nologin jerry passwd tom passwd jerry telnet localhost 25Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 mail.crazylinux.cn ESMTP Postfix
helo localhost250 mail.bj.cn
mail from:[email protected]250 2.1.0 Ok
rcpt to:[email protected]250 2.1.5 Ok
data111111
.250 2.0.0 Ok: queued as AA4BD157939
quit221 2.0.0 Bye
Connection closed by foreign host.
Dovecot
useradd -M -s /sbin/nologin dovecot
tar zxf dovecot-1.1.4.tar.gz -C /usr/local/src
cd /usr/local/src/dovecot-1.1.4
yum -y install pam-devel./configure --sysconfdir=/etc --with-mysql
make
cp /etc/dovecot-example.conf /etc/dovecot.confvim /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
#/usr/local/sbin/dovecot -c /etc/dovecot.conf 啟動
把這句話寫入開機腳本
cat /etc/pam.d/dovecot
telnet localhost 110
Trying127.0.0.1...
Connectedtolocalhost.localdomain(127.0.0.1).
Escapecharacteris'^]'.
+OKDovecotready.
useruser2
+OK
pass123
+OKLoggedin.
list
+OK1messages:
1460
.
retr1
+OK460octets
Return-Path:<[email protected]>
X-Original-To:[email protected]
Delivered-To:[email protected]
Received:fromlocalhost(localhost.localdomain[127.0.0.1])
bypostfixmail.nxq.com(Postfix)withSMTPid5560C249BA4
for<[email protected]>;Fri, 4Nov201105:36:24+0800(CST)
Subject:test
Message-Id:<[email protected]>
Date:Fri, 4Nov201105:36:24+0800(CST)
From:[email protected]
To:undisclosed-recipients:;
tar -jxvf squirrelmail-1.4.13.tar.bz2 -C /usr/local/apache2/htdocs
#cd /usr/lcaol/apache2/htdocs/
#mv squirrelmail-1.4.13 webmail
#tar -jxvf zh_CH-1.4.13.tar.gz -C /usr/local/apache2/htdocs/webmail 解壓漢化軟體
配置webmail
#cd /usr/local/apache2/htdocs/webmail
#mkdir -p attach data
#chown -R daemon:daemon attach/ data/
#chmod 730 attache/
#cp config/config_default.php config/config.php 建立配置檔案
#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/';
$attachment_dir = '/usr/local/apache2/htdocs/webmail/attach/';
#/usr/localapache2/bin/apachectl restart 重新開機apache服務
用戶端IE位址欄中輸入http://mail.bj.cn/webmail(前提mail.bj.cn可以被解析,否則
用ip)
extman
service mysqld restart
#tar zxf extman-0.2.5.tar.gz -C /usr/local/src
#cd /usr/local/src/extman-0.2.5/docs
#mysql -u root -p <extmail.sql
出現錯誤
原因:編寫資料庫的版本比目前安裝的版本不相同。
解決:
1、用文本編輯器打開extmail.sql;
2、查找/替換,将資料庫檔案内的所有TYPE=MyISAM修改為ENGINE=MyISAM,儲存退出;
3、重新導入extmail.sql即可。
#mysql -u root -p <init.sql 腳本導入資料庫的時候會詢問密碼,預設情況下root使用者密碼為空
配置 postfix
postconf -m|grep mysql傳回值有mysql,說明可以支援mysql資料庫的查詢表
#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.cf
指定記錄虛拟郵箱位址與存儲位置對應關系的映射檔案位置
virtual_mailbox_domains=mysql:/etc/postfix/mysql_virtual_domains_maps.cf
設定postfix伺服器可以接收的虛拟郵件域的域名
virtual_uid_maps=static:1000 設定所有虛拟郵件使用者映射的本地使用者的UID号
virtual_gid_maps=static:1000 設定所有虛拟郵件使用者映射的本地組的GID号
#cp mysql_virtual_* /etc/postfix/ 在上面的三行配置中指定了這三個檔案
虛拟使用者設定SMTP發信認證
tar -jxvf courier-authlib-0.60.2.tar.bz2 -C /usr/local/src
#cd /usr/local/src/courier-authlib
#./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
#make install
#make install-configure 生成預設配置檔案authmysqlrc和authdaemonrc
添加courier-authlib的庫檔案路徑
#vim /etc/ld.so.conf
/usr/local/courier-authlib/lib/courier-authlib
#ldconfig
修改authdaemonrc主配置檔案
#cd /usr/local/courier-authlib/etc/authlib
#cp authdaemonrc authdaemonrc.bak
#vim authdaemonrc
authmodulelist=”authmysql”
authmodulelistorig=”authmysql”
#chmod -R755 /usr/local/courier-authlib/var/spool/authdaemon
修改authmysqlrc檔案
#cp authmysqlrc authmysqlrc.bak
#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)合并出使用者的郵件存儲路徑
複制courier-authlib腳本,并啟動courier-authlib服務
cp courier-authlib.sysvinit /etc/init.d/courier-authlib
chmod755 /etc/rc.d/init.d/courier-authlib
chkconfig --level 35 courier-authlib on
service courier-authlib start
修改Cyrussasl設定
vim /usr/lib/sasl2/smtpd.conf
pwcheck_method:authdaemond
authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket
修改Dovecot配置
vim /etc/dovecot.conf ( 把875 、908 、913 、916 行注釋) 218 mail_location = maildir:/mailbox/%d/%n/Maildir 837 auth default { 842 mechanisms = plain 950 passdb sql { 952 args = /etc/dovecot-mysql.conf 953 } 1028 userdb sql { 1030 args = /etc/dovecot-mysql.conf 1031 }vim
/etc/dovecot-mysql.confdriver = 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'
mkdir -p /mailbox/extmail.org/postmaster/Maildir/cd /mailbox/extmail.org/postmaster/Maildir
chown -R postfix:postfix /mailbox/ pkill dovecot dovecot确認authlib服務
/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
容
[root@mail authlib]#
perl -e 'use MIME::Base64; print encode_base64("postmaster\@extmail.org")' cG9zdG1hc3RlckBleHRtYWlsLm9yZw== [root@mail authlib]# perl -e 'use MIME::Base64; print encode_base64("extmail")' ZXh0bWFpbA== [root@mail ~]# telnet localhost 25 auth login334 VXNlcm5hbWU6
334 UGFzc3dvcmQ6
235 2.7.0 Authentication successful
tar -zxf Unix-Syslog-1.1.tar.gz -C /usr/local/src
#cd /usr/local/src/Unix-Syslog-1.1
#perl Makefile.PL
#tar -zxf DBI-1.607.tar.gz -C /uar/local/src
#cd /usr/local/src/DBI-1.607
#tar -zxf DBD-mysql-4.011.tar.gz -C /usr/local/src
#cd /usr/loca/src/DBD-4.011
注意以上三個包在編譯安裝過程可能會提示警告資訊隐式函數計算出的變量值未被使用等,隻要沒有
error資訊就一切ok
安裝ExtMail
#tar -zxf extmail-1.0.5.tar.gz -C /usr/local/apache2/htdocs
#cd /usr/local/apache2/htdocs
#mv extmail-1.0.5 extmail
#cd extmail
#chown -R postfix:postfix cgi
#cp webmail.cf.default webmail.cf
cd /usr/local/apache2/htdocs/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 資料庫套接檔案位置
修改apache服務,添加虛拟主機
#vim /usr/local/apache2/conf/httpd.conf
NameVirtualHost*:80
<VirtualHost*:80>
ServerNamemail.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
#/usr/local/apache2/bin/apachectl restart
測試:在浏覽器中輸入http://mail.bj.cn
密碼:extmail
#tar -zxvf GD-2.41.tar.gz -C /usr/local/src
#cd /usr/local/src/GD-2.41
#tar -zxvf File-Tail-0.99.3.tar.gz -C /uar/local/src
#cd /usr/local/src/File-Tail-0.99.3
#rpm -ivh rrdtool-1.2.23-3.el5.i386.rpm
#rpm -ivh rrdtool-perl-1.2.23-3.el5.i386.rpm
Extman套件
#tar -zxf extman-0.2.5.tar.gz -C /usr/local/apache2/htdocs
#cd /usr/local/apache2/htdocs
#mv extman-0.2.5 extman
#cd extman
#mkdir /tmp/extman 臨時回話儲存目錄
#chown -R postfix:postfix /tmp/extman
修改配置檔案
#vim /usr/localapache2/htdocs/extman/webman.cf
SYS_CONFIG = /usr/local/apache2/htdocs/extman/ 程式根目錄
SYS_LANGDIR = /usr/local/apache2/htdocs/extman/lang語言封包件目錄
SYS_TEMPLDIR = /usr/local/apache2/htdocs/extman/html 系統模版目錄
SYS_MAILDIR_BASE = /mailbox 郵件資料存放路徑
SYS_MYSQL_USER = webman 通路mysql資料庫的使用者
SYS_MYSQL_PASS = webman 通路mysql資料庫的使用者的密碼
SYS_MYSQL_DB = extmail 使用的資料庫名稱
調整apache主配檔案。添加extman相關目錄别名
<VirtualHost*:80>
ScriptAlias/extman/cgi"/usr/local/apache2/htdocs/extman/cgi/"
Alias/extman"/usr/local/apache2/htdocs/extman/html/"
測試:在浏覽器中輸入http://mail.bj.cn/extman
密碼:extmail*123*
設定郵件系統的圖形化日志資訊
[root@localhost~]#ln–sf
/usr/local/apache2/htdocs/extman/addon/mailgraph_ext/mailgraph-ini
/usr/sbin/
[root@localhost~]#ln–sf
/usr/local/apache2/htdocs/extman/addon/mailgraph_ext/qmonitor-init
[root@localhost~]#cp–a
/usr/local/apache2/htdocs/extman/addon/mailgraph_ext/usr/local
[root@localhost~]#mailgraph-initstart
[root@localhost~]#qmonitorstart
[root@localhost~]#echo“/usr/sbin/mailgraph-initstart”>>
/etc/rc.d/rc/local
[root@localhost~]#echo“/usr/sbin/qmoonitor-initstart”>>
/etc/rc.d/rc/local
垃圾郵件過濾
根據用戶端的主機名/位址過濾郵件
[root@localhost~]#vim /etc/postfix/main.cf
smtpd_client_restrictions=check_client_accesshash:/etc/postfix/access
[root@localhost~]#vim /etc/postfix/access
192.168.4REJECT
192.168.4.1OK
bbc.comREJECT
[root@localhost~]#postMAP /etc/postfix/access
根據客戶機HELO資訊中的主機名位址過濾郵件
[root@localhost~]#vim/etc/postfix/main.cf
smtpd_helo_required=yes
smtpd_helo_restrictions=reject_invalid_hostname
[root@localhost~]#postfixreload
根據發件人的位址過濾郵件
[root@localhost~]#vim/etc/postfix/mail.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@localhost~]#vim/etc/postfix/sender_access
根據收件人的位址過濾郵件
smtpd_recipient_restrictions=
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain
[root@localhost~]#postfixrestart
安裝并配置MailScanner掃描排程工具
1)安裝MailScanner掃描排程工具
[root@localhost~]#tar -zxvf MailScanner-4.75.11-1.rpm.tar.gz
[root@localhost~]#cd MailScanner-4.75.11-1
[[email protected]]#./install.sh
2)修改配置檔案MailScanner
[root@localhost~]#vim /etc/MailScanner/MailScanner.conf
RunAsUser=postfix
RunAsGroup=postfix
IncomingQueueDir=/var/spool/postfix/hold
OutgoingQueueDir=/var/spool/postfix/incoming
MTA=postfix
RequiredSpamAssassinScore=7
HighSpamAssassinScore=10
SpamActions=deliverheader“X-Spam-Status:Yes”
3)配置Postfix支援調用MailScanner
header_checks=regexp:/etc/postfix/header_checks
[root@localhost~]#vim /etc/postfix/header_checks
/^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 MailScannerstart
[root@localhost~]#chkconfig –level 35 MailScanneron
安裝并配置SpamAssassin垃圾郵件過濾器
1)安裝并配置SpamAssassin垃圾郵件過濾器
[root@localhost~]#mount /dev/cdrom /mnt/cdrom
[root@localhost~]#cd /mnt/cdrom/Server
[root@localhost Server]#rpm–ivhspamassassin-3.1.7-4.e15.i386.rpm
2)修改配置檔案local.cf
(位于“/etc/mail/spamassassin/local.cf”,一般不需要進行任何修改,保
持預設設定即可)
3)啟動SpamAssassin服務
[root@localhost~]#service spamassassin start
[root@localhost~]#chkconfig –level 35 spamassassinon
安裝并配置F-Port病毒清除軟體
1)安裝F-Port軟體包安裝過程中出現提示是按Enter鍵接受預設設定
[root@localhost~]#tar -zxvf fp-Linux-i686-ws.tar.gz –C /opt/
[root@localhost~]#cd /opt/f-prot/
[root@localhostf-prot]#./install-f-prot.pl
2)更新F-Port病毒庫(伺服器要能夠通路Internet網際網路)
[root@localhostf-prot]#/opt/f-prot/fpupdate
[root@localhostf-prot]#crontab -e (計劃任務)
008***/opt/f-prot/fpupdate
[root@localhostf-prot]#service crond start
[root@localhostf-prot]#chkconfig -level 35 crondon