Postfix permite apenas usuários autenticados

2

Eu tenho o postfix instalado e configurado para que apenas usuários autenticados possam retransmitir. Se eu testá-lo com o telnet isso parece funcionar

 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:[email protected]
 250 2.1.0 Ok
 rcpt to:[email protected]
 554 5.7.1 <[email protected]>: Relay access denied

Mas ainda posso usar o mailx sem autenticação. Também com mail do php

echo "test" | mailx -s test [email protected]

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=<[email protected]> May 16 10:58:21 mx3
postfix/qmgr[10233]: D9634C00B1: from=<[email protected]>, size=275, nrcpt=1
(queue active) May 16 10:58:22 mx3 postfix/smtp[10274]: D9634C00B1:
to=<[email protected]>, 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

Esta é minha configuração:

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

Alguma ideia de como posso evitar que pessoas enviem e-mails sem autenticar?

    
por Chris 16.05.2013 / 11:13

1 resposta

7

Você configurou seu servidor para exigir autenticação quando o email é enviado usando o SMTP. No entanto, quando você está usando o mailx, você está ignorando o SMTP e injetando o email diretamente. O mesmo vale para o script php - ele não está usando o SMTP, ele está usando o agente de email local na máquina local. Normalmente, você quer que o agente possa enviar e-mails, já que é o programa usado, por exemplo, cron para enviar informações sobre problemas que ocorrem no servidor.

Tanto quanto eu sei, você não pode exigir autenticação de e-mails enviados usando sendmail / postdrop / mailx, mas pode restringir quem tem permissão para usá-lo, usando authorized_submit_users . O padrão é "qualquer pessoa", você pode substituí-lo por uma lista de nome de usuário ou uma pesquisa. Então, se você quiser que o root possa enviar e-mails (o que certamente é recomendado!), Mas ninguém mais, a linha seria

 authorized_submit_users = root

Há mais informações em os documentos postfix

    
por 16.05.2013 / 11:39