Alguém poderia pensar que isso é uma coisa absolutamente simples, mas aparentemente não é - ou eu realmente sou péssimo nisso.
Contexto: Eu tenho um pequeno servidor doméstico que hospeda coisas como gerenciadores de tarefas (TaskWarrior), meu site, meu segurança de IRC, etc. Eu tento manter este servidor o mais seguro possível. Além disso, gostaria de mantê-lo bem conservado.
Achei que seria bom receber alguns e-mails periódicos/acionados por eventos deste servidor para detectar possíveis brechas de segurança, serviços com falha e outros problemas. A implementação real é irrelevante, eu apenas enviaria a mim mesmo as saídas de scripts de manutenção periódica ou talvez algumas palavras-chave dos arquivos de log.
O problema é que estou preso em simplesmente enviar um e-mail para o meu endereço. O que eu tentei:
- Eu preciso de um servidor SMTP para enviar o e-mail, então devo usar apenas o do meu provedor de serviços de e-mail, eu acho (mailbox.org). Ficou assim:
$ openssl s_client -connect smtp.mailbox.org:465
[...]
---
220 smtp2.mailbox.org ESMTP Postfix
HELO myhostname
250 smtp2.mailbox.org
MAIL FROM: me@myhostname
250 2.1.0 Ok
RCPT TO: [email protected]
554 5.7.1 <my-ip:30920>: Client host rejected: Access denied
Não tenho certeza se isso tem a ver com a autenticação no servidor. Eu tentei com smtp.gmail.com
também, mas recebi uma 530-5.5.1 Authentication Required
resposta para o meu MAIL FROM
lá. No entanto, prefiro evitar o Google de qualquer maneira.
Supondo que a falha seja devido à necessidade de autenticação, enfrento outro problema: claro, eu poderia apenas dizer ao meu MTA (digamos
dma
oumsmtp
) minha senha para minha conta do mailbox.org, não parece uma boa ideia. Não tenho experiência suficiente em configurar a segurança para ter certeza de que meu servidor não será invadido facilmente. Eu sei que, uma vez que o acesso root é obtido, estou perdido, mas ainda posso atenuar o dano por não sei, não tendo minhas senhas de texto sem formatação espalhadas pelo servidor? Normalmente, eu os mantenho criptografados com GPG usandopassword-store
.Talvez eu deva executar meu próprio servidor SMTP? No entanto, não posso usar meu domínio para isso, pois configurei a caixa de correio.org com e-mails de meus próprios domínios, portanto, meus registros DNS MX apontam para seus servidores. Eu realmente não quero comprar outro domínio só para isso...
Resumo & TL;DR
Existe alguma maneira de simplesmente enviar e-mails para meu próprio endereço fornecido por mailbox.org do meu servidor sem
- executando e mantendo um servidor SMTP complexo no meu servidor
- ter que expor informações confidenciais, como minha senha no servidor para fazer login no servidor SMTP do provedor?
Se você deseja apenas enviar e-mail para sua conta do mailbox.org; você pode configurar seu cliente de e-mail para enviar e-mails diretamente para os servidores MX da mailbox.org. Isso só permitirá que você envie e-mails para
@mailbox.org
contas, não para o resto da Internet. Isso ocorre porque os servidores SMTP com a função "MX" não permitirão emails que não sejam para seu próprio destino (ou pelo menos não deveriam :) ).Use
mx1.mailbox.org
como servidor SMTP, na porta 25, não autenticado.Por exemplo:
Respondendo a parte sobre o envio de e-mails com o Gmail não funcionando, pois encontrei o mesmo problema:
Para enviar e-mails usando o smtp do google, você deve ativar uma configuração chamada apps menos seguros, caso contrário, não funcionará, encontrada em: conta do google, segurança, apps menos seguros. Depois disso, você pode usar seu comando de email favorito (mail, sendmail, sendemail, ssmtp ..), lembre-se de ativar a opção tls para esse comando.
Em termos de segurança, crie um endereço especificamente para esse fim e você é bom.
Se isso não for bom o suficiente, você pode ativar a autenticação de dois fatores para sua conta do Gmail de propósito único, gerar uma senha de aplicativo (também em conta, segurança) e armazená-la em seu servidor e usá-la no lugar da senha (você não pode use sua senha para enviar e-mails com 2FA ativado, você deve usar uma senha de aplicativo).
Exemplo com o comando sendemail: