by Frederico Passos 17 years ago
976
More like this
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.
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
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.
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
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.
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.
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.
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.
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.
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.
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>
* RFC 1939.<br>
* Suporte a UIDL.<br>
* Suporte a TOP.<br>
* APOP hook.<br>
* Checagem modular de senhas (checkpassword).
* 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).
* 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).
* 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).
* 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
* 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).
* 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
* 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)
* 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)
* 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).
* 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.
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.