Instalando o Qmail no RedHat 9
O compilador utilizado no RH9 é incompatível com versões anteriores, por isso para compilar o Qmail precisamos aplicar vários patches que serão descritos com detalhes. Vamos configurar contas POP3 com domínios virtuais e usuários duplicados, como: maria@dominioA.com.br e maria@dominioB.com.br.
Download do pacote
Antes de tudo, é necessário que o seu DNS server esteja funcionando de acordo, especialmente o MX records. Abra um terminal e digite:
$ dig @ns.servidor.com.br mail.dominiovirtual.com.br MX
você deverá ter algo como:
;; ANSWER SECTION:
ns.servidor.com.br. 81611 IN A 100.200.111.120
É pré-requisito que você esteja habituado a configurar domínios virtuais no Apache também.
Porque estou escrevendo esse tutorial? Simples, quando fui configurar o sendmail com cliente@dominio.com.br e cliente@outrodominio.com.br, é óbvio que não podemos ter dois usuários com nomes idênticos, o que torna o sendmail inviável.
Depois de vários dias procurando uma solução, encontrei o qmail, que nos dá a possibilidade de criar contas de e-mails através de uma interface web super simplificada. Quem já configurou o sendmail com todos aqueles arquivos sabe do que estou falando. Nada contra o sendmail... mas....
Aconselho que você faça a instalação em um servidor de teste e não venha por a culpa em mim se perder dados, ou alguma coisa der errado, porém se você seguir passo a passo como explicado, não vai dar errado! Fazer backup de arquivos essenciais é sempre uma boa idéia.
Nosso tutorial é inspirado no http://www.qmailrocks.org, onde vamos fazer o download de todos os pacotes e patches em um único arquivo tar neste endereço: No terminal entre como root:
$ su
Descompacte o arquivo em um diretório qualquer, que será utilizado durante nossa instalação.
$ dig @ns.servidor.com.br mail.dominiovirtual.com.br MX
você deverá ter algo como:
;; ANSWER SECTION:
ns.servidor.com.br. 81611 IN A 100.200.111.120
É pré-requisito que você esteja habituado a configurar domínios virtuais no Apache também.
Porque estou escrevendo esse tutorial? Simples, quando fui configurar o sendmail com cliente@dominio.com.br e cliente@outrodominio.com.br, é óbvio que não podemos ter dois usuários com nomes idênticos, o que torna o sendmail inviável.
Depois de vários dias procurando uma solução, encontrei o qmail, que nos dá a possibilidade de criar contas de e-mails através de uma interface web super simplificada. Quem já configurou o sendmail com todos aqueles arquivos sabe do que estou falando. Nada contra o sendmail... mas....
Aconselho que você faça a instalação em um servidor de teste e não venha por a culpa em mim se perder dados, ou alguma coisa der errado, porém se você seguir passo a passo como explicado, não vai dar errado! Fazer backup de arquivos essenciais é sempre uma boa idéia.
Nosso tutorial é inspirado no http://www.qmailrocks.org, onde vamos fazer o download de todos os pacotes e patches em um único arquivo tar neste endereço: No terminal entre como root:
$ su
Descompacte o arquivo em um diretório qualquer, que será utilizado durante nossa instalação.
tar zxvf qmailrocks.tar.gz
cd qmailrocks
mkdir -p /var/qmail
scripts/add_users.script (este cria todos os usuários que o qmail utiliza e o dir /home/vpopmail para usuários criados para domínios)
mkdir /usr/src/qmail
cp qmail-1.03.tar.gz /usr/src/qmail/
cp ucspi-tcp-0.88.tar.gz /usr/src/qmail
mkdir -p /package
cp daemontools-0.76.tar.gz /package
chmod 1755 /package
cd /usr/src/qmail
tar zxvf qmail-1.03.tar.gz
tar zxvf ucspi-tcp-0.88.tar.gz
rm -rf *.tar.gz (esse é opcional...)
cd /package
tar zxvf daemontools-0.76.tar.gz
rm -rf *.tar.gz (opcional)
cd qmailrocks
mkdir -p /var/qmail
scripts/add_users.script (este cria todos os usuários que o qmail utiliza e o dir /home/vpopmail para usuários criados para domínios)
mkdir /usr/src/qmail
cp qmail-1.03.tar.gz /usr/src/qmail/
cp ucspi-tcp-0.88.tar.gz /usr/src/qmail
mkdir -p /package
cp daemontools-0.76.tar.gz /package
chmod 1755 /package
cd /usr/src/qmail
tar zxvf qmail-1.03.tar.gz
tar zxvf ucspi-tcp-0.88.tar.gz
rm -rf *.tar.gz (esse é opcional...)
cd /package
tar zxvf daemontools-0.76.tar.gz
rm -rf *.tar.gz (opcional)
Agora vamos criar os diretórios para log do qmail..
mkdir /var/log/qmail
cd /var/log/qmail
mkdir qmail-send qmail-smtpd qmail-pop3d
chown -R qmaill:root /var/log/qmail
chmod -R 750 /var/log/qmail
mkdir /var/qmail/supervise
cd /var/qmail/supervise
mkdir -p qmail-smtpd/log qmail-send/log qmail-pop3d/log
chmod +t qmail-smtpd qmail-send qmail-pop3d
cd /var/log/qmail
mkdir qmail-send qmail-smtpd qmail-pop3d
chown -R qmaill:root /var/log/qmail
chmod -R 750 /var/log/qmail
mkdir /var/qmail/supervise
cd /var/qmail/supervise
mkdir -p qmail-smtpd/log qmail-send/log qmail-pop3d/log
chmod +t qmail-smtpd qmail-send qmail-pop3d
Agora o primeiro patch...
cd /usr/src/qmail/qmail-1.03
patch < /caminho/para/qmailrocks/patches/qmail-103.patch (outro patch do Qmail)
patch < /caminho/para/qmailrocks/patches/qmail-103.patch (outro patch do Qmail)
Agora, o patch de autenticação SMTP:
mv qmail-smtpd.c qmail-smtpd.c.bak
cp /caminho/para/qmailrocks/patches/qmail-smtpd.c ./
cp /caminho/para/qmailrocks/patches/qmail-smtpd.c ./
Mais algumas opções...
vi conf-split and replace default # with 200
vi conf-spawn and replace default # with 255
vi conf-spawn and replace default # with 255
Agora, o Qmail propriamente dito...
primeiro o patch:
patch < /caminho/para/qmailrocks/patches/qmail-1.03.errno.patch
make man
make setup check
./config-fast dominioprincipal.com.br (ex: ./config-fast meudominio.com.br)
make man
make setup check
./config-fast dominioprincipal.com.br (ex: ./config-fast meudominio.com.br)
Se não apareceu erro, o Qmail foi instalado corretamente!
Agora vamos ao ucspi-tcp:
cd /usr/src/qmail/ucspi-tcp-0.88/
patch < /caminho/para/qmailrocks/patches/ucspi-tcp-0.88.errno.patch
make
make setup check
patch < /caminho/para/qmailrocks/patches/ucspi-tcp-0.88.errno.patch
make
make setup check
Se não apareceu erros, tá ok! e é isso para o ucspi-tcp!
Agora vamos instalar o daemontools....
E... mais um patch,
cd /package/admin/daemontools-0.76/src
patch < /caminho/para/qmailrocks/patches/daemontools-0.76.errno.patch
cd /package/admin/daemontools-0.76
package/install
patch < /caminho/para/qmailrocks/patches/daemontools-0.76.errno.patch
cd /package/admin/daemontools-0.76
package/install
Essa etapa agora esta ok...
E o Qmail esta quase totalmente instalado, mas vamos dar uma pausa para instalar outras ferramentas úteis, e outros recursos.
#!/bin/sh
QMAILDUID=`id -u vpopmail`
NOFILESGID=`id -g vpopmail`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
LOCAL=`head -1 /var/qmail/control/me`
if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then
echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
echo /var/qmail/supervise/qmail-smtpd/run
exit 1
fi
if [ ! -f /var/qmail/control/rcpthosts ]; then
echo "No /var/qmail/control/rcpthosts!"
echo "Refusing to start SMTP listener because it'll create an open relay"
exit 1
fi
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \
/var/qmail/bin/qmail-smtpd seudominio.com.br \
/home/vpopmail/bin/vchkpw /usr/bin/true 2>&1