Product SiteDocumentation Site

5.6. Tornando o serviço de e-mails seguro

Se seu servidor não for um servidor de mensagens, e realmente não precisa ter um programa esperando por conexões de entradas, mas deseja que as mensagens locais sejam entregues, por exemplo, para recebimento de mensagens do usuário root de qualquer alerta de segurança que tenha no local.
Se tiver o exim você não precisará do daemon funcionando para fazer isto, pois o pacote padrão do cron esvazia a fila de mensagens. Veja Seção 3.5.1, “Desabilitando daemons de serviço” para saber como fazer isto.

5.6.1. Configurando um programa de e-mails nulo

Você pode querer ter um daemon de mensagens locais assim ele poderá repassar os e-mails enviados localmente para outro sistema. Isto é comum quando você tem que administrar um número de máquinas e não quer conectar a cada uma delas para ler as mensagens enviadas localmente. Assim como todos os logs de cada sistema individual podem ser centralizados usando um servidor de logs central, as mensagens podem ser enviadas para um servidor de mensagens central.
Tal sistema somente-repasse deverá ser configurado adequadamente para fazer isto. O daemon poderá, também, ser configurado para somente esperar por conexões no endereço de loopback.
The following configuration steps only need to be taken to configure the exim package in the Debian 3.0 release. If you are using a later release (such as 3.1 which uses exim4) the installation system has been improved so that if the mail transport agent is configured to only deliver local mail it will automatically only allow connections from the local host and will not permit remote connections.
In a Debian 3.0 system using exim, you will have to remove the SMTP daemon from inetd:
$ update-inetd --disable smtp
e configurar o daemon de mensagens para somente esperar por conexões na interface loopback. No exim (o MTA padrão) você poderá fazer isto editando o arquivo de configuração /etc/exim.conf e adicionando a seguinte linha:
local_interfaces = "127.0.0.1"
Reinicie ambos os daemons (inetd e exim) e você terá o exim esperando por conexões somente no soquete 127.0.0.1:25. Seja cauteloso e desative primeiro o inetd, caso contrário, o exim não iniciará pois o daemon do inetd já está esperando por conexões de entrada.
Para o postfix, edite o arquivo /etc/postfix/main.conf:
inet_interfaces = localhost
Se quiser somente mensagens locais, este método é melhor que utilizar o método tcp wrappers no daemon de mensagens ou adicionar regras de firewall para que ninguém acesse-o. No entanto, se precisar que ele escute em outras interfaces, você deverá considerar carrega-lo a partir do inetd e adicionar um tcp wrapper, assim as conexões de entradas são verificadas nos arquivos /etc/hosts.allow e /etc/hosts.deny. Também, você deverá estar atento sobre acessos não autorizados sendo tentados sobre o seu daemon de mensagens, se configurar adequadamente o log de mensagens do seu sistema para qualquer um dos métodos acima.
Em qualquer caso, para rejeitar tentativas de repasse de mensagens a nível SMTP, você deverá alterar o arquivo /etc/exim/exim.conf para incluir:
receiver_verify = true
Até mesmo se seu servidor de e-mails não repassar a mensagem, este tipo de configuração é necessário para o teste de relay em http://www.abuse.net/relay.html para determinar que seu servidor não é capaz de repassar mensagens.
No entanto, se desejar uma configuração somente de leitura, você poderá considerar a alteração do daemon de mensagens para programas que podem somente ser configurados para redirecionar as mensagens para servidores de mensagens remotas. O Debian atualmente oferece o pacote ssmtp e o nullmailer para este propósito. Em qualquer caso, você deverá avaliar por si mesmo quaisquer dos agentes de transporte de mensagens [37] fornecido com o Debian. Veja que programa atende melhor aos propósitos do sistema.

5.6.2. Fornecendo acesso seguro às caixas de mensagens

Se quiser oferecer acesso remoto às caixas de mensagens, existe um número de daemons POP3 e IMAP disponíveis [38] . No entanto, se você oferecer acesso a IMAP, note que ele é um protocolo de acesso a arquivos, ele pode se tornar equivalente a um acesso shell porque os usuários podem ser capazes de obter qualquer arquivo através dele.
Tente, por exemplo, configurar como seu caminho para a inbox{servidor.com}/etc/passwd, se ele abrir o arquivo com sucesso seu daemon IMAP não está corretamente configurado para prevenir este tipo de acesso.
Dos servidores de IMAP existentes no Debian, o servidor cyrus (do pacote cyrus-imapd) contorna isto tendo todos os acessos sendo em um banco de dados mantido em uma parte restrita do sistema de arquivos. Também o uw-imapd (ou instale o uw-imapd ou melhor, se seus clientes IMAP o suportam, uw-imapd-ssl) poderá ser configurado para fazer o chroot do diretório dos usuários de mensagens mas isto não é ativado por padrão. A documentação fornecida oferece mais informações sober como configura-lo.
Também, você pode tentar executar um servidor IMAP que não precisa de usuários válidos sendo criados no sistema local (que também oferece acesso a shell). Ambos os pacotes courier-imap (para IMAP) e courier-pop teapop (para o POP3) e o cyrus-imapd (para ambos POP3 e IMAP) fornecem servidores com métodos de autenticação que não dependem de contas locais de usuários. O cyrus pode usar qualquer método de autenticação que possa ser configurado através do PAM tal como o teapop pode usar bancos de dados (tal como o postgresql e o mysql) para autenticação do usuário.
FIXME: Verifique: uw-imapd também precisa ser configurado com autenticação do usuário através de PAM...

5.6.3. Recebendo mensagens de forma segura

A leitura/recebimento de mensagens é o protocolo de texto puro mais comum. Se usar ou POP3 ou IMAP para obter suas mensagens, você enviará sua senha em texto plano através da rede, assim praticamente qualquer um poderá ler suas mensagens de agora em diante. Ao invés disto, utiliza-se SSL (Secure Sockets Layer) para receber seus e-mails. A outra alternativa é utilizar o ssh, se tiver uma conta shell na máquina que atua como seu servidor POP ou IMAP. Aqui está um arquivo de configuração fetchmailrc básico para demonstrar isto:
poll my-imap-mailserver.org via "localhost"
  with proto IMAP port 1236
      user "ref" there with password "hackme" is alex here warnings 3600
    folders
      .Mail/debian
    preconnect 'ssh -f -P -C -L 1236:my-imap-mailserver.org:143 -l ref
     my-imap-mailserver.org sleep 15 </dev/null > /dev/null'
A linha preconnect é importante. Ela executa uma seção ssh e cria o túnel necessário, que automaticamente redireciona conexões para localhost da porta 1236 para o servidor de mensagens IMAP, mas de forma criptografada. Outra possibilidade será usar o fetchmail com características ssl.
Se deseja fornecer serviços de mensagens criptografadas como POP e IMAP,apt-get install stunnel e inicie seus daemons da seguinte forma:
stunnel -p /etc/ssl/certs/stunnel.pem -d pop3s -l /usr/sbin/popd
Este comando direciona as conexões do daemon fornecido (-l) para a porta (-d) e utiliza o certificado ssl especificado (-p).


[37] para obter uma lista de todos os daemons de mensagens disponíveis no Debian, execute o comando:
$ apt-cache search mail-transport-agent
A lista não incluirá o qmail, que é distribuído somente como código fonte no pacote qmail-src.
[38] Uma lista de servidores/daemons que suportam estes protocolos podem ser obtidos com:
$ apt-cache search pop3-server $ apt-cache search imap-server