Como configurar o Postfix e Dovecot com usuários de domínio virtual no Linux - Parte 2

Como configurar o Postfix e Dovecot com usuários de domínio virtual no Linux - Parte 2

No artigo anterior desta série, explicamos como configurar e gerenciar o banco de dados do servidor de correio usando com segurança.

Requerimento:

  1. Instale o Postfix Mail Server e DoveCot com o Mariadb - Parte 1
Configurar Postfix e Dovecot com usuários de domínio virtual - Parte 2

Agora é hora de configurar os programas internos que tornarão realidade o envio e o recebimento de e -mails: Postfix e Dovecot (para lidar com e -mails de saída e recebimento, respectivamente).

Configurando o servidor de correio postfix

Antes de começar a configurar Postfix, Vale a pena e bem para dar uma olhada nas páginas do homem aqui, colocando ênfase especial na seção intitulada “Informações para novos usuários de postfix““. Se o fizer, você achará mais fácil seguir junto com este tutorial.

Em poucas palavras, você deve saber que existem dois arquivos de configuração para Postfix:

  1. /etc/postfix/main.cf (Parâmetros de configuração pós -fix, consulte Homem 5 PostConf para mais detalhes).
  2. /etc/postfix/mestre.cf (Postfix Master Daemon Configuraton, veja Homem 5 mestre para mais detalhes).

Em /etc/postfix/main.cf, Localize (ou adicione, se necessário) as seguintes linhas e verifique se elas correspondem aos valores indicados abaixo:

principal.cf
append_dot_mydomain = no biff = no config_directory = /etc/postfix dovecot_destination_recipient_limit = 1 message_size_limit = 4194304 readme_directory = no smtp_tls_session_cache_database = btree:$data_directory/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (CentOS) smtpd_tls_cert_file = /etc/pki/dovecot/ Certs/Dovecot.PEM smtpd_tls_key_file =/etc/pki/dovecot/private/dovecot.PEM PEM Smtpd_TLS_Session_Cache_Database = Btree: $ Data_Directory/Smtpd_scache SMTPD_USE_TLS = SIM Virtual_Transport = Dovecot Smtpd_sasl_type = Dovecot Smtpd_sL_Path_Path_Path = Smtpd_sasl_type = dovecot smtpd_sl_path_path = 

As próximas três configurações são de especial importância. Nos arquivos indicados em amarelo, configuraremos o acesso do Postfix ao Domains_tbl, Usuários_tbl, e Alias_tbl mesas:

virtual_mailbox_domains = mysql:/etc/postfix/mariadb-vdomains.cf virtual_mailbox_maps = mysql:/etc/postfix/mariadb-vusers.cf virtual_alias_maps = mysql:/etc/postfix/mariadb-valias.cf 

Observe que você pode escolher diferentes nomes de arquivos acima, desde que crie -os e insira o seguinte conteúdo neles. Em cada caso, substitua Sua senha com a senha que você escolheu para o DBA usuário in Parte 1, ou você também pode usar o Mariadb Credenciais raiz para usuário e senha abaixo.

Além disso, certifique -se de usar exatamente os mesmos nomes do banco de dados e tabelas do servidor de email criado em Parte 1.

Em /etc/postfix/mariadb-vdomains.cf:

mariadb-vdomains.cf
Usuário = senha dba = hosts hosts de palavra = 127.0.0.1 dbname = emailServer_db Query = Selecione 1 de domains_tbl onde domainname = "%s" 

Em /etc/postfix/mariadb-vusers.cf:

Mariadb-Vusers.cf
Usuário = senha dba = hosts hosts de palavra = 127.0.0.1 dbname = emailServer_db Query = Selecione 1 de usuários_tbl onde email = "%s" 

Em /etc/postfix/mariadb-valias.cf:

mariadb-valias.cf
Usuário = senha dba = hosts hosts de palavra = 127.0.0.1 dbname = emailServer_db Query = Selecione Destino de Alias_tbl onde fonte = "%S" 

