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 é 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).
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.
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
Substitua mail.example.com pelo nome do seu servidor de email.
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.
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
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/
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.
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'
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.
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"
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
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
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
Para instalar o exim4, rode o seguinte comando:
sudo apt-get install exim4 exim4-base exim4-config
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
.
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.
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.
Para instalar o dovecot, rode o seguinte comando em um prompt de comando:
sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d
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)
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.
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.
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.
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.
Para instalar o apache2 você deve consultar “Instalação”.
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'
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.
Esta seção assume que você já tenha instalado com sucesso o mailman, o apache2, e o exim4. Agora você só precisa configurá-los.
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.
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.
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
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
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
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.
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.
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
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.