Categorieën: Alle - confiabilidade - segurança - instalação

door Frederico Passos 17 jaren geleden

972

qmail

qmail é um servidor de e-mails desenvolvido em linguagem C para sistemas UNIX, projetado por Dan J. Bernstein para ser uma alternativa mais segura ao Sendmail. Reconhecido por sua confiabilidade e eficiência, o qmail tem um histórico notável de segurança, com apenas dois pequenos bugs encontrados desde a versão 1.

qmail

qmail

O qmail é um MTA (Mail Transfer Agent - Agente de Transferência de Mensagens) - ou servidor de e-mails, seguro, confiável, eficiente e simples, desenvolvido totalmente em linguagem C para sistemas UNIX.

Escrito por Dan J. Bernstein para ser mais seguro que o popular programa Sendmail. Apenas dois pequenos bugs foram encontrados no qmail desde a versão 1.0, e ainda existe um prémio de US$500 para a primeira pessoa que descobrir uma falha de segurança na última versão.

Configuração

A configuração do qmail e seus patch é bem complicado, mas existem muitos sites que explicam este processo.<br>

Recomendamos os seguintes artigos:<br>

http://www.devin.com.br/eitch/qmail/<br>

http://qmail.telles.org/qmail-guiadeconsulta/index.html<br>

http://www.linuxman.pro.br/node/5<br>

http://br-linux.org/artigos/mailers1.htm<br>

http://www.gta.ufrj.br/grad/01_2/qmail/page4.html

Conclusão

Segundo a documentação que utilizamos para este trabalho, o qmail é, além de confiável, o MTA mais rápido e seguro que existe. Mesmo assim ele é "apenas" o segundo mais utilizado. Perdendo para o Sendmail.<br>

Acreditamos que isto ocorre pela dificuldade que é configurar esse MTA. Existem muitos patches e configuração, todos sem ferramentas gráficas ou com scripts de automatização.<br>

Apesar da dificuldade, uma vez configurado, o qmail funciona muito bem e justifica o esforço inicial.<br>

Concluímos que o qmail é um exelente MTA para substituir o sendmail na categoria de servidores de correios livre.

Componentes do grupo

Carlos Henrique<br>

Diego Renan<br>

Fabio Santiago Menino<br>

Frederico Fernandes Passos<br>

Lauro de Souza Dias<br>

Marcos Vinício Curvelo<br>

Paulo Henrique<br>

Walcimar Paiva de Castro

Características

Substituto para o sendmail

qmail suporta mascaramento de máquinas e usuários, ocultação completa de máquina, domínios virtuais, clientes nulos, reescrita do list-owner, controle de relay, gravação de double-bounce, listas de endereço RFC 822 arbitrárias, detecção de loop cross-host em lista de email, ponto de checagem por caixa postal, remoção de hosts problemáticos, agendamento de tentativas de reentrega independente, etc.<br>

qmail também inclui um drop-in "sendmail" wrapper para que ele possa ser usado de forma transparente por seu UAs atuais.

Simples

qmail é muito menor que os outros MTAs. Alguns dos motivos para isso são:<br>

1) Outros MTAs possuem mecanismos separados para encaminhamento, aliasing e lista de emails. qmail possui um simples mecanismo de encaminhamento que permite os usuários controlar suas próprias listas de email.<br>

2) Outros MTAs oferecem uma grande variedade de modos, que fica entre "rápido e inseguro" e "lento e enfileirado". qmail-send é instantâneamente ativado por novos itens na fila, então o sistema do qmail tem apenas um modo de entrega: "rápido e enfileirado".<br>

3) Outros MTAs incluem, de fato, uma versão especializada do inetd que vigia a média de carregamento. O design do qmail inerentemente limita a carga da máquina, então o qmail-smtpd pode executar com segurança do inetd do seu sistema.

Eficiente

Em um Pentium com BSD, qmail com facilmente manter 200000 mensagens locais por dia.<br>

Apesar das entregas remotas serem limitadas pela baixa velocidade do DNS e SMTP. qmail ultrapassa 20 entregas simultâneas, então ele aumenta suas listas de emails rapidamente.

Confiável

A filosofia do qmail é garantir que uma mensagem, uma vez aceita no sitema, jamais será perdida.<br>