Por fim, não se esqueça de alterar as permissões para esses arquivos para 640:

# chmod 640/etc/postfix/mariadb-vdomains.CF # CHMOD 640/etc/Postfix/mariadb-vusers.CF # CHMOD 640/etc/Postfix/mariadb-valias.cf 

E a propriedade para o usuário raiz e grupo Postfix:

# Root Chown: Postfix/etc/Postfix/mariadb-vdomains.CF # Root Chown: Postfix/etc/Postfix/mariadb-vusers.CF # Root Chown: Postfix/etc/Postfix/mariadb-valias.cf 

Em seguida, para ativar conexões seguras, precisamos garantir que as seguintes configurações não estejam nomeadas (ou adicionadas, se necessário) em /etc/postfix/mestre.cf:

mestre.cf
submission inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_reject_unlisted_recipient=no -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING pickup unix n - n 60 1 pickup limpeza unix n - n - 0 limpeza qmgr unix n - n 300 1 qmgr tlsmgr unix - - n 1000? 1 tlsmgr rewrite unix - - n - - - trivial -rewrite bounce unix - - n - 0 bounce adiar unix - - n - 0 bounce rastren unix - - n - 0 bounce verify unix - - n - 1 verifique se UNIX N - n 1000? 0 FLOW PROXYMAP UNIX - - N - - ProxyMap Proxywrite Unix - - N - 1 ProxyMap SMTP UNIX - - N - - Relé SMTP UNIX - - N - - SMTP SHOWQ UNIX N - N - - SHOWQ ERRO UNIX - - N - ERRO Represente Unix - - N - - Erro descarte Unix - - N - - descarte o Unix local - n N - - Local #Virtual Unix - N N - - Virtual LMTP Unix - - N - - LMTP Anvil Unix - - N - 1 Anvil Scache Unix - - n - 1 scache 

Observação: O recuo nas linhas que começam com o -o a opção é crítica; Caso contrário, a verificação pós -fix retornará um erro:

Verifique a configuração do Postfix

Antes de economizar alterações, adicione as seguintes linhas na parte inferior do arquivo:

mestre.cf
Dovecot Unix - n N - - sinalizadores de tubo = drhu user = vmail: vmail argv =/usr/libexec/dovecot/entregue -f $ sender -d $ receptor 

Neste ponto, é essencial verificar se o Postfix tem acesso às tabelas de banco de dados e aos domínios, contas e alias que criamos em Parte 1.

Para fazer isso, usaremos o pós -mapa Comando, um utilitário para testar a comunicação com as tabelas Postfix procurará para cima durante a operação, mas em primeiro lugar, precisaremos reiniciar o Postfix:

# SystemCtl Postfix Restart # PostMap -Q ​​LinuxNewz.com mysql:/etc/postfix/mariadb-vdomains.cf # postmap -q Algumroterotominante.com mysql:/etc/postfix/mariadb-vdomains.CF # postmap -q [email protegido] mysql:/etc/postfix/mariadb -vusers.CF # postmap -q [email protegido] mysql:/etc/postfix/mariadb -vusers.CF # postmap -q [email protegido] mysql:/etc/postfix/mariadb -vusers.CF # postmap -q [email protegido] mysql:/etc/postfix/mariadb -valias.cf 

Na imagem abaixo, podemos ver isso para os registros existentes no banco de dados, um 1 é devolvido. Caso contrário, nada é exibido de volta à tela. No caso da verificação do alias, observe que a conta de email real para a qual o alias é mapeado é devolvido:

Verifique a comunicação da tabela Postfix

Observe que somos NÃO Autenticando contra as credenciais definidas para cada conta de email, estamos apenas testando a capacidade do Postfix de detectar esses registros no banco de dados.

