1. 程式人生 > >postfix郵箱系統安裝(筆記-2017-0701)

postfix郵箱系統安裝(筆記-2017-0701)

postfix dovecot openwebmail webmin cyrus-sasl

環境:centos6.5 x64

源碼包:postfix-3.2.2.tar.gz

webmin.1.840.tar.gz

其他是RPM安裝

安裝前準備:

0. 時間同步

yum install ntp

ntpdate ntp.api.bz

hwclock -w

1. 創建用戶:

groupadd -g 2525 postfix -s /sbin/nologin (postfix組)

useradd -g 2525 -u 2525 postfix -M -s /sbin/nologin (postfix用戶)

group -g 2526 postdrop

2. yum安裝依賴庫及相關軟件:

yum install mysql mysql-devel mysql-server mysql-lib

yum install db*-devel

yum groupinstall Development Tools Development Libraries

yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-lib cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain



3. 解壓:

tar xf postfix-3.2.2.tar.gz


4. 進入解壓後的目錄,執行二進制編譯安裝:

代碼如下:

make makefiles ‘CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ‘ ‘AUXLIBS=-L/usr/lib64/mysql -lmysqlclient -lz -lm -L/usr/lib64/sasl2 -lsasl2 -lssl -lcrypto‘


make && make install


5. 編譯成功後,會提示需要手動設置安裝路徑,根據自己需求更改,我這裏全部保持默認 按回車鍵進行確認:

install_root: [/]

(表示安裝在/根路徑下)

tempdir: [/data/postfix-3.2.2] (表示臨時數據存放路徑,用戶需具有寫權限)

config_directory: [/etc/postfix] (表示配置文件存放路徑)

command_directory: [/usr/sbin] (表示postfix的命令存放路徑)

daemon_directory: [/usr/libexec/postfix] (表示postfix的守護程序路徑)

data_directory: [/var/lib/postfix] (表示postfix的庫數據文件存放路徑)

html_directory: [no] (表示不安裝postfix的html網頁文件)

mail_owner: [postfix] (表示指定postfix用戶為文件所有者)

mailq_path: [/usr/bin/mailq] (表示mailq查看隊列列表命令存放路徑)

manpage_directory: [/usr/local/man] (表示postfix手冊說明書存放路徑)

newaliases_path: [/usr/bin/newaliases] (表示newaliases命令存放路徑,別名數據庫)

queue_directory: [/var/spool/postfix] (表postfix隊列安裝路徑)

readme_directory: [no] (表示README文件安裝路徑)

sendmail_path: [/usr/sbin/sendmail] (表示sendmail命令的安裝路徑)

setgid_group: [postdrop] (指定郵件提交組和隊列管理組命令)

shlib_directory: [no] (表示不指定共享庫路徑)

meta_directory: [/etc/postfix]


結尾為:

Warning: you still need to edit myorigin/mydestination/mynetworks

parameter settings in /etc/postfix/main.cf.


See also http://www.postfix.org/STANDARD_CONFIGURATION_README.html

for information about dialup sites or about sites inside a firewalled

network.


BTW: Check your /etc/aliases file and be sure to set up aliases

that send mail for root and postmaster to a real person, then run

/usr/bin/newaliases.


表示完成postfix安裝!



6. 添加開機啟動命令:

創建文件:vim /etc/init.d/postfix

賦予權限:chown postfix.postfix /etc/init.d/postfix

添加內容:

#!/bin/bash


#


# postfix Postfix Mail Transfer Agent


#


# chkconfig: 2345 80 30


# description: Postfix is a Mail Transport Agent, which is the program \


# that moves mail from one machine to another.


# processname: master


# pidfile: /var/spool/postfix/pid/master.pid


# config: /etc/postfix/main.cf


# config: /etc/postfix/master.cf


# Source function library.


. /etc/rc.d/init.d/functions


# Source networking configuration.


. /etc/sysconfig/network


# Check that networking is up.


[ $NETWORKING = "no" ] && exit 3


[ -x /usr/sbin/postfix ] || exit 4


