Montando um servidor de E-Mail com o qmail

Enviado por Hugo Cisneiros


Uma Introdução

O qmail é um poderoso servidor de e-mail, leve e muito rápido, que foi desenvolvido com o intuito de ser totalmente seguro. Desde sua última versão estável (1.03), o qmail nunca teve nenhum bug comprometedor conhecido. Isso nos faz pensar que ele é muito bom para o uso em produção, inclusive porque além de ele ser muito estável, é flexível o bastante para aguentar um tráfego de e-mails muito grande.

O site do qmail é:

http://www.qmail.org

Vamos aprender aqui como montar um servidor de e-mail usando o qmail junto com o vpopmail. O qmail vai trabalhar com o manuseio dos e-mails, enquanto o vpopmail irá cuidar das contas dos usuários, senhas, informações, quotas, entre outros. Neste tutorial irei explicar também como utilizar o vpopmail para armazenar as informações de contas em um servidor de banco de dados, que no nosso caso será o MySQL.

1. Instalando e configurando o QMail

Neste tutorial, instalaremos o qmail a partir do seu código-fonte. Existem pacotes já prontos em RPM, DEB, etc, mas para um completo entendimento e compatibilidade entre todos os sistemas, usaremos mesmo o código-fonte. A versão que estamos usando é a 1.03, e pode ser obtida no endereço:

http://www.qmail.org/qmail-1.03.tar.gz

1.1. Patches

Precisaremos também aplicar alguns patches para o QMail antes de instalá-lo no sistema. Você pode instalar o QMail puro, mas eu recomendo estes patches para um aumento de desempenho e recursos. A seguir temos os patchs recomendados junto com suas descrições:

big-concurrency (http://www.qmail.org/big-concurrency.patch): Este patch faz com que o qmail possa processar mais de 255 mensagens de uma vez no queue. Assim se a máquina for boa e com grande volume de mensagens simultâneas, o servidor poderá processá-las mais rapidamente.

qmailqueue (http://www.qmail.org/qmailqueue-patch): Com este patch, o qmail antes de processar qualquer mensagem em seu queue, verifica a variável de ambiente QMAILQUEUE em busca do programa de queue. Com isso pode-se encaminhar as mensagens para um script (qmail-scanner por exemplo) que filtrará estas mensagens. Isso pode ser usado para repassar a mensagem para filtros de extensões, palavras e anti-virus.

tarpit (http://www.palomine.net/qmail/tarpit.patch): O Tarpit é uma técnica anti-spam que adiciona um pequeno tempo de espera (sleep) quando o envio de e-mails passa de um certo limite. Por exemplo, se um spammer resolver mandar 1000 mensagens em uma conexão só, o qmail com este patch verificará esta ação e a cada mensagem que o spammer mandar, você pode configurar quanto tempo ele terá que esperar. Então se configurado pra 50 mensagens, quando o spammer for mandar a mensagem 51, esperara por exemplo, 5 minutos. E depois pra mensagem 52, mais 5 minutos, e por aí vai. Tudo isso configurável.

Existem outros patches interessantes, que você pode querer usar em seu servidor de e-mail. Abaixo estão as descrições de alguns que na minha opinião são interessantes. Como estou descrevendo-os apenas para o leitor conhecer mais recursos, não os cobrirei neste tutorial. Cobrirei apenas o três patches anteriores.

mfcheck (http://www.qmail.org/qmail-1.03-mfcheck.3.patch): Com este patch, o servidor verifica no DNS se o domínio do destinatário existe.

Agora vamos primeiro descompactar o qmail e instalar estes patches. Usaremos neste tutorial diretórios exemplo. Adapte como quiser.

 

mkdir /root/build

cd /root/build

tar zpvfx /root/download/qmail-1.03.tar.gz

patch -p0 < /root/download/big-concurrency.patch

patch -p0 < /root/download/qmailqueue.patch

cd qmail-1.03

patch -p0 < /root/download/tarpit.patch

 

Pronto. Agora o qmail já está descompactado e aplicamos os três patches como queríamos. Se você quiser aplicar algum outro patch, esta é a hora. Se não quiser, seguimos em frente.

1.2. Compilando e instalando o qmail

Hora de se preparar para compilar o qmail e instalá-lo. Por padrão, o qmail é instalado no diretório "/var/qmail". Você pode especificar em que diretório ele será instalado editando o arquivo "conf-qmail" dentro do diretório em que você descompactou o código-fonte do qmail. E em falar nisso, temos aqui alguns arquivos para configurar antes de compilar o programa. Aqui vai uma descrição deles:

conf-users e conf-groups: Aqui estão os arquivos que indicam que usuários serão usados para rodar o qmail. É bom deixar o padrão mesmo, criaremos estes usuários e grupos logo a seguir.

conf-qmail: Como dito anteriormente, o diretório onde o qmail irá ser instalado e estará funcional. Recomendo deixar este valor como "/var/qmail" mesmo, a não ser que você queira instalar em outro lugar (outra partição de disco por exemplo). Este tutorial irá usar o valor "/var/qmail", se por acaso você mudou esta configuração, substitua o "/var/qmail" pelo diretório que você configurou durante os passos deste tutorial. Uma outra boa idéia é mudar este valor para algo como /var/qmail-algumacoisa para indetificar esta instalação, e depois fazer um link simbólico como /var/qmail para manter a compatibilidade. Assim você pode compilar vários qmails diferentes, e apenas mudar o link simbólico para alterar a instalação do qmail que você fez.

conf-spawn: Quantas mensagens poderão ser processadas de uma vez pelo qmail. Com o patch que aplicamos, o "big-concurrency", pode-se colocar o valor maior que 255. O próprio patch modificou este valor para 1000, e até que é um número bom. Mas como não queremos ter que recompilar o kernel para suportar mais de 509 "file descriptors", colocaremos 500. Se seu servidor não tiver tantas mensagens assim, pode diminuir (deixar 240). Se tiver mensagem até demais (e o computador for bom também), pode aumentar.

conf-split: Quantos subdiretórios o diretório de queue do qmail terá. 23 é um bom número, mas se quiser pode aumentar um pouquinho.

Depois de ajustados os arquivos ao seu gosto, é hora de criar os usuários do qmail. Como criar estes usuários está descrito no arquivo "INSTALL.ids", mas colocarei aqui também para fins didáticos:

 

mkdir /var/qmail

groupadd nofiles

useradd -g nofiles -d /var/qmail/alias alias

useradd -g nofiles -d /var/qmail qmaild

useradd -g nofiles -d /var/qmail qmaill

useradd -g nofiles -d /var/qmail qmailp

groupadd qmail

useradd -g qmail -d /var/qmail qmailq

useradd -g qmail -d /var/qmail qmailr

useradd -g qmail -d /var/qmail qmails

 

Agora crie um link simbólico para refletir as configurações do qmail no diretório /etc/qmail (fica mais bonito). Para fazer isso execute o comando:

mkdir /etc/qmail

ln -s /etc/qmail /var/qmail/control

 

Feito isso, agora iremos compilar o qmail:

make setup check

 

Lembre-se de que para compilar os programas no Linux, você deve ter os pacotes de desenvolvimento de sua distribuição. Então você terá que ter eles instalados no sistema, ou a compilação nunca será feita. Em algumas distribuições mais novas (como por exemplo, o Red Hat 9.0), durante a compilação ocorre um erro com o "errno" indefinido, se isso estiver ocorrendo com você, pegue os patches para os programas usados neste tutorial no seguinte endereço:

ftp://moni.csi.hu/pub/glibc-2.3.1/

E aplique os patches como os anteriores antes de compilar. Os arquivos que você precisará são os que tem "programa.errno.patch" como nome de arquivo.

Depois de compilado e instalado no diretório /var/qmail, é hora de configurar. O qmail contém um script que faz uma configuração rápida. Certifique-se que sua máquina tenha um nome válido no DNS, e digite:

./config

 

Caso você não tenha um DNS ainda, você pode ir configurando o qmail para ser usado. Tenha em mãos o hostname e domínio de sua máquina e digite:

./config-fast nomedamaquina.dominio

 

Substitua o nomedamaquina e dominio pelo hostname da sua máquina. Lembre-se que se isso não for válido no DNS, você precisará ter acesso ao DNS e configurar este hostname para que o qmail funcione corretamente.

1.3. Instalando programas adicionais

Agora é hora de instalar alguns programas adicionais que trabalharão junto ao qmail. Estes são: ucspi e daemontools.

ucspi-tcp (http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz): O ucspi-tcp é um programa feito pelo criador do qmail que substitui o inetd. Ele é usado para servir de ponte entre o cliente e o servidor.

daemontools (http://cr.yp.to/daemontools/daemontools-0.76.tar.gz): O daemontools é um pacote com uma série de scripts para lidar com servidores (daemons). Ele é usado para o controle dos programas do qmail.


Página seguinte 



As opiniões expressas em todos os documentos publicados aqui neste site são de responsabilidade exclusiva dos autores e não de Monografias.com. O objetivo de Monografias.com é disponibilizar o conhecimento para toda a sua comunidade. É de responsabilidade de cada leitor o eventual uso que venha a fazer desta informação. Em qualquer caso é obrigatória a citação bibliográfica completa, incluindo o autor e o site Monografias.com.