qmail também suporta o maildir, um novo e super confiável formato de caixa de correio.<br>

Maildir, diferente de arquivos mbox e pastas mh, não corrompem se o sistema trava durante a entrega. Ainda melhor, um usuário pode ler com segurança o seu email através de NFS e outros clientes NFS podem entregar a mensagem para ele ao mesmo tempo.

Seguro

A segurança para esse sistema não é um objetivo, mas uma exigência absoluta. A segurança nesse sistema de envio de e-mails é levada tão a sério, que um prêmio de $1000,00 foi oferecido, por um ano, para quem encontrasse uma falha de segurança no Qmail. Como o prêmio não foi reivindicado, foi destinado à Free Software Foundation. <br>

Atualmente, Dan Bernstein, autor do Qmail, está oferecendo um prêmio de $500,00 para quem encontrar um furo de segurança no software.

Requisitos

Para a instalação do Qmail é necessário, antes de mais nada, estar rodando um Sistema Operacional UNIX ou UNIX-like. A maioria dos sistemas operacionais UNIX são compatíveis. Geralmente, uma lista dos SOs suportados vem no arquivo README, encontrados junto à distribuição.<br>

• Aproximadamente 10 Megabytes do espaço livre na área da configuração;<br>

• Um sistema de desenvolvimento completo, funcionando com C, inclusive um compilador;<br>

• Alguns Megabytes para os binários e arquivos de configuração e instalação;<br>

• Um sistema de arquivos seguro. A garantia da confiabilidade do Qmail requer que a fila resida em um sistema de arquivos com a semântica tradicional do BSD FFS. A maioria dos sistemas de arquivos modernos satisfaz essas exigências;<br>

• Espaço em disco suficiente para armazenamento da fila;<br>

• Acesso a um DNS;<br>

• Uma conexão de rede com boa largura de banda.

Instalação

A instalação é muito simples e varia de acordo com a distribuição escolhida.<br>

Para usuários do Debian ou derivados (pacotes .DEB):<br>

#apt-get install qmail-run<br>

Para usuários do Redhat ou derivados (pacotes .RPM):<br>

rpm -ivh pacote.rpm<br>

Se quizer instalar direto dos fontes o comando é o seguinte:<br>

make setup check<br>

Recursos

Serviço POP3 (qmail-popup, qmail-pop3d)

* RFC 1939.<br>

* Suporte a UIDL.<br>

* Suporte a TOP.<br>

* APOP hook.<br>

* Checagem modular de senhas (checkpassword).

Entrega local (qmail-local)

* Hierarquia de endereços controlado pelo usuário.<br>

* Entrega mbox.<br>

* Entrega NFS confiável. (maildir)

* Programa de entrega controlado pelo o usuário: procmail etc (qmail-command).<br>

* Notificaçao de novos e-mail opcional (qbiff).<br>

* Confirmação de recebimento NRUDT opcional (qreceipt).<br>

* Filtragem condicional (condredirect, bouncesaying).

Encaminhamento e listas de email (qmail-local)

* Compatibilidade com o sendmail .forward (dot-forward).<br>

* Banco de dados de encaminhamentos com hash (fastforward).<br>

* Compatibilidade com o sendmail /etc/aliases (fastforward / newaliases).<br>

* Coringa de endereços (.qmail-default, .qmail-foo-default, etc).<br>

* Proprietários de lista de correio --- retorno automatico de mensagens e aviso de férias.<br>

* VERPs --- identificação automática de destinatários para lista de correio.<br>

* Delivered-To--- prevenção automatica de loop, inclusive através de hosts.<br>

* Gerenciamento automático de inscrições (ezmlm).

Entrega SMTP (qmail-remote)

* RFC 821, RFC 974, RFC 1123.<br>

* 8-bit clean.<br>

* Desativação automatica de host travado.<br>

* Roteamento artificial --- smarthost, localnet, mailertable (control / smtproutes).<br>

* Timeouts individuais para cada buffer.<br>

* Fila SMTP passiva --- perfeito para SLIP/PPP (serialmail).<br>

* Suporte a AutoTURN (serialmail).

Roteamento por domínio (qmail-send)

