Servidor de e-mail de trabalho de repente quebrado

2

Tudo bem, então o segundo plano neste servidor é: Eu instalei o postfix / dovecot / spamassassin / opendkim em um servidor Ubuntu 14.04 em execução no AWS. Depois de puxar meu cabelo para fora, tudo funcionou. Porque, oh porque, eu não deixei a maldita coisa sozinha - bem, nunca saberemos a resposta para isso. Eu atualizei para o Ubuntu 16.04, e tudo realmente funcionou após a atualização! Eu tinha feito uma imagem de backup apenas no caso, mas para colocar as coisas em funcionamento exigia apenas uma única mudança em um arquivo de configuração.

E então, por alguma razão inexplicável, meu IP residencial mudou (é para ser estático, eu tenho o mesmo IP por mais de um ano e meio agora).

Agora, quando tento enviar um e-mail do Thunderbird, recebo isso em /var/log/mail.log:

Sep  4 14:03:19 ip-x-x-59-35 postfix/master[2746]: reload -- version 3.1.0, configuration /etc/postfix
Sep  4 14:03:30 ip-x-x-59-35 postfix/smtpd[2933]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
Sep  4 14:03:30 ip-x-x-59-35 postfix/smtpd[2933]: connect from unknown[x.x.x.61]
Sep  4 14:03:30 ip-x-x-59-35 postfix/smtpd[2933]: warning: connect to Milter service unix:/opendkim/opendkim.sock: Connection refused
Sep  4 14:03:30 ip-x-x-59-35 postfix/smtpd[2933]: Anonymous TLS connection established from unknown[x.x.x.61]: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
Sep  4 14:03:30 ip-x-x-59-35 postfix/smtpd[2933]: NOQUEUE: reject: RCPT from unknown[x.x.x.61]: 550 5.7.25 Client host rejected: cannot find your hostname, [x.x.x.61]; from=<blanked> to=<blanked> proto=ESMTP helo=<[192.168.0.10]>
Sep  4 14:03:32 ip-x-x-59-35 postfix/smtpd[2933]: disconnect from unknown[x.x.x.61] ehlo=2 starttls=1 auth=1 mail=1 rcpt=0/1 quit=1 commands=6/7

O único local onde o meu IP está mesmo em um arquivo de configuração estava em /etc/postfix/main.cf, então eu fui lá e atualizei (para x.x.x.0 / 24, como era antes). Postfix reiniciado, ainda não está funcionando. Eu também estou extremamente confuso sobre por que o opendkim está recusando a conexão através do socket ...

Se alguém puder fornecer algum insight, será extremamente apreciado. Eu posso fornecer mais informações, conforme necessário. Eu inicialmente segui este tutorial de quatro partes sobre como configurar um servidor de e-mail. Meus arquivos de configuração são quase idênticos aos da parte 2 do tutorial.

EDIT: Eu comecei a olhar para trás através dos logs para a última semana (antes deste problema começar). O socket opendkim tem recusado conexões por um tempo agora, mas o servidor de email ainda estava funcionando enquanto isso acontecia. Eu notei uma grande diferença nos logs quando meu laptop se conecta ao servidor para enviar e-mails. Aqui está o que parecia antes da alteração do IP:

Aug 29 17:03:43 ip-35 postfix/smtpd[22986]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
Aug 29 17:03:43 ip-35 postfix/smtpd[22986]: connect from CPE00fc8d374753-CM00fc8d374750.cpe.net.cable.rogers.com[old.ip.138.5]
Aug 29 17:03:43 ip-35 postfix/smtpd[22986]: warning: connect to Milter service unix:/opendkim/opendkim.sock: Connection refused
Aug 29 17:03:43 ip-35 postfix/smtpd[22986]: Anonymous TLS connection established from **cpe00fc8d374753-cm00fc8d374750.cpe.net.cable.rogers.com**[old.ip.138.5]: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
Aug 29 17:03:43 ip-35 postfix/smtpd[22986]: 8931F80078: client=CPE00fc8d374753-CM00fc8d374750.cpe.net.cable.rogers.com[old.ip.138.5], sasl_method=PLAIN, [email protected]

Observe como há um nome de host antes do IP? Isso está faltando agora, e o erro que ele envia ao Thunderbird é que ele não consegue encontrar meu hostname. Eu acredito em configurar o servidor esta foi uma das opções de segurança que eu liguei. Estou realmente confuso sobre como consertá-lo sem comprometer a segurança do servidor de e-mail.

Além disso, a coisa opendkim é muito estranha. OpenDkim era a única coisa que eu tinha que mudar depois da mudança para 16.04 - por causa da mudança para systemctl (systemd), ele criara um novo arquivo para o serviço opendkim. Por alguma razão, o opendkim estava procurando em um lugar diferente por seu arquivo de configuração, então eu apenas adicionei um argumento para aquele arquivo .service para apontá-lo no arquivo de configuração /etc/opendkim.conf ... e funcionou bem. Eu verifiquei especificamente para ter certeza de que ele começou e funcionou corretamente. Então, estou realmente coçando minha cabeça.

    
por Aurelius 04.09.2016 / 20:14

1 resposta

1

O problema era de fato que meu ISP, por algum motivo estranho, não envia um nome de host junto com o meu IP para o meu servidor de e-mail quando eu enviar um e-mail. Então, por causa das smtpd_sender_restrictions e smtpd_recipient_restictions em /etc/postfix/main.cf, ele estava negando nomes de host desconhecidos.

Parecia assim:

smtpd_recipient_restrictions = reject_unknown_client_hostname, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_invalid_hostname, reject_non_fqdn_sender
smtpd_sender_restrictions = reject_unknown_sender_domain, reject_sender_login_mismatch

Você notará que allow_mynetworks vem após reject_unknown_client_hostname. Para consertar isso, eu apenas tive que mover permit_mynetworks para a frente da lista, e também a incluí na lista sender_restrictions. Na variável mynetworks, eu coloco meu IP específico em vez de terminá-lo em .0 para evitar que outros possam enviar (embora eles ainda precisem da minha senha). Eu não tenho certeza se estou mudando isso tem grandes reprecussões de segurança, e se alguém puder encontrar uma maneira melhor de resolvê-lo, eu agradeceria muito!

A coisa opendkim ainda não está funcionando, mas esse é um problema separado.

    
por 05.09.2016 / 00:01