Chr*_*ris 2 smtp postfix authentication
我已经安装并配置了 postfix,以便只有经过身份验证的用户才能中继。如果我用 telnet 测试它似乎有效
root@mx3:/var/log# telnet localhost smtp
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mx3.xxx.ch ESMTP Postfix (Debian/GNU)
ehlo xxx.ch
250-mx3.zoee.ch
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH DIGEST-MD5 NTLM CRAM-MD5 LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:test@xxx.ch
250 2.1.0 Ok
rcpt to:chris@sanc.ch
554 5.7.1 <chris@sanc.ch>: Relay access denied
Run Code Online (Sandbox Code Playgroud)
但是我仍然可以在没有身份验证的情况下使用 mailx。还有php的邮件
echo "test" | mailx -s test chris@sanc.ch
May 16 10:58:21 mx3 postfix/pickup[10232]: D9634C00B1: uid=0
from=<root> May 16 10:58:21 mx3 postfix/cleanup[10273]: D9634C00B1:
message-id=<20130516085821.D9634C00B1@mx3.xxx.ch> May 16 10:58:21 mx3
postfix/qmgr[10233]: D9634C00B1: from=<root@xxx.ch>, size=275, nrcpt=1
(queue active) May 16 10:58:22 mx3 postfix/smtp[10274]: D9634C00B1:
to=<chris@sanc.ch>, relay=mx.sanc.ch[80.219.217.116]:25, delay=0.68,
delays=0.11/0.01/0.48/0.08, dsn=2.0.0, status=sent (250 2.0.0 Ok:
queued as BCA917F9A7) May 16 10:58:22 mx3 postfix/qmgr[10233]:
D9634C00B1: removed
Run Code Online (Sandbox Code Playgroud)
这是我的配置:
myhostname = mx3.xxx.ch
mydomain = xxx.ch
myorigin = $mydomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mx3.xxx.ch, localhost, localhost.localdomain
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_sasl_authenticated,reject_unauth_destination,check_relay_domains
Run Code Online (Sandbox Code Playgroud)
知道如何防止人们在未经身份验证的情况下发送电子邮件吗?
您已将服务器设置为在使用 SMTP 发送邮件时要求进行身份验证。但是,当您使用 mailx 时,您将绕过 SMTP 并直接注入邮件。php 脚本也是如此——它不使用 SMTP,而是使用本地机器上的本地邮件代理。通常您确实希望该代理能够发送邮件,因为它是例如 cron 用来发送有关服务器上发生的问题的信息的程序。
据我所知,您不能要求对使用 sendmail/postdrop/mailx 发送的邮件进行身份验证,但您可以使用authorized_submit_users. 默认有“任何人”,您可以将其替换为用户名列表或查找。因此,如果您希望 root 能够发送邮件(这当然是推荐的!),但没有其他人,该行将是
authorized_submit_users = root
Run Code Online (Sandbox Code Playgroud)
postfix 文档中有更多信息
| 归档时间: |
|
| 查看次数: |
6434 次 |
| 最近记录: |