Retransmissão de postfix aberto. Como configurar isso não é?

2

Eu configurei o Postfix, mas estou tendo problemas com a configuração.

Sempre que eu costumava enviar e-mails para o servidor, ele rejeita 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 é um retransmissor aberto (obviamente não intencional).

Como posso resolver isso? Obviamente, quero que qualquer pessoa possa enviar meu domínio por e-mail, mas não tenho certeza da configuração.

Eu sei que posso alterar o mynetworks , mas isso não restringe quem pode enviar e-mails para o servidor?

    
por Lock 29.08.2012 / 14:46

4 respostas

4

mynetworks só deve conter 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 seu servidor incluem mydestination e virtual_mailbox_domains - leia os documentos aqui ou aqui .

    
por 29.08.2012 / 14:58
4

O problema que te abre é o

mynetworks = 0.0.0.0/0

Porque em algum lugar abaixo você provavelmente está listado em

smtpd_recipient_restrictions = ... permit_mynetworks ...

Se você precisa ser capaz de enviar e-mail de qualquer ip, então você só precisa habilitar um usuário / senha para enviar um e-mail, o qual o comum é sasl

    
por 29.08.2012 / 15:00
2

Conforme documentado no link :

mynetworks (default: see "postconf -d" output)
The list of "trusted" remote SMTP clients that have more privileges than "strangers".

In particular, "trusted" SMTP clients are allowed to relay mail through Postfix.
See the smtpd_recipient_restrictions parameter description in the postconf(5) manual.

    
por 29.08.2012 / 15:57
0

use a autenticação somente 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 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
    
por 15.07.2014 / 22:30