Serviços de Email
Anterior
Próxima

Serviços de Email

O processo de entrega de um e-mail de um pessoa para outra através da rede ou da Internet demanda o trabalho conjunto de muitos sistemas. Cada um desses sistemas precisa estar corretamente configurado para que o processo funcione. O remetente usa um Agente Usuário de Correio (MUA) ou cliente de e-mail, para enviar a mensagem através de um ou mais Agentes de Transferência de Correio (MTA), o qual irá entregá-la para um Agente de Entrega de Correio (MDA) para entregá-la na caixa postal do destinatário, apartir da qual será retirada pelo cliente de e-mail do destinatário, normalmente através de um servidor POP3 ou IMAP.

Postfix

Postfix é o Mail Transfer Agent (MTA) padrão do Ubuntu. Ele tenta ser rápido, fácil de administrar e seguro. É compatível com o MTA sendmail. Esta seção explica como instalar e configurar o postfix. Também explica como configurá-lo como um servidor SMTP usando uma conexão segura (para enviar emails de forma segura).

Instalação

Para instalar o postfix com SMTP-AUTH e Transport Layer Security (TLS), execute o seguinte comando:

sudo apt-get install postfix

Simplesmente pressione enter para a perguntas durante o processo de instalação, a configuração será feita em detalhes no próximo passo.

Configuração Básica

Para configurar o postfix, execute o seguinte comando:

sudo dpkg-reconfigure postfix

A interface do usuário será mostrada. Em cada tela, selecione os seguintes valores:

  • Ok

  • Site de Internet

  • NENHUM

  • email.exemplo.com

  • email.exemplo.com, localhost,localdomain, localhost

  • Não

  • 127.0.0.0/8

  • Sim

  • 0

  • +

  • all

Nota

Substitua mail.example.com pelo nome do seu servidor de email.

Autenticação SMTP

Os próximos passos são configurar o postfix para usar SASL para SMTP AUTH. Ao invés de editar o arquivo de configuração diretamente, você pode usar o comando postconf para configurar todos os parâmetros do postfix. Os parâmetros de configuração serão armanzenados no arquivo /etc/postfix/main.cf. Depois se você desejar reconfigurar um parâmetro em particular, você pode executar o comando ou mudá-lo manualmente no arquivo.

  1. Configure o Postfix para fazer SMTP AUTH usando SASL (saslauthd):

    postconf -e 'smtpd_sasl_local_domain ='
    postconf -e 'smtpd_sasl_auth_enable = yes'
    postconf -e 'smtpd_sasl_security_options = noanonymous'
    postconf -e 'broken_sasl_auth_clients = yes'
    postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
    postconf -e 'inet_interfaces = all'
    echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
    echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf
    
  2. Depois, configure o certificado digital para o TLS. Quando houver perguntas, siga as instruções e responda corretamente.

    openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
    chmod 600 smtpd.key
    openssl req -new -key smtpd.key -out smtpd.csr
    openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
    openssl rsa -in smtpd.key -out smtpd.key.unencrypted
    mv -f smtpd.key.unencrypted smtpd.key
    openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
    mv smtpd.key /etc/ssl/private/
    mv smtpd.crt /etc/ssl/certs/
    mv cakey.pem /etc/ssl/private/
    mv cacert.pem /etc/ssl/certs/
    

    Nota

    Você pode adquirir o certificado digital de uma autoridade certificadora. Alternativamente , você pode criar o certificado você mesmo. Consulte o “Criando um certificado Auto-Assinado” para mais detalhes.

  3. Configure o Postfix para fazer encriptação TLS para entrada e saida de email:

    postconf -e 'smtpd_tls_auth_only = no'
    postconf -e 'smtp_use_tls = yes'
    postconf -e 'smtpd_use_tls = yes'
    postconf -e 'smtp_tls_note_starttls_offer = yes'
    postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key'
    postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt'
    postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
    postconf -e 'smtpd_tls_loglevel = 1'
    postconf -e 'smtpd_tls_received_header = yes'
    postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
    postconf -e 'tls_random_source = dev:/dev/urandom'
    postconf -e 'myhostname = mail.example.com'
    

Nota

Depois que você executar todos os comandos, o SMTP AUTH é configurado com o postfix. O cerficado auto-assinado é criado para o TLS e é configurado com o postfix.

Agora, o arquivo /etc/postfix/main.cf parecerá com este.

A configuração inicial do postfix está completa. Execute o seguinte comando para iniciar o daemon do postfix:

            
              
                sudo /etc/init.d/postfix start
              
            
          

Agora o postfix daemon está instalado, configurado e executando com sucesso. O Postfix suporta o SMTP AUTH como definido na RFC2554. É baseado no SASL. Entretanto é necessário configurar a autenticação SASL antes de usar o SMTP.

Configurando SASL

As libsasl2, sasl2-bin e libsasl2-modules são necessárias para habilitar a Autenticação SMTP usando SASL. Você pode instalar essas aplicações se você não as tiver instalado anteriormente.

apt-get install libsasl2 sasl2-bin

Algumas modificações são necessárias para fazê-lo funcionar corretamente. Devido ao Postfix rodar sob chroot em /var/spool/postfix, a SASL precisa ser configurada para rodar na falsa raíz (/var/run/saslauthd se torna /var/spool/postfix/var/run/saslauthd):

mkdir -p /var/spool/postfix/var/run/saslauthd
rm -rf /var/run/saslauthd

Para ativar o saslauthd, edite o arquivo /etc/default/saslauthd e modifique ou adicione a variável START. Para configurar o saslauthd para rodar na raíz falsa, adicione as variáveis PWDIR, PIDFILE e PARAMS. Finalmente, configure a variável MECHANISMS à sua maneira. O arquivo deve se parecer com isso:

# Isso deve ser descomentado antes que o saslauthd rode
# automaticamente
# automatically
START=yes

PWDIR="/var/spool/postfix/var/run/saslauthd"
PARAMS="-m ${PWDIR}"
PIDFILE="${PWDIR}/saslauthd.pid"

# Você deve especificar os mecanismos de autenticação que você
# deseja usar. O valor padrão é "pam" para suporte PAM, mas você
# pode também incluir "shadow" ou "sasldb", assim:
# MECHANISMS="pam shadow"

MECHANISMS="pam"

Nota

Se preferir, você pode utilizar shadow ao invés de pam. Ele irá usar transferência encriptada de senha MD5 e isso é perfeitamente seguro. O nome do usuário e a senha necessários para a autenticação serão aqueles mesmos dos usuários do sistema que você está usando no servidor.

Em seguida, atualize o "estado" do dpkg do /var/spool/portfix/var/run/saslauthd. Os scripts de inicialização do saslauthd usam essa configuração para criar o diretório que falta com as permissões e posses necessárias:

dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd

Testando

A configuração da Autenticação do SMTP está completa. Agora é hora de iniciar e testar a configuração. Você pode rodar o seguinte comando para iniciar o daemon SASL:

            
              
                sudo /etc/init.d/saslauthd start
              
            
          

Para ver se o SMTP-AUTH e o TLS estão funcionando normalmente, rode o seguinte comando:

            
              
                telnet mail.example.com 25
              
            
          

Depois que tiver estabelecido uma conexão com o servidor de e-mail postfix, digite:

ehlo mail.example.com

Se você vir as seguintes linhas entre outras, então tudo estará funcionando perfeitamente. Digite quit para sair.

250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME

Exim4

O Exim4 é outro Agente de Transferência de Mensagens (MTA) desenvolvido na Universidade de Cambridge para uso em sistemas Unix conectados à Internet. O Exim pode ser instalado no lugar do sendmail, entretanto a configuração do exim é bem diferente daquela feita para o sendmail

Instalação

Para instalar o exim4, rode o seguinte comando:

sudo apt-get install exim4 exim4-base exim4-config

Configuração

Para configurar o exim4, rode o seguinte comando:

sudo dpkg-reconfigure exim4-config

A interface de usuário será mostrada. A interface de usuário permite a você configurar vários parâmetros. Por exemplo, no exim4 os arquivos de configuração estão divididos em múltiplos arquivos. Se você quiser tê-los em um único arquivo você pode configurar isso através da interface de usuário.

Todos os parâmetros que você configura através da interface de usuário são armazenados no arquivo /etc/exim4/update-exim4.conf.conf. Se você deseja reconfigurá-lo, então você deve rodar novamente o assistente de configuração ou editar esse arquivo manualmente usando o seu editor favorito. Uma vez que você o tenha configurado, você pode rodar o seguinte comando para gerar o arquivo de configuração principal:

sudo update-exim4.conf

O arquivo de configuração principal é gerado e é armazenado em /var/lib/exim4/config.autogenerated.

Atenção

Em nenhum momento você deve editar o arquivo de configuração principal /var/lib/exim4/config.autogenerated manualmente. Ele é atualizado automaticamente toda vez que você roda o update-exim4.conf

Você pode rodar o seguinte comando para iniciar o daemon do exim4.

sudo /etc/init.d/exim4 start

TODO: Essa seção deverá cobrir a configuração da Autenticação SMTP com o exim4.

Servidor Dovecot

O Dovecot é um Agente de Entrega de Correio, escrito tendo em mente a segurança em primeiro lugar. Ele suporta os principais formatos de caixas postais: mbox ou Maildir. Essa seção explica como configurá-lo como um servidor imap ou pop3.

Instalação

Para instalar o dovecot, rode o seguinte comando em um prompt de comando:

sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d

Configuração

Para configurar o dovecot, você pode editar o arquivo /etc/dovecot/dovecot.conf. Você pode escolher o protocolo que você usa. Ele pode ser pop3, pop3s (pop3 seguro), imap e imaps (imap seguro). Uma descrição desses protocolos está além do escopo desse guia. Para maiores informações, consulte os artigos da wikipedia em POP3 e IMAP.

O IMAPS e o POP3S são mais seguros que o IMAP e o POP3 simples porque eles usam criptografia SSL para conexão. Assim que você tiver escolhido o protocolo, descomente a seguinte linha no arquivo /etc/dovecot/dovecot.conf:

protocols = pop3 pop3s imap imaps

Isso irá habilitar os protocolos quando o dovecot for iniciado. Em seguida, adicione a seguinte linha na seção pop3 no arquivo /etc/dovecot/dovecot.conf:

pop3_uidl_format = %08Xu%08Xv

Em seguida, escolha a caixa postal que você usa. O Dovecot suporta os formatos maildir e mbox. Esses são os formatos de caixa postal comumente mais utilizados. Ambos tem seus benefícios e eles são discutidos no website do dovecot.

Após escolhido o seu tipo de caixa de e-mail, edite o arquivo /etc/dovecot/dovecot.conf e modifique a seguinte linha:

default_mail_env = maildir:~/Maildir # (para maildir)
ou
default_mail_env = mbox:~/mail:INBOX=/var/spool/mail/%u # (para mbox)

Nota

Você deve configurar seu Agente de Transporte de E-mail (MTA) para transferir o e-mail entrante a esse tipo de caixa de e-mail caso ele seja diferente do outro que você configurou.

Assim que você tiver configurado o dovecot, inicie o daemon do dovecot para testar sua configuração:

            
              
                sudo /etc/init.d/dovecot start
              
            
          

Se você tiver habilitado imap ou pop3, você também pode tentar se logar com os comandos telnet localhost pop3 ou telnet localhost imap2. Se você vir algo como isso, a instalação foi bem sucedida:

bhuvan@rainbow:~$ telnet localhost pop3
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
+OK Dovecot ready.

Configuração de SSL do Dovecot

Para configurar o dovecot para que utilize SSL, você pode editar o arquivo /etc/dovecot/dovecot.conf e adicionar as seguintes linhas:

ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem
ssl_disable = no
disable_plaintext_auth = no

Os arquivos cert e key são criados automaticamente pelo dovecot quando você o instala. Por favor note que essas chaves não são assinadas e darão erros de "assinatura ruim" (bad signature) quando se conectar de um cliente. Para evitar isso, você pode utilizar certificados comerciais, ou ainda melhor, você pode utilizar seus próprios certificados SSL.

Configuração de Firewall para um Servidor de Email

Para acessar seu servidor de e-mail através de outro computador, você deve configurar seu firewall para permitir conexões ao servidor nas portas necessárias.

  • IMAP - 143

  • IMAPS - 993

  • POP3 - 110

  • POP3S - 995

Mailman

O Mailman é um programa open source para administração de discussões por listas de e-mail e newsletter. Muitas das listas de e-mail open source (incluindo todas as listas de e-mail Ubuntu) utilizam o Mailman. Ele é poderoso e fácil de instalar e manter.

Instalação

O Mailman provê uma interface web para administradores e usuários. Logo, ele requer apache com suporte mod_perl. O Mailman utiliza um servidor de e-mail externo para enviar e receber mensagens. Ele funciona perfeitamente com os seguintes servidores:

  • Postfix

  • Exim

  • Sendmail

  • Qmail

Nós veremos como instalar o mailman, o servidor web apache e o servidor de e-mail Exim. Caso você queira instalar o mailman com um servidor de e-mail diferente, favor consultar a seção de referências.

Apache2

Para instalar o apache2 você deve consultar “Instalação”.

Exim4

Para instalar o Exim4 execute os seguintes comandos em um terminal:

sudo apt-get install exim4
sudo apt-get install exim4-base
sudo apt-get install exim4-config

Uma vez que o exim4 esteja instalado, os arquivos de configuração serão armazenados no diretório /etc/exim4. No ubuntu, por padrão, os arquivos de configuração do exim4 são divididos entre arquivos diferentes. Você pode mudar esse comportamento alterando a seguinte variável no arquivo /etc/exim4/update-exim4.conf:

  • dc_use_split_config='true'

Mailman

Para instalar o Mailman, execute o seguinte comando em um prompt de terminal:

sudo apt-get install mailman 

Ele copia os arquivos de instalação para o diretório /var/lib/mailman, instala os scripts CGI no diretório /usr/lib/cgi-bin/mailman. cria o usuário de linux list, cria o grupo de linux list. O processo mailman será controlado por este usuário.

Configuração

Esta seção assume que você já tenha instalado com sucesso o mailman, o apache2, e o exim4. Agora você só precisa configurá-los.

Apache2

Uma vez que o apache2 esteja instalado, você pode adicionar as seguintes linhas no arquivo /etc/apache2/apache2.conf:

Alias /images/mailman/ "/usr/share/images/mailman/"
Alias /pipermail/ "/var/lib/mailman/archives/public/"

O Mailman utiliza o apache2 para renderizar seus scripts CGI. Os scripts CGI do mailman são instalados no diretório /usr/lib/cgi-bin/mailman. Logo, a URL do mailman será http://hostname/cgi-bin/mailman/. Você pode fazer alterações no arquivo /etc/apache2/apache2.conf caso queira alterar este comportamento.

Exim4

Uma vez que o Exim4 esteja instalado, você pode inicializar o servidor Exim utilizando o seguinte comando a partir de um prompt de terminal:

sudo apt-get /etc/init.d/exim4 start

Com o sentido de fazer o mailman trabalhar com o exim4, você deve configurar o exim4. Como mencionado anteriormente, por padrão, exim4 utiliza múltiplos arquivos de configuração de diferentes tipos. Para maiores detalhes, acesse, por favor, o seguinte website Exim. Para executar o mailman, você deveria adicionar um novo arquivo de configuração aos seguintes tipos de configuração:

  • Principal

  • Transporte

  • Roteador

O Exim cria um arquivo mestre de configuração classificando todos estes pequenos arquivos de configuração. Logo, a ordem de tais arquivos de configuração é muito importante.

Principal

Todos os arquivos que pertençam ao tipo principal são armazenados no diretório /etc/exim4/conf.d/main/. Você pode adicionar o seguinte conteúdo a um novo arquivo, chamado 04_exim4-config_mailman:

# início
# Diretório inicial para sua instalação do mailman -- tambem conhecido
# como diretório prefixo do Mailman directory.
# No Ubuntu isso deve ser "/var/lib/mailman"
# É geralmente o mesmo que ~mailman
MM_HOME=/var/lib/mailman
#
# Usuário e grupo para o Mailman, deve equivaler ao seu parâmetro 
# --with-mail-gid ao script "configura" do Mailman. O valor é normalmente
# "mailman"
MM_UID=list
MM_GID=list
#
# Domínios onde estão suas listas - lista separada por vírgulas
# você pode querer adicioná-los também ao local_domains
domainlist mm_domains=hostname.com
#
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=↵
#
# Estes valores são derivados daqueles acima and você não deverá 
# precisar editá-los a não ser que você tenha bagunçado a sua instalação
# do mailman
#
# O caminho do script wrapper de email do Mailman
MM_WRAP=MM_HOME/mail/mailman
#
# O arquivo do arquivo de configuração da lista (usado como um arquivo
# requerido quando se verifica endereços de listas)
MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck
# fim
Transporte

Todos os arquivos que pertençam ao tipo de transporte são armazenados no diretório /etc/exim4/conf.d/transport/. Você pode adicionar o seguinte conteúdo a um novo arquivo chamado 40_exim4-config_mailman:

  mailman_transport:
   driver = pipe
   command = MM_WRAP \
               '${if def:local_part_suffix \
                     {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
                     {post}}' \
               $local_part
    current_directory = MM_HOME
    home_directory = MM_HOME
    user = MM_UID
    group = MM_GID
Roteador

Todos os arquivos de configuração pertencentes ao tipo de roteamento são armazenados no diretório /etc/exim4/conf.d/router/. Você pode adicionar o seguinte contéudo em um novo arquivo chamado 101_exim4-config_mailman:

  mailman_router:
   driver = accept
   require_files = MM_HOME/lists/$local_part/config.pck
   local_part_suffix_optional
   local_part_suffix = -bounces : -bounces+* : \
                       -confirm+* : -join : -leave : \
                       -owner : -request : -admin
   transport = mailman_transport

Atenção

A ordem dos arquivos de configuração principais e de transporte podem estar em qualquer ordem. Mas, a ordem dos arquivos de configuração de roteamento deve a mesma. Este arquivo particular deve aparecer antes do arquivo 200_exim4-config_primary. Estes dois arquivos de configuração contêm o mesmo tipo de informação. O primeiro arquivo toma a precedência. Para mais detalhes, consulte, por favor, a seção das referências.

Mailman

Uma vez que o mailman esteja instalado, você pode executá-lo utilizando o seguinte comando:

sudo /etc/init.d/mailman start

Uma vez que o mailman esteja instalado, você deveria criar a lista de e-mail padrão. Execute o seguinte comando para criar a lista de e-mail:

sudo /usr/sbin/newlist mailman
  Informe o endereço de e-mail da pessoa que administra a lista: bhuvan at ubuntu.com
  Senha inicial do mailman:
  Para finalizar a criação de sua lista de e-mail, você deve editar o arquivo /etc/aliases (ou
  equivalente) adicionando as seguintes linhas, e possivelmente executando o
  programa `newaliases':

  ## lista de e-mail mailman
  mailman: "|/var/lib/mailman/mail/mailman post mailman"
  mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
  mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
  mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
  mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
  mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
  mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
  mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
  mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
  mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"

  Aperte enter para notificar o proprietário mailman...

  # 

Nós configuramos o exim para reconhecer todos os e-mails do mailman. Logo, não é imperativo fazer qualquer nova entrada em /etc/aliases. Caso você tenha feito alguma modificação nos arquivos de configuração, garanta, por favor, que tais serviços sejam reinicializados antes de continuar para a próxima seção.

Administração

Nós supomos que você possua uma instalação padrão. Os scripts cgi do mailman permanecem no diretório /usr/lib/cgi-bin/mailman/. O Mailman fornece um serviço de administração web. Para acessar esta página, aponte seu browser para a seguinte URL:

http://hostname/cgi-bin/mailman/admin

A lista de e-mail padrão, mailman, aparecerá nesta tela. Se você clicar no nome da lista, será pedida sua senha. Caso você informe a senha correta, você poderá mudar as opções de administração desta lista. Você pode criar uma nova lista de e-mail através da linha de comando ( command>/usr/sbin/newlist

Usuários

O Mailman fornece uma interface web aos usuários. Para acessar essa página, aponte seu browser para a seguinte URL:

http://hostname/cgi-bin/mailman/listinfo

A lista de e-mail padrão, mailman, aparecerá nesta tela. Se você clicar no nome da lista, será apresentado o formulário para inscrição. Você pode informar se endereço de e-mail, nome (opcional), e senha para se inscrever. Um convite será enviado a você por e-mail. Você pode seguir as instruções no email para se inscrever.

Anterior
Próxima
Principal