
Gostaria de me livrar do Google como provedor de e-mail e configurar uma solução completa de e-mail em meu servidor dedicado. O problema: desejo que a configuração seja o 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
; e-mail principal[email protected]
; outros aliases são redirecionados, mas um cliente de e-mail pode gerenciar os diferentes aliases e reagir de acordo)
- (nome
- De preferência não usa MySQL.
- (no caso de backup e restauração de dados, bem como para simplificar, é melhor não instalar e proteger o MySQL antes de obter um servidor de e-mail funcional)
- O e-mail pode ser acessado (IMAP e SMTP) de fora.
- Criptografia SSL/TLS para autenticação IMAP e SMTP (estou usandoCAcertcertificados, isso importa?).
Acredito que simplicidade, acesso IMAP/SMTP e autenticação segura são os recursos “básicos” que todos que estão ansiosos para deixar o Google/seja lá o que for, gostariam. Se eu estiver enganado e houver uma solução mais simples (por exemplo, uma solução do tipo ownCloud, com tudo incluído), ficarei feliz em saber.
Acho que a combinação de Postfix e Dovecot seria o caminho a seguir. A propósito, estou executando o Debian.
As informações que encontrei até agora
- AArtigo francêsdescreve emmuitolongos detalhes sobre como configurar uma solução de e-mail completa e segura. É longo, mais difícil de manter, mais difícil de fazer backup e restaurar, 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 Postfix (li que Courier é mais difícil). - Vários tutoriais sobre auto-hospedagem, todos diferentes, raramente descrevendo o que estão fazendo epor que(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.
Responder1
Não, não é necessário configurar um cache DNS no servidor. O servidordeveuse um resolvedor DNS de cache que esteja 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, tanto o Postfix quanto o Dovecot usam contas locais para tudo. Se você tiver uma conta Linux chamada
diti
, poderá fazer login no Dovecot com ela e configurar o Postfix paravalidar logins SMTP no Dovecot.Se você concordar em fazer com que todos os e-mails vão para a mesma conta, poderá configurar aliases simples (como em
/etc/aliases
) para redirecionar os e-mails parakra@
oupostmaster@
para aditi
conta.Todos esses subjectAltNames não são necessários. Os únicos que você precisa são os nomes de domínio que você realmente vaiusar, por exemplo
mail.diti.me
ouglaux.diti.me
. Não tenho certeza se você precisa incluir o próprio domínio (ou seja,diti.me
).
O seguinte pressupõe que o domínio já possui registros MX configurados para apontar para este servidor. Geralmente tento manter minha configuração razoavelmente clara, já que sempre acabo me perguntando "para que diabos é isso" alguns meses depois.
1.Primeiro, instale os pacotes postfix
e dovecot-imapd
. Quando solicitado sobre a configuração do Postfix, selecione a opção "Site da Internet" e digite diti.me
como nome de e-mail. Neste ponto, você já pode enviar e receber e-mails como [email protected]
e provavelmente até conectar-se ao IMAP.
No entanto, ele ainda não possui SSL, nem permite o envio de e-mails via SMTP de fora, nem um local sensato para armazenar e-mails (o padrão é um arquivo mbox em /var/mail
, que não é confiável e oferece desempenho ruim, especialmente com IMAP).
2.Se você já possui um certificado SSL, coloque-o /etc/ssl/private/diti.me.pem
e a chave privada em /etc/ssl/private/diti.me.key
. A localização exata não importa, mas /etc/ssl/private
é onde o Debian os mantém.
Certifique-se de que ambos os arquivos sejam de propriedade e possam ser lidos pelo ssl-cert
grupo, para que o Postfix e o Dovecot possam acessá-los. Adicione também as contas de ambos os daemons a esse grupo usando gpasswd -a
.
3.O Postfix gerado automaticamente pelo Debian main.cf
também é um pouco confuso, então vou apenas postar uma versão mínima limpa:
# Informação do servidor meudominio = diti.me minhaorigem = $meudomínio # Vários outros parâmetros usam essas duas variáveis como valores padrão. #Serviço SMTP smtpd_tls_security_level=maio smtpd_tls_cert_file = /etc/ssl/private/diti.me-mail.pem smtpd_tls_key_file = /etc/ssl/private/diti.me-mail.key # Isso permite que o STARTTLS seja usado em todas as conexões SMTP de entrada. # Observe que `postfix` deve ser adicionado ao grupo `ssl-cert` para poder # para acessar arquivos em /etc/ssl/private. # Políticas minhasredes = [::1]/128, 127.0.0.0/8, [::ffff:127.0.0.0]/104 # Isso lista os endereços IP que são considerados "confiáveis" e podem usar # este servidor para enviar mensagens para o exterior (ou seja, para outros domínios). Por # padrão, apenas "localhost" é permitido. De todos os outros apenas e-mail para # domínios em $mydestination serão aceitos. meudestino = $meudomínio, localhost # Lista de domínios para aceitar correio, de qualquer endereço IP. # Entrega alias_maps = hash:/etc/aliases # Isso mantém os aliases de todo o sistema. É bom defini-lo explicitamente porque # o valor padrão às vezes inclui NIS, o que não faz sentido. destinatário_delimitador = + # Diz ao postfix para dividir a parte local dos endereços no primeiro '+', # chamado "plus-addressing": o correio enviado para diti+foo@ será entregue # para a caixa de correio diti@.
Para Dovecot, o Debian usa apenas as configurações de exemplo padrão, e elas são boas o suficiente, com cada opção descrita.
Sempre que você alterar a configuração, recarregue os daemons com postfix reload
e/ou doveadm reload
.
4.Por padrão, o Postfix entrega mensagens /var/mail/$USER
nomboxformato, que é bastante simples (você pode visualizá-lo facilmente com um editor de texto), mas tem muitos problemas, principalmente com IMAP, já que todo o arquivo tem que ser reescrito sempre que você move uma mensagem ou mesmo marca 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 qualquer outro; Maildir é amplamente suportado.)
Em /etc/postfix/main.cf
, adicione o seguinte à seção "Entrega":
home_mailbox = Correio/
Configure o Dovecot para usar o mesmo caminho, em /etc/dovecot/conf.d/10-mail.conf
:
mail_location = maildir:~/Mail
5.Em algum momento, você precisará dizer ao Dovecot para usar SSL também. As configurações relevantes estão em /etc/dovecot/conf.d/10-ssl.conf
. Na verdade, o pacote Debian para Dovecotjáusa SSL, embora com um certificado autoassinado que é praticamente inútil. Configure-o para usar seu próprio certificado:
SSL = sim ssl_cert = </etc/ssl/private/diti.me-mail.pem ssl_key = </etc/ssl/private/diti.me-mail.key
6.Agora você pode enviar correspondência para fora e recebê-la. Ainda é necessário configurar o Postfix para permitir o enviodeexternamente conectando-se ao seu cliente de e-mail via SMTP.
Primeiro diga ao Postfix para usar o Dovecot para verificar logins. As instruções a seguir são retiradas principalmente deWiki do Dovecot.
As necessidades do Dovecot /etc/dovecot/conf.d/10-master.conf
escutam em um soquete que o Postfix possa acessar; a configuração padrão já possui um exemplo comentado:
autenticação de serviço { ... unix_listener /var/spool/postfix/private/auth { modo = 0660 usuário = postfix grupo = postfix } ... }
E o Postfix precisa usá-lo – /etc/postfix/main.cf
novamente:
# Autenticação smtpd_sasl_type = pombal smtpd_sasl_path=privado/autenticação # O outro tipo possível é "cyrus", para o Cyrus SASL 'saslauthd' # daemon. Eu escolho o Dovecot aqui porque funciona bem como um servidor SASL, e # é mais simples permitir que ele lide com a autenticação para ambos os daemons.
7.Observe que o acima não foi definido smtpd_sasl_auth_enable
em lugar nenhum. A convenção atual énãohabilite a autenticação SMTP globalmente, mas mantenha o tcp/25 puramente como uma porta SMTP "servidor para servidor". Enquanto isso, novas mensagens de usuários são aceitas por SMTP em tcp/587, a porta de “envio de e-mail”, 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.
Habilite a porta "Envio" em /etc/postfix/master.cf
, com autenticação SASL. O padrão master.cf
já possui as linhas necessárias que só precisam ser descomentadas, emboraalgunsdeles ainda devem ser deixados de fora.
submissão inet n - - - - smtpd -o syslog_name = postfix/envio -o smtpd_tls_security_level=encriptar # A porta "Submission" exigirá TLS, em vez de torná-la opcional -o smtpd_sasl_auth_enable=sim # ...bem como permitir que os usuários façam login. # -o smtpd_reject_unlisted_recipient=não # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # Estas quatro opções podem ser deixadas comentadas; se habilitado, eles # esperamos que você defina regras de restrição personalizadas em 'main.cf', mas o # os padrões estão bem. -o smtpd_recipient_restrictions=permit_sasl_authenticated, rejeitar # O destinatário_restrictions padrão verifica o endereço IP e # $meudestino. Para a porta "Submission", permita tudo, desde que # porque o usuário está logado, mas rejeita todos os emails anônimos. -o milter_macro_daemon_name=ORIGINANDO # Se mais tarde você decidir configurar um proxy DKIM ou algo semelhante, isso permitirá # para distinguir e-mails enviados por usuários daqueles recebidos. # Faz parte da configuração padrão, portanto incluída aqui também.
Se você tiver um cliente de e-mail que requer uma porta "SSL implícita" de estilo antigo (tcp/465), você pode descomentar as smtps
linhas master.cf
- se precisar, mantenha as configurações semelhantes às da submission
porta.
8.Por fim, configure aliases para sua conta, editando /etc/aliases
. O postmaster
alias é basicamente obrigatório; é o ponto de contato caso haja problemas com seu servidor de e-mail. Apontar root
e outros aliases semelhantes também são bons.
O formato básico está documentado em aliases(5):
postmaster: root
admin: root
root: diti
kra: diti
Use postalias
ou newaliases
para atualizar o banco de dados com hash /etc/aliases.db
sempre que editar este arquivo.
Agora, você ainda tem uma conta chamada diti
Postfix e Dovecot, mas as mensagens enviadas para kra@...
também são encaminhadas para lá. Alguns clientes de e-mail (por exemplo, Thunderbird) suportam múltiplas "identidades" ou "personas" para um único servidor de e-mail, 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 mais tarde.