我想在 Debian VPS 上运行 Postfix 以从我的应用程序发送电子邮件。应用程序(在其他 VPS 上运行)将通过 SMTP 连接到 Postfix。Postfix 不必处理传入的电子邮件;这只是关于发送传出的消息。
为防止成为开放中继,应使用 SASL 身份验证。但是,我不想为 SASL 身份验证运行 Dovecot 或 MySQL。
如何使用简单文件(包含用户名和密码)设置 SASL 身份验证?
我已经找到了一个类似的问题;然而,那里没有给出令人满意的答案。
Jen*_*y D 17
Postfix 目前只支持两种 SASL 认证方式。其中之一是Dovecot,这是您不想要的。另一个是 Cyrus,它与您想要的东西尽可能接近,而无需重写 Postfix。它确实涉及运行单独的身份验证守护程序 ( saslauthd),但身份验证文件易于编辑和更新。
可以在postfix 文档站点 中找到使用 Cyrus SASL 的基础知识,但这里有一个简短的描述。如果有任何令人困惑的地方,请查看链接!
首先使用插件安装 Cyrus SASL sasldb。(如何做到这一点留给读者作为练习;想必在您的 unix 品牌使用的任何软件包系统中都有一个软件包。)由于 Postfix 和 SASL 之间的通信将通过 unix 域套接字进行,您可能想要将 postfix 添加到 SASL 组,并确保该组对目录具有读取和执行权限/var/run/saslauthd。
通过编辑 /etc/sasl2/smtpd.conf 配置 SASL 以使用 sasldb:
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM
Run Code Online (Sandbox Code Playgroud)
sasldb 插件意味着 sasl 将使用 Berkeley DB 文件作为用户名和密码。您可以使用以下命令添加用户saslpasswd2:
$ saslpasswd2 -c -u example.com username
Password:
Again (for verification):
Run Code Online (Sandbox Code Playgroud)
请注意,您将域与用户名一起指定,用户在进行身份验证时需要使用“username@example.com”而不仅仅是“username”。
您可以通过运行来验证输入了哪些用户sasldblistusers2。
启动 saslauthd,并通过执行以下操作验证身份验证是否有效
testsaslauthd -u username@example.com -p password
Run Code Online (Sandbox Code Playgroud)
完成后,通过编辑 /etc/postfix/main.cf 来告诉 Postfix 使用 SASL 并告诉 Cyrus 它是 SMTP 进行身份验证
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
Run Code Online (Sandbox Code Playgroud)
然后,重新加载postfix,你应该设置好了。
| 归档时间: |
|
| 查看次数: |
17637 次 |
| 最近记录: |