* Qualquer quantidade de nomes para localhost (control / locals).<br>

* Qualquer quantidade de domínos virtuais (control / virtualdomains).<br>

* Domínios com curingas (control / virtualdomains).<br>

* Suporte a percenthack configurável (control / percenthack).<br>

* UUCP hook

Gerenciamento de filas (qmail-send)

* Controle instantâneo de mensagenns adicionadas na lista.<br>

* Limite de paralelismo (control / concurrencyremote, control / concurrencylocal).<br>

* Particionamento do diretório da fila-- Sem queda de performance com filas grandes.<br>

* Agendamento de tentativas de retransmissão quadrático --- tentativas de retransmissão de mensagens antigas são realizadas menos freqüentemente.<br>

* Agendamento de tentativas de retransmissão independente.<br>

* Enfileramento automático e seguro --- sem perda de email em travamento do sistema.<br>

* Ponto de checagem automática por caixa postal.<br>

* Limpeza automatica de filas (qmail-clean).<br>

* Visualização de fila (qmail-qread).<br>

* Estatística detalhadas de entrega (qmailanalog).

Bounces (qmail-send)

* Formato de mensagens QSBMF--- ambas legíveis pela máquina e por humanos.<br>

* Suporte a HCMSSC ---- códigos de erros RFC 1893 independentes da linguagem.<br>

* Bounces duplos enviados ao postmaster

Construção da mensagem (qmail-inject)

* RFC 822, RFC 1123.<br>

* Suporte completo para grupos de endereços.<br>

* Conversão automática de endereços do formato antigo para o formato RFC 822.<br>

* Compatibilidade com Agentes de usuários atuais.<br>

* Comprimento de cabeçalho limitado apenas pela quantidade de memória.<br>

* Mascaramento de máquinas (control / defaulthost).<br>

* Marcaramento de usuários ($MAILUSER, $MAILHOST).<br>

* Criação automática de Mail-Followup-To ($QMAILMFTFILE)

Serviço SMTP (qmail-smtpd)

* RFC 821, RFC 1123, RFC 1651, RFC 1652, RFC 1854.<br>

* 8-bit clean.<br>

* 931/1413/ident/TAP callback (tcp-env).<br>

* Controle de relay - Para serviços não autorizados (control/rcpthosts).<br>

* Sem interferências entre controle de relay e aliases.<br>

* Reconhecimento automático de endereço IP local.<br>

* Per-buffer timeouts.<br>

* Contagem de hop.<br>

* Limite de paralelismo (ucspi-tcp / tcpserver).<br>

* Recusa de conexões originadas de maliciosos conhecidos (tcpserver).<br>

* Relay e reescrita de mensagem para clienes autorizados.<br>

* Suporte opcional a RBL/ORBS (ucspi-tcp / rblsmtpd)

Segurança

* Separação clara entre endereços, arquivos e programas.<br>

* Minimização de código setuid (qmail-queue).<br>

* Minimização de código root (config, config-fast).<br>

* Particionamento confiável five-way (segurança em camadas).<br>

* Registro opcional de eventos (QUEUE_EXTRA).

Setup

* Adaptação automática para qualquer variante UNIX.<br>

* AIX, BSD/OS, FreeBSD, HP/UX, Irix, Linux, OSF/1, SunOS, Solaris, e outros.<br>

* Configuração automática dos hosts (config, config-fast).<br>

* Instação rápida. Não existe uma lista grande de decisões a tomar.

Introdução

qmail foi desenvolvido por Dan Bernstein (DJB), http://en.wikipedia.org/wiki/Daniel_J._Bernstein, um professor de matemática da Universidade de Illinois em Chicago.<br>

O primeiro lançamento público do qmail, versão beta 0.70, foi em 24 de Janeiro de 1996. A versão gamma 0.90, foi lançado em 1º de Agosto de 1996.<br>

A versão 1.0, primeiro lançamento geral, foi anunciado no dia 20 de Fevereiro de 1997. A versão atual, 1.03 foi lançada em 15 de Junho de 1998.<br>

O próximo lançamento é esperado é a versão 2.0. Algumas coisas que podem aparecer nesta versão são mencionadas em http://cr.yp.to/qmail/future.html.