LinuxMan
 
Submitted by Eri on Wed, 2005-09-14 22:56.


Instalando Qmail + vpopmail + mysql + QmailAdmin + QmailScanner











Introdução


O qmail é um dos mais seguros, rápidos e confiáveis servidores de
e-mail disponíveis hoje no mercado. Infelizmente, entre suas
características, não está a facilidade de instalação. Vamos tentar
aqui amenizar o sofrimento que é instalar um server qmail com um
mini-howto em português bem claro e objetivo.



Sobre o autor


Eri Ramos Bastos trabalha com Linux desde 1998, passando por diversas
distribuições e fases diferentes do pinguim. Atualmente trabalha como
consultor em soluções Linux / Unix e está disponível para ajudar a
sua empresa a implantar Linux em todos os setores.
Consultoria


Requisitos


Um sistema Unix, preferencialmente ligado ao projeto GNU de alguma
forma. Já implementei o Qmail em Linux (Conectiva, Debian e SuSE),
FreeBSD e OpenBSD com sucesso e poucas modificações nas sintaxes dos
comandos. Mostrarei a sintaxe dos comandos para o Linux, mas se você
usa outro sistema, provavelmente conhece a sintaxe dele e poderá
adaptar os comandos facilmente.
Em algumas etapas a instalação pode parecer muito confusa.... E
realmente é. Tenha fé e vá em frente.



Instalando o Qmail


O Qmail tem uma licença um tanto quanto restritiva, o que impede que
ele seja distribuído em formato binnário (rpm, por exemplo). Por isso
precisamos baixar o código fonte e compilá-lo.
Você precisará dos seguintes arquivos inicialmente:




Procedimento


Todos os passos abaixo deverão ser executados como root


Caso você tenha o wget instalado na sua máquina:

  cd /usr/src/
  mkdir qmail; cd qmail
  wget ftp://cr.yp.to/software/qmail-1.03.tar.gz
  wget ftp://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
  wget ftp://cr.yp.to/daemontools/daemontools-0.76.tar.gz
  wget http://www.qmail.org/qmailqueue-patch

Antes de iniciar a instalação, é preciso criar alguns grupos e
usuários na máquina:

  groupadd nofiles
  useradd -g nofiles -d /var/qmail/alias alias -s /bin/false
  useradd -g nofiles -d /var/qmail qmaild -s /bin/false
  useradd -g nofiles -d /var/qmail qmaill -s /bin/false
  useradd -g nofiles -d /var/qmail qmailp -s /bin/false
  groupadd qmail
  useradd -g qmail -d /var/qmail qmailq -s /bin/false
  useradd -g qmail -d /var/qmail qmailr -s /bin/false
  useradd -g qmail -d /var/qmail qmails -s /bin/false
  groupadd vchkpw
  useradd -g vchkpw -d /var/qmail/vpopmail vpopmail


Vamos agora descompactar os sources e iniciar a instalação:

  tar zxvf qmail-1.03.tar.gz
  cd qmail-1.03
  patch -p1 < ../qmailqueue-patch
  make setup check
  ./config-fast nome.do.seu.servidor


Pronto! Qmail instalado! Mas vamos com calma! Ainda não dá para rodar
dessa forma...



Instalando o ucspi-tcp


  cd /usr/src/qmail/
  tar zxvf ucspi-tcp-0.88.tar.gz
  cd ucspi-tcp-0.88
  make
  make setup check



Instalando o daemontools


  cd /usr/src/qmail
  tar zxvf daemontools-0.76.tar.gz
  mv admin /
  cd /
  cd admin/daemontools-0.76
  sh package/install



Modificando arquivos e permissões



Para o perfeito funcionamento junto ao vpopmail+mysql que estamos
propondo, precisamos utilizar a estrutura de Maildir, ao invés da
Mailbox (padrão)



/var/qmail/rc



     cd /var/qmail
     cp boot/home rc


