Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Curso de Inglês Online

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

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

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.08/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.1 /5 (1156 votos)

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
Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Asterisk na Prática 2ª Edição