você está aqui: Home  → Arquivo de Mensagens

Instalando o Qmail no Debian Lenny

Colaboração: Alexandro Silva

Data de Publicação: 14 de Abril de 2009

O Qmail é um dos MTAs mais usados no planeta, todos reclamam que é dificil falam que tem de aplicar vários patches, mas na hora do vamos ver ele continua prevalecendo nos provedores e em algumas empresas.

Muito por causa da excelente ferramenta de configuração Qmailadmin e por não dar pau nem a pau (perdoem o trocadilho ;-P). Por isso resolvi criar este post com uma solução completa de email usando o Qmail e seus complementos.

Minha fonte de inspiração principal foi o sitio Qmailrockz, porém ele anda muito mas muito desatualizado, então para ajudar toda a comunidade instalei o Debian Lenny no VirtualBox e iniciei minha jornada, diga-se de passagem e que jornada.

Fica ai mas uma contribuição.

Então divirta-se!!!!

Instale todas as dependências necessárias

  aptitude install apache2 php5 perl gcc mysql-server openssl libssl-dev wget patch patchutils build-essential courier-imap-ssl libdb-dev libmysqlclient15-dev perl-suid unzip libpcre3-dev libgdbm-dev libdigest-sha1-perl libdigest-hmac-perl libnet-dns-perl libtime-hires-perl libhtml-parser-perl libparse-syslog-perl libstorable-perl```

Crie o diretório downloads na raiz.

OBS: É muito importante que seja criado como informado abaixo senão problemas ocorrerão durante a execução dos scripts.</

  mkdir /downloads

Acesse o diretório criado

  cd /downloads

Como a base da instalação foi baseada no qmailrockz estou disponibilizando um pacote tar.gz com todos os softwares necessários.

Aproveitando o ensejo eu atualizei alguns sources com as versões mais recentes e dei uma enxugada retirando arquivos desnecessários para a instalação no Debian.

Baixe o pacote qmailrockzdebian e descompacte-o

  wget -c http://www.cropalato.com/alexos/qmailrockzdebian.tar.bz2
  tar jxvf qmailrockzdebian.tar.bz2

Execute o script de instalação inicial

  /downloads/qmailrocks/scripts/install/qmr_install_linux-s1.script

Aplique os patches

  /downloads/qmailrocks/scripts/util/qmail_big_patches.script

Compile o Qmail

  cd /usr/src/qmail/qmail-1.03
  make man && make setup check
  ./config-fast nome_do_host ( ex: ./config-fast mail.teste.org )

Crie um certificado digital

  make cert
  Country Name (2 letter code) [AU]:BR
  State or Province Name (full name) [Some-State]:Bahia
  Locality Name (eg, city) []:Salvador
  Organization Name (eg, company) [Internet Widgits Pty Ltd]:NGSecurity
  Organizational Unit Name (eg, section) []:IT
  Common Name (eg, YOUR name) []:debian
  Email Address []:postmaster@debian

Mude o dono do arquivo criado

  chown -R vpopmail:qmail /var/qmail/control/clientcert.pem /var/qmail/control/servercert.pem

Compile o Ucspi

  cd /usr/src/qmail/ucspi-tcp-0.88/
  patch < /downloads/qmailrocks/patches/ucspi-tcp-0.88.errno.patch
  make && make setup check

Compile o Daemontools

  cd /package/admin/daemontools-0.76/src
  patch < /downloads/qmailrocks/patches/daemontools-0.76.errno.patch
  cd /package/admin/daemontools-0.76
  package/install

Compile o Ezmlm

  cd /downloads/qmailrocks/
  tar zxvf ezmlm-0.53-idx-0.41.tar.gz
  cd ezmlm-0.53-idx-0.41
  make && make setup

Compile o Autoresponder

  cd /downloads/qmailrocks
  tar zxvf autorespond-2.0.5.tar.gz
  cd autorespond-2.0.5
  make && make install

Compile o Vpopmail com suporte a MySQL

Crie um usuário

  adduser  < ( ex. adduser vpopm )
  mkdir -p ~vpopmail/etc
  chown vpopmail:vchkpw ~vpopmail/etc
  echo "localhost|0|vpopmailuser|password|vpopmail" > ~vpopmail/etc/vpopmail.mysql < ( ex. echo "localhost|0|vpopm|123456|vpopmail" > ~vpopmail/etc/vpopmail.mysql )
  chown vpopmail:vchkpw ~vpopmail/etc/vpopmail.mysql
  chmod 640 ~vpopmail/etc/vpopmail.mysql

Configure o MySQL

  mysql -u root -p
  CREATE DATABASE vpopmail;
  GRANT all privileges ON vpopmail.* TO vpopm@localhost IDENTIFIED BY '123456';

OBS: Mude o usuário e a senha de acordo com o usuário criado anteriormente, como no meu exemplo criei o usuário vpopm vou usá-lo.

  quit

Testando

  mysql -u vpopm -p

Compile o Vpopmail

  cd /downloads/qmailrocks
  tar jxvf vpopmail-5.4.27.tar.bz2 && cd vpopmail-5.4.27
  ./configure --enable-logging=p --enable-auth-module=mysql --disable-passwd --enable-clear-passwd --disable-many-domains --enable-auth-logging --enable-sql-logging --enable-valias --disable-mysql-limits
  
  make && make install-strip

Compile o Vqadmi

  cd /downloads/qmailrocks
  
  tar zxvf vqadmin-2.3.6.tar.gz && cd vqadmin-2.3.6
  
  ./configure --enable-cgibindir=/usr/lib/cgi-bin --enable-htmldir=/var/www/html
  
  make && make install-strip

Configure o Apache2

Edite o arquivo /etc/apache2/sites-available/default

  vim /etc/apache2/sites-available/default

Comente as seguintes linhas:

  #
  # AllowOverride None
  # Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  # Order allow,deny
  # Allow from all
  #

e adicione as seguintes linhas:

  deny from all
  Options ExecCGI
  AllowOverride AuthConfig
  Order deny,allow

OBS: Veja como ficou o arquivo default após a alteração

Crie os arquivos necessários para autenticação no Apache

Acesse o diretório do Vqadmin

  cd /usr/lib/cgi-bin/vqadmin

Crie o arquivo .htaccess

  vim .htaccess

Copie o conteúdo abaixo:

  AuthType Basic
  AuthUserFile /etc/apache2/.htpasswd
  AuthName vQadmin
  require valid-user
  satisfy any

Mude o dono e as permissões do arquivo criado

  chown www-data .htaccess
  chmod 644 .htaccess

Crie o arquivo .htpasswd e informa a senha do usuário admin* e altere as pemissões do arquivo criado

  htpasswd -bc /etc/apache2/.htpasswd admin senha_admin
  chmod 644 /etc/apache2/.htpasswd
  apache2ctl restart

*OBS: Por padrão o vqadmin configura todas as permissões para o usuário admin. Se você quiser criar outro usuário leia a observação no final desta página

Testando

Acesse http://IP_SERVIDOR/cgi-bin/vqadmin/vqadmin.cgi

Crie um dominio de email e informe a senha do postmaster

OBS: Para habilitar o SSL leia estes posts:

Compile o Maildrop

  cd /downloads/qmailrocks
  tar jxvf maildrop-2.0.4.tar.bz2 && cd maildrop-2.0.4
  ./configure --prefix=/usr/local --exec-prefix=/usr/local --enable-maildrop-uid=root --enable-maildrop-gid=vchkpw --enable-maildirquota
  make && make install-strip && make install-man

Instale o Qmailadmin

  cd /downloads/qmailrocks
  tar zxvf qmailadmin-1.2.12.tar.gz && cd qmailadmin-1.2.12
  ./configure --enable-help --enable-htmldir=/var/www --enable-cgibindir=/usr/lib/cgi-bin --enable-imageurl=/images-qa --enable-imagedir=/var/www/images-qa
  make && make install-strip

Testando

Acesse http://IP_SERVIDOR/cgi-bin/qmailadmin

Informe o dominio criado no Vqadmin e a senha do postmaster

Instale o Qmail

  /downloads/qmailrocks/scripts/finalize/linux/finalize_linux.script

Edite os arquivos /var/qmail/supervise/qmail-pop3d/run e /var/qmail/supervise/qmail-smtpd/run localizando o mail.example.com e mude para o hostname do seu servidor

Finalize a configuração do Qmail

  qmailctl stop
  echo '127.:allow,RELAYCLIENT=""' >> /etc/tcp.smtp
  echo '172.16:allow,RELAYCLIENT=""' >> /etc/tcp.smtp *Aqui você irá informar a rede que poderá enviar email, que no meu exemplo é 172.16.0.0
  
  qmailctl cdb
  
  echo postmaster > /var/qmail/alias/.qmail-root
  echo postmaster > /var/qmail/alias/.qmail-postmaster
  echo postmaster > /var/qmail/alias/.qmail-mailer-daemon
  
  ln -s /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-anonymous
  
  chmod 644 /var/qmail/alias/.qmail*

Removendo o Exim

  /etc/init.d/exim4 stop
  update-rc.d exim remove

O mesmo pode ser feito para para o postfix ou qualquer outro MTA instalado

Inicie o Qmail

Rode o script qmr_inst_check

  /downloads/qmailrocks/scripts/util/qmr_inst_check

Obtendo a saida abaixo tudo está OK.

Congratulations, your Qmailrocks.org Qmail installation looks good!

Reinicie o qmail e verifique o status

  qmailctl stop
  qmailctl start
  qmailctl stat

Configure o Courier Imap

Compile o courier-authlib para obter uma biblioteca importante para autenticação via vpopmail

  cd /downloads/qmailrocks/
  tar jxvf courier-authlib-0.58.tar.bz2 && cd courier-authlib-0.58
  ./configure --prefix=/usr/local --exec-prefix=/usr/local --with-authvchkpw --without-authldap --without-authmysql --disable-root-check --with-ssl --with-authchangepwdir=/usr/local/libexec/authlib
  make && make check
  cp .libs/libauthvchkpw.so /usr/lib/courier-authlib/

Configurando o Courier

Edite o arquivo /etc/courier/authdaemonrc

  vim /etc/courier/authdaemonrc

Mude a linha authmodulelist

de

  "authpam"

para

  "authvchkpw"

após a mudança ela ficará assim authmodulelist="authvchkpw"

Mude a linha authmodulelistorig

de

  "authuserdb authpam authpgsql authldap authmysql authcustom authpipe"

para

  "authvchkpw"

após a mudança ela ficará assim authmodulelistorig="authvchkpw"

Reinicie os serviços IMAP

  /etc/init.d/courier-imap stop && /etc/init.d/courier-authdaemon stop && /etc/init.d/courier-imap-ssl stop && /etc/init.d/courier-imap start && /etc/init.d/courier-authdaemon start && /etc/init.d/courier-imap-ssl start

Testando

  telnet localhost 143
  Trying 127.0.0.1...
  Connected to localhost.
  Escape character is '^]'.
  * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc.  See COPYING for distribution information.
  < a login postmaster@dominio.com.br senha
  </a OK LOGIN Ok. < strong>( Logado com sucesso!!! )</strong>
  < a logout </strong>
  * BYE Courier-IMAP server shutting down
  a OK LOGOUT completed
  Connection closed by foreign host.

Instalando o Squirrelmail

O Squirrelmail é um dos webmails mais usados pela comunidade, além de ser bastante simples de usar e configurar ele possui vários plugins que incrementam o ambiente.

Existe um fork em pt_BR bastante interessante para as empresas chamado < a squirreloutlook.

Além de ser bastante bonito este tema facilita a interação do usuário com o ambiente.

Eu inclui o squirreloutlook no pacote do qmailrockzdebian com todas as correções necessárias, então com pequenos ajustes ele estará pronto para o seu ambiente.

Configurando o Squirreloutlook

Descompacte o arquivo webmail.tar.gz no diretório /var/www/html e configure-o

  tar zxvf webmail.tar.gz -C /var/www/html/
  mkdir /var/sqattachements
  chown -R www-data:www-data /var/sqattachements
  cd /var/www/html
  chown -R www-data:www-data /var/www/html/webmail/data
  cd /var/www/html/webmail/config
  ./conf.pl
  
  General
  -------
  1. Domain : 1.2.3.4<  (MUDE PARA O IP DO SEU SERVIDOR)
  2. Invert Time : false
  3. Sendmail or SMTP : SMTP
  
  IMAP Settings
  ------ --------
  4. IMAP Server : localhost
  5. IMAP Port : 143
  6. Authentication type : login
  7. Secure IMAP (TLS) : false
  8. Server software : other
  9. Delimiter : detect
  
  SMTP Settings
  ------ -------
  4. SMTP Server : localhost
  5. SMTP Port : 25
  6. POP before SMTP : false
  7. SMTP Authentication : login
  8. Secure SMTP (TLS) : false

Testando

  Acesse http://IP_SERVIDOR/webmail

Instale o Clamav

  cd /downloads/qmailrocks/
  tar zxvf clamav-0.87.tar.gz
  cd clamav-0.87
  useradd -s /sbin/nologin -d /tmp clamav
  groupadd clamav
  useradd -s /sbin/nologin -d /bin/false qscand
  groupadd qscand
  ./configure --prefix=/usr --sysconfdir=/etc
  make && make check && make install
  mkdir /var/log/clamav /var/lib/clamav
  chown -R clamav:clamav /var/log/clamav /var/lib/clamav

Configure o Clamav

Edite o arquivo /etc/clamd.conf

  vim /etc/clamd.conf
  
  "Example" - Comente
  "LogFile" - Mude para < /var/log/clamav/clamd.log </strong>
  "LogTime" - Descomente
  "LogSyslog" - Descomente
  "PidFile" - Descomente e mude para < /var/run/clamav/clamd.pid</strong>
  "User" - Mude para qscand
  "ScanMail" - Descomente

Configure o Freshclam

Edite o arquivo /etc/freshclam.conf

  vim /etc/freshclam.conf
  
  "Example" - Comente
  DatabaseDirectory - Descomente e mude para < /var/lib/clamav</strong>

Atualize a base de dados do Clamav

  /usr/bin/freshclam -l /var/log/clamav/clam-update.log

Agende as atualizações

  crontab -e
  35 1 * * * /usr/bin/freshclam --quiet -l /var/log/clamav/clam-update.log

Crie o script de inicialização

  cp /downloads/qmailrocks/scripts/misc/debian_clamd /etc/init.d/clamd
  mkdir /var/run/clamav
  chown -R qscand:qscand /var/run/clamav
  /etc/init.d/clamd stop && /etc/init.d/clamd start
  update-rc.d clamd start 75 2 3 4 5 .

Instale o Spamassassin

  cd /downloads/qmailrocks
  tar jxvf Mail-SpamAssassin-3.2.5.tar.bz2
  cd Mail-SpamAssassin-3.2.5
  perl Makefile.PL
  make && make install
  groupadd spamd
  useradd -g spamd -s /bin/false -m -d /home/spamassassin spamd

Configure o Spamassassin

  vim /etc/mail/spamassassin/local.cf

Edite o arquivo adicionando o parâmetros abaixo:

  rewrite_subject 1
  required_hits 5

Crie o script de inicialização

  cp /downloads/qmailrocks/scripts/misc/debian_spamd /etc/init.d/spamd
  mkdir /var/run/spamd
  chown -R spamd:spamd /var/run/spamd

Localize o arquivo spamd

  whereis spamd

Edite o arquivo /etc/init.d/spamd

  vim /etc/init.d/spamd
  DAEMON="ADICIONE AQUI O CAMINHO INFORMADO PELO COMANDO WHEREIS"

Inicie o Spamassassin

  /etc/init.d/spamd start
  update-rc.d spamd start 75 2 3 4 5 .

Instale o Qmail-scanner

  cd /downloads/qmailrocks
  tar zxvf qmail-scanner-1.25.tgz
  tar zxvf qms-analog-0.4.4.tar.gz
  cd qms-analog-0.4.4
  make all
  cp qmail-scanner-1.25-st-qms-20050618.patch /downloads/qmailrocks/qmail-scanner-1.25
  cd /downloads/qmailrocks/qmail-scanner-1.25
  patch -p1 &1

Reinicie o Qmail

  qmailctl stop && qmailctl start && qmailctl stat

Testando o Qmail-scanner

  cd /downloads/qmailrocks/qmail-scanner-1.25/contrib
  chmod 755 test_installation.sh
  ./test_installation.sh -doit

Instale o Qmailanalog

  cd /downloads/qmailrocks/
  tar zxvf qmailanalog-0.70.tar.gz
  cd qmailanalog-0.70
  make && make setup check

Instale o Qlogtools

  cd /downloads/qmailrocks/
  tar zxvf qlogtools-3.1.tar.gz
  cd qlogtools-3.1
  mkdir /usr/local/man
  make
  ./installer

Configure o Qmailstats

  cp /downloads/qmailrocks/qms-analog-0.4.2/qmailstats /var/qmail/bin
  vim /var/qmail/bin/qmailstats

Edite o arquivo qmailstats alterando as linhas your_postmaster@yourdomain.com com email do usuário que receberá os relatórios.

Concluindo a instalação do Qmailstats

  chmod 750 /var/qmail/bin/qmailstats
  /var/qmail/bin/qmailstats
  crontab -e
  0 3 * * * /var/qmail/bin/qmailstats 1>/dev/null 2>/dev/null

Instale o Qtrap

  cd /home/vpopmail
  mkdir -p qtrap/logs
  cd qtrap
  cp /downloads/qmailrocks/scripts/qtrap/qtrap-2.0.0 ./qtrap.sh
  vim qtrap.sh

Altere a linha

  address@somewhere.com|address@somewhereelse.com|*entiredomain.com

informando os emails ou diminios que estarão na whitelist do qtrap.

Altere a linha

  porn|PORN|Sex|SEX

informando as palavras proibidas.

Concluindo a configuração do Qtrap

  touch /home/vpopmail/qtrap/logs/qtrap.log
  chown -R vpopmail:vchkpw /home/vpopmail/qtrap
  chmod -R 755 /home/vpopmail/qtrap
  cd /home/vpopmail/domains/SEUDOMINIO
  vim .qmail-default

Adicione a linha

  | /home/vpopmail/qtrap/qtrap.sh

acima da linha existente como no exemplo abaixo:

Antes

  | /home/vpopmail/bin/vdelivermail '' delete

Depois

  | /home/vpopmail/qtrap/qtrap.sh
  | /home/vpopmail/bin/vdelivermail '' delete

Finalizando todos estes passos você terá uma solução robusta e completa de email.

Próximos passos

  1. Autenticar o Qmail no AD
  2. Criar uma ferramenta que agilize esta instalação.

Então mãos a obra!!!

Fontes

http://www.qmailrocks.org http://www.len.ro/2007/12/qmail/

Troubleshooting

Ocorrendo o erro

  configure: error: No vpopmail etc/lib_deps
  file. Upgrade to vpopmail-4.9.8 or above

durante a compilação do Vqadmin execute os seguintes comandos:

  cp /downloads/qmailrocks/scripts/misc/*_deps /home/vpopmail/etc/
  chown -R vpopmail:vchkpw /home/vpopmail/etc

Após executar estes comandos compile os Vqadmin normalmente.



 

 

Veja a relação completa dos artigos de Alexandro Silva

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script