Guia do Linux/Avançado/Servidor pop3/Introdução

Introdução

editar

É o servidor para recebimento de mensagens eletrônicas (e-mails) para o cliente de e-mails. O servidor pop3 documentado é o qpopper (da Qualcomm), é um dos mais usados em ambiente Linux, simples de configurar e distribuído livremente. O que este programa faz é ler os e-mails de usuários em /var/mail e os envia via porta 110 ao programa cliente (Netscape, sylpheed, mutt, balsa, Pegasus, Outlook, ou qualquer outro que suporte o protocolo pop3).


Versão

editar

É assumido que esteja usando a versão 4.0.3 do qpopper. As explicações contidas aqui podem funcionar para versões posteriores, mas é recomendável que leia a documentação sobre modificações no programa (changelog) em busca de mudanças que alterem o sentido das explicações fornecidas aqui.


Contribuindo

editar

O site do qpopper é http://www.eudora.com/qpopper/, anúncios de novas versões, bugs e correções são enviados para qpopper-announce@rohan.qualcomm.com (inscreva-se enviando uma mensagem com o assunto "subscribe" para o nome da lista acrescentando "-request"). A lista de suporte aos usuários é qpopper@lists.pensive.org (o método de inscrição é idêntico a lista announce).


Características

editar
    • Simples de configurar.
    • Possui um timeout padrão de 30 segundos ao invés de 10 minutos do protocolo pop3 padrão.
    • O protocolo pop3 é mais simples e consome menos recursos no servidor que o IMAP.
    • Suporte a envio de boletins aos usuários do sistema.
    • Inclui suporte a TLS/SSL.
    • Suporte a senhas ocultas (shadow passwords).
    • Suporta PAM.
    • Suporte a autenticação via APOP.
    • Alta performance.

Ficha técnica

editar

Pacote: qpopper. Utilitários:

    • in.qpopper - Servidor pop3.
    • popauth - Manipula os bancos de dados de autorização quando é usado o método de autenticação APOP.

Arquivos de configuração:

    • /etc/popper.allow - Contém a lista de usuários autorizados a usar o serviço pop3.
    • /etc/popper.deny - Contém uma lista de usuários NÃO autorizados a usar o serviço pop3.
    • /etc/pop.auth - Contém dados de autenticação criados pelo programa popauth.

Requerimentos de Hardware

editar

O servidor qpopper requer no mínimo 6MB de memória para rodar e espaço em disco suficiente para acomodar os e-mails de usuários.


Arquivos de log criados pelo qpopper

editar

Mensagens sobre a execução do qpopper são enviadas aos seguintes arquivos em /var/log:

    • mail.info - Detalhes sobre autenticação de usuários e mensagens.
    • mail.warn - Erros e avisos diversos ocorridos na seção pop3.
    • syslog e daemon.log - Mensagens sobre a execução do servidor qpopper.
    • auth.log - Mensagens de autenticação gerados pelo PAM.

Instalação

editar

apt-get install qpopper Por padrão o servidor qpopper é instalado via inetd:

     pop-3		stream	tcp	nowait.60	root	/usr/sbin/tcpd	/usr/sbin/in.qpopper -s

