Visite também: BR-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]

Tutoriais/sendmail-qmail-postfix/QMAIL-Completo-Firewall

De UnderLinux Wiki

Imagem:qmail.png

Como montar um QMAIL Completo e com Firewall


Tabela de conteúdo

Objetivo

Se você precisa de um servidor rápido, seguro, com anti-virus gratuido, anti-span e politicas anti-relay, SPF (DNS), autenticação de smtp, etc, os pacotes QMAILTOASTER são tudo que precisa. Com o QMAILTOASTER tudo isso é possível e tudo com painel de controle para o administrador e para o cliente via WEB.

Introdução

Nesse artigo mostrarei como instalar e configurar todos os pacotes da linha TOASTER e explicar os arquivos de configuração. Para esse tutorial todas as distros baseadas em source RPM são suportadas. Para instalar vou exemplificar como eu faço no FEDORA FC4 mas segue abaixo as flags para instalação de quaquer distro RPM.

Distro Flag
--------------------------------------
Mandrake 9.0 Linux mdk90
Mandrake 9.1 Linux mdk91
Mandrake 10.0 Linux mdk100
Mandrake 10.1 Linux mdk101
Mandriva 2005 Linux mdk102
Red Hat 9 Linux rht90
Fedora Core 1 Linux fdr10
Fedora Core 2 Linux fdr20
Fedora Core 3 Linux fdr30
Fedora Core 4 Linux fdr40
CentOS 3 Linux rht90
CentOS 4 Linux cnt40
Trustix 2.0 Linux trx20

Abaixo segue toda funcionalidade que seu servidor de e-mail terá após essa instalação:

SMTP with SMTP-AUTH, SpamThrottle, DNS, large concurrency

SPF "Sender Policy Framework"
Integrated SpamAssassin, ClamAV and Simscan
Warlock virus and worm loader realtime scanning
CHKUSER 2.0 functions for qmail-smtpd
Qmail-Tap provides email archive capability
Virtual Domains (MySQL), Virtual Users (MySQL)
Autoresponder, Mailing List
Web-based email system, Web-based administration tools
SMTP roaming via SMTP-AUTH, POP3-AUTH, & IMAP-AUTH
POP3, POP3-SSL, IMAP and IMAP-SSL

Instalação

Agora vamos iniciar.

1. Instale sua distro:

- (no meu caso FEDORA FC4).

- Escolha os pacotes de desenvolvimento.

2. Use o yum, apt-get ou up2date para verificar as dependências

- Verifique se todas as dependências estão instaladas (no meu caso uso yum):

#
yum -y install autoconf automake automake17 bzip2 bzip2-devel
compat-gcc-32 compat-gcc-32-c++ curl curl-devel expect expect-devel gcc
gcc-c++ gcc-java gdbm gdbm-devel gmp gmp-devel httpd httpd-devel
httpd-manual krb5-auth-dialog krb5-devel krb5-libs krb5-workstation
libgcc libidn libidn-devel mysql mysql-bench mysql-devel mysql-server
mrtg ntp openssl openssl-devel pcre perl-Digest-HMAC perl-Digest-SHA1
perl-Net-DNS perl-Time-HiRes php php-ldap php-mysql php-pear rpm-build
rpm-devel rpm-libs rpm-python sed setup setuptool spamassassin stunnel
system-config-date which

OBS: Caso alguma dependencia falhe não continue a instalação até ela estar instalada.

3. Remova os pacotes de e-mail que não vamos utilizar:

# yum -y remove sendmail evolution postfix

4. Baixe os pacotes que irão ser instalados em http://www.qmailtoaster.com/ :

Baixe os seguintes pacotes todos no mesmo diretório:

zlib
daemontools-toaster
ucspi-tcp-toaster
vpopmail-toaster
qmail-toaster
courier-imap-toaster
autorespond-toaster
control-panel-toaster
ezmlm-toaster
qmailmrtg-toaster
isoqlog-toaster
qmailadmin-toaster
vqadmin-toaster
maildrop-toaster
spamassassin-toaster
clamav-toaster
simscan-toaster

5. Verifique todas as dependências a seguir antes de começar a instalação:

Se for FEDORA 2, 3, 4 ou CENTOS:

# ln -s /usr/include/et/com_err.h /usr/include/

5.1 Crie a conta administrativa do MYSQL

# mysqladmin -u root password suasenha

# mysqladmin -u root -p reload
# mysqladmin -u root -p refresh

Verifique se tem zlib instalado e qual a versão dele (a versão tem que ser igual ou superior a 1.2.2.2)

# rpm -q zlib

Se não tiver instale ou atualize do diretório que vc baixou

# rpm -Uvh zlib*.rpm

Tire com o ntsysv todos os serviços desnecessários, deixe somente mysqld, httpd, syslogd etc, enfim os padrões.

6. Vamos começar a instalar os pacotes.

Não se esqueçam todos os pacotes precisam ser instalados NESSA EXATA ORDEM!

