Назад | Перейти на главную страницу

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

Но я все еще могу использовать 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

Это мой конфиг:

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

Есть идеи, как я могу запретить людям отправлять электронную почту без аутентификации?

Вы настроили свой сервер на требование аутентификации при отправке почты с использованием SMTP. Однако, когда вы используете mailx, вы обходите SMTP и напрямую вводите почту. То же самое и с php-скриптом - он не использует SMTP, он использует локальный почтовый агент на локальном компьютере. Обычно вы хотите, чтобы этот агент мог отправлять почту, поскольку это программа, используемая, например, cron для отправки информации о проблемах, возникающих на сервере.

Насколько я знаю, вы не можете требовать аутентификации для писем, отправленных с использованием sendmail / postdrop / mailx, но вы жестяная банка ограничить, кому разрешено его использовать, используя authorized_submit_users. По умолчанию это «любой», вы можете заменить его списком имен пользователей или поиском. Итак, если вы хотите, чтобы root мог отправлять письма (что, безусловно, рекомендуется!), Но никому другому, строка будет

 authorized_submit_users = root

Больше информации на постфиксные документы