这是在 CentOS 上创建邮件服务器过程的第三部分 8. 如果你是偶然来到这里的, 您应该先阅读以前的出版物
部分 1 –; 软件包的安装
部分 2 –; 配置 MariaDB
Dovecot 是 MDA (邮件传递代理) 它是将消息从 Postfix 传输到虚拟邮件框的代理. 在本节中, 我们将配置 Dovecot 安装, 以强制用户在连接时使用 SSL, 以这种方式永远不会在纯文本模式下发送密码.
我总是喜欢保留任何定义的原始文件, 如果我最终在设置过程中迷路. 我可以说, 这一步是不需要的, 如果你正在做本教程完全, 然而, 如果你已经有了以前的配置, 只是用它来改进它, 我强烈建议你复制你的文件.
在我们的案例, 配置文件将在 /奥沃夫奇/. 然后, 我们可以使用命令进行复制:
$ sudo cp -R /etc/dovecot/conf.d /etc/dovecot/conf.d.orig
创建用户
Dovecot 将存储消息 (和您的所有内容) 在您在配置文件中定义的目录中, 他可以这样做, 他必须在具有适当权限的用户下运行. 以下命令将创建此用户和组. 我将使用一个共同的标准的名字, 使其易于搜索解决互联网上的问题的办法.
$ sudo groupadd -g 5000 vmail
$ sudo adduser -g 5000 -G mail -u 5000 -d /var/mail vmail
编辑配置文件
我们配置的第一个文件身份验证是. 我们如何使用 MariaDB 数据库中的表来存储用户和密码, 我们在两个文件中指出. 第一个设置身份验证类型, 第二个设置为 Dovecot 将执行身份验证验证.
编辑文件 /文件 和取消评论 (或添加) 下面的行:
$ sudo vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
auth_mechanisms = plain login
!include auth-system.conf.ext
!include auth-sql.conf.ext
后, 编辑文件 /etc/dovecot/CONF.d/auth-sql.conf.ext 让你有以下几行:
$ sudo vim /etc/dovecot/conf.d/auth-sql.conf.ext
# /etc/dovecot/conf.d/auth-sql.conf.ext
passdb {
driver = sql
args = /etc/dovecot/dovecot-mysql.conf.ext
}
userdb {
driver = sql
args = /etc/dovecot/dovecot-mysql.conf.ext
}
我们还必须通过文件与 MariaDB 建立数据连接 /etc/dovecot/dovecot-sql.conf.ext. 此文件不是在设施中创建的, 因此我们创建.
$ sudo vim /etc/dovecot/dovecot-mysql.conf.ext
driver = mysql
connect = host=localhost dbname=mypostfixdb user=mypostfixdbuser password=mypostfixdbuser_password
default_pass_scheme = SHA512-CRYPT
# following should all be on one line.
password_query = SELECT username as user, password, concat('/home/vmail/', maildir) as userdb_home, concat('maildir:/home/vmail/', maildir) as userdb_mail, 'vmail' as userdb_uid, 'mail' as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'
# following should all be on one line
user_query = SELECT concat('maildir:/home/vmail/', maildir) as mail, CONCAT('*:messages=10000:bytes=', quota) as quota_rule FROM mailbox WHERE username = '%u' AND active = '1'
注意: 中使用的数据与 在 MariaDB 中设置数据库的步骤
我们将对 Dovecot 的主配置文件进行一些更改, 该文件是 10-主文件. 文件前面的数字表示加载顺序 (优先). 您可以使用您选择的任何编辑器. 我喜欢 Vim, 因为我已经习惯了你的命令, 但没有什么可以阻止使用纳米, 例如.
$ sudo vim /etc/dovecot/conf.d/10-master.conf
为了提高服务器的安全性并减少攻击, 我们将禁用未加密的访问. 为此,我们需要赋值 0 对于属性 港口 在服务中 地图 和 POP3. 只 IMAPS 和 波普3 将可用. 您将需要使用 SSL 密钥, 我们将在稍后创建.
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
}
}
还更改了以下设置:
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
#############################
service auth {
unix_listener auth-userdb {
mode = 0600
user = vmail
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
# Auth process is run as this user.
user = dovecot
}
service auth-worker {
user = vmail
}
SSL 证书
为了使我们能够在访问您的帐户时使用用户身份验证所需的加密服务,并确保 postfixadmin 和 总是 在安全连接下,我们必须创建有效的SSL密钥. 在这一点上, 我们将通过创建自签名密钥来完成配置 (自签名) 它是在 Dovecot 的安装过程中创建的. 此键不能用于验证安全的浏览器连接. 稍后, 我们将更改此设置以使用 Certbot 获得的 SSL 密钥 (允许加密) 与 Nginx 和 DNS 设置相结合.
如果您正在执行本教程的步骤, 您不需要在文件中没有任何更改 /etc/dovecot/conf.d/10-ssl.conf
其中应包含以下行
ssl = required
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
如果文件不存在, 或者重新创建它们 (必须完成, 如果您已更改主机名, 举个例子) 执行以下操作:
编辑文件 /dovecot-opensl. cnf 并根据您所拥有的信息更改条目.
[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no
[ req_dn ]
# country (2 letter code)
C=BR
# State or Province Name (full name)
ST=SAO PAULO
# Locality Name (eg. city)
L=SAO PAULO
# Organization (eg. company)
O=MRE Development
# Organizational Unit Name (eg. section)
OU=IMAP Server
# Common Name (*.example.com is also possible)
CN=mail.meudominio.com.br
# E-mail contact
emailAddress=postmaster@meudominio.com.br
[ cert_type ]
nsCertType = server
更改文件后, 如果文件已经存在 /埃茨-基维生态/certss/dov话. pem 和 /埃茨-基普基/dovcicleke/private dovcic除. pem, 删除它们, 然后运行脚本 姆克塞尔.
$ sudo rm -f /etc/pki/dovecot/certs/dovecot.pem /etc/pki/dovecot/private/dovecot.pem
$ sudo /usr/libexec/dovecot/mkcert.sh
脚本的输出应该是这样的:
Generating a 1024 bit RSA private key
............++++++
........++++++
writing new private key to '/etc/pki/dovecot/private/dovecot.pem'
-----
subject= /C=BR/ST=SAO PAULO/L=SAO PAULO/O=MRE Development/OU=IMAP server/CN=mail.meudominio.com.br/emailAddress=postmaster@meudominio.com.br
SHA1 Fingerprint=FA:86:97:8F:52:06:04:71:BA:DC:07:BA:33:6A:9B:3F:8A:EE:ED:C5
文件中仍在的其他配置/etc/dovecot/conf.d/10-ssl.conf
与加密相关的是可选属性 ssl_dh
. 添加或取消注释行:
ssl_dh = </etc/dovecot/dh.pem
并运行以下命令来生成该文件 .Pem:
注意力: 运行以下命令通常需要很长时间, 有时甚至近在咫尺 1 时间. 您还可以使用命令更快地生成相同的文件.
$ openssl dhparam -out /etc/dovecot/dh.pem
如果您想自己使用快速模式,只需遵循该命令即可.
$ dd if=/var/lib/dovecot/ssl-parameters.dat bs=1 skip=88 | openssl dhparam -inform der > /etc/dovecot/dh.pem
日志文件
通过 默认 Dovecot 将使用日志机制 Syslog CentOS, 通常会将信息发送到文件 /var,日志,消息. 稍后我将向您展示如何阻止几次攻击尝试,其中之一包括使用脚本 Fail2ban, 进行日志分析,最好定义一个唯一的文件,这样我们就不必监视不断变化的文件.
定义唯一的日志文件, 让我们打开 Dovecot 日志配置 /日志记录文件 并更改或添加以下行.
log_path = /var/log/dovecot.log
auth_verbose = yes
auth_verbose_passwords = sha1:8
保存文件并重新启动服务
$ sudo systemctl restart dovecot
确保已创建文件/日志, 并包含指示服务正常运行的信息.
$ sudo tail /var/log/dovecot.log
Apr 24 22:45:58 master: Info: Dovecot v2.2.36 (1f10bfa63) starting up for imap, pop3, lmtp (core dumps disabled)
防火墙规则
如果您在默认安装中从一开始就遵循本教程, 连接端口有可能对外界关闭. 下面的命令旨在释放门的模拟 (993), 波普3 (995) 在连接电子邮件客户端 (如 Outlook 或 Gmail) 之前. 即使它们是开放的, 稍后在另一个出版物中, 我将向您展示一系列防火墙规则, 以提高安全性.
首先请确保服务 沃尔瓦尔德 正在运行. 如果你被阻止了, 可能所有的门, 有一个听众服务将被打开.
$ sudo systemctl status firewalld
检查状态的行, 该状态的行可以为 积极 (运行) 或作为 无效 (死). 如果您不活动, 没有必要继续. 如果你同样活跃, 我们将列出哪些端口在外部打开.
$ sudo firewall-cmd --list-services
ssh dhcpv6-client
在上面的示例, 只有 dhcpv6 客户端和 ssh 被允许. 然后, 我们添加所需的端口, 以便在外部接收和发送电子邮件.
$ sudo firewall-cmd --add-service=pop3s --permanent
success
$ sudo firewall-cmd --add-service=imaps --permanent
success
$ sudo firewall-cmd --reload
success
$ sudo firewall-cmd --list-services
ssh dhcpv6-client imaps pop3s
正如您在示例中看到的, 添加 Dovecot 服务正在听到的模拟和 pop3 服务. 稍后, 我们还将添加 smtp 端口和提交, 将听到后修复 (主人). 请注意, 我不会打开 imap 和 pop3 端口不安全, 因为我想强制使用 SSL/tls.
为了确保门是开着的, 你甚至可以尝试做 telnet 端口 993 和 995 同一网络上的另一个系统, 并验证该文件是否 /瓦洛维生态。 显示尝试. 如果您在参加测试时没有条件, 请检查下面命令的输出?
$ sudo netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 2669/sshd
tcp 0 0 0.0.0.0:imaps 0.0.0.0:* LISTEN 5946/dovecot
tcp 0 0 0.0.0.0:pop3s 0.0.0.0:* LISTEN 5946/dovecot
tcp 0 0 mail.meudominio.com:ssh gateway:65257 ESTABLISHED 4631/sshd: myuser
而这就是现在的一切. 然后 我们配置后缀 3.
[…;] Servidor de Email –; 部分 3 –; 多韦科特 […;]
[…;] 部分 3 –; Dovecot 配置 […;]
[…;] 和电子邮件使用最常见的工具在 Linux 上的开源环境. 我使用后缀, 多韦科特, 后修复管理, 新, 圆形立方体和 […;]