Vá ao diretório onde você baixou os rpms:

# cd /diretorio-rpms-qmail/

Agora teremos que recompilar cada pacote para transforma-lo de source src.rpm para rpm.

Usaremos "rpmbuild --rebuild --with (distro) pacote" onde no lugar da (distro) você vai substituir pela flag de sua distro que está na tabela do topo deste tutorial.

Na instalação abaixo estou tomando por padrão o Fedora FC4.

- Instalar DAEMONTOOLS

- Compilando

# rpmbuild --rebuild --with fdr40 daemontools*.src.rpm

- Instalando

# rpm -Uvh /usr/src/redhat/RPMS/i386/daemontools*.rpm

- Instalar UCSPI

# rpmbuild --rebuild --with fdr40 ucspi*.src.rpm
# rpm -Uvh /usr/src/redhat/RPMS/i386/ucspi*.rpm

- Instalar VPOPMAIL

# rpmbuild --rebuild --with fdr40 vpopmail*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/vpopmail*.rpm

Após a instalação do VPOPMAIL precisamos criar alguns parâmetros e bases para ele:

# mysqladmin create vpopmail -u root -p
# mysqladmin -u root -p reload
# mysqladmin -u root -p refresh

Edite o arquivo /home/vpopmail/etc/vpopmail.mysql e altere a senha SsEeCcRrEeTt para a senha que você desejar para o vpopmail.

Não deixe a senha padrão por motivos de segurança!

Crie um usuário no mysql para o vpopmail acessar sua base:

# echo "GRANT ALL PRIVILEGES ON vpopmail.* TO vpopmail@localhost IDENTIFIED BY 'senha_que_voce_criou'" | mysql -u root -p
# mysqladmin -u root -p reload
# mysqladmin -u root -p refresh

- Instalar QMAIL

# rpmbuild --rebuild --with fdr40 qmail*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/qmail*.rpm

- Instalar COURIER-IMAP

# rpmbuild --rebuild --with fdr40 courier*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/courier*.rpm

- Instalar AUTORESPOND

# rpmbuild --rebuild --with fdr40 autorespond*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/autorespond*.rpm

- Instalar CONTROL-PANEL

# rpmbuild --rebuild --with fdr40 control-panel*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/noarch/control-*
# rpm -Uvh /usr/src/redhat/RPMS/noarch/send-*

OBS: Veja que nessa compilação os pacotes vão para outra pasta "noarch" ao invés de "i386".

- Instalar EZMLM

# rpmbuild --rebuild --with fdr40 ezmlm*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/ezmlm*.rpm

- Instalar QMAILMRTG

# rpmbuild --rebuild --with fdr40 qmailmrtg*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/qmailmrtg*.rpm

- Instalar ISOQLOG

# rpmbuild --rebuild --with fdr40 isoqlog*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/isoqlog*.rpm

- Instalar QMAILADMIN

# rpmbuild --rebuild --with fdr40 qmailadmin*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/qmailadmin*.rpm

- Instalar VQADMIN

# rpmbuild --rebuild --with fdr40 vqadmin*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/vqadmin*.rpm

- Instalar MAILDROP

# rpmbuild --rebuild --with fdr40 maildrop*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/maildrop*.rpm

- Instalar SPAMASSASSIN

# rpmbuild --rebuild --with fdr40 spamassassin*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/spamassassin*.rpm

- Instalar CLAMAV

# rpmbuild --rebuild --with fdr40 clamav*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/clamav*.rpm

- Instalar SIMSCAN

# rpmbuild --rebuild --with fdr40 simscan*.src.rpm

# rpm -Uvh /usr/src/redhat/RPMS/i386/simscan*.rpm

Inicialização

1. Iniciando tudo

Se você seguiu a risca todos os passos acima, após a instalação completa reinicie seu servidor e tudo estará no ar já!

2. Arquivos de configuração importantes

- No caso de erros:

Erro enviando e-mail via web-client verifique o log /var/log/qmail/send/current
Erro enviando e-mail via email-client verifique o log /var/log/qmail/smtp/current
Erro recebendo e-mail via imap verifique o log /var/log/qmail/imap/current
Erro recebendo e-mail via imap-ssl verifique o log /var/log/qmail/imap-ssl/current
Erro recebendo e-mail via pop3 verifique o log /var/log/qmail/pop3/current
Erro recebendo e-mail via pop3-ssl verifique o log /var/log/qmail/pop3-ssl/current

Altere os arquivos /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-mailer-daemon /var/qmail/alias/.qmail-postmaster

Coloque o email do administrador do servidor precedido de & ficando assim:

&admin@server.com.br

Foram configurados 2 serviços, o de inicialização e controle do QMAIL e o de inicialização e controle do FRESHCLAM que atualiza seu anti-virus periodicamente.

Use:

# service qmail start
(para iniciar)

# service qmail stop
(para parar)

# service qmail stat
(para verificar se está rodando)

# service freshclamd start
(para iniciar o atualizador do anti-virus)

# service freshclamd stop
(para parar o atualizador do anti-virus)

Comandos alternativos ao SERVICE podem ser utilizados da mesma maneira:

qmailctl
fclamctl

Configuração

Configurações WEB

Você agora pode criar domínios, contas de e-mail e verificar logs de utilização do servidor via mrtg e logs de quantidade de e-mails e fila via painel de controle:

http://www.servidor.com.br/admin-toaster/

OBS: Não esqueça da "/" barra no final.

- Entre com:

usuário: admin

senha: toaster

Altere a senha!

Firewal

Vamos fazer um firewall agora para permitir acesso somente as portas necessárias!

Crie um arquivo chamado "configfirewall.sh" .

Edite o conteúdo e coloque:

############################### INICIO DO ARQUIVO - CORTE E COLE O INTERIOR

#!/bin/sh


iptables -F
iptables -Z


iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP


iptables -A INPUT -i eth0 -f -j DROP

iptables -A INPUT -m state --state NEW -j REJECT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

## BLOQUEIA IPS INVÁLIDOS NA INTERFACE LO
iptables -A INPUT -s 127.0.0.0/8 -i ! lo -j DROP
iptables -A INPUT -s 10.0.0.0/8 -i ! lo -j DROP
iptables -A INPUT -s 192.168.0.0/16 -i ! lo -j DROP
iptables -A INPUT -s 224.0.0.0/4 -i ! lo -j DROP
iptables -A INPUT -s 0.0.0.0/8 -i ! lo -j DROP
iptables -A INPUT -s 255.255.255.255 -i ! lo -j DROP
iptables -A INPUT -s 169.254.0.0/16 -i ! lo -j DROP


iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


## ACEITA PING
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT


## ACEITA ssh (porta 22)
iptables -A INPUT -p tcp -m tcp --syn --dport 22 -j ACCEPT


## ACEITA PORTAS PARA O SERVIÇO DE E-MAIL
iptables -A INPUT -p tcp -m tcp --syn --dport 25 -j ACCEPT
iptables -A INPUT -p udp -m udp -s 0/0 --dport 53 -d 0/0 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s 0/0 --dport 53 -d 0/0 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --syn --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --syn --dport 110 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --syn --dport 143 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --syn --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --syn --dport 465 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --syn --dport 783 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --syn --dport 993 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --syn --dport 995 -j ACCEPT


## SALVA CONFIGURAÇÕES NO SERVIÇO IPTABLES

service iptables save


############################### FIM DO ARQUIVO

- Após criar o script rode ele

# sh configfirewall.sh

Para deixar o firewall ativo agora, ligue com o ntsysv o serviço IPTABLES.

Pronto!! Seu firewall já está rodando!

Conclusão

Agora você tem um servidor de e-mails completo com suporte a autenticação smtp, anti-virus atualizado, anti-spam, firewall, etc.

FONTES

QmailToaster - http://www.qmailtoaster.com/


Qualquer dúvida coloco meu e-mail para explicações!

kablubr[NOSPAM]gmail.com

Até mais galera!


Kablu

Analista de Tecnologias

Comentários

Re: Como montar um QMAIL Completo e com Firewall (Pontos: 1)

por Guitarloko em Sexta, 22 julho 2005 @ 10:58:01

show de bola brother!!! ;-)

Felipe

Re: Como montar um QMAIL Completo e com Firewall (Pontos: 1)

por clarkvr em Sexta, 22 julho 2005 @ 18:20:04

Parabéns pelo artigo. Sou do tempo que compilava-mos tudo antes de rodar. Vcs lembram do qinstall que tinha na www.obua.org ? Era uma mão na roda.

Re: Como montar um QMAIL Completo e com Firewall (Pontos: 1)

por esamp em Quinta, 21 julho 2005 @ 07:56:44

Cara, parabéns! Ainda não testei, mas é o mais completo e detalhado tutorial de qmail em português que já encontrei!

Re: Como montar um QMAIL Completo e com Firewall (Pontos: 1)

por helio_traxx (xmalmsteen@zipmail.com.br) em Terça, 06 setembro 2005 @ 00:04:55

Testei ta tudo funcionando beleza!! so uma correcao!! o maildrop vem antes qmailadmin!! senao da erro de dependencia

Re: Como montar um QMAIL Completo e com Firewall (Pontos: 1)

por helio_traxx (xmalmsteen@zipmail.com.br) em Quarta, 07 setembro 2005 @ 20:41:28

tem que fazer essa alteracao pra tudo funcionar corretamente!

SELINUX em /etc/sysconfig/selinux
mude para SELINUX=disabled

Créditos

Tutorial no underlinux:http://www.underlinux.com.br/content/view/5134/70/

Este tutorial foi desenvolvido por Vinicius Maciel Simchake Kablu editado no wiki por Duca.


Imagem:Avatar olhos spawn 2.jpg --Duca 10:22, 7 Janeiro 2006 (BRDT)