Fonte:Google_fotos

Servidor de Correio Eletrônico

1. Apresentação

Continuando a implantação do serviço de correio eletrônico, os procedimentos a seguir ajudarão a instalar o MDA (Mail Delivery Agent) nessa implementação usaremos o programa COURIER_Mail, também iremos fazer as implementações de segurança habilitando o serviço do SASL e TLS, harderning no serviço e a geração dos certificados digitais auto-assinados para que o serviço funcione com segurança.

Ao final serão feitos os testes de valiação do serviço e os testes nas máquinas do cliente usando o software MUA (Mail User Agent) Thunderbird.

2. Procedimentos

Aplicando segurança no MTA e instalando e configurando os protocolos do MDA

  1. Instalar os pacotes courier-authdaemon, courier-authlib, courier-imap, e courier-pop:
  2. #apt install -y courier-authdaemon courier-authlib courier-base
    #apt install -y courier-imap courier-pop
    
  3. Instalar as bibliotecas e modulos do serviço SASLv
    apt install libsasl2-2 sasl2-bin libsasl2-modules
    
  4. Entrar no diretório /etc/default:
  5. # cd /etc/default
    
  6. Fazer o backup do arquivo saslauthd:
  7. #mv saslauthd saslauthd.bkp 
    
  8. Criar e Editar o novo arquivo saslauthd:
  9. #vim saslauthd
    
    Arquivo: /etc/default/saslauthd START=yes
    MECHANISMS="pam"
    MECH_OPTIONS=""
    THREADS=5
    OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
  10. Criar a árvore de diretórios /var/run/saslauthd dentro de /var/spool/postfix:
  11. #mkdir -p /var/spool/postfix/var/run/saslauthd
    
  12. Em seguida crie e edite o arquivo smtpd.conf dentro do diretório /etcpostfix/sasl
    #vim /etc/postfix/sasl/smtpd.conf
    
    Arquivo: /etc/postfix/sasl/smtpd.conf pwcheck_method: saslauthd
    mech_list: plain login
  13. Editar alterações no arquivo de configuração do postfix (/etc/postfix/main.cf):
  14. # vim /etc/postfix/main.cf
    
    Arquivo /etc/postfix/main.cf
    • Inicie a edição comentando as linhas referentes ao procmail, pois, este serviço não é mais utilizado:

    # Armazena ps email em arquivos no servidor
    # mailbox_command = procmail -a "$EXTENSION"

    • Em seguida vá até o final do arquivo e acrescente:

    #Diretorio padrao de armazenamento de informações
    home_mailbox = Maildir/

    # Desabilita o comando vrfy
    disable_vrfy_command = yes

    # Configurações do SMTPD para SASL
    smtpd_sasl_local_domain =
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination

  15. Usando a ferramenta maildirmake crie no /etc/skel o esquema de armazenamento de e-mail para os futuros usuários da ASF.com:
  16. #maildirmake /etc/skel/Maildir
    #maildirmake /etc/skel/Maildir/.Enviados
    #maildirmake /etc/skel/Maildir/.Lixeira
    #maildirmake /etc/skel/Maildir/.Rascunhos
    #maildirmake /etc/skel/Maildir/.Spam
    
  17. Edite o script mail_users.sh para criar os diretórios de armazenamento de e-mail para os usuários existentes:
  18. #vim mail_users.sh
    
    Arquivo /etc/postfix/mail_users.sh #!/bin/bash

    USERS=`getent passwd | awk -F: '$3 >= 1000 {print $1}' | grep -v nobody`

    for ONE in $USERS; do
    HM=`getent passwd $ONE | awk -F: '{print $6}'`
    maildirmake $HM/Maildir 2> /dev/null && echo "Diretório $HM/Maildir criado com sucesso"

    for PASTAS in .Enviados .Rascunhos .Lixeira .Spam
    do
    maildirmake $HM/Maildir/$PASTAS 2> /dev/null && echo "Diretorio $HM/$PASTAS criado com sucesso"
    done

    chown $ONE:$ONE -R $HM/Maildir
    done
  19. Transforme o script em executavel e em seguir execute o script:
  20. #chmod u+x mail_users.sh
    #./mail_users.sh
    

    Criando os certificados

  21. Criar o diretório ssl dentro /etc/postfix em seguida entre nele:
  22. #mkdir /etc/postfix/ssl
    #cd /etc/postfix/ssl
    
  23. Gerando a "chave privada" smtpd.key:
  24. #openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
    

    Observação: * será solicitado uma senha após a execução do comando

  25. Criando o pedido de certificado smtpd.csr:
  26. #openssl req -new -key smtpd.key -out smtpd.csr
    

    observações: Informe a senha configurada no arquivo da chave privada
    ** Preencha as informações solicitadas para o pedido do certificado

    • Country Name (2 letter code) [AU]:BR
    • State or Province Name (full name) [Some-State]:RiodeJaneiro
    • Locality Name (eg, city) []:RiodeJaneiro
    • Organization Name (eg, company) [Internet Widgits Pty Ltd]:ASF
    • Organizational Unit Name (eg, section) []:SI
    • Common Name (e.g. server FQDN or YOUR name) []:mail.asf.com
    • Email Address []:analista@asf.com

    Nas últimas duas informações é só pressionar a tecla "enter" para continuar

  27. Gerando o certificado auto-assinado para uso do servidor smtp (MTA)
    #openssl x509 -req -days 365 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
    
  28. Gerar uma chave sem senha para uso em configuração "Chave pública":
  29. #openssl rsa -in smtpd.key -out smtpd.key.nocrypt
    
  30. Trocar os arquivos para que a chave sem senha seja usada e a chave com senha fique protegida:
  31. #mv smtpd.key smtpd.key.crypt
    #mv smtpd.key.nocrypt smtpd.key
    
  32. Gerar o certificado de autoridade do servidor MTA:
  33. #openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 365
    
    • Country Name (2 letter code) [AU]:BR
    • State or Province Name (full name) [Some-State]:RiodeJaneiro
    • Locality Name (eg, city) []:RiodeJaneiro
    • Organization Name (eg, company) [Internet Widgits Pty Ltd]:ASF
    • Organizational Unit Name (eg, section) []:SI
    • Common Name (e.g. server FQDN or YOUR name) []:mail.asf.com
    • Email Address []:analista@asf.com
  34. Editar alterações no arquivo de configuração do postfix (/etc/postfix/main.cf) para habilitar o serviço TLS e indicar os certificados:
  35. # vim /etc/postfix/main.cf
    
    Arquivo /etc/postfix/main.cf
    • Acrescentar ao final do arquivo as linhas a seguir

    # Configuracoes TLS
    smtpd_tls_auth_only = no
    smtp_use_tls = yes
    smtp_tls_note_starttls_offer = yes
    smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
    smtpd_tls_loglevel = 1
    smtpd_tls_received_header = yes
    smtpd_tls_session_cache_timeout = 3600s
    smtpd_tls_cert_file = /etc/postfix/ssl/webmail.crt
    smtpd_tls_key_file = /etc/postfix/ssl/webmail.key
    smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
    smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
    tls_random_source = dev:/dev/urandom

  36. Instalar os pacotes do MDA com suporte ao ssl courier-imap-ssl e courier-pop-ssl:
  37. #apt install courier-imap-ssl courier-pop-ssl courier-ssl
    
  38. Configurar para que os serviços courier-imap-ssl e courier-pop-ssl iniciem com sistema na próxima inicialização:
  39. #systemctl enable courier-imap-ssl
    #systemctl enable courier-pop-ssl
    
  40. Alterar a permissão do diretório /etc/courier/shared (datacenter imapd: /etc/courier/shared/index: Permission denied):
  41. #chmod 777 /etc/courier/shared
    
  42. Reiniciar os serviços courier-imap-ssl, courier-pop-ssl, saslauthd, courier-authdaemon e postfix:
  43. #systemctl restart postfix
    #systemctl restart courier-authdaemon
    #systemctl restart saslauthd
    #systemctl restart courier-imap-ssl
    #systemctl restart courier-pop-ssl
    

    3. Validação

    Testes de validação da instalação do POSTFIX

    1. Checar o status de cada serviço
    2. #systemctl status postfix
      #systemctl status courier-authdaemon
      #systemctl status saslauthd
      #systemctl status courier-imap-ssl
      #systemctl status courier-pop-ssl
      
    3. Verificar se os serviços estão ouvindo (LISTEN) nas devidas portas (25, 110, 143, 993 e 995).
      #ss -nltp | egrep '25|110|143|993|995'
      
    4. Para testar o funcionamento do serviço na maquina cliente interno instalar o software (MUA) Thunderbird e faça a validação do serviço.
    5. Faça os ajustes nas regras do firewall da ASF.com e em seguida vá para o cliente externo, instale o Thunderbird e repita os testes feitos para validação do serviço.
    6. Referências