Configurando o sendmail atrás de um firewall
-
09-06-2019 - |
Pergunta
Estou configurando um servidor que está em uma rede protegida por um firewall e quero que os programas neste computador possam usar o sendmail para enviar e-mails para qualquer endereço de e-mail.Temos um servidor SMTP em execução nesta rede (vamos chamá-lo de mailrelay.example.com), que é como devemos receber e-mails enviados através do firewall.
Então, como configuro o sendmail para enviar todos os e-mails através de mailrelay.example.com?A pesquisa no Google ainda não me deu a resposta e apenas revelou que a configuração do sendmail é extremamente complexa e irritante.
Solução
@eli:modificar sendmail.cf diretamente geralmente não é recomendado, pois ele é gerado pelo compilador de macro.
Edite /etc/mail/sendmail.mc para incluir a linha:
define(`SMART_HOST',`mailrelay.example.com')dnl
Depois de alterar o arquivo de configuração de macro sendmail.mc, ele deve ser recompilado para produzir o arquivo de configuração do Sendmail.
# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
E reinicie o serviço sendmail (Linux):
# /etc/init.d/sendmail restart
Além de configurar o smarthost, você também pode querer desabilitar a configuração de resolução de nomes e possivelmente mudar seu sendmail para uma porta não padrão ou desabilitar o modo daemon.
Desativar resolução de nomes
Os servidores que estão dentro de redes de paredes de fogo ou usando a tradução de endereços de rede (NAT) podem não ter serviços DNS ou NIS disponíveis.Isso cria um problema para o Sendmail, pois usará o DNS por padrão e, se não estiver disponível, você verá mensagens como esta no MailQ:
host map: lookup (mydomain.com): deferred)
A menos que você esteja preparado para configurar um serviço DNS ou NIS apropriado que o Sendmail possa usar; nessa situação, você normalmente configura a resolução de nomes a ser feita usando o arquivo /etc /hosts.Isso é feito ativando um arquivo 'Service.switch' e especificando resolução por arquivo, como segue:
1:Enable Service.switch para sendmail edit /etc/mail/sendmail.mc para incluir as linhas:
define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl
2:Configure Service.switch para arquivos Criar ou modificar /etc/mail/service.switch para se referir apenas a/etc/hosts para resolução de nome:
# cat /etc/mail/service.switch
hosts files
3:Recompile sendmail.mc e reinicie o sendmail para que esta configuração tenha efeito.
Mude o sendmail para uma porta não padrão ou desative o modo daemon
Por padrão, o sendmail escutará na porta 25.Você pode alterar esta porta ou desativar completamente o modo de daemon sendmail por vários motivos:- Se houver uma política de segurança que proíba o uso de portas conhecidas - se outro produto/processo SMTP estiver em execução no mesmo host na porta padrão - se você não quiser aceitar e -mails via SMTP, apenas Envie -o usando sendmail
1:Para mudar o sendmail para usar uma porta não padrão.Edite /etc/mail/sendmail.mc e modifique a configuração "Porta" na linha:
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
Por exemplo, para fazer com que o sendmail use a porta 125:
DAEMON_OPTIONS(`Port=125,Addr=127.0.0.1, Name=MTA')
Isso exigirá que o sendmail.mc seja recompilado e o sendmail seja reiniciado.
2:Como alternativa, para desativar o Modo do Daemon Sendmail (Linux) Editar/etc/sysconfig/sendmail e modificar a configuração "Daemon" para:
DAEMON=no
Esta alteração exigirá que o sendmail seja reiniciado.
Outras dicas
http://www.elandsys.com/resources/sendmail/smarthost.html
Sendmail Smarthost
Um Smarthost é um host através do qual o correio de saída é transmitido.Alguns ISPs bloqueiam o tráfego SMTP de saída (porta 25) e exigem que seus usuários enviem todos os e -mails através do servidor de email do ISP.O Sendmail pode ser configurado para usar o servidor de email do ISP como o host inteligente.
Leia o artigo vinculado para obter instruções sobre como configurar isso.
@Espo:Obrigado pelo ótimo conselho sobre por onde começar.Seu link teria sido melhor se eu estivesse configurando o sendmail para seu primeiro uso, em vez de pegar uma configuração existente e fazer essa pequena alteração.Porém, quando aprendi a procurar coisas no "SmartHost", encontrei uma maneira mais fácil.
Tudo que tive que fazer foi editar meu arquivo /etc/mail/sendmail.cf para alterar
DS
para
DSmailrelay.example.com
então reinicie o sendmail e funcionou.