Assim, se você obtiver uma saída diferente da que acima, verifique se está usando um par de usuário / senha válido em mariadb-vdomains.cf, Mariadb-Vusers.cf, e mariadb-valias.cf (ou o que você escolheu para ligar para esses arquivos).

Configurando Dovecot

Como um IMAP / Pop3 Servidor, o Dovecot fornece uma maneira de os usuários através de um Mail User Agent (Mua, ou também conhecido como cliente), como Thunderbird ou Panorama, Para citar alguns exemplos para acessar seu e -mail.

Para começar, vamos criar um usuário e um grupo para lidar com e -mails (precisaremos disso, pois nossas contas de email não estão associadas a um usuário do sistema). Você pode usar outro Uid e Gid (outro que não seja 5000 Como fazemos abaixo), desde que não esteja em uso e seja um número alto:

# groupadd -g 5000 vmail # useradd -g vmail -u 5000 vmail -d /home /vmail -m 

As configurações para o DOVECOT são divididas em vários arquivos de configuração (verifique se as seguintes linhas não estão nomeadas e / ou editam -as para corresponder às configurações indicadas abaixo).

Em /etc/dovecot/dovecot.conf:

Dovecot.cf
!incluir_try/usr/share/dovecot/protocolos.d/*.Protocolos de protocolo = IMAP POP3 LMTP !inclua conf.d/*.conf !Incluir_try Local.conf 

Em /etc/dovecot/conf.d/10-Auth.conf (Habilite apenas a autenticação através do SQL e deixe outros métodos de autenticação comentados):

10-Auth.conf
desabille_plaintext_auth = sim auth_mechanisss = login simples !Inclua auth-sql.conf.ext 

Em /etc/dovecot/conf.d/auth-sql.conf.ext (Observe que armazenaremos e -mails em um diretório nomeado seu domínio.com dentro /Home/Vmail, que você precisa criar se não existir. No nosso caso, fizemos mkdir/home/vmail/linuxnewz.com para gerenciar e -mails para esse domínio):

auth-sql.conf.ext
passdb driver = sql args =/etc/dovecot/dovecot-sql.conf.ext userdb driver = static args = uid = vmail gid = vmail home =/home/vmail/%d/%n/maildir 

As caixas de entrada individuais para contas de usuário serão criadas quando os emails para essas contas forem recebidos pela primeira vez.

Em /etc/dovecot/conf.D/10-MAIL.conf:

10-MAIL.conf
Mail_Location = Maildir:/home/vmail/%d/%n/Maildir Namespace Caixa de entrada InBox = Yes Mail_privileged_group = Mail MBOX_WRITE_LOCKS = FCNTL 

Em /etc/dovecot/conf.D/10-Mestre.conf:

10-mestre.conf
serviço imap-login inet_listener iMap porta = 143 inet_listener IMAPS  serviço pop3-login inet_listener pop3 port = 110 inet_listener Pop3s  serviço lmtp unix_listner/spuol/spoL/sPOL/SPOL/FOLTER/SPOL/ mode = 0600 user = pósfix group = pós-fix serviço auth unix_listener/var/spool/postfix/private/auth mode = 0666 user = pósfix group = postfix unix_listener auth-userdb mode = 0600 user = vmail usuário = dovecot serviço auth-worker user = vmail dict de serviço unix_listener dict  

Em /etc/dovecot/conf.D/10-SSL.conf (Substitua o certificado e os principais caminhos se você planeja usar um certificado assinado por uma CA):

10-SSL.conf
ssl = requerido ssl_cert =  

Em /etc/dovecot/dovecot-sql.conf.ext Digite as informações do seu banco de dados e as credenciais do usuário administrativo criado em Parte 1.

Importante: Se sua senha contiver um asterisco (#), Você precisará incluir a string de conexão, conforme indicado no exemplo abaixo:

Dovecot-sql.conf.ext
driver = mysql connect = "host = 127.0.0.1 dbname = emailServer_db User = dBA senha = passwith#aqui "default_pass_scheme = sha512-crypt senha_query = selecione email como usuário, senha de usuários_tbl onde email ="%u "; 

Além disso, você pode configurar o registro para que o Dovecot seja separado do Postfix em /etc/dovecot/conf.d/10 logging.conf:

log_path =/var/log/dovecot.registro 

Por fim, verifique se o log dovecot está acessível para o usuário Dovecot:

# CHOW.LOG # CHMOD 660/VAR/LOG/DOVECOT.registro 

Verifique e corrija a configuração do Postifix e ative SMTP, POP3 e IMAP no firewall

Se você tiver algum problema ao configurar o Postfix e / ou o Dovecot, em vez de enviar todos os arquivos de configuração para pedir ajuda, você poderá obter um resumo de configuração (somente linhas não tomadas) com:

# postconf -n # resumo para/etc/postfix/main.CF # postconf -m # resumo para/etc/postfix/master.CF # DoveConf -n # Resumo de todos os arquivos de configuração para Dovecot 

Além disso, verifique se as caixas de entrada de email são legíveis por Vmail apenas:

# chown -r vmail: vmail /home /vmail 

Os arquivos de configuração também devem ser legíveis por Vmail e Dovecot Usuários:

# CHOW 

Finalmente, certifique -se de ativar Smtp, Pop3, e IMAP através do firewall:

# firewall-cmd --add-port = 143/tcp # firewall-cmd --add-port = 143/tcp --permanente # firewall-cmd --add-port = 110/tcp # firewall-cmd --add- porta = 110/tcp --permanent # firewall-cmd --add-port = 587/tcp # firewall-cmd --add-port = 587/tcp --permanente 

Configure o Thunderbird como um cliente de email para o postfix

Depois de garantir o acesso através do firewall para as portas usadas em comunicações por email, é hora de configurar um cliente de e -mail. Usando [Email protegido] e sua senha correspondente, juntamente com correspondência.LinuxNewz.com Como IMAP (ou POP3) e SMTP Server, estamos prontos para começar a enviar e receber e -mails de e para essa conta:

Postfix: Configure Thunderbird Client

Você pode desconsiderar com segurança a mensagem de aviso que é mostrada porque está usando um certificado que não é assinado por uma CA confiável de terceiros:

Thunderbird: Adicione Exceção de Segurança

Vamos compor um breve email de teste e clicar em Enviar:

Compor um e -mail no Thunderbird

Quando solicitado a aceitar o certificado autoassinado para o servidor de saída, confirme-o anteriormente como antes:

Thunderbird: Aceite Certificado SSL

Por fim, vá para o e -mail de destino para ver se você recebeu o e -mail que acabou de ser enviado. Nesse caso, responda e veja se é entregue de volta à caixa de entrada de email de origem (caso contrário, consulte o log Postfix em /var/log/maillog ou o log do DOVECOT em /var/log/dovecot.registro Para solucionar problemas de informações):

Verifique a entrega de e -mail Postfix e Dovecot

Agora você tem um servidor de e -mail do Postfix e Dovecot e pode começar a enviar e receber e -mails.

Resumo

Neste artigo, explicamos como configurar o Postfix e DoveCot para lidar com o tráfego de e -mail em seu servidor Linux. Se algo não funcionar como indicado neste artigo, reserve um tempo para verificar a documentação do Postfix e do Dovecot.

Observe que, embora a configuração de um servidor de correio postfix não seja uma tarefa fácil, é uma experiência gratificante para cada administrador do sistema.

Se depois de passar pelos documentos, você ainda se encontrará lutando Postfix e / ou Dovecot, Sinta -se à vontade para nos deixar uma nota usando o formulário de comentário abaixo e teremos o maior prazer em ajudá -lo (não se esqueça de fazer upload para um serviço de armazenamento on -line a configuração Postfix e Dovecot, conforme recuperado usando PostConf e DoveConf conforme descrito neste artigo).