Gostaria de me livrar do Google como provedor de e-mail e configurar uma solução completa de e-mail no meu servidor dedicado. A questão: desejo que a configuração seja a mais simples possível, para que não seja difícil configurar tudo novamente se houver algum problema.
Pré-requisitos
- Apenas uma conta de usuário na máquina.
- (nome
diti
; email principal[email protected]
; outros apelidos são redirecionados, mas um cliente de email pode gerenciar os diferentes apelidos e reagir de acordo)
- (nome
- De preferência, não usa MySQL.
- (no caso de backup e restauração de dados, bem como por uma questão de simplicidade, é melhor se não for necessário instalar e proteger o MySQL antes de obter um servidor de e-mail funcional)
- O e-mail pode ser acessado (IMAP e SMTP) a partir do exterior.
- Criptografia SSL / TLS para autenticação IMAP e SMTP (estou usando certificados CAcert , isso importa?).
Acredito que simplicidade, acesso IMAP / SMTP e autenticação segura são os recursos "básicos" que todos desejam sair do Google / qualquer outra coisa que desejem. Se eu estiver enganado e houver uma solução mais simples (por exemplo, uma solução do tipo ownCloud, com tudo incluído), ficaria feliz em ouvir.
Eu acho que a combinação de Postfix e Dovecot seria o caminho a percorrer. A propósito, estou executando o Debian.
As informações que encontrei até agora
- Um artigo em francês descreve em detalhes muito longos como configurar uma solução de email completa e segura. É longo, mais difícil de manter, mais difícil de fazer backup e restauração, etc. Além disso, é necessário um cache DNS?
- O wiki do Gentoo (
Complete_Virtual_Mail_Server/SSL_Certificates
página) menciona o uso de certificados CAcert, mas não é claro sobre isso (todos essesSubjectAltName
subdomínios são necessários?), Nem usa o Postfix (li que Courier é mais difícil). - Vários tutoriais sobre auto-hospedagem, todos diferentes, raramente descrevendo o que estão fazendo e por que (o e-mail auto-hospedado com acesso remoto parece complicado de configurar, então por que apenas fornecer uma lista de comandos sem explicação para "manequins?") .
Espero ter perguntado as coisas certas e que elas não sejam muito bobas.
Respostas:
Não, não é necessário configurar um cache DNS no servidor. O servidor deve usar um resolvedor de DNS em cache em algum lugar próximo, mas a maioria das empresas de hospedagem já executa seus próprios resolvedores para todo o datacenter e configura servidores para usá-los por padrão.
Por padrão, o Postfix e o Dovecot usam contas locais para tudo. Se você tiver uma conta Linux nomeada
diti
, poderá efetuar login no Dovecot com ela e configurar o Postfix para validar logins SMTP no Dovecot .Se você não conseguir fazer com que todo o correio vá para a mesma conta, é possível configurar aliases simples (como em
/etc/aliases
) para redirecionar o correio para a contakra@
oupostmaster@
paraditi
ela.Todos esses subjectAltNames não são necessários. Os únicos que você precisa são de nomes de domínio que você realmente usará , por exemplo,
mail.diti.me
ouglaux.diti.me
. Não tenho certeza se você precisa incluir o próprio domínio (ou sejaditi.me
).O seguinte pressupõe que o domínio já tenha registros MX configurados para apontar para este servidor. Geralmente, tento manter minha configuração razoavelmente clara, pois sempre acabo me perguntando "o que diabos é isso" alguns meses depois.
1. Primeiro, instale o
postfix
edovecot-imapd
pacotes. Quando solicitado sobre a configuração do Postfix, selecione a opção "Site da Internet" e digitediti.me
como o nome do email. Nesse momento, você já pode enviar e receber emails como[email protected]
e provavelmente até conectar-se ao IMAP.No entanto, ele ainda não possui SSL, nem permite o envio de email por SMTP de fora, nem um local seguro para armazenar emails (o padrão é um arquivo mbox
/var/mail
, que não é confiável e apresenta desempenho ruim, especialmente com IMAP).2. Se você já possui um certificado SSL, insira-
/etc/ssl/private/diti.me.pem
o e a chave privada/etc/ssl/private/diti.me.key
. A localização exata não importa, mas/etc/ssl/private
é onde o Debian as mantém.Verifique se os dois arquivos pertencem e são legíveis pelo
ssl-cert
grupo, para que Postfix e Dovecot possam acessá-los. Adicione também as contas dos dois daemons a esse grupo usandogpasswd -a
.3. O Postfix gerado automaticamente pelo Debian também
main.cf
é um pouco confuso, então vou publicar uma versão mínima limpa:Para o Dovecot, o Debian apenas usa os exemplos de configuração padrão, e eles são bons o suficiente, com cada opção descrita.
Sempre que você alterar a configuração, recarregue daemons com
postfix reload
e / oudoveadm reload
.4. Por padrão, o Postfix envia mensagens para
/var/mail/$USER
o formato mbox , o que é bastante simples (você pode visualizá-lo facilmente com um editor de texto), mas possui muitos problemas, principalmente com IMAP, pois o arquivo inteiro deve ser reescrito sempre que você move um mensagem ou marque uma como "lida" ou "não lida".Altere os dois daemons para usar o Maildir. (Existem outros formatos, mas eles tendem a ser específicos para o servidor MTA ou MDA ou IMAP ou o que for; o Maildir é amplamente suportado.)
Em
/etc/postfix/main.cf
, adicione o seguinte à seção "Entrega":Configure o Dovecot para usar o mesmo caminho, em
/etc/dovecot/conf.d/10-mail.conf
:5. Em algum momento, você precisa dizer ao Dovecot para usar SSL também. As definições relevantes estão em
/etc/dovecot/conf.d/10-ssl.conf
. De fato, o pacote Debian para Dovecot já usa SSL, embora com um certificado autoassinado que seja praticamente inútil. Configure-o para usar seu próprio certificado:6. Agora você pode enviar e-mail para fora e recebê-lo. Ainda é necessário configurar o postfix para permitir que você enviar a partir de fora, conectando com o seu cliente de correio através de SMTP.
Primeiro, diga ao Postfix para usar o Dovecot para verificar os logins. As instruções a seguir são tiradas principalmente do wiki de Dovecot .
Dovecot
/etc/dovecot/conf.d/10-master.conf
precisa escutar em um soquete que o Postfix pode acessar; a configuração padrão já possui um exemplo comentado:E o Postfix precisa usá-lo -
/etc/postfix/main.cf
novamente:7. Observe que o acima não foi definido em
smtpd_sasl_auth_enable
nenhum lugar. A convenção atual é não habilitar a autenticação SMTP globalmente, mas manter o tcp / 25 unicamente como uma porta SMTP "servidor para servidor". Enquanto isso, novas mensagens dos usuários são aceitas pelo SMTP no tcp / 587, a porta "envio de email", que requer autenticação. Alguns ISPs até bloqueiam o tcp / 25 por causa de spam, mas mantêm o tcp / 587 aberto, pois geralmente é mais seguro.Ative a porta "Envio" em
/etc/postfix/master.cf
, com autenticação SASL. O padrãomaster.cf
já possui as linhas necessárias que precisam ser removidas, embora algumas ainda devam ser deixadas de fora.Se você tiver um cliente de correio que exija uma porta "SSL implícita" do estilo antigo (tcp / 465), poderá descomentar as
smtps
linhasmaster.cf
- se precisar, mantenha as configurações semelhantes às dasubmission
porta.8. Por fim, configure aliases para sua conta, editando
/etc/aliases
. Opostmaster
alias é basicamente necessário; é o ponto de contato se houver problemas com seu servidor de correio. Apontarroot
e outros aliases semelhantes também são bons.O formato básico está documentado nos aliases (5):
Use
postalias
ounewaliases
para atualizar o banco de dados hash/etc/aliases.db
toda vez que você editar este arquivo.Agora, você ainda tem uma conta chamada
diti
Postfix e Dovecot, mas as mensagens enviadaskra@...
também são encaminhadas para lá. Alguns clientes de correio (por exemplo, Thunderbird) suportam várias "identidades" ou "personas" para um único servidor de correio, para que você possa selecionar entre diferentes endereços "De:".É sobre isso. Posso retornar com instruções para procmail, domínios virtuais, SPF e / ou DKIM posteriormente.
fonte
mail.diti.me
(= o endereço IP do meu servidor) para IMAP e SMTP, meu domínio já possui os registros MX. Fiz alguma coisa errada durante a configuração do meu servidor ou apenas tenho problemas com o Thunderbird?ps auxw | grep "dovecot"
? Comparei com a configuração complexa de um dos meus amigos, e ele temdovecot-auth
eimap-login
que eu não tenho. Seria possível que as portas estivessem realmente abertas (não me lembro de usar um firewall), mas sem um daemon configurado para ouvir essas portas de fora, ou algo assim? Quando eu corroopenssl s_client -connect mail.diti.me:993
no servidor, ele funciona (e diz "Dovecot ready".), Mas nada do lado de fora. Talvez eu deva tentar instalar um firewall e permitir explicitamente essas portas?dovecot
,dovecot/anvil
,dovecot/log
, e outros. Além disso, alguns processos são iniciados apenas quando alguém se conecta ou apenas ao verificar detalhes de autenticação.iptables -n -v -L
para verificar se existem regras para descartar pacotes.