PXE安裝Centos
postfix+exmail+mysql實現基於
虛擬用戶的web郵件系統
在實現centos+postfix的web內網郵件之前,參考了許多網上、書本知識,經過兩次大的改動,目前該系統已經爲公司正常服務工作五年多。
第一部分 win7+tftpd32+PXE安裝CentOS6.5 32bit
第一步 安裝CentOS6.5 32bit操作系統
基於win7+tftpd32+PXE來安裝,但我這裏只用虛擬機VMware Workstation9.0.1 build-894247來實現,真機Dell R210 2代經過實際測試也可以用這個方法實現。
1、在任意盤符下新建一個文件夾tftpboot,把下載下來的Tftpd32和hfs2.3b271兩個文件夾放進去,再新建一個文件夾pxe。
2、用UltraISO解壓CentOS6.532bit的兩個ISO文件,如下:
它有兩個ISO文件,全部解壓縮到兩個目錄裏去。一般只要第一個就可以。
順便說一下,這裏必須用ISO工具解開,不要用WinRAR圖省事,否則後面不能正常安裝。可以試一下,用winrar解開後,在repodata下看不到文件後綴名,後面安裝就提示找不到文件
3、把前面解壓縮下來的F:\centos65_32bit_1\isolinux\文件夾內的兩個文件:vmlinuz、initrd.img放入X:\tftpboot\pxe目錄下,並且在pxe目錄下新建一個pxelinux.cfg目錄,把前面解壓縮下來的F:\centos65_32bit_1\isolinux\isolinux.cfg文件放入新建的pxelinux.cfg目錄,並且改名爲default,再用文本編輯器notepad打開它:
default vesamenu.c32
#prompt 1
timeout600
displayboot.msg
menubackground splash.jpg
menutitle Welcome to CentOS 6.5!
menucolor border 0 #ffffffff #00000000
menucolor sel 7 #ffffffff #ff000000
menucolor title 0 #ffffffff #00000000
menucolor tabmsg 0 #ffffffff #00000000
menucolor unsel 0 #ffffffff #00000000
menucolor hotsel 0 #ff000000 #ffffffff
menucolor hotkey 7 #ffffffff #ff000000
menucolor scrollbar 0 #ffffffff #00000000
labellinux
menu label ^Install or upgrade an existingsystem
menu default
kernel vmlinuz
append initrd=initrd.img
label vesa
menu label Install systemwith ^basic video driver
kernel vmlinuz
append initrd=initrd.imgxdriver=vesa nomodeset
label rescue
menu label ^Rescue installedsystem
kernel vmlinuz
append initrd=initrd.imgrescue
label local
menu label Boot from ^localdrive
localboot 0xffff
label memtest86
menu label ^Memory test
kernel memtest
append -
把標紅色字的全部刪除或者用'#'註釋掉。
還有一個pxelinux.0文件,可以從已經裝好CentOS的機器上找到:/usr/share/sysliux/pxelinux.0,我沒有測試pxelinux.0這個文件有沒有版本要求,我是從已經裝好的CentOS6.5 64bit機器上拿過來給32bit機器用的。
4、設置網絡
做今個實驗只能用有線連接,說白了就是隻要你的有線網卡能工作就行。
我現在就禁用了無線網卡;
而有線網卡的ip地址手工分配:
這是本機的網絡設置,下面還要設置新安裝的Vmware的網絡
具體怎樣使用vmware來新建一個虛擬機,我不講了,但是這個新建好的虛擬機的網絡一定要改成上圖的1或者2。
5、設置Tftpd32
來到X:\tftpboot\Tftpd32\(這裏的X代表你個人的盤符)下,雙擊打開tftpd32.exe程序
在“當前目錄”寫X:\tftpboot\pxe,點擊“顯示目錄”按鈕,能看到initrd.img、pxelinux.0、vmlinuz這三個文件就可以:
點擊Tftpd32.exe的“設置”按鈕,下面分別來設置tftp、dhcp:
1、TFTP設置:我們可以看到“Tftpd32:設置”對話框,選擇“TFTP”選項卡,在“基本目錄”裏和“當前目錄”一樣,其它直接看下圖:
2:DHCP設置:選中“DHCP”選項卡,不要選“分配前PING地址”,“Boot文件”只能寫pxelinux.0;其它照下圖:
6、關閉本機上的所有防火牆,在後面安裝過程中可能會發生誤報從而停止安裝
7、設置hfs2.3b271
在X:\tftpboot\hfs2.3b271目錄下,找到並打開hfs.exe文件,如下圖:
在左邊有小房子的空白區域內右擊鼠標,選中“從磁盤添加目錄”,如下圖:
找到文件夾的位置,會出現下面的提示,選中“真實目錄”
現在改一下它的端口號,如下圖:
單擊圖上“端口:8080”,彈出對話框,直接改成80即可。
現在測試一下:
請照下圖做,先用鼠標左鍵選中“虛擬文件系統”中的文件夾,它會變成藍底
再單擊“在瀏覽器中打開”,沒有問題的話是可以在瀏覽器中看到我們的所有文件,如下圖:
測試正常,完畢。
8、PXE安裝開始
開啓虛擬機電源,如果沒有問題的話,虛擬機可以從Tftpd32獲得地址,正常引導如下圖:
在“boot”後面打“linux”即可。
從下圖可以看出Tftpd32的tftp在正常工作:
到了下圖的“Installation Method”了,只選“URL”:
我只選擇了ipv4的,不改也是一樣的。
這下一步就寫URL地址,就比照hfs.exe的地址寫上去就是,如下圖:
注意:不可以用centos6.5 64bit的initrd.img、vmlinuz來安裝32bit的系統,但我的pxelinux.0還是64bit的,沒有報錯誤。
也就是說:
initrd.img、vmlinuz是分版本的,64和32bit不能混用。
剩下的安裝部分就不說了,很多人把安裝過程說的已經爛了。
有條件的,就多給/var些空間。
第二部分postfix+extmail+mysql
實現基於虛擬用戶的郵件系統
這一部分採用虛擬機做的,初裝完系統,第一件事就是裝vmware tool
第一步 安裝vmware tool
利用命令行安裝:
[root@mailDesktop]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext4 18G 8.2G 8.5G 50% /
tmpfs tmpfs 504M 76K 504M 1% /dev/shm
/dev/sda1 ext4 194M 28M 156M 16% /boot
/dev/sr0 iso9660 64M 64M 0 100% /media/VMwareTools
[root@mailDesktop]# cd /media/VMware\ Tools/
[root@mail VMware Tools]# ll
total64808
-r-xr-xr-x.1 root root 1962 Nov 1 2012manifest.txt
-r--r--r--.1 root root 66361242 Nov 1 2012 VMwareTools-9.2.2-893683.tar.gz
[root@mailVMware Tools]# tar zxf VMwareTools-9.2.2-893683.tar.gz -C /usr/local/src/
[root@mailVMware Tools]# cd /usr/local/src
[root@mailvmware-tools-distrib]# ./vmware-install.pl
後面有提示就是一路回車。
第二步 配置上網環境
虛擬機還是用VMnet0,如下圖:
圖中標記的地方用1或者2都可以
下面就要確保本機能上網,那麼虛擬機也就一定能上網了
[root@mailDesktop]# service network restart(命令執行後沒有什麼特別的就不貼)
[root@mailDesktop]# ping www.sina.com -c1
PINGpolaris.sina.com.cn (202.108.33.60) 56(84) bytes of data.
64 bytes from 202.108.33.60: icmp_seq=1 ttl=245 time=74.2 ms(虛擬機裏也可以上網)
---polaris.sina.com.cn ping statistics ---
1packets transmitted, 1 received, 0% packet loss, time 76ms
rttmin/avg/max/mdev = 74.213/74.213/74.213/0.000 ms
第二步 把要用的軟件放到虛擬機上
由於使用了VMware tool工具,所以可以很方便的把必要的文件放到虛擬機上。
否則就要用wget把文件傳上來。
[root@mail123]# tree
.
├── courier-authlib-0.66.1.tar.bz2
├── extmail-1.2.tar.gz
├── extman-1.1.tar.gz
├── File-Tail-0.99.3.tar.gz
├── perl-GD-2.45-1.el6.rfx.i686.rpm
├── postfix-2.10.1.tar.gz
├── rrdtool-1.4.7.tar.gz
├── Time-HiRes-1.9719.tar.gz
└── Unix-Syslog-1.1.tar.gz
0directories, 9 files
我就直接把必要的文件直接從win7上拖放到linux桌面上。
順便提一下,centos6.5居然沒有tree命令,搞什麼啊,那就裝吧:
[root@mail123]# yum install tree
ok了,有tree這個命令可用。
第三步 安裝所有必要軟件包
yum install -y bind bind-chroot httpd php php-mysql mysqlmysql-server mysql-devel openssl-devel dovecot* perl-DBD-MySQL tcl tcl-develexpect db* cyrus* libart_lgpl libart_lgpl-devel libtool-ltdl libtool-ltdl-develzlib libpng freetype perl-GD rrdtool rrdtool-deverrdtool-perl
這裏補充一下,在centos6.x版本中不再提供bind的caching-nameserver文件包。
第四步 關閉sendmail、iptables、selinux
[root@mail~]# service iptables status
Table:filter
ChainINPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
.....後面省略
[root@mail~]# service iptables stop
iptables:Setting chains to policy ACCEPT: filter [ OK ]
iptables:Flushing firewall rules: [ OK ]
iptables:Unloading modules: [ OK ]
[root@mail~]# chkconfig iptables off
[root@mail~]# setenforce 0 臨時關閉selinux
[root@mail~]# cat /etc/selinux/config
#This file controls the state of SELinux on the system.
#SELINUX= can take one of these three values:
# enforcing - SELinux security policy isenforced.
# permissive - SELinux prints warningsinstead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing 把這裏改成disabled,重啓系統就永久關閉
#SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes areprotected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@mail~]# rpm -qa | grep sendmail
[root@mail~]# service sendmail status
sendmail:unrecognized service 看來是沒裝sendmail
第五步 創建一個獨立的網絡
先修改vmware 的網絡
在“開始”菜單裏找到"Virtual Network Editor"這個工具,打開它
我們要新增一個網絡VMnet7,如下圖:
下面來設置VMnet7的網絡,按照下圖的1、2、3順序來:
接着上面的第3項“DHCP Settings...”,打開一個設置IP的對話框,如下圖:
把其中的開始、結束地址寫好,按“OK”結束。
回到第一個界面,按“OK”結束Virtual Network Editor設置:
現在就可以斷虛擬機的網絡了,把它原來是VMnet0改爲VMnet7,如下圖:
再新增一臺虛擬機winxp(其它也可以)做爲測試機器。兩臺機器全在VMnet7裏,這樣一來就形成了一個獨立的網絡。這裏提一下,不加測試的winxp也可以的,那就用宿主機和centos測試。
CentOS6.5還要重啓網絡進程:
[root@mail~]# service network restart
第六步 設置bind
1、設置主機名稱
[root@mail~]# hostname
mail.gjyonline.com 安裝的時候設置的
[root@mail~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mail.gjyonline.com 就在這裏把HOSTNAME改在你想要的名字,但要重啓系統纔會生效
2、設置固定地址
[root@mail~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:7F:2F:C9"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="e76eed2a-8e3f-496e-96f5-aeb7817608c7"
IPADDR=172.16.1.250
NETMASK=255.255.255.0
GATEWAY=172.16.1.1
DNS1=172.16.1.250
3、設置DNS文件
[root@mail~]# cat /etc/resolv.conf
#Generated by NetworkManager
searchgjyonline.com
nameserver172.16.1.250
4、配置hosts文件
[root@mail~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4localhost4.localdomain4
::1 localhost localhost.localdomainlocalhost6 localhost6.localdomain6
172.16.1.250mail.gjyonline.com
5、配置bind
從這裏開始都是從本地真機使用SecureCRT連接到VMWare裏的CentOS6.5。
所有的工作到了這裏,纔算開始
[root@mail~]# vi /etc/named.conf
11 listen-on port 53 { any; };
12 //listen-on-v6 port 53 { ::1; };
17 allow-query { any; };
18 recursion no;
[root@mail~]# vi /etc/named.rfc1912.zones
在最後增加:
43 zone "gjyonline.com" IN {
44 type master;
45 file "gjyonline.com.zero";
46 allow-update { none; };
47 };
48
49 zone "1.16.172.in-addr.arpa"IN {
50 type master;
51 file "1.16.172.local";
52 allow-update { none; };
53 };
bind的配置文件是/etc/named.conf、/etc/named.rfc1912.zones,但啓動named後,可以在/var/named/chroot/etc 裏面看到named.conf、named.rfc1912.zones兩個文件,好像是做了hard link,還有其它的密鑰文件;但關閉named後,/var/named/chroot/etc裏面就沒有這些文件。
下面配置正、反向文件
[root@mailnamed]# cd /var/named/chroot/var/named/
[root@mailnamed]# ll
total32
drwxr-x---.6 root named 4096 Jan 24 16:00 chroot
drwxrwx---.2 named named 4096 Jan 21 01:37 data
drwxrwx---.2 named named 4096 Jan 21 01:37 dynamic
-rw-r-----.1 root named 1892 Feb 18 2008 named.ca
-rw-r-----.1 root named 152 Dec 15 2009 named.empty
-rw-r-----.1 root named 152 Jun 21 2007 named.localhost
-rw-r-----.1 root named 168 Dec 15 2009 named.loopback
drwxrwx---.2 named named 4096 Jan 21 01:37 slaves
[root@mailnamed]# cp -p named.empty gjyonline.com.zero
[root@mailnamed]# cp -p named.empty 1.16.172.local
[root@mail named]# cat gjyonline.com.zero
$TTL 72H
@ IN SOA mail.gjyonline.com. server.gjyonline.com. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
NS mail
MX 10 mail //注意用簡寫後不能打亂前後順序
mail A 172.16.1.250
pop3 CNAME mail
www CNAME mail
smtp CNAME mail
[root@mailnamed]# cat 1.16.172.local
$TTL72H
@ IN SOA mail.gjyonline.com. server.gjyonline.com. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
NS mail.gjyonline.com.
250 PTR mail.gjyonline.com.
[root@mailnamed]# service named start
Startingnamed: [ OK ]
[root@mailnamed]# service named status
version:9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1
CPUsfound: 1
workerthreads: 1
numberof zones: 8
debuglevel: 0
xfersrunning: 0
xfersdeferred: 0
soaqueries in progress: 0
querylogging is OFF
recursiveclients: 0/0/1000
tcpclients: 0/100
serveris up and running
named(pid 27160) is running...
[root@mailnamed]# netstat -tunlp | grep named
tcp 0 0 172.16.1.250:53 0.0.0.0:* LISTEN 27160/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 27160/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 27160/named
udp 0 0 172.16.1.250:53 0.0.0.0:* 27160/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 27160/named
看起來,named運行起來表面是沒有問題了。
下面就來測試一下named:
[root@mailnamed]# dig -t mx gjyonline.com
;<<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> -tmx gjyonline.com
;;global options: +cmd
;;Got answer:
;;->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59977
;;flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;;WARNING: recursion requested but not available
;;QUESTION SECTION:
;gjyonline.com. IN MX
;;ANSWER SECTION:
gjyonline.com. 259200 IN MX 10 mail.gjyonline.com.
;;AUTHORITY SECTION:
gjyonline.com. 259200 IN NS mail.gjyonline.com.
;;ADDITIONAL SECTION:
mail.gjyonline.com. 259200 IN A 172.16.1.250
;;Query time: 2 msec
;;SERVER: 172.16.1.250#53(172.16.1.250) //指向這個地址正確
;;WHEN: Fri Jan 24 21:02:11 2014
;;MSG SIZE rcvd: 82
很好,這個內網用來測試的DNS服務器正常工作!
在這裏有個配置說一下,在/etc/named.conf中,有一行是:include"/etc/named.rfc1912.zones";
如果不想用這個named.rfc1912.zones文件名字,想起個性名字,
比如:include"/etc/named.zones";那麼named.zones這個文件就不能放在/etc/目錄下,必須要放在/var/named/chroot/etc/named目錄下面,否則提示不能正常工作。
如果named不能啓動,試着將cp-p /var/named/named.* chroot/var/named/
如果named不能啓動,試着看看/var/named/chroot/var/named/下的文件的組屬性是不是named的,如果不是,用chgrp -R /var/named/chroot/var/named修改
開啓named隨機啓動:
[root@mailnamed]# chkconfig named --list
named 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@mailnamed]# chkconfig named on
[root@mailnamed]# chkconfig named --list
named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
第七步 啓動MySQL數據庫,並設置密碼
[root@mail~]# service mysqld status
mysqldis stopped
[root@mail~]# service mysqld start
輸出略
[root@mail~]# mysql -u root -p
Enterpassword:
輸出略
mysql>use mysql
Readingtable information for completion of table and column names
Youcan turn off this feature to get a quicker startup with -A
Databasechanged
mysql>show tables;
+---------------------------+
|Tables_in_mysql |
+---------------------------+
|columns_priv |
|db |
|event |
|func |
|general_log |
|help_category |
|help_keyword |
|help_relation |
|help_topic |
|host |
|ndb_binlog_index |
|plugin |
|proc |
|procs_priv |
|servers |
|slow_log |
|tables_priv |
|time_zone |
|time_zone_leap_second |
|time_zone_name |
|time_zone_transition |
|time_zone_transition_type |
|user |
+---------------------------+
23rows in set (0.00 sec)
mysql>update user set password=password('centos') where user='root'; //密碼爲centos
QueryOK, 3 rows affected (0.00 sec)
Rowsmatched: 3 Changed: 3 Warnings: 0
mysql>flush privileges;
QueryOK, 0 rows affected (0.00 sec)
mysql>\q
Bye
[root@mail~]# chkconfig mysqld on
第八步 創建新用戶
[root@mail~]# useradd -m -d /home/vmail -s /sbin/nologin vmail
[root@mail~]# id vmail
uid=501(vmail)gid=501(vmail) groups=501(vmail)
第九步 啓動postfix並測試本地郵件系統
[root@mail~]# service postfix status
master(pid 2480) is running...
[root@mail~]# service postfix stop
Shuttingdown postfix: [ OK ]
[root@mail~]# chkconfig postfix --list
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@mail~]# service postfix restart
Shuttingdown postfix: [FAILED]
Startingpostfix: [ OK ]
[root@mail~]# netstat -tunlp | grep 25
tcp 0 0 172.16.1.250:53 0.0.0.0:* LISTEN 27452/named
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 27999/master
tcp 0 0 :::42625 :::* LISTEN 1935/rpc.statd
tcp 0 0 :::5989 :::* LISTEN 2562/cimserver
tcp 0 0 ::1:25 :::* LISTEN 27999/master
udp 0 0 172.16.1.250:53 0.0.0.0:* 27452/named
如果沒開服務,就用service postfix restart打開;如果沒隨機啓動,就用chkconfig postfix on。
注意到這段:127.0.0.1:25,只偵聽本機127.0.0.1上的SMTP服務,其它地址形式不認。
測試下:
[root@mail~]# telnet 127.0.0.1 25
Trying127.0.0.1...
Connectedto localhost (127.0.0.1).
Escapecharacter is '^]'.
220mail.gjyonline.com ESMTP Postfix
helo mail.gjyonline.com
250mail.gjyonline.com
mail from:vmail@localhost
2502.1.0 Ok
rcpt to:root@localhost
2502.1.5 Ok
data
354End data with <CR><LF>.<CR><LF>
Hello.
.
2502.0.0 Ok: queued as 62BBEC76CC
quit
2212.0.0 Bye
Connectionclosed by foreign host.
Youhave new mail in /var/spool/mail/root
[root@mail~]# mail
HeirloomMail version 12.4 7/29/08. Type ? forhelp.
"/var/spool/mail/root":1 message 1 new
>N 1 [email protected] Fri Jan 24 21:34 14/532
&1
Message 1:
[email protected] Fri Jan 2421:34:39 2014
Return-Path:<[email protected]>
X-Original-To:root@localhost
Delivered-To:[email protected]
Date:Fri, 24 Jan 2014 21:34:21 +0800 (HKT)
From:[email protected]
To:undisclosed-recipients:;
Status:R
Hello.
&quit
可以看到,它的發信人是:[email protected]這樣的形式。
沒有配置過的postfix只能認localhost。
第十步 編輯postfix配置文件
[root@mail~]# vi /etc/postfix/main.cf
75 myhostname = mail.gjyonline.com 修改爲主機名
83 mydomain = gjyonline.com
99 myorigin = $mydomain
113 inet_interfaces = all
114 #inet_interfaces = $myhostname
115 #inet_interfaces = $myhostname,localhost
116 #inet_interfaces = localhost //一定要註釋掉這一行,否則在後面用netstat -tunlp | grep 25 時只會出現127.0.0.1:25,而不是0.0.0.0:25
119 inet_protocols = ipv4
164 #mydestination = $myhostname,localhost.$mydomain, localhost
165 mydestination = $myhostname,localhost.$mydomain, localhost, $mydomain
164註釋掉,165不要註釋
249 #mynetworks_style = class
250 mynetworks_style = subnet
251 #mynetworks_style = host
264 mynetworks = 172.16.0.0/16, 127.0.0.0/8
[root@mail~]# service postfix restart
Shuttingdown postfix: [ OK ]
Startingpostfix: [ OK ]
第十一步 爲postfix開啓Cyrus-sasl認證
1、查看postfix支持的SASL認證形式有哪些
[root@mail~]# postconf -a
cyrus 支持cyrus認證
dovecot
2、編輯/etc/postfix/main.cf文件,在最後加入以下內容:
############################ CYRUS-SASL################################
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated , reject_invalid_hostname ,reject_non_fqdn_hostname , reject_unknown_sender_domain ,reject_non_fqdn_sender , reject_non_fqdn_recipient ,reject_unknown_recipient_domain , reject_unauth_pipelining , reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options =noanonymous
smtpd_banner = Welcome to our $myhostname ESMTP,Warning: Version not Available!
3、配置sasl的文件
[root@mail~]# cd /usr/lib/sasl2/
[root@mailsasl2]# vim smtpd.conf
在這個smtpd.conf文件中先寫這兩行內容,沒有就自己動手創建smtpd.conf:
[root@mailsasl2]# cat smtpd.conf
mech_list:PLAINLOGIN
4、開啓服務並隨機啓動
[root@mailsasl2]# service saslauthd status
saslauthdis stopped
[root@mailsasl2]# service saslauthd start 開啓saslauthd服務
Startingsaslauthd: [ OK ]
[root@mailsasl2]# chkconfig saslauthd on 隨機啓動
5、重新加載postfix
[root@mailsasl2]# service postfix restart
Shuttingdown postfix: [ OK ]
Startingpostfix: [ OK ]
6、驗證postfix是否加入sasl認證服務
[root@mail ~]# netstat -tunlp | grep 25
tcp 0 0 172.16.1.250:53 0.0.0.0:* LISTEN 27452/named
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 29135/master 代表偵聽任意網段的SMTP信息,不僅僅是127.0.0.1了
tcp 0 0 :::42625 :::* LISTEN 1935/rpc.statd
tcp 0 0 :::5989 :::* LISTEN 2562/cimserver
udp 0 0 172.16.1.250:53 0.0.0.0:* 27452/named
[root@mail ~]# telnetmail.gjyonline.com 25
Trying 172.16.1.250...
Connected to mail.gjyonline.com(172.16.1.250).
Escape character is '^]'.
220 Welcome to our mail.gjyonline.com ESMTP,Warning: Version not Available!
ehlo mail.gjyonline.com 注意,這裏用ehlo,不是helo,helo不支持saslauthd認證服務,只有ehlo,即增強的helo版本才能識別saslauthd服務
250-mail.gjyonline.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN 這兩紅色句子代表postfix成功啓用saslauthd認證服務
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:[email protected] 因爲可以偵聽任意網段的,所以就用gjyonline.com
250 2.1.0 Ok
rcpt to:[email protected]
250 2.1.5 Ok
data
354 End data with<CR><LF>.<CR><LF>
12347890
.
250 2.0.0 Ok: queued as AB85BC76CF
quit
221 2.0.0 Bye
Connection closed by foreign host.
You have new mail in/var/spool/mail/root
[root@mail ~]# mail
Heirloom Mail version 12.47/29/08. Type ? for help.
"/var/spool/mail/root": 1message 1 new
>N 1 [email protected] Fri Jan 24 23:42 14/515 可以正常收發信件
& 1
Message 1:
From [email protected] Fri Jan 24 23:42:17 2014
Return-Path:<[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Date: Fri, 24 Jan 2014 23:42:04 +0800(HKT)
From: [email protected]
To: undisclosed-recipients:;
Status: R
12347890
& quit
Held 1 message in /var/spool/mail/root
[root@mail~]#
第十二步 安裝Courier Authtication Library庫文件
1、安裝 Courier authentication library 是讓 postfix 夠和 mysql 數據庫連接,將用戶的帳號和密碼放在數據庫中,以便能夠提供用戶認證
[root@mail 123]# tar jxfcourier-authlib-0.66.1.tar.bz2 -C /usr/local/src/
[root@mail 123]# cd /usr/local/src/ ;ll
total 8
drwxr-xr-x. 5 1000 1000 4096 Nov 1206:39 courier-authlib-0.66.1
drwxr-xr-x. 7 root root 4096 Nov 1 2012vmware-tools-distrib
[root@mail src]# cdcourier-authlib-0.66.1/
[[email protected]]#./configure --prefix=/usr/local/courier-authlib --sysconfdir=/etc--with-authmysql --with-mysql-libs=/usr/lib/mysql--with-mysql-includes=/usr/include/mysql --with-redhat--with-authmysqlrc=/etc/authmysqlrc --with-authdaemonrc=/etc/authdaemonrc
[[email protected]]# make
[[email protected]]# make install
make[4]:Leaving directory `/usr/local/src/courier-authlib-0.66.1'
make[3]:Leaving directory `/usr/local/src/courier-authlib-0.66.1'
make[2]:Leaving directory `/usr/local/src/courier-authlib-0.66.1'
make[1]:Leaving directory `/usr/local/src/courier-authlib-0.66.1'
但最後報了這四個leaving directory,好像是子shell退出某個目錄。不管了,繼續往下。
[root@mailspool]# pwd
/usr/local/courier-authlib/var/spool
[root@mailspool]# ll
total4
drwxr-x---.2 daemon daemon 4096 Jan 25 01:40 authdaemon
[root@mailspool]# chmod 755 authdaemon/
[root@mailspool]# ll
total4
drwxr-xr-x.2 daemon daemon 4096 Jan 25 01:40 authdaemon
[root@mailspool]# cd
[root@mail~]# cp -p /etc/authmysqlrc.dist /etc/authmysqlrc
[root@mail~]# cp -p /etc/authdaemonrc.dist /etc/authdaemonrc
2、修改/etc/authdaemonrc文件
27 authmodulelist="authmysql"
34authmodulelistorig="authmysql"
53 daemons=10
3、修改/etc/authmysqlrc文件
[root@mail~]# vi /etc/authmysqlrc
26 MYSQL_SERVER localhost
27 MYSQL_USERNAME extmail
28 MYSQL_PASSWORD extmail
56 MYSQL_PORT 3306
68 MYSQL_DATABASE extmail
83 MYSQL_USER_TABLE mailbox
92 MYSQL_CRYPT_PWFIELD password
113 MYSQL_UID_FIELD 501
119 MYSQL_GID_FIELD 501
128 MYSQL_LOGIN_FIELD username
133 MYSQL_HOME_FIELD concat('/var/mailbox/',homedir)
150 MYSQL_MAILDIR_FIELD concat('/var/mailbox/',maildir)
4、將courier-authlib加入系統啓動隊列
[root@mail~]# cd /usr/local/src/courier-authlib-0.66.1/
[[email protected]]# cp courier-authlib.sysvinit/etc/init.d/courier-authlib
[[email protected]]# ll /etc/init.d/courier-authlib
-rw-r--r--.1 root root 943 Jan 25 02:10 /etc/init.d/courier-authlib
[[email protected]]# chmod 755 /etc/init.d/courier-authlib
[[email protected]]# service courier-authlib restart
StoppingCourier authentication services: authdaemond
StartingCourier authentication services: authdaemond
[[email protected]]# chkconfig --add courier-authlib
[root@mail courier-authlib-0.66.1]#echo "/usr/local/courier-authlib/lib/courier-authlib" >>/etc/ld.so.conf.d/courier-authlib.conf
[[email protected]]# ldconfig -v 重新加載庫文件
5、新建虛擬用戶郵箱所在的目錄,並將其權限賦予vmail 用戶
[[email protected]]# mkdir -pv /var/mailbox
mkdir:created directory `/var/mailbox'
[[email protected]]# chown -R vmail.vmail /var/mailbox/
[[email protected]]# ll -d /var/mailbox
drwxr-xr-x.2 vmail vmail 4096 Jan 25 02:17 /var/mailbox
6、重新配置saslauthd認證
[[email protected]]# vi /usr/lib/sasl2/smtpd.conf
1 #pwcheck_method:saslauthd
2 #mech_list:PLAIN LOGIN 原來的兩行註釋
3 pwcheck_method:authdaemond
4 log_level: 3
5 mech_list:PLAIN LOGIN
6 authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket
第十三步 讓postfix支持虛擬域和虛擬用戶
1、再次配置postfix的main.cf文件
[[email protected]]# vi /etc/postfix/main.cf
在最後加入:
691 ######################## VirtualMailbox Settings ########################
692
693 virtual_mailbox_base = /var/mailbox
694
695 virtual_mailbox_maps =mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
696
697 virtual_mailbox_domains =mysql:/etc/postfix/mysql_virtual_domains_maps.cf
698
699 virtual_alias_domains =
700
701 virtual_alias_maps =mysql:/etc/postfix/mysql_virtual_alias_maps.cf
702
703 virtual_uid_maps = static:501
704
705 virtual_gid_maps = static:501
706
707 virtual_transport = virtual
708
709 maildrop_destination_recipient_limit =1
710
711 maildrop_destination_concurrency_limit= 1
712
713 ########################## QUOTASettings ##############################
714
715 message_size_limit = 14336000
716
717 virtual_mailbox_limit = 20971520
718
719 virtual_create_maildirsize = yes
720
721 virtual_mailbox_extended = yes
722
723 virtual_mailbox_limit_maps =mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
724
725 virtual_mailbox_limit_override = yes
726
727 virtual_maildir_limit_message =Sorry,the user's maildir has overdrawn his diskspace quota, please Tidy yourmailbox and try again later.
728
729 virtual_overquota_bounce = yes
2、使用 extman 源碼目錄下 docs 目錄中的 extmail.sql 和 init.sql 建立數據庫
[root@mail123]# tar zxf extman-1.1.tar.gz -C /usr/local/src
[root@mail123]# cd /usr/local/src/extman-1.1/
[[email protected]]# cd docs/
[root@maildocs]# mysql -u root -pcentos < extmail.sql
[root@maildocs]# mysql -u root -pcentos < init.sql
[root@maildocs]# mysql -u root -pcentos
輸出略
mysql>show databases;
+--------------------+
|Database |
+--------------------+
|information_schema |
| extmail | 建立了新的數據庫
|mysql |
|test |
+--------------------+
4rows in set (0.00 sec)
mysql>use extmail;
Readingtable information for completion of table and column names
Youcan turn off this feature to get a quicker startup with -A
Databasechanged
mysql>show tables;
+-------------------+
|Tables_in_extmail |
+-------------------+
|alias |
|domain |
|domain_manager |
| mailbox | 建立了新的數據表
|manager |
+-------------------+
5rows in set (0.00 sec)
mysql>\q
Bye
[root@maildocs]# pwd
/usr/local/src/extman-1.1/docs
[root@maildocs]# cp ./mysql* /etc/postfix/
3、授予用戶extmail訪問extmail數據庫的權限
[root@maildocs]# mysql -u root -pcentos
Welcometo the MySQL monitor. Commands end with; or \g.
YourMySQL connection id is 7
Serverversion: 5.1.71 Source distribution
Copyright(c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracleis a registered trademark of Oracle Corporation and/or its
affiliates.Other names may be trademarks of their respective
owners.
Type'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>GRANT all privileges on extmail.* to extmail@localhost IDENTIFIED BY 'extmail';
QueryOK, 0 rows affected (0.00 sec)
mysql>GRANT all privileges on extmail.* TO [email protected] IDENTIFIED BY 'extmail';
QueryOK, 0 rows affected (0.00 sec)
mysql>flush privileges;
QueryOK, 0 rows affected (0.00 sec)
mysql>\q
Bye
[root@maildocs]# service postfix restart
Shuttingdown postfix: [ OK ]
Startingpostfix: [ OK ]
第十四步 配置dovecot
1、配置dovecot主文件
[root@maildocs]# vi /etc/dovecot/dovecot.conf
20 protocols = imap pop3 lmtp
26 listen = *
38 disable_plaintext_auth = no
[root@mail~]# vi /etc/dovecot/conf.d/10-mail.conf
27 mail_location =maildir:/var/mailbox/%d/%n/Maildir
2、配置dovecot和MySQL文件
[[email protected]]# cp auth-sql.conf.ext ./auth-sql.conf
[[email protected]]# vi auth-sql.conf
5 passdb {
6 driver = sql
7
8 # Path for SQL configuration file, seeexample-config/dovecot-sql.conf.ext
9 args = /etc/dovecot-mysql.conf
10 }
19 userdb {
20 driver = sql
21 args = /etc/dovecot-mysql.conf
22 }
3、配置MySQL驅動文件
[[email protected]]# vi /etc/dovecot-mysql.conf
1 driver = mysql
2
3 connect = host=localhost dbname=extmailuser=extmail password=extmail
4
5 default_pass_scheme = CRYPT
6
7 password_query = SELECT username ASuser,password AS password FROM mailbox WHERE username='%u'
8
9 user_query = SELECT maildir,uidnumberAS uid,gidnumber AS gid FROM mailbox WHERE username='%u'
4、把userdb的其它相關禁用
[root@mail~]# vi /etc/postfix/main.cf
419 home_mailbox = Maildir/
5、啓動dovecot服務
[root@mail~]# service dovecot status
dovecotis stopped
[root@mail~]# service dovecot start
StartingDovecot Imap: [ OK ]
[root@mail~]# chkconfig dovecot on
[root@mail~]# service postfix restart
Shuttingdown postfix: [ OK ]
Startingpostfix: [ OK ]
第十五步 安裝Extmail-1.2
1、建立Extmail和Extman的目錄
[root@mail~]# mkdir -pv /var/www/extsuite
mkdir:created directory `/var/www/extsuite'
2、安裝 Extmail-1.2
[root@mail123]# ll
total8752
-rwxrw-rw-.1 root root 2299965 Jan 21 09:02 courier-authlib-0.66.1.tar.bz2
-rwxrw-rw-.1 root root 541279 Jan 23 15:13extmail-1.2.tar.gz
-rwxrw-rw-.1 root root 586234 Aug 9 03:01 extman-1.1.tar.gz
-rwxrw-rw-.1 root root 22800 Aug 9 03:17 File-Tail-0.99.3.tar.gz
-rwxrw-rw-.1 root root 210288 Jan 19 12:09perl-GD-2.45-1.el6.rfx.i686.rpm
-rwxrw-rw-.1 root root 3827595 Aug 9 02:05postfix-2.10.1.tar.gz
-rwxrw-rw-.1 root root 1349040 Aug 9 03:18rrdtool-1.4.7.tar.gz
-rwxrw-rw-.1 root root 87541 Aug 9 03:16 Time-HiRes-1.9719.tar.gz
-rwxrw-rw-.1 root root 13738 Aug 9 03:09 Unix-Syslog-1.1.tar.gz
[root@mail123]# tar zxf extmail-1.2.tar.gz -C /usr/local/src
[root@mail123]# cd /usr/local/src
[root@mailsrc]# mv extmail-1.2/ /var/www/extsuite/extmail
[root@mailextsuite]# cd /root/Desktop/123/
[root@mail123]# tar zxf extman-1.1.tar.gz -C /usr/local/src
[root@mail123]# cd /usr/local/src
[root@mailsrc]# mv extman-1.1/ /var/www/extsuite/extman
[root@mailsrc]# cd /var/www/extsuite/
3、修改extmail配置文件
[root@mailextsuite]# ll
total8
drwxr-xr-x. 7 xguest xguest 4096 Dec 25 2009 extmail //這裏的用戶和組都必須要改
drwxr-xr-x.11 xguest xguest 4096 Dec 24 2009 extman
[root@mailextsuite]# cd extmail/
[root@mailextmail]# cp webmail.cf.default webmail.cf
77 SYS_USER_LANG = zh_CN
104 SYS_MESSAGE_SIZE_LIMIT = 5242880 //默認用5MB
127 SYS_MAILDIR_BASE = /var/mailbox
139 SYS_MYSQL_USER = extmail
140 SYS_MYSQL_PASS = extmail
141 SYS_MYSQL_DB = extmail
142 SYS_MYSQL_HOST = localhost
144 # table name
145 SYS_MYSQL_TABLE = mailbox
146 SYS_MYSQL_ATTR_USERNAME = username
147 SYS_MYSQL_ATTR_DOMAIN = domain
148 SYS_MYSQL_ATTR_PASSWD = password //以上4項就用table name默認值
197 SYS_AUTHLIB_SOCKET =/usr/local/courier-authlib/var/spool/authdaemon/socket
[root@mail extmail]# service httpdstatus
httpd is stopped
[root@mail extmail]# service httpdstart
Starting httpd: [ OK ]
[root@mail extmail]# chkconfig httpd on
4、apache 相關配置
[root@mail extmail]# vi/etc/httpd/conf/httpd.conf
242 User vmail
243 Group vmail
在最後加入:
1011 <VirtualHost 172.16.1.250:80>
1012 ServerNamemail.gjyonline.com
1013 DocumentRoot/var/www/extsuite/extmail/html/
1014 ScriptAlias/extmail/cgi /var/www/extsuite/extmail/cgi
1015 Alias /extmail /var/www/extsuite/extmail/html
1016 </VirtualHost>
5、修改/var/www/extsuite 的屬主和組用戶
[root@mail extmail]# chown -Rvmail.vmail /var/www/extsuite/
[root@mail extmail]# ll/var/www/extsuite/
total 8
drwxr-xr-x. 7 vmail vmail 4096 Jan 25 21:26 extmail
drwxr-xr-x. 11 vmail vmail 4096 Dec24 2009 extman
[root@mail extmail]# service httpdrestart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
6、依賴關係的解決,編譯安裝 Unix-Syslog-0.100.tar.gz
[root@mail extmail]# cd/root/Desktop/123/
[root@mail 123]# ll
total 8752
-rwxrw-rw-. 1 root root 2299965 Jan 2109:02 courier-authlib-0.66.1.tar.bz2
-rwxrw-rw-. 1 root root 541279 Jan 23 15:13 extmail-1.2.tar.gz
-rwxrw-rw-. 1 root root 586234 Aug 9 03:01 extman-1.1.tar.gz
-rwxrw-rw-. 1 root root 22800 Aug 9 03:17 File-Tail-0.99.3.tar.gz
-rwxrw-rw-. 1 root root 210288 Jan 19 12:09perl-GD-2.45-1.el6.rfx.i686.rpm
-rwxrw-rw-. 1 root root 3827595Aug 9 02:05 postfix-2.10.1.tar.gz
-rwxrw-rw-. 1 root root 1349040Aug 9 03:18 rrdtool-1.4.7.tar.gz
-rwxrw-rw-. 1 root root 87541 Aug 9 03:16 Time-HiRes-1.9719.tar.gz
-rwxrw-rw-. 1 root root 13738 Aug 9 03:09 Unix-Syslog-1.1.tar.gz
[root@mail 123]# tar zxfUnix-Syslog-1.1.tar.gz -C /usr/local/src
[root@mail 123]# cd /usr/local/src; ll
total 20
drwxr-xr-x. 7 root root 12288 Jan 2501:40 courier-authlib-0.66.1
drwxr-xr-x. 2 1001 bin 4096 May 19 2008 Unix-Syslog-1.1
drwxr-xr-x. 7 root root 4096 Nov 1 2012 vmware-tools-distrib
[root@mail src]# cd Unix-Syslog-1.1/
[root@mail Unix-Syslog-1.1]# ll
total 60
-rw-r--r--. 1 1001 bin 8902 Oct 3 2007Artistic
-rw-r--r--. 1 1001 bin 3659 May 19 2008 Changes
-rw-r--r--. 1 1001 bin 463 May 19 2008 Makefile.PL
-rw-r--r--. 1 1001 bin 152 May 19 2008 MANIFEST
-rw-r--r--. 1 1001 bin 296 May 19 2008 META.yml
-rw-r--r--. 1 1001 bin 5642 Oct 3 2007README
-rw-r--r--. 1 1001 bin 9287 May 19 2008 Syslog.pm
-rw-r--r--. 1 1001 bin 3928 May 18 2008 Syslog.xs
-rw-r--r--. 1 1001 bin 7108 Feb 28 2008 test.pl
[root@mail Unix-Syslog-1.1]# perlMakefile.PL
[root@mail Unix-Syslog-1.1]# make&& make install
7、重啓httpd服務
[root@mail Unix-Syslog-1.1]# servicehttpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
8、IE瀏覽器訪問http://172.16.1.250/extmail或者
http://mail.gjyonline.com卻不能訪問正常的網頁
我擦,在查了vi /var/log/httpd/error_log這個文件後,發現有大量的錯誤提示:
[TueJan 21 02:17:39 2014] [error] NSS_Initialize failed. Certificate database:/etc/httpd/alias.
[TueJan 21 02:17:39 2014] [error] SSL Library Error: -8038SEC_ERROR_NOT_INITIALIZED
最後在查網絡知道答案:
chgrpvmail /etc/httpd/alias/*.db //改成vmail的組就行!
就是這樣就可以了!
9、可以正常打開網頁了:
點擊“登錄郵箱管理”,輸入用戶名:[email protected],密碼:extmail*123*,點擊“登錄”,
提示404錯誤。
第十六步 配置Extman
1、Extman已經安裝到/var/www/extmail
[root@mailsrc]# cd /var/www/extsuite/
[root@mailextsuite]# ll
total8
drwxr-xr-x. 7 vmail vmail 4096 Jan 25 21:26 extmail
drwxr-xr-x.11 vmail vmail 4096 Dec 24 2009 extman
2、修改Extman的配置文件
[root@mailextsuite]# cd extman/
[root@mailextman]# ll
total100
drwxr-xr-x.3 vmail vmail 4096 May 3 2009addon
-rw-r--r--.1 vmail vmail 140 Oct 22 2005 AUTHORS
drwxr-xr-x.2 vmail vmail 4096 May 9 2009cgi
-rw-r--r--.1 vmail vmail 20812 Dec 24 2009ChangeLog
drwxr-xr-x.2 vmail vmail 4096 Dec 24 2009 contrib
drwxr-xr-x.3 vmail vmail 4096 Dec 24 2009 daemon
drwxr-xr-x.2 vmail vmail 4096 Nov 7 2009docs
drwxr-xr-x.5 vmail vmail 4096 Dec 24 2009 html
-rw-r--r--.1 vmail vmail 3860 Feb 13 2007 INSTALL
drwxr-xr-x.2 vmail vmail 4096 Nov 8 2009lang
drwxr-xr-x.6 vmail vmail 4096 Jul 20 2009 libs
-rw-r--r--.1 vmail vmail 2112 Mar 6 2007README
-rw-r--r--.1 vmail vmail 13723 Sep 25 2008README.fcgi
drwxr-xr-x.2 vmail vmail 4096 Dec 24 2009 tools
-rw-r--r--.1 vmail vmail 4 Dec 24 2009 Version
-rw-r--r--.1 vmail vmail 5046 Nov 8 2009webman.cf.default
[root@mailextman]# cp -p webman.cf.default webman.cf
[root@mailextman]# vi webman.cf
12 SYS_MAILDIR_BASE = /var/mailbox
21 SYS_CAPTCHA_ON = 0 //驗證碼,後面會重點提到這個
39 SYS_LANG = zh_CN
3、再次修改/var/www/extsuite屬性
[root@mailextman]# chown -R vmail.vmail/var/www/extsuite
4、編輯 apache 的主配置文件
[root@mailextman]# vi /etc/httpd/conf/httpd.conf
1011 <VirtualHost 172.16.1.250:80>
1012 ServerName mail.gjyonline.com
1013 DocumentRoot /var/www/extsuite/extmail/html/
1014 ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
1015 Alias /extmail /var/www/extsuite/extmail/html
1016 ScriptAlias /extman/cgi/var/www/extsuite/extman/cgi
1017 Alias /extman/var/www/extsuite/extman/html
1018 </VirtualHost>
在原來基礎上添加紅色字體部分。
在這裏重點提一下:
在/etc/httpd/conf/httpd.conf中,不要用suexecusergroup,而要用User vmail、Group vmail來寫:
用suexecusergroup就要註釋掉User 、Group這現行,即:
#Uservmail
#Groupvmail
<VirtualHost172.16.1.2:80>
ServerName mail.postfix.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 vmailvmail 用這一行就無法啓動extmail界面,聽說是多少號以下的uid和gid纔不能用,沒試
</VirtualHost>
5、創建其運行時所需的臨時目錄,並修改其相應的權限
[root@mailextman]# mkdir -pv /tmp/extman
mkdir:created directory `/tmp/extman'
[root@mailextman]# chown -R vmail.vmail /tmp/extman/
6、重啓httpd服務
[root@mailextman]# service httpd restart
Stoppinghttpd: [ OK ]
Startinghttpd: [ OK ]
7、重新登錄Extman
看到一片空白,好的,現在配置圖形界面
[root@mail123]# tar zxf Time-HiRes-1.9719.tar.gz -C /usr/local/src
[root@mail123]# tar zxf File-Tail-0.99.3.tar.gz -C/usr/local/src
[root@mail123]# tar zxf rrdtool-1.4.7.tar.gz -C /usr/local/src
[root@mail123]# cd /usr/local/src
[root@mailsrc]# cd Time-HiRes-1.9719/
注意安裝順序不能改換
第一:
[[email protected]]# perl Makefile.PL
[[email protected]]# make
[[email protected]]# make test
[[email protected]]# make install
第二:
[root@mailsrc]# cd File-Tail-0.99.3/
[[email protected]]# perl Makefile.PL
[[email protected]]# make
[[email protected]]# make test
[[email protected]]# make install
第三:
[[email protected]]# ./configure --prefix=/usr/local/rrdtool
[[email protected]]# make && make install
8、創建必要的符號鏈接(Extman 會到這些路徑下找相關的庫文件)
[root@mail ~]# ln -sv/usr/local/rrdtool/lib/perl/5.10.1/i386-linux-thread-multi/auto/RRDs /usr/lib/perl5/5.10.0/i386-linux-thread-multi/
`/usr/lib/perl5/5.10.0/i386-linux-thread-multi/RRDs'-> `/usr/local/rrdtool/lib/perl/5.10.1/i386-linux-thread-multi/auto/RRDs'
[root@mail ~]# ln -sv/usr/local/rrdtool/lib/perl/5.10.1/i386-linux-thread-multi/RRDs.pm/usr/lib/perl5/5.10.0/
`/usr/lib/perl5/5.10.0/RRDs.pm' ->`/usr/local/rrdtool/lib/perl/5.10.1/i386-linux-thread-multi/RRDs.pm'
[root@mail ~]# ln -sv/usr/local/rrdtool/lib/perl/5.10.1/RRDp.pm /usr/lib/perl5/5.10.0/
`/usr/lib/perl5/5.10.0/RRDp.pm' ->`/usr/local/rrdtool/lib/perl/5.10.1/RRDp.pm'
9、複製mailgraph_ext到/usr/local,並啓動
[root@mail rrdtool-1.4.7]# cp -r/var/www/extsuite/extman/addon/mailgraph_ext/ /usr/local/
[root@mail rrdtool-1.4.7]#/usr/local/mailgraph_ext/mailgraph-init start
Starting mail statistics grapher:mailgraph_ext
Starting queue statistics grapher:qmonitor
[root@mailDesktop]# service httpd restart
Stoppinghttpd: [ OK ]
Startinghttpd: [ OK ]
10、啓動 cmdserver(在後臺顯示系統信息)
[root@mailrrdtool]# /var/www/extsuite/extman/daemon/cmdserver --daemon
loadedok
11、添加到自動啓動隊列
[root@mail rrdtool]# echo"/usr/local/mailgraph_ext/mailgraph-init start" >>/etc/rc.d/rc.local
[root@mail rrdtool]# echo "/var/www/extsuite/extman/daemon/cmdserver-v -d" >> /etc/rc.d/rc.local
[root@mailrrdtool]# cat /etc/rc.d/rc.local
#!/bin/sh
#
#This script will be executed *after* all the other init scripts.
#You can put your own initialization stuff in here if you don't
#want to do the full Sys V style init stuff.
touch/var/lock/subsys/local
/usr/local/mailgraph_ext/mailgraph-initstart
/var/www/extsuite/extman/daemon/cmdserver-v -d
11、加入驗證碼機制
[root@mail123]# rpm -ivh perl-GD-2.45-1.el6.rfx.i686.rpm
warning:perl-GD-2.45-1.el6.rfx.i686.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6:NOKEY
Preparing... ########################################### [100%]
1:perl-GD ########################################### [100%]
注意,有的校驗碼插件不區分大小寫,但perl-GD是區分大小寫的!
12、安裝rrdtool相關perl包
[root@mail~]# rpm -qa | grep rrdtool
rrdtool-perl-1.4.7-1.wrl.i386
rrdtool-devel-1.4.7-1.wrl.i386
rrdtool-1.4.7-1.wrl.i386
13、Jan 19 22:03:32localhost postfix/trivial-rewrite[2307]: warning: do not list domain gjyonline.comin BOTH mydestination and virtual_mailbox_domains這一行是啓用虛擬域以後,需要取消中心域,即註釋掉/etc/postfix/main.cf 中的 mydestination =$myhostname, localhost.$mydomain,
localhost,$mydomain
[root@mail~]# vi /etc/postfix/main.cf
164 #mydestination = $myhostname, localhost.$mydomain,localhost
165 #mydestination = $myhostname,localhost.$mydomain, localhost, $mydomain
166 #mydestination = $myhostname,localhost.$mydomain, localhost, $mydomain,
167 # mail.$mydomain, www.$mydomain, ftp.$mydomain
[root@mail~]# service postfix restart
Shuttingdown postfix: [ OK ]
Startingpostfix: [ OK ]
[root@mail~]# service httpd restart
Stoppinghttpd: [ OK ]
Startinghttpd: [ OK ]
對:bad uid 89 in virtual_uid_maps 該問題的最好解答:
重新建了一個用戶及組,將main.cf authmysqlrc裏的ID改成新建用戶的ID號,
再將apache下的httpd.conf裏的user group改爲新的。
最主要是要把整個mailbox目錄及子目錄屬主及屬組改成新建的用戶及組,chown -Rusername. groupname mailbox/
我的已經可以完美收發了。祝您好運!!!
這裏也補充一下,還必須把extman所在目錄也改成新用戶和屬組一樣的目錄,否則permit deny。
[root@mailnamed]# service named start
Generating/etc/rndc.key: 停這不動
使用這條命令:
[root@mailnamed]# rndc-confgen -r /dev/urandom -a
最後有個BUG說下:
我在虛擬機上試過centos6.5 32bit、centos6.5 64bit、centos5.8 32bit、centos5.8 64bit、centos5.6 64bit安裝過postfix+mysql+extmail,沒有問題;但Dell R210(2代)上安裝centos6.5 64bit+postfix+mysql+extmail完後一小段時間,就會出現提示:(具體英文忘了)有另外一個Unix進程在佔用mysql.sock。而且mysqld已經關閉(正常情況下,mysqld關閉後會刪除mysql.sock文件),可以通過手工刪除/var/lib/mysql/mysql.sock,並重啓mysqld來臨時解決這個問題,但後面過一會仍會反覆出現這個問題,後面換了centos6.532bit也會出現同樣問題,最後沒辦法,換一臺普通臺式機裝centos6.532bit+postfix+mysql+extmail就沒有問題,建議大家不要再升級現有MySQL版本。
高建勇/steve nash