Edite o arquivo rc e troque a palavra Mailbox por Maildir (IMPORTANTE:
o "M" é maiúsculo)
Dê permissão de execução ao arquivo rc

  chmod +x rc



Scripts de inicialização e arquivos de LOG



É importante que todos os arquivos e diretórios sejam criados com todo
cuidado, ou nada irá funcionar.

  mkdir -p /var/qmail/supervise/qmail-send/log
  mkdir -p /var/qmail/supervise/qmail-smtpd/log


Arquivo /var/qmail/supervise/qmail-send/run com conteúdo:

  #!/bin/sh
  exec /var/qmail/rc


Arquivo /var/qmail/supervise/qmail-send/log/run com conteúdo:

  #!/bin/sh
  exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail


Arquivo /var/qmail/supervise/qmail-smtpd/run com conteúdo:

  #!/bin/sh
  
  QMAILDUID=`id -u qmaild`
  NOFILESGID=`id -g qmaild`
  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 2>&1


Criando configuração de conexões concorrentes. Altere de acordo com suas necessidades.


  echo 20 > /var/qmail/control/concurrencyincoming
  chmod 644 /var/qmail/control/concurrencyincoming


Arquivo /var/qmail/supervise/qmail-smtpd/log/run com conteúdo:

  #!/bin/sh
  exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd


Dando as permissões corretas:

  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


Criando diretórios de LOG:

  mkdir -p /var/log/qmail/smtpd
  chown qmaill /var/log/qmail /var/log/qmail/smtpd
  ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service


Liberando o relay definitivo para localhost (RECOMENDADO):


  echo '127.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp



O Script qmailctl



Existem muitas operações que podem ser feitas com o qmail. Para
facilitar a nossa vida, o site Life With Qmail nos disponibiliza um
script muito útil, chamado qmailctl, o qual pode ser baixado [35]aqui
(oficial) ou [36]aqui (linuxman).

  cd /var/qmail/bin
  wget http://www.linuxman.pro.br/qmail/qmailctl
  chmod +x qmailctl
  ln -s /var/qmail/bin/qmailctl /usr/bin


Referências



