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的邮箱服务系统