Guia do Linux/Avançado/Servidor pop3/Introdução
Introdução
[editar | editar código-fonte]É 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 | editar código-fonte]É 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 | editar código-fonte]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 | editar código-fonte]- 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 | editar código-fonte]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 programapopauth
.
Requerimentos de Hardware
[editar | editar código-fonte]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 | editar código-fonte]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
edaemon.log
- Mensagens sobre a execução do servidor qpopper.auth.log
- Mensagens de autenticação gerados pelo PAM.
Instalação
[editar | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 servidorqpopper
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 pelopopauth
. 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.
- 0 - Senhas em texto plano podem ser usadas para usuários não cadastrados no arquivo
- -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çãosyslog.conf
, Seção 6.2.1.1]).
Enviando boletins de mensagens
[editar | editar código-fonte]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:
- Ative o suporte a envio de boletins no servidor qpopper, adicionando a opção -b /var/spool/popbull a linha de comando.
- 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 usar00001-teste
em nosso exemplo. - 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 | editar código-fonte]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 | editar código-fonte]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]).