Life With Qmail [http://www.lifewithqmail.org/lwq.html]
Qmail.org [http://www.qmail.org]
Página do autor do qmail [http://cr.yp.to]



Instalando o vpopmail


Como pretendemos instalar o vpopmail com suporte a banco de dados
mysql, vou assumir que você já tem um server sql rodando e
configurado, não sendo abordada aqui a instalação do mesmo.



Criando usuário no mysql


  mysql> grant all on vpopmail.* to vmail@nome.do.seu.server identified by 'sua-senha';
  mysql> flush privileges


  cd /usr/src/qmail
  wget http://www.inter7.com/vpopmail/vpopmail-5.2.1.tar.gz
  tar zxvf vpopmail-5.2.1.tar.gz
  cd vpopmail-5.2.1
  mkdir -p  /var/qmail/vpopmail/etc


Edite o arquivo vmysql.h substituindo:


#define MYSQL_UPDATE_SERVER "localhost"


#define MYSQL_UPDATE_USER "root"


#define MYSQL_UPDATE_PASSWD "secret"


#define MYSQL_READ_SERVER "localhost"


#define MYSQL_READ_USER "root"


#define MYSQL_READ_PASSWD "secret"


por:


#define MYSQL_UPDATE_SERVER "seu-server-mysql"


#define MYSQL_UPDATE_USER "vmail"


#define MYSQL_UPDATE_PASSWD "sua-senha"


#define MYSQL_READ_SERVER "seu-server-mysql"


#define MYSQL_READ_USER "vmail"


#define MYSQL_READ_PASSWD "sua-senha"



Configurando o Makefile



Nesse passo é muito importante você conhecer o seu sistema, visto que
algumas libs e includes precisarão ser referenciadas (em NEGRITO):

     ./configure --enable-relay-clear-minutes=180 \
         --enable-vpopuser=vpopmail --enable-vpopgroup=vchkpw \
         --enable-tcpserver-file=/etc/tcp.smtp \
         --enable-sqllibdir=LIBMYSQL --enable-passwd=y \
         --enable-qmaildir=/var/qmail \
         --enable-admin-email=admin@seu.dominio\
         --enable-tcprules-prog=`which tcprules` \
         --enable-auth-logging=y --enable-logging=y \
         --enable-sqwebmail-pass=y --enable-default-domain=seu.dominio\
         --enable-mysql=y --enable-roaming-users=y \
         --enable-deliver-filter=y --enable-defaultquota=10485760 \
         --enable-large-site=n --enable-clear-passwd=n\
         --enable-sqlincdir=INCLUDEMYSQL


Compilando:

  make
  make install-strip



Arquivo de inicialização do vpopmail


  cd /var/qmail


Arquivo pop com o conteúdo:

  /usr/local/bin/tcpserver 0 110 \
  /var/qmail/bin/qmail-popup nome.do.seu.server
  /var/qmail/vpopmail/bin/vchkpw \
  /var/qmail/bin/qmail-pop3d Maildir >/dev/null &


Esse arquivo deve ser iniciado no seu run-level padrão. coloque-o na inicialização da forma que achar mais simples.


Referências



Inter7
DicasLinux



Qmailadmin



O qmailadmin é uma ferramenta de gerenciamento para os domínios
virtuais do qmail. Muito útil e simples de utilizar depois de
instalada.



Baixando os sources


  cd /usr/src/qmail
  wget http://www.inter7.com/qmailadmin/qmailadmin-1.0.2.tar.gz



Instalando


  tar zxvf qmailadmin-1.0.2.tar.gz
  cd qmailadmin-1.0.2
  ./configure  --enable-htmldir=/SEU/DIR/DE/HTML
  --enable-cgibindir=/SEU/DIR/DE/CGI
  make
  make install



QmailScanner



Com a quantidade de virus e worms que circulam pela web esses dias, um
sistema de anti-virus é essencial. Existem diversos meios de se
integrar o Qmail com os anti-virus, mas o mais usado é sem dúvida o
QmailScanner.



Instalando o QmailScanner


Os pré-requisitos são:


  cd /usr/src/qmail
  wget http://umn.dl.sourceforge.net/sourceforge/qmail-scanner/qmail-scanner-1.15.tgz
  tar zxvf qmail-scanner-1.15.tgz
  cd qmail-scanner-1.15
  ./configure --help # Nesse momento você irá escolher as opções que se enquadram no seu sistema
  ./configure --SUAS-OPCOES
  ./configure --SUAS-OPCOES --install



Testando a instalação


Esse é um passo importante. Caso não funcione, reveja as opções que
você colocou com o ./configure

  sh /contrib/test_installation.sh



Configurando o Qmail para utilizar o QmailScanner


Edite o arquivo /service/qmail-smtpd/run e adicione a seguinte linha
logo após "#!/bin/sh":

  export QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"


E modifique a linha

  "exec /usr/local/bin/softlimit -m 2000000  \" 


por

  "exec /usr/local/bin/softlimit -m 8000000 \"


Esse valor foi suficiente para mim, mas observe o seu caso.

Referências


QmailScanner



Finalizando


Algumas considerações finais:



  • A instalação descrita nesse tutorial é a mais simples possível,
    sendo que existe uma farta documentação sobre qmail na internet. Nem
    sempre as coisas são muito claras, por isso tentei ajudar com mais
    esse tutorial.
  • O Daemontools deve ser iniciado no boot, por isso depois de tudo
    instalado é necessáro dar um reboot na máquina
  • Se receber a mensagem: "451 qq temporary problem (#4.3.0)" tente
    aumentar o softlimit
  • Boa sorte!



GoogleAds