Postfix+Dovecot+Sasl+OpenDKIM+SSL/TLS+postfixadmin+mysql+fail2banc

基于lnmp1.9/lamp或者宝塔面板的基础上搭建一个企业邮局,实现轻量化,稳定,的邮局

Postfix+Dovecot+Sasl+OpenDKIM+SSL/TLS+postfixadmin+SQLite+Roundcube+fail2banc

这些东西基本上都是开源的!先实现手动化,在整合成脚本实现一键安装的目的,最后再整合到网站在线安装,或者开发成软件,

简介:

系统用的:Centos7 x64

postfix开源的邮件发送系统

Dovecot 开源IMAP和POP3服务器,收邮件储存邮件用的吧

OpenDKIM 开源的dkim作作

Sasl 验证密码的

postfixadmin来管理邮局,开源,我喜欢,支持中文

SQLite来管理数据库,之所以不用mysql是因为mysql占用资源比较多!比较卡!相比之下SQLite更加适合

Roundcube WEB IMAP在线电子邮件客户端

fail2banc 防止有人破解你的smtp账号密码,国内几乎天天都有黑客扫描smtp爆破,没这个真的不行

一、安装LNMP1.9

推荐一种方便快捷安装方式 https://lnmp.org/install.html

增加PHP模块exif、fileinfo、ldap、bz2、sodium、imap和swoole的支持安装,安装lnmp前lnmp.conf 中开启后

我是全开!!哈哈哈

[collapse title=“lnmp1.8添加imap教程”]

yum -y install libc-client-*

进入lnmp的src目录

cd ~/lnmp1.8/src

解压 php (注意自己的PHP版本)我这里用的php5.6

tar -xjvf php-5.6.40.tar.bz2

cd php-5.6.40/ext/imap

/usr/local/php/bin/phpize

出现这个错误,系统涨不到libc-client,做一个软连接,就解决了configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.

解决:ln -s /usr/lib64/libc-client.so /usr/lib/libc-client.so

./configure –with-php-config=/usr/local/php/bin/php-config –with-imap-ssl –with-kerberos

make && make install

编辑  vi /usr/local/php/etc/php.ini

添加  extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/imap.so

注意这个路径是绝对路径!

执行:nginx 重启生效
service nginx restart
lnmp php-fpm restart

[/collapse]

postfix+dovecot安装

设置一下主机名 hostnamectl set-hostname –static mail.********.xx

先卸载 postfix、dovecot

yum -y remove dovecot

yum -y remove postfix

后安装

yum -y install postfix

yum -y install dovecot

yum -y install crontabs  (这个是如果初始安装了postfix的话,卸载时会顺带把它卸载掉,所以要重新安装)

yum -y install cyrus-sasl* (如果这个已经安装了,这个千万不要卸载哦,卸载了重启服务器就崩溃了哦)

顺便安装 Cyrus SASL 软件,万一有的服务器没有安装呢,还是安装一下比较保险

一般情况下,系统中都会安装 Cyrus SASL 软件的,好多软件都依赖 Cyrus SASL 软件包。

rpm -qa | grep sasl

输出结果:

cyrus-sasl-lib-2.1.22- .el5_4.3 
cyrus-sasl-plain-2.1.22- .el5_4.3 
cyrus-sasl-2.1.22- .el5_4.3 
cyrus-sasl-sql-2.1.22- .el5_4.3 
cyrus-sasl-devel-2.1.22- .el5_4.3 
cyrus-sasl-md -2.1.22- .el5_4.3 

没这些的,就安装,一般都有!!!!!!!!!!安装postfix之后才会有 /etc/sasl2/smtpd.conf

yum install -y cyrus-sasl cyrus-sasl-sql cyrus-sasl-devel cyrus-sasl-md5 cyrus-sasl-gssapi cyrus-sasl-plain sasl2-bin 

/etc/postfix/main.cf 配置文件打开。具体变化如下。

#myhostname参数为邮件服务器的主机名

myhostname = mail.ramuel.com

mydomain = ramuel.com

inet_interfaces = all

# (如果支持IPv4 和 IPv6)则 inet_protocols = all

inet_protocols = ipv4

#masquerade_domains”参数是一个可选设置,用于删除发件人电子邮件地址的子域部分(主机名部分)。

masquerade_domains = ramuel.com

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

home_mailbox = Maildir/

header_checks = regexp:/etc/postfix/header_checks

smtpd_banner = $myhostname ESMTP

local_recipient_maps = unix:passwd.byname $alias_maps

#邮箱账户总容量1G
mailbox_size_limit = 1073741824
#邮件附件20MB
message_size_limit = 20971520

### SMTP-AUTH
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
## postfix 附加没有域部分的 SASL 登录的域名 ## 不知道要不要加,
smtpd_sasl_local_domain = $mydomain

#后加部分,
## SASL 默认策略 ##
smtpd_sasl_security_options = noanonymous
#老旧客户端兼容参数
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination

SSL/TLS Settings
smtp_tls_security_level = may
smtpd_tls_cert_file = /etc/postfix/mail.wptmdb.com.pem  证书变成你自己的、注意目录
smtpd_tls_key_file = /etc/postfix/mail.wptmdb.com.key  证书换成你自己的,注意目录
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_received_header = yes
smtpd_tls_loglevel = 1

master.cf 的变化

vi /etc/postfix/master.cf
# ===================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ===================================================================
smtp inet n - n - - smtpd
#smtp inet n - n - 1 postscreen
#smtpd pass - - n - - smtpd
#dnsblog unix - - n - 0 dnsblog
#tlsproxy unix - - n - 0 tlsproxy
submission inet n - n - - smtpd    
# -o syslog_name=Postfix/submission
# -o smtpd_tls_security_level=encrypt
# -o smtpd_sasl_auth_enable=yes

smtps inet n - n - - smtpd
# -o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
postconf -n
postfix check 检查配置文件中的错误,无错误便是OK
systemctl restart postfix
systemctl status postfix

dovecot.conf配置

vi /etc/dovecot/dovecot.conf
protocols = imap pop3
vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login
vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir 
vi /etc/dovecot/conf.d/10-ssl.conf
ssl = required
ssl_cert = </etc/postfix/fullchain.pem
ssl_key = </etc/postfix/privkey.pem

vi /etc/dovecot/conf.d/10-master.conf
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
service imap-login {
inet_listener imap {
port = 0
}
inet_listener imaps {
port = 993
ssl = yes
}
service pop3-login {
inet_listener pop3 {
port = 0
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
doveconf -n
systemctl restart dovecot
systemctl status dovecot
 

发表回复

页面加载时间0.29 s