Tutoriais/sendmail-qmail-postfix/QMAIL-Completo-Firewall
De UnderLinux Wiki
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.
--Duca 10:22, 7 Janeiro 2006 (BRDT)


