De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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
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.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários