Dit*_*iti 17 email debian imap smtp postfix
我想摆脱作为电子邮件提供商的 Google,并在我的专用服务器上设置完整的电子邮件解决方案。问题:我希望设置尽可能简单,这样如果出现问题,重新设置一切就不会很痛苦。
diti;主电子邮件kra@diti.me;其他别名被重定向,但电子邮件客户端可以管理不同的别名并做出相应的反应)我相信简单性、IMAP/SMTP 访问和安全身份验证是每个渴望离开 Google/任何其他人的人都想要的“基本”功能。如果我弄错了并且有更简单的解决方案(例如,类似 ownCloud 的解决方案,包含所有内容),我会很高兴听到。
我认为 Postfix 和 Dovecot 的组合将是可行的方法。顺便说一下,我正在运行 Debian。
Complete_Virtual_Mail_Server/SSL_Certificates页面)提到了 CAcert 证书的使用,但不清楚(所有这些SubjectAltName子域都需要吗?),也没有使用 Postfix(我读过 Courier 更难)。我希望我问的是正确的事情,而且他们不会太傻。
use*_*686 19
不,不需要在服务器上设置 DNS 缓存。服务器应该使用附近某处的缓存 DNS 解析器,但大多数托管公司已经为整个数据中心运行了自己的解析器,并将服务器配置为默认使用它们。
默认情况下,Postfix 和 Dovecot 都使用本地帐户。如果您有一个名为 的 Linux 帐户diti,您可以使用它登录 Dovecot,并且您可以设置 Postfix 以验证针对 Dovecot 的 SMTP 登录。
如果您可以将所有邮件发送到同一个帐户,则可以设置普通别名(如 , /etc/aliases)以将邮件重定向到该帐户kra@或postmaster@该diti帐户。
所有这些主题替代名称都不是必需的。您唯一需要的是您将实际使用的域名,例如mail.diti.me或glaux.diti.me。我不确定您是否需要包含域本身(即diti.me)。
以下假设域已配置为指向此服务器的 MX 记录。我通常会尽量保持我的配置合理清晰,因为几个月后我总是想知道“这到底是为了什么”。
1.首先,安装postfix和dovecot-imapd包。当提示有关 Postfix 配置时,选择“Internet 站点”选项并输入diti.me邮件名称。此时,您已经可以使用 发送和接收邮件diti@diti.me,甚至可能连接到 IMAP。
但是,它还没有 SSL,也不允许从外部通过 SMTP 发送邮件,也没有一个理智的地方来存储邮件(默认是 .mbox 文件/var/mail,它不可靠并且性能不佳,尤其是使用 IMAP)。
2.如果你已经有SSL证书,把它放在 中/etc/ssl/private/diti.me.pem,私钥放在 中/etc/ssl/private/diti.me.key。确切的位置实际上并不重要,而是/etc/ssl/privateDebian 保存它们的地方。
确保这两个文件都归该ssl-cert组所有并由该组读取,以便 Postfix 和 Dovecot 可以访问它们。还使用 将两个守护进程的帐户添加到该组gpasswd -a。
3. Debian 自动生成的 Postfixmain.cf也有点乱,所以我只发布一个清理过的最小版本:
# 服务器信息 mydomain = diti.me myorigin = $mydomain # 各种其他参数使用这两个变量作为默认值。 # SMTP 服务 smtpd_tls_security_level = 可能 smtpd_tls_cert_file = /etc/ssl/private/diti.me-mail.pem smtpd_tls_key_file = /etc/ssl/private/diti.me-mail.key # 这允许在所有传入的 SMTP 连接上使用 STARTTLS。 # 注意`postfix`必须加入`ssl-cert`组才能使用 # 访问 /etc/ssl/private.conf 中的文件。 # 政策 mynetworks = [::1]/128, 127.0.0.0/8, [::ffff:127.0.0.0]/104 # 这列出了被认为是“受信任的”并且可以使用的 IP 地址 # 此服务器向外部(即向其他域)发送邮件。经过 # 默认情况下,只允许使用“localhost”。从其他人只邮寄到 将接受 $mydestination 中的 # 个域。 mydestination = $mydomain, 本地主机 # 接受来自任何 IP 地址的邮件的域列表。 # 送货 alias_maps = hash:/etc/aliases # 这会保留系统范围的别名。明确设置它很好,因为 # 默认值有时包括NIS,这没有意义。 收件人分隔符 = + # 告诉 postfix 在第一个“+”处拆分地址的本地部分, # 所谓的“plus-addressing”:发送到diti+foo@的邮件将被投递 # 到 diti@ 邮箱。
对于 Dovecot,Debian 只使用默认的示例配置,它们已经足够好,每个选项都有描述。
每当您更改配置时,请使用postfix reload和/或重新加载守护程序doveadm reload。
4.默认情况下,后缀将邮件传递到/var/mail/$USER在MBOX格式,这是很简单的(你可以很容易地使用文本编辑器查看),但有很多问题,尤其是与IMAP,因为整个文件已被改写,只要你移动消息,甚至将其标记为“已读”或“未读”。
将两个守护进程更改为使用 Maildir。(还有其他格式,但它们往往特定于 MTA 或 MDA 或 IMAP 服务器或其他任何格式;Maildir 得到广泛支持。)
在 中/etc/postfix/main.cf,将以下内容添加到“交付”部分:
home_mailbox = 邮件/
配置 Dovecot 以使用相同的路径,在/etc/dovecot/conf.d/10-mail.conf:
mail_location = maildir:~/Mail
5.在某些时候,您需要告诉 Dovecot 也使用 SSL。相关设置在/etc/dovecot/conf.d/10-ssl.conf. 事实上,Dovecot 的 Debian 软件包已经使用了 SSL,尽管它带有一个几乎没用的自签名证书。将其配置为使用您自己的证书:
ssl = 是 ssl_cert = </etc/ssl/private/diti.me-mail.pem ssl_key = </etc/ssl/private/diti.me-mail.key
6.现在您可以向外发送邮件并接收邮件了。仍然需要配置 Postfix 以允许您通过 SMTP 与邮件客户端连接来从外部发送。
首先告诉 Postfix 使用 Dovecot 来验证登录。以下说明主要取自Dovecot 的 wiki。
Dovecot/etc/dovecot/conf.d/10-master.conf需要监听 Postfix 可以访问的套接字;默认配置已经有一个注释掉的例子:
服务认证{
...
unix_listener /var/spool/postfix/private/auth {
模式 = 0660
用户 = 后缀
组 = 后缀
}
...
}
并且 Postfix 需要使用它——/etc/postfix/main.cf再次:
# 验证 smtpd_sasl_type = dovecot smtpd_sasl_path = 私有/身份验证 # 另一种可能的类型是“cyrus”,对于 Cyrus SASL 'saslauthd' #守护进程。我在这里选择 Dovecot,因为它作为 SASL 服务器运行良好,并且 # 让它处理两个守护进程的身份验证更简单。
7.注意上面没有设置smtpd_sasl_auth_enable任何地方。当前的约定是不全局启用 SMTP 身份验证,而是将 tcp/25 纯粹作为“服务器到服务器”SMTP 端口。同时,来自用户的新消息通过 tcp/587(“邮件提交”端口)上的 SMTP 被接受,这需要身份验证。一些 ISP 甚至会因为垃圾邮件而阻止 tcp/25,但保持 tcp/587 打开,因为它通常更安全。
/etc/postfix/master.cf使用 SASL 身份验证在 中启用“提交”端口。默认master.cf已经有必要的行,只需要取消注释,尽管其中一些仍然应该被排除在外。
提交 inet n - - - - smtpd
-o syslog_name=后缀/提交
-o smtpd_tls_security_level=加密
# “提交”端口将需要 TLS,而不是使其成为可选
-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
# 这四个选项可以不注释掉;如果启用,他们会
# 期望您在“main.cf”中设置自定义限制规则,但是
# 默认的就好了。
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# 默认的recipient_restrictions 检查IP地址和
# $mydestination. 对于“提交”端口,允许所有内容
# 作为用户登录,但拒绝所有匿名邮件。
-o milter_macro_daemon_name=起源
# 如果您稍后决定设置 DKIM 代理等,这将允许
# 用于区分用户提交的邮件和收到的传入邮件。
# 它是默认配置的一部分,因此也包含在这里。
如果您有一个需要旧式“隐式 SSL”端口 (tcp/465) 的邮件客户端,您可以取消注释中的smtps行master.cf- 如果您这样做,请保持与submission端口类似的设置。
8.最后为您的帐户设置别名,通过编辑/etc/aliases. 的postmaster别名基本上需要; 如果您的邮件服务器出现问题,这是联系点。指向root和其他类似的别名也很好。
基本格式记录在 aliases(5) 中:
postmaster: root
admin: root
root: diti
kra: diti
Run Code Online (Sandbox Code Playgroud)
每次编辑此文件时使用postalias或newaliases更新散列数据库/etc/aliases.db。
现在,diti就 Postfix 和 Dovecot 而言,您仍然有一个被调用的帐户,但是发送到的邮件kra@...也会转发到那里。某些邮件客户端(例如 Thunderbird)支持单个邮件服务器的多个“身份”或“角色”,因此您可以在不同的“发件人:”地址之间进行选择。
就是这样。稍后我可能会返回有关 procmail、虚拟域、SPF 和/或 DKIM 的说明。
| 归档时间: |
|
| 查看次数: |
17250 次 |
| 最近记录: |