Envia e-mails de uma VM quando o postfix está na outra VM no mesmo servidor

5

Eu tenho um servidor com apenas um IP com três VMs em execução:

  • http-proxy - IP 10.77.77.254
  • email - IP 10.77.77.101
  • services - IP 10.77.77.104

No Host eu seleciono com iptables, qual porta vai para qual servidor. Eu configurei todas as portas de e-mail como 25, 143, ... para o email VM.

As portas 80 e 443 vão para o http-proxy que decide qual domínio vai para qual VM. Tenho scripts PHP, Ruby e Rust em ambos os VMS em execução: services VM e email VM.

O email VM com postfix e courier funciona bem como meu servidor de e-mail (e mais). Pode enviar e receber e-mails bem. Também scripts nesse servidor como php podem enviar e receber emails lá. Há também algumas contas de usuário no email VM que possuem suas caixas de email.

Como preciso configurar minha outra services VM no mesmo host para que os scripts nessa VM também possam enviar e-mails?

    
por rubo77 19.06.2018 / 23:18

2 respostas

5

Na realidade, a resposta para o services VM pode ser ... depende. Se for aplicativos, você pode apontá-los para o e-mail: 25 / TCP.

Se estamos falando de daemons / serviços, você configura ambos nas services e http-proxy VMs:

  • no exim, como smarthost email

  • um simples postfix com um relayhost configurado para apontar para o host email . Como em main.cf :

    relayhost = email
    
  • Ou você pode configurar um encaminhador SMTP leve como ssmtp , que apenas encaminha os e-mails enviados pela API sendmail compatível.

Em ssmtp.conf , você define então:

hostname=FQDN  # full DNS name of your server where 'ssmtp' is installed
mailhub=email  # name or IP address of your central SMTP server

sSMTP - SMTP simples

sSMTP is a simple MTA to deliver mail from a computer to a mail hub (SMTP server). sSMTP is simple and lightweight, there are no daemons or anything hogging up CPU; Just sSMTP. Unlike Exim4, sSMTP does not receive mail, expand aliases, or manage a queue.

    
por 20.06.2018 / 00:54
3

Uma solução é configurar um cliente nulo de pós-correção na máquina services .

Dessa forma, o postfix na máquina services encaminhará os e-mails para o postfix na máquina email .

Como:

1- instale o postfix na máquina services :

$ yum install postfix

2- Configure services postfix da máquina para retransmitir emails para a máquina email , mantenha os colchetes ligados se você estiver usando um nome de domínio.

EDITAR:

O uso de barckets evita a pesquisa de registros MX do DNS.

$ postconf -e "relayhost=[email.example.com]"

3- Deixe o servidor de correio do Postfix na máquina services ouvir apenas na interface de loopback para que os emails sejam entregues.

postconf -e "inet_interfaces=loopback-only"

4- Altere a configuração do cliente nulo para que os e-mails originados da rede IPv4 127.0.0.0/8 e da rede IPv6 [:: 1] / 128 sejam encaminhados para o host de retransmissão pelo cliente nulo local.

$ postconf -e "mynetworks=127.0.0.0/8 [::1]/128"

5- Configure o Postfix para que todos os e-mails enviados tenham seu domínio de remetente reconfigurado para o domínio email machine email.example.com.

postconf -e "myorigin=email.example.com"

EDITAR:

Não há colchetes aqui porque essa é apenas uma string que substituirá o nome do domínio do remetente da máquina services .

6- Reinicie o cliente nulo do postfix local.

$ systemctl restart postfix
    
por 10.07.2018 / 17:08