Se estiver configurando um servidor pop3 com um grande número de conexões, é recomendável aumentar o número de execuções do serviço pop3 por minuto (no inetd.conf) ou rodar o servidor qpopper como daemon (preferido). Para fazer isto, remova a linha que inicia o qpopper no inetd.conf e construa um script que inicie o serviço como daemon usando a opção -S (veja outras opções em [#s-s-pop3-opcoescmd Opções de linha de comando, Seção 16.1.10]).


Iniciando o servidor/reiniciando/recarregando a configuração

editar

O serviço é executado por padrão via inetd e utiliza o controle de acesso tcpd (veja [ch-rede.html#s-rede-seg-tcpd O mecanismo de controle de acessos tcpd, Seção 4.8.3]). Adicionalmente você pode definir que usuários terão/não acesso ao serviço pop3 nos arquivos /etc/popper.allow e popper.deny. Por padrão, o acesso é garantido para qualquer usuário. Após instalar o servidor pop3 instalado, resta configurar o cliente para conectar ao servidor pop3 do servidor. O nome de usuário e senha são os usados no arquivo /etc/passwd.


Teste de acesso no pop3

editar

Um simples teste consiste em usar o telnet conectando a porta pop3 (110): telnet 127.0.0.1 110:

     Connected to 127.0.0.1.
     Escape character is '^]'.
      OK Qpopper (version 4.0.3) at server.org starting.  <2122.11132222@server.org>

A resposta acima indica que o servidor pop3 está funcionando corretamente.


Opções de linha de comando

editar

Opções de linha de comando do servidor in.qpopper:

  • endereço
    porta
    Quando está operando em modo daemon (iniciado com -S), espera por conexões no endereço e opcionalmente na porta especificada. O endereço deverá ser o da interface de rede local do servidor (como 192.168.1.1) caso não seja especificado, o servidor qpopper monitorará todos os endereços. A porta padrão é 110 caso não seja especificada.
    -b [diretório]
    Ativa o sistema de envio de boletins. O diretório especificado é o que contém os boletins que serão enviados (na distribuição Debian, o /var/spool/popbull é o indicado). Veja [#s-s-pop3-boletins Enviando boletins de mensagens, Seção 16.1.11] para instruções de utilização deste recurso.
    -c
    Modifica a senha para caracteres minúsculos antes de autenticar, permitindo que clientes conectem com a senha em MAIÚSCULAS ou caracteres mIsTurados.
    -f [arquivo]
    Especifica um arquivo de configuração para o servidor qpopper. Veja a página de manual para detalhes sobre as opções. Recomendo usar as opções de linha de comando exceto se for requerida configurações especiais para modificar o comportamento do servidor pop3.
    -l [num]
    Modifica as opções de criptografia TLS/SSL usada no transporta da seção. Os seguintes valores são aceitos:
    • 0 - Desativa TLS/SSL. É o padrão.
    • 1 - Ativa o suporte a TLS/SSL. Se o cliente não suportar criptografia, os dados serão transmitidos usando a forma padrão.
    • 2 - Tenta ativar uma conexão TLS quando o cliente conecta ao servidor usando uma porta alternativa.
    -p [num]
    Seleciona como a senha em texto plano será manipulada. O servidor deverá estar compilado com suporte a outras formas de autenticação (como APOP) ao invés de texto plano. As seguintes opções são suportadas.
    • 0 - Senhas em texto plano podem ser usadas para usuários não cadastrados no arquivo /etc/pop.auth (gerenciado pelo popauth. Este é o padrão.
    • 1 - Somente permite acesso de usuários cadastrados no arquivo /etc/pop.auth. Qualquer acesso usando texto plano é negado.
    • 2 - Permite autenticação usando texto plano como preferência, até mesmo para usuários que estejam no /etc/pop.auth). É útil para clientes que não suportam autenticação usando texto plano.
    • 3 - Somente usuários conectando da mesma máquina (127.0.0.1) podem usar autenticação em texto plano.
    • 4 - Permite autenticação usando texto plano somente se uma conexão criptográfica foi estabelecida usando TLS ou SSL.
    -R
    Desativa a resolução reversa de endereços IP de clientes.
    -s
    Registra dados de inicio da seção, nome de usuário, número de bytes/mensagens apagadas, número de mensagens deixadas no servidor e fim da seção. Estes detalhes são registrados pelo syslogd. Seu uso é recomendável para ter controle sobre o que está acontecendo em seu servidor.
    -S
    Ativa o modo daemon. Útil para servidores pop3 com grande número de acessos.
    -T [num]
    Tempo máximo em segundos para finalização da seção quando o cliente não envia nenhuma resposta ou comando. Valores pequenos (como 20) podem ser especificados para servidores que possuem poucos usuários e um link rápido. Para grande quantidade de usuários ou conexão feita via links lentos (como ppp, slip, plip, etc.) use valores como 600 (10 minutos) ou mais. O valor padrão é 120 segundos (2 minutos).
    -u
    Lê o arquivo ~/.qpopper.options no diretório do usuário em busca de opções adicionais para o servidor. Este arquivo é lido após o processo de autenticação e deve ter permissões leitura/gravação para o dono. Isto não é recomendável em servidores seguros, a criptografia ou método de autenticação podem ser desativados sem o conhecimento do administrador comprometendo a segurança dos dados.
    -U
    Idêntica a opção acima, mas o arquivo deve residir no diretório de spool (/var/spool/pop) e ter o formato:
     .usuario.qpopper-options

Este arquivo deve ter como dono o administrador ou dono do servidor pop3. Esta alternativa é mais segura que a anterior porque o usuário não terá acesso ou desativar opções específicas.

  • -y [facilidade]
    Permite modificar o nível facilidade que as mensagens são registradas no syslogd (veja [ch-log.html#s-log-syslogd-exemplo Arquivo de configuração syslog.conf, Seção 6.2.1.1]).

Enviando boletins de mensagens

editar

Este recurso é muito útil para enviar alertas ou avisos para todos os usuários em seu sistema de uma só vez. A mensagem é escrita no diretório /var/spool/popbull seguindo um formato especial e quando o usuário pop3 se conecta para pegar seus e-mails receberá também uma cópia do boletim. O controle de boletins já recebido pelo usuário é feito no arquivo ~/.popbull. Siga os passos a seguir para configurar este sistema:

    1. Ative o suporte a envio de boletins no servidor qpopper, adicionando a opção -b /var/spool/popbull a linha de comando.
    2. Os números de boletins são controlados sequencialmente pelos arquivos ~/.popbull, portanto é importante começar com o nome do boletim com pelo menos 5 dígitos (00001, 00002, 00003, etc). Vamos usar 00001-teste em nosso exemplo.
    3. A primeira linha do boletim deve conter a palavra "From" e um espaço e deve ser completada com um nome e data, seguido de campos essenciais para o envio da mensagem:
     From teste Sex Set 29 21:40:00 2001
     To: user@localhost
     From: Administrador do Sistema <root@localhost>
     Date: Fri, 29 Sep 2001 21:40:00 -0800 (PST)
     Subject: Teste do sistema de boletins

     Este é apenas um teste para o sistema de boletins. Se tudo estiver OK
     você receberá esta mensagem quando pegar seus e-mails no cliente pop3
     e este boletim será registrado no arquivo ~/.popbull para que não seja
     novamente recebido.

Deve haver uma linha em branco para separar o cabeçalho da mensagem. OBS: Quando incluir novos usuários no sistema, somente os últimos 10 boletins serão enviados.


Especificando quotas para as caixas de correio

editar

Crie o diretório de spool /var/mail em uma partição separada e ative o sistema de quota do Linux nela. Leia as instruções em [ch-d-restr.html#s-d-restr-quotas Limitando o uso de espaço em disco (quotas), Seção 19.12].


Restringindo acesso ao servidor pop3

editar

O controle de acesso de conexões é feito via método tcpd usando o daemon in.qpopper (veja [ch-rede.html#s-rede-seg-tcpd O mecanismo de controle de acessos tcpd, Seção 4.8.3]). O controle de acesso dos usuários é feito através do arquivos /etc/popper.allow e /etc/popper.deny, respectivamente contém os nomes de usuários que podem e não podem ter acesso ao servidor qpopper. Por motivos de segurança é recomendável redirecionar os e-mails do usuário root para outra conta (no arquivo /etc/aliases e bloquear o acesso do usuário root ao pop3 no arquivo /etc/popper.deny. Se a máquina servidora pop3 não for utilizada para acesso remoto, é recomendável desativar os serviços de login (veja [ch-d-restr.html#s-d-restr-bash-desshell Desabilitando serviços de shell para usuários, Seção 19.1.6]).