
Eu configurei o Postfix, mas estou tendo problemas com a configuração.
Sempre que eu enviava e-mails para o servidor, ele rejeitava meus e-mails dizendo 'Relaying Denied', então alterei o seguinte em main.cf
:
mynetworks = 0.0.0.0/0
mynetworks_style = subnet
Agora posso enviar e-mail e funciona, mas os testes MX dizem que é uma retransmissão aberta (obviamente não intencional).
Como posso resolver isto? Obviamente, quero que qualquer pessoa possa enviar e-mail para meu domínio, mas não tenho certeza da configuração.
Eu sei que posso alterar o mynetworks
, mas isso não restringe quem PODE enviar e-mail para o servidor?
Responder1
O problema que te abre é o
mynetworks = 0.0.0.0/0
Porque em algum lugar abaixo você provavelmente o tem listado em
smtpd_recipient_restrictions = ... permit_mynetworks ...
Se você precisar enviar e-mail de qualquer ip, basta ativar um usuário/senha para enviar e-mail, cujo comum é sasl
Responder2
mynetworks deve conter apenas usuários confiáveis que possam usar o servidor para retransmitir e-mails para outros domínios - caso contrário, como você descobriu, é uma retransmissão aberta. Você pode querer configurá-lo para 192.168.0.0/16, 10/8 ou 172.16.0.0/12 se estiver usando endereços RFC 1918 em sua rede interna.
As configurações que controlam se as pessoas podem enviar e-mails para o seu servidor incluem mydestination e virtual_mailbox_domains - leia a documentaçãoaquiouaqui.
Responder3
Conforme documentado emhttp://www.postfix.org/postconf.5.html#mynetworks:
mynetworks (padrão: consulte a saída "postconf -d")
A lista de clientes SMTP remotos "confiáveis" que possuem mais privilégios que "estranhos".Em particular, clientes SMTP “confiáveis” podem retransmitir mensagens através do Postfix.
Veja a descrição do parâmetro smtpd_recipient_restrictions no manual postconf(5).
Responder4
use autenticação apenas para o seu ip: main.cf
smtpd_recipient_restrictions =
permit_mynetworks
reject_unauth_destination
use o arquivo para armazenar seu ip main.cf:
mynetworks = hash:/etc/postfix/network_table
Use o script para atualizar seu ip se mudar (executar no cron)
#!/bin/bash
###
## sh /sx_sys/postfix_mynetwork_ip_checker.sh
LOGFILE="/var/log/smtp_relay.log"
curent_ip=$(dig @exemple.com exemple.com | awk '/^;; ANSWER SECTION:$/ { getline ; print $5 }')
#echo $curent_ip
saved_ip=$(</etc/postfix/network_table )
#echo $saved_ip
if [ "$curent_ip OK" != "$saved_ip" && -n "$curent_ip"]; then
echo "$curent_ip OK" > "/etc/postfix/network_table"
postmap /etc/postfix/network_table
echo "$(date) smtp allow for $curent_ip" >> $LOGFILE 2>&1
mail -s "smtp allow for $curent_ip $(date)" [email protected] < /dev/null
fi
exit 0