A maneira mais simples de configurar um servidor de e-mail IMAP seguro?

A maneira mais simples de configurar um servidor de e-mail IMAP seguro?

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)
  • 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_Certificatespágina) menciona o uso de certificados CAcert, mas não é claro sobre isso (todos esses SubjectAltNamesubdomí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 para kra@ou postmaster@para a diticonta.

  • 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.meou glaux.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 postfixe dovecot-imapd. Quando solicitado sobre a configuração do Postfix, selecione a opção "Site da Internet" e digite diti.mecomo 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.peme 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-certgrupo, 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.cftambé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 reloade/ou doveadm reload.

4.Por padrão, o Postfix entrega mensagens /var/mail/$USERnomboxformato, 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 Dovecotusa 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.confescutam 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.cfnovamente:

# 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_enableem 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.cfjá 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 smtpslinhas master.cf- se precisar, mantenha as configurações semelhantes às da submissionporta.

8.Por fim, configure aliases para sua conta, editando /etc/aliases. O postmasteralias é basicamente obrigatório; é o ponto de contato caso haja problemas com seu servidor de e-mail. Apontar roote 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 postaliasou newaliasespara atualizar o banco de dados com hash /etc/aliases.dbsempre que editar este arquivo.

Agora, você ainda tem uma conta chamada ditiPostfix 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.

informação relacionada