[ -d /etc/postfix ] || exit 5


[ -d /var/spool/postfix ] || exit 6


RETVAL=0


prog="postfix"


start() {


# Start daemons.


echo -n $"Starting postfix: "


/usr/bin/newaliases >/dev/null 2>&1


/usr/sbin/postfix start 2>/dev/null 1>&2 && success || failure $"$prog start"


RETVAL=$?


[ $RETVAL -eq 0 ] && touch /var/lock/subsys/postfix


echo


return $RETVAL


}


stop() {


# Stop daemons.


echo -n $"Shutting down postfix: "


/usr/sbin/postfix stop 2>/dev/null 1>&2 && success || failure $"$prog stop"


RETVAL=$?


[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/postfix


echo


return $RETVAL


}


reload() {


echo -n $"Reloading postfix: "


/usr/sbin/postfix reload 2>/dev/null 1>&2 && success || failure $"$prog reload"


RETVAL=$?


echo


return $RETVAL


}


abort() {


/usr/sbin/postfix abort 2>/dev/null 1>&2 && success || failure $"$prog abort"


return $?


}


flush() {


/usr/sbin/postfix flush 2>/dev/null 1>&2 && success || failure $"$prog flush"


return $?


}


check() {


/usr/sbin/postfix check 2>/dev/null 1>&2 && success || failure $"$prog check"


return $?


}


restart() {


stop


start


}


# See how we were called.


case "$1" in


start)


start


;;


stop)


stop


;;


restart)


stop


start


;;


reload)


reload


;;


abort)


abort


;;


flush)


flush


;;


check)


check


;;


status)


status master


;;


condrestart)


[ -f /var/lock/subsys/postfix ] && restart || :


;;


*)


echo $"Usage: $0 {start|stop|restart|reload|abort|flush|check|status|condrestart}"


exit 1


esac


exit $?


# END


################################################################


7. 啟動報錯

service postfix start

postfix start

提示:

[[email protected] postfix]# postfix start

postfix/postfix-script: warning: not owned by postfix: /var/lib/postfix/.

postfix/postfix-script: warning: not owned by postfix: /var/lib/postfix/./master.lock

postfix/postfix-script: starting the Postfix mail system

postfix/postfix-script: fatal: mail system startup failed


報錯原因:啟動文件不是postfix所擁有,權限不夠

解決辦法:

chown postfix.postfix -R /var/lib/postfix

chmod 770 /var/lib/postfix/master.lock

修改後在重新啟動

[[email protected] lib]# postfix start

postfix/postfix-script: starting the Postfix mail system

[[email protected] lib]# netstat -tunlp | grep 25

tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 9755/master


8. 設置開機自動啟動:

[[email protected] /]# chkconfig --add mysqld

[[email protected] /]# chkconfig --add postfix

[[email protected] /]# chkconfig mysqld on

[[email protected] /]# chkconfig postfix on




9.測試下psotfix能否正常發信

[[email protected] /]# telnet localhost 25

Trying ::1...

telnet: connect to address ::1: Connection refused

Trying 127.0.0.1...

Connected to localhost.

Escape character is ‘^]‘.

220 mail.test.com ESMTP Postfix (3.2.2)

ehol h^Hlocalhost

502 5.5.2 Error: command not recognized

ehlo localhost

250-mail.test.com

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

mail from:[email protected]

250 2.1.0 Ok

rcpt to:[email protected]

250 2.1.5 Ok

data

354 End data with <CR><LF>.<CR><LF>

wangkejian 20170704

.

250 2.0.0 Ok: queued as 0DACD13402C2

quit

221 2.0.0 Bye


#######################################################################


10. 安裝 dovecot RPM包:

yum install dovecot

1. 配置文件路徑:

[[email protected] dovecot]# ls

conf.d dovecot.conf

[[email protected] dovecot]# cd conf.d/

[[email protected] conf.d]# ls

10-auth.conf 10-ssl.conf 90-acl.conf auth-ldap.conf.ext auth-system.conf.ext

10-director.conf 15-lda.conf 90-plugin.conf auth-master.conf.ext auth-vpopmail.conf.ext

10-logging.conf 20-imap.conf 90-quota.conf auth-passwdfile.conf.ext

10-mail.conf 20-lmtp.conf auth-checkpassword.conf.ext auth-sql.conf.ext

10-master.conf 20-pop3.conf auth-deny.conf.ext auth-static.conf.ext


2. 文件主配置更改如下:

1. 在etc/dovecot/dovecot.conf中設置:

protocols = imap pop3 允許認證的協議類型

listen = *, :: 允許所有監聽的端口

login_trusted_networks = 6.6.6.6/8 允許該網段認證

2. 在/etc/dovecot/conf.d/10-mail.conf中設置:

mail_location = mbox:~/mail:INBOX=/var/mail/%u 設置郵箱目錄


3. 在/etc/dovecot/conf.d/10-auth.conf中設置:

disable_plaintext_auth = no 使用明文認證


4. 設置新建用戶後,自動創建郵箱目錄;如下

mkdir -p /etc/skel/mail/.imap/INBOX

#在用戶模板文件中添加這些目錄文件,以後只要是創建用戶系統會自動在用戶的家目錄下創建這些文件


#######################################################################


11. sasl認證設置


1. 使用系統用戶認證

vim /etc/sysconfig/saslauthd

修改 MECH=pam 參數為 MECH=shadow #更改認證方式


2. 添加smtpd.conf文件,讓postfix使用sasl認證

編輯vim /usr/lib64/sasl2/smtpd.conf

添加以下參數:

log_level: 3

pwcheck_method: saslauthd

mech_list: PLAIN LOGIN

賦予文件權限:

chown postfix /usr/lib64/sasl2/smtpd.conf



12. 安裝webmin源碼包:


源碼包下載地址:http://prdownloads.sourceforge.net/webadmin/webmin-1.850.tar.gz

install:

tar xf webmin-1.850.tar.gz

cd webmin-1.850

./setup.sh

設置過程中其他保持默認,只修改自己定義的端口號即可


##############################################################


13. 安裝openwebmail


文檔地址:http://openwebmail.org/openwebmail/download/centos/el6/00.readme.txt


1)下載openwebmail repo文件,並用yum安裝openwebmail軟件包

#cd /etc/yum.repos.d

#wget -q http://openwebmail.org/openwebmail/download/redhat/rpm/release/openwebmail.repo

#yum install openwebmail


2)web登入地址:

http://6.6.6.6/cgi-bin/openwebmail/openwebmail.pl



3) 公用通訊錄設置:

設置一個通訊錄管理員 address

useradd address #創建管理員

chown address.address /var/www/cgi-bin/openwebmail/etc/addressbooks

yum install perl* #安裝網頁支持模塊


4) 禁用網絡磁盤:

編輯:vim /var/www/cgi-bin/openwebmail/etc/defaults/openwebmail.conf

找到這個選項改為no:

enable_webdisk no #不允許用戶使用網絡磁盤


主要配置文件:

/var/www/cgi-bin/openwebmail/etc/defaults/openwebmail.conf #功能設置

/var/www/cgi-bin/openwebmail/etc/openwebmail.conf #參數設置


14.說明

安裝了webmin後,發現在web訪問過程中,他會自動修改postfix的主配置文件內的內容

避免問題(老版本沒有這個問題):

1. 設置好策略,以及一些其他配置後,進行備份

2. 新建一個web管理賬戶,主要給 用戶和組管理 和 postfix設置中的郵件別名即可,因為

安裝webmail本身就只需要這兩個功能就可以了

3.webmail主界面:

技術分享


4. postfixweb主管理界面

技術分享

技術分享



5. 郵箱用戶管理登入界面:

技術分享


本文出自 “逆水行舟,不進則退” 博客,請務必保留此出處http://wangkj.blog.51cto.com/10292166/1954548

postfix郵箱系統安裝(筆記-2017-0701)