Introdução

Conceitos Básicos e historico

Email : Protocolos de transferência

Qmail: Arquitetura

Qmail: Instalação

Comparativos entre Servidores de Email (MTA)

Conclusões e Perguntas

Bibliografia

 

 

Uma das maiores dificuldades na utilização do servidor qmail é seu complicado processo de instalação. Baseado em experiências anteriores, foi desenvolvido um tutorial de instalação do qmail para plataforma Linux, descrito abaixo:

# Download dos fontes
wget ftp://cr.yp.to/software/qmail-1.03.tar.gz
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
wget http://cr.yp.to/software/fastforward-0.51.tar.gz
wget http://cr.yp.to/software/dot-forward-0.71.tar.gz

# Criar diretório onde o servidor será compilado - /usr/local/src/qmail
mkdir -p /usr/local/src/qmail
cp *.tar.gz /usr/local/src/qmail
cd /usr/local/src/qmail/

# Descompactar os fontes
tar -xzvf qmail-1.03.tar.gz
tar -xzvf ucspi-tcp-0.88.tar.gz
tar -xzvf dot-forward-0.71.tar.gz
tar -xzvf fastforward-0.51.tar.gz

# Ter certeza que todos os arquivos tem gid e uid de root
chown -R root *
chgrp -R root *

# Entrar no diretório do qmail
cd qmail-1.03

# Criar diretório onde residirá o qmail
mkdir /var/qmail

# Criar usuários e grupos necessários
/usr/sbin/groupadd nofiles
/usr/sbin/useradd -g nofiles -d /var/qmail/alias alias
/usr/sbin/useradd -g nofiles -d /var/qmail qmaild
/usr/sbin/useradd -g nofiles -d /var/qmail qmaill
/usr/sbin/useradd -g nofiles -d /var/qmail qmailp
/usr/sbin/groupadd qmail
/usr/sbin/useradd -g qmail -d /var/qmail qmailq
/usr/sbin/useradd -g qmail -d /var/qmail qmailr
/usr/sbin/useradd -g qmail -d /var/qmail qmails

# Consertar o problema de DNS do qmail
# Pegue o arquivo qmail-103.patch - Clique aqui
# Executar dentro do diretório do qmail
patch -p1 < qmail-103.patch

# Compilar todos os programas
make setup check

# Configurar o DNS
./config
# ou (mais usado)
./config-fast dominio (Por exemplo: ./config-fast gta.ufrj.br)
# Instalar o pacote ucspi-tcp
cd /usr/local/src/qmail/ucspi-tcp-0.88
make setup check

# Instalar o pacote dot-forward
cd /usr/local/src/qmail/dot-forward-0.71
make setup check

# Instalar o pacote fast-forward
cd /usr/local/src/qmail/fastforward-0.51
make setup check

# Instalar o Daemontools
# Ler instruções em http://cr.yp.to/daemontools/install.html

# Reler o inittab
kill -HUP 1

# Verifique algum processo do svsscan está rodando
ps waux | grep svscan

# Crie um arquivo chamado /var/qmail/rc com as seguintes linhas
#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start '|dot-forward .forward
./Maildir/'

# Torne este script executavel
chmod 755 /var/qmail/rc

# Crie o script "qmailctl" no path /var/qmail/bin/qmailctl
# Clique Aqui para pegar o qmailctl
vi /var/qmail/bin/qmailctl

# Crie um link para /etc/rc.d/init.d/qmail
ln -s /var/qmail/bin/qmailctl /etc/rc.d/init.d/qmail

# Torne o script executavel e crie um link no sistema em /usr/bin
chmod 755 /var/qmail/bin/qmailctl
ln -s /var/qmail/bin/qmailctl /usr/bin

# Crie os script de inicialização do boot
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc0.d/K30qmail
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc1.d/K30qmail
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc2.d/S80qmail
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc3.d/S80qmail
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc4.d/S80qmail
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc5.d/S80qmail
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc6.d/K30qmail

# Crie os diretórios de supervise
mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtpd/log
chmod +t /var/qmail/supervise/qmail-send
chmod +t /var/qmail/supervise/qmail-smtpd

# Crie o arquivo /var/qmail/supervise/qmail-send/run
#!/bin/sh
exec /var/qmail/rc

# Crie o arquivo /var/qmail/supervise/qmail-send/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s2500000 /var/log/qmail/qmail-send

# Crie o arquivo /var/qmail/supervise/qmail-smtpd/run
#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -R -l 0 -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd 2>&1

# Crie o arquivo concurrencyincoming
echo 20 > /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming

# Crie o arquivo /var/qmail/supervise/qmail-smtpd/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s2500000 /var/log/qmail/qmail-smtpd

# Faça com que os arquivo fiquem executáveis
chmod 755 /var/qmail/supervise/qmail-send/run
chmod 755 /var/qmail/supervise/qmail-send/log/run
chmod 755 /var/qmail/supervise/qmail-smtpd/run
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run

# Crie os diretórios de log
mkdir /var/log/qmail
mkdir /var/log/qmail/qmail-send
mkdir /var/log/qmail/qmail-smtpd
chown qmaill /var/log/qmail
chown qmaill /var/log/qmail/*

# Controle de Acesso
vi /etc/tcp.smtp

# Colocar as seguintes regras no arquivo /etc/tcp.smtp
# Altere de acordo com o numero IP que você liberar para relay em
# sua rede
127.0.0.1:allow,RELAYCLIENT=""
192.168.0.:allow,RELAYCLIENT=""
:allow

# Efetivar as regras
qmailctl cdb

# Pare o sendmail
/etc/rc.d/init.d/sendmail stop
# ou
ps waux|grep sendmail
kill PID-of-sendmail

# Remova o rpm do sendmail
rpm -e --nodeps sendmail

# Substitua o sendmail pelo qmail
chmod 755 /var/qmail/bin/sendmail
mv /usr/lib/sendmail /usr/lib/sendmail.old
# ignore erros
mv /usr/sbin/sendmail /usr/sbin/sendmail.old
# ignore erros
chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old
# ignore erros
ln -s /var/qmail/bin/sendmail /usr/lib
ln -s /var/qmail/bin/sendmail /usr/sbin

# Crie os alias de sistema
# Modifique o nome otto para o nome da conta que receberá todos os # emails de retorno
echo otto > /var/qmail/alias/.qmail-root
echo otto > /var/qmail/alias/.qmail-postmaster
ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon
chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster

# Crie o link para o diretório services
ln -s /var/qmail/supervise/* /service/

# Verifique se o qmail está rodando
ps auxww | grep qmail

Caso tudo ocorra bem, este estará sendo executando em alguns processos.

>> Proxima

 
Trabalho desenvolvido por Alan Rubin - Redes I - 2001/02 - Prof. Otto C.M.B.D.