Servidor de Email QMAIL + DEBIAN

De Wiki NOC
(Diferença entre revisões)
Wiki (Discussão | contribs)
(Criou página com ''''Instalando o Qmail no Debian Lenny''' 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 v…')
Edição posterior →

Edição de 14h40min de 16 de setembro de 2009

Instalando o Qmail no Debian Lenny


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 ).


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 AQUI

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 


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 [1] [2]

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. ( Logado com sucesso!!! )
   a logout
   * 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 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
   “LogTime” – Descomente
   “LogSyslog” – Descomente
   “PidFile” – Descomente e mude para /var/run/clamav/clamd.pid
   “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 

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

informado 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.

Ferramentas pessoais