PXE安裝Centos65 postfix+exmail+mysql實現基於 虛擬用戶的web郵件系統

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。


wKioL1VNoxjwGc40AAFbELzXiec207.jpg

 

2、用UltraISO解壓CentOS6.532bit的兩個ISO文件,如下:
wKioL1VNo9CQrMBWAAOsul5FQSM781.jpg

它有兩個ISO文件,全部解壓縮到兩個目錄裏去。一般只要第一個就可以。

順便說一下,這裏必須用ISO工具解開,不要用WinRAR圖省事,否則後面不能正常安裝。可以試一下,用winrar解開後,在repodata下看不到文件後綴名,後面安裝就提示找不到文件

wKioL1VNo_2RVGQIAAD-4Q2GZ9o098.jpg

 

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地址手工分配:

wKioL1VNpECCfQT9AAGh0HNhgtc507.jpg

這是本機的網絡設置,下面還要設置新安裝的Vmware的網絡

 

wKioL1VNpGjz2HejAAJjxD8PP1A518.jpg

具體怎樣使用vmware來新建一個虛擬機,我不講了,但是這個新建好的虛擬機的網絡一定要改成上圖的1或者2。

 

5、設置Tftpd32

來到X:\tftpboot\Tftpd32\(這裏的X代表你個人的盤符)下,雙擊打開tftpd32.exe程序

wKioL1VNpIrio6IfAAFnn0d5c7I944.jpg

在“當前目錄”寫X:\tftpboot\pxe,點擊“顯示目錄”按鈕,能看到initrd.img、pxelinux.0、vmlinuz這三個文件就可以:

wKioL1VNpKvBxgTVAAEh2Ey7Wbc777.jpg

 

點擊Tftpd32.exe的“設置”按鈕,下面分別來設置tftp、dhcp:

    1、TFTP設置:我們可以看到“Tftpd32:設置”對話框,選擇“TFTP”選項卡,在“基本目錄”裏和“當前目錄”一樣,其它直接看下圖:

wKiom1VNo1iQywQMAAGpFS0fE1Q641.jpg

 

    2:DHCP設置:選中“DHCP”選項卡,不要選“分配前PING地址”,“Boot文件”只能寫pxelinux.0;其它照下圖:

wKioL1VNpOzxqa7zAAE_2qF_kSk428.jpg

 

6、關閉本機上的所有防火牆,在後面安裝過程中可能會發生誤報從而停止安裝

 

7、設置hfs2.3b271

在X:\tftpboot\hfs2.3b271目錄下,找到並打開hfs.exe文件,如下圖:

wKioL1VNpQ2C2n9eAAI1ASJsdRg383.jpg

在左邊有小房子的空白區域內右擊鼠標,選中“從磁盤添加目錄”,如下圖:

wKioL1VNpSuRxoAVAAF_aoApHkE578.jpg

找到文件夾的位置,會出現下面的提示,選中“真實目錄”

wKiom1VNo9fyQyxUAAKYxmTetDI447.jpg

現在改一下它的端口號,如下圖:

wKioL1VNpWvz1skpAAF87icJifg882.jpg

單擊圖上“端口:8080”,彈出對話框,直接改成80即可。

 

現在測試一下:

請照下圖做,先用鼠標左鍵選中“虛擬文件系統”中的文件夾,它會變成藍底

wKiom1VNpA_STZWsAAMUwL9f7I8534.jpg

再單擊“在瀏覽器中打開”,沒有問題的話是可以在瀏覽器中看到我們的所有文件,如下圖:

wKioL1VNpaOD_sIWAARD_-hSoM4771.jpg

測試正常,完畢。

 

8、PXE安裝開始

開啓虛擬機電源,如果沒有問題的話,虛擬機可以從Tftpd32獲得地址,正常引導如下圖:

wKiom1VNpFChzRRnAAXb6jOVOwM907.jpg

在“boot”後面打“linux”即可。

 

從下圖可以看出Tftpd32的tftp在正常工作:

wKioL1VNpejxz3FJAAXYuNX8pig449.jpg

 到了下圖的“Installation Method”了,只選“URL”:

wKiom1VNpJXyfGQmAADvUqh-1PE165.jpg

wKiom1VNpKvQmV_cAAFVHC3dsv4550.jpg

我只選擇了ipv4的,不改也是一樣的。

這下一步就寫URL地址,就比照hfs.exe的地址寫上去就是,如下圖:

wKioL1VNpjqxdLd6AALSaz9mKHs892.jpg

 

注意:不可以用centos6.5  64bit的initrd.img、vmlinuz來安裝32bit的系統,但我的pxelinux.0還是64bit的,沒有報錯誤。

wKiom1VNpN3B8_j9AAMDfKbpdkY371.jpg

也就是說:

initrd.img、vmlinuz是分版本的,64和32bit不能混用。

 

剩下的安裝部分就不說了,很多人把安裝過程說的已經爛了。

有條件的,就多給/var些空間。

 

 

第二部分postfix+extmail+mysql

實現基於虛擬用戶的郵件系統

這一部分採用虛擬機做的,初裝完系統,第一件事就是裝vmware tool

 

第一步 安裝vmware tool

wKioL1VNpnOwX0K8AAKLfTjFs-k423.jpg

利用命令行安裝:

[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,如下圖:

wKiom1VNpSLxnsJ0AAJgSG_kokY666.jpg

圖中標記的地方用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 的網絡

wKioL1VNpsDgDdT6AACQMDtewxE587.jpg

在“開始”菜單裏找到"Virtual Network Editor"這個工具,打開它

wKiom1VNpWGRDz7MAAJS6CpB1mI034.jpg

我們要新增一個網絡VMnet7,如下圖:

wKiom1VNpYziGAdgAAKUfbKITAY662.jpg

下面來設置VMnet7的網絡,按照下圖的1、2、3順序來:

wKiom1VNpkWRrHruAALOCW4_DhM571.jpg

接着上面的第3項“DHCP Settings...”,打開一個設置IP的對話框,如下圖:

wKiom1VNplzjUTCZAAL6_bh2S48838.jpg

把其中的開始、結束地址寫好,按“OK”結束。

回到第一個界面,按“OK”結束Virtual Network Editor設置:

wKioL1VNp_Lyk4bSAAKvd-5qCgQ617.jpg

現在就可以斷虛擬機的網絡了,把它原來是VMnet0改爲VMnet7,如下圖:

wKiom1VNpozihBSyAAKsBYtAPtQ748.jpg

再新增一臺虛擬機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

pwcheck_method:saslauthd

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、可以正常打開網頁了:

wKiom1VNpq2yYbUaAAQysQ6p1eo815.jpg

點擊“登錄郵箱管理”,輸入用戶名:[email protected],密碼:extmail*123*,點擊“登錄”,

提示404錯誤。

wKioL1VNqDHDYlAPAAK6L93k-Ag191.jpg

 

第十六步 配置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

看到一片空白,好的,現在配置圖形界面

wKiom1VNps7x8UpdAAM1cOC8y5s561.jpg

[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

 


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