postfix邮箱系统安装(笔记-2017-0701)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postfix邮箱系统安装(笔记-2017-0701)相关的知识,希望对你有一定的参考价值。

环境: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)的主要内容,如果未能解决你的问题,请参考以下文章

postfix邮箱搭建之策略限制(笔记-2.20170809)

Centos 下搭建postfix和Dovecot的邮箱服务系统

Centos 下搭建postfix和Dovecot的邮箱服务系统

阿里云服务器安装postfix--邮箱服务(排坑过程详解)

postfix邮箱系统

SUS系统 postfix邮箱设置