Servidor de e-mail no Linux com MTA Sceo

Como configurar um servidor de email no Linux usando MTA Sceo e Courier-IMAP com base de dados MySQL, Maildir, proteção antivírus com Clamav, proteção antispam com SPF e Greylist, quota de caixa postal e controle de número de emails enviados por cliente.

[ Hits: 43.706 ]

Por: Lucas Priori em 15/09/2008


Antivírus Clamav e finalizando



O Clamav é um projeto free e a atual versão suporta analisar arquivos de email diretamente. Ele consegue procurar por seus anexos e escaneá-los.

# cd /home/temp
# tar xzvf clamav-0.94.tar.gz
# groupadd clamav
# useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav
# cd clamav-0.94
# ./configure --sysconfdir=/etc --libdir=/usr/lib
# make
# make install


Agora edite o arquivo /etc/clamd.conf e comente a linha "Example" com um "#":

#Example

Faça o mesmo com o arquivo de configuração do programa de update freshclam: /etc/freshclam.conf.

Agende seu cron para atualizar o banco de dados do Clamav uma vez ao dia:

00 0 * * * /usr/local/bin/freshclam --daemon-notify=/etc/clamd.conf

Ligue o clamd com o comando:

# /usr/local/sbin/clamd

Vamos fazer o Sceo acionar o Clamav a cada email que chegar. Edite o arquivo /usr/local/sceo/data_regras.

# pico /usr/local/sceo/regras_data

Acrescente a seguinte linha:

Exec! "/usr/local/bin/clamdscan --quiet /var/spool/sceo/c%d" Exec_resp? "1" Reply! "500 Email com VIRUS" Deny!

Obs.: Os comandos acima DEVEM ficar na mesma linha.

Salve e saia do arquivo. Não é preciso reiniciar o Sceo.

Sempre que um email for recebido pelo Sceo ele manda o clamdscan verificar o email que está ainda na fila e se a resposta do clamdscan for "1", significa que o email está infectado e ele é recusado antes de ser aceito por completo. Se quiser, você pode mandar o Sceo gravar um log, basta usar a seguinte linha no lugar da regra anterior:

Exec! "/usr/local/bin/clamdscan --quiet /var/spool/sceo/c%d" Exec_resp? "1" Reply! "500 Email com VIRUS" Deny! Log! "/var/log/sceo/virus.log:ID %d recusado por conter virus"

Edite o seu rc.local para ligar automaticamente os servidores.

# pico /etc/rc.d/rc.local

Acrescente as seguintes linhas no arquivo:

### Ligando Antivírus ###
/usr/local/sbin/clamd

### Ligando o MTA Sceo ###
/etc/rc.d/rc.sceo start

### Ligando o Courier-IMAP ###
/etc/rc.d/rc.courier start

Seu servidor de emails está terminado.

Tentei ser o mais claro possível sem estender muito o tutorial. Espero ter ajudado.

Você pode consultar uma lista de condições e ações do MTA Sceo para um maior controle de seu servidor de emails em:
Lucas Priori
lpriori@hospedaria.com.br

Sites dos projetos e referencias:
Página anterior    

Páginas do artigo
   1. Preparando-se
   2. Courier-Authlib
   3. Courier-IMAP
   4. MTA Sceo
   5. Configurando o SPF
   6. Greylist
   7. Quota de caixa postal e número de emails enviados
   8. Antivírus Clamav e finalizando
Outros artigos deste autor

Dividindo carga de saída de servidor SMTP (MTA Selor)

Servidor de emails com Dovecot e MTA Sceo (projeto brasileiro)

MTA Selor: Servidor de E-mails - Novo Projeto GPL

Benchmark entre servidores de e-mails

Leitura recomendada

Servidor de e-mail com anti-vírus: MailScanner + Exim + Clamav + Cpanel/WHM

Postfix - Integração AD e autenticação

Como fazer usuário interagir com SpamAssassin

Cluster de Alta disponibilidade do Zimbra Collaboration System

Postfix com autenticação em base LDAP no Slackware

  
Comentários
[1] Comentário enviado por giovanildo em 15/09/2008 - 09:49h

É por causa de artigos como esse que se tornou rotina a minha visita a este site, o q tenho a dizer eh obrigado.

[2] Comentário enviado por naarea em 15/09/2008 - 11:56h

So tomem cuidado com a questão da licença do software
"2) Esta versão do MTA Sceo não disponibiliza seu código-fonte, ficando
obrigado a qualquer um não modificar, descompilar ou utilizar qualquer outro
meio para descobrir o código-fonte do programa."

"Você deve estar ciente de que o programa não
é livre de defeitos e seus autores e/ou distribuidores não dão e não
podem dar qualquer tipo de garantias"

Mais parabens pelo tutorial.

[3] Comentário enviado por lpriori em 15/09/2008 - 13:24h

Ola naarea e giovanildo,

Obrigado, é muito bom poder contribuir para a comunidade.
Pretendo escrever muito mais.

O software é grátis como os de licença GPL, mas por enquanto só não é possível modifica-lo porque seu código fonte não esta disponível.

Toda idéia das "garantias" foram tiradas da licença GPL que tenta sempre proteger o autor de qualquer problema. Foi apenas isso que tentei fazer. Este programa esta em uso em muitos lugares e a muito tempo sem dar problemas, sem sequer precisar ser reiniciado.

Não tenho sequer pensamentos de num futuro próximo cobrar o uso do programa, muito pelo contrário, espero disponibiliza-lo sob GPL também, assim como seus utilitários disponíveis no site.

Conheço vários outros programadores que também tem medo de disponibilizar o código fonte de seu projeto e na maioria das vezes eles nem mesmo divulgam o projeto. Uma pena pois nosso país é residência dos melhores programadores.

O Sceo é um projeto muito especial pra mim. Esta disponível porque tenho certeza absoluta que seu poder em velocidade, flexibilidade e segurança vai ajudar muito todos nós da comunidade e porque tenho o sonho de incentivar nós brasileiros a mostrar que temos o potencial para bater de frente com os enlatados de fora e principalmente porque quero receber dicas de melhorias.

Gostaria de aproveitar e agradecer ao grupo vivaolinux. Achei extremamente profissional o processo de criação de tutorial aqui.



[4] Comentário enviado por renatomartins em 15/09/2008 - 14:35h

Parabéns pelo MTA.
Mas não caia no erro do qmail, que devido o tipo da licença não se popularizou, e não pode ser integrada nas distribuições e não teve o devido crescimento. Isso foi uma grande perda para a comunidade livre.
Mas mesmos sem licença mas com código aberto ele é considerado o melhor servido de email do mundo.( o código do qmail é aberto com ressalva o núcleo não pode ser alterado só podemos aplicar patch. )

Outra coisa se você abrir seu código alem de ganhar varias contribuições e atá melhorias. Você pode aprende muito com outros programadores e talvez até uma distro linux receber seu servidor como uma alternativa ate mesmo para o qmail e portfix.

Eu mesmo já precisei fazer varias alterações tanto no postfix quanto qmail e isso só foi possível devido o código ser aberto

Um grande abraço e novamente Parabéns

[5] Comentário enviado por grandmaster em 15/09/2008 - 17:24h

Muito bom saber que temos mais opções :D

Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br

[6] Comentário enviado por nariz em 16/09/2008 - 08:36h

nao conhecia esse
testarei em breve

obrigado

[7] Comentário enviado por c.rafael em 16/09/2008 - 17:32h

lpriori ,

Meus parabéns pelo o software e pelo insentivo de colocar o mesmo no VL. Irei testar o mesmo e colocar o resultado do mesmo aqui.

Abraços

[8] Comentário enviado por Telli em 16/09/2008 - 17:44h

Mas não possui nem um webmail ? E como criar as contas de e-mail nele ?

[9] Comentário enviado por lpriori em 20/09/2008 - 17:43h

Desculpem-me mas ficou faltando um comando no tutorial.

Logo após a instalação do Maildrop, é preciso setar o uid dele senão ele pode ter problemas para entregar o email na caixa postal.

# chmod 4555 /usr/local/bin/maildrop

É só fazer isto e tudo fica ok

Em relação a criação de contas de emails:
Estou terminando uma ferramenta de criação das contas de emails no banco de dados MySQL que será anexada ao pacote do sceo_mysql em breve.


Obrigado a todos pelos comentários.
Espero que gostem do projeto.


[10] Comentário enviado por kram3r em 09/10/2008 - 20:43h

Caro lpriori,
adorei o seu mta. Simples prático rápido e seguro.
Implementei ele em 2 servidores que utilizo e estão trabalhando de forma absolutamente Jóia!!!
porem, vc comentou que esta terminando uma ferramenta de criacao de contas. Eu a fiz e estou somente finalizando e o código estará liberado após alguns testes. Inclusive gostaria de uma avaliação sua e do pessoal que já o tem implementado (basta entrar em contato).
Outra coisa que gostaria de saber, é como implementar lista de discussao nele (como o mailman, ezmlm, majordomo e outros...)Há algum já implementado com SCEO?

Grande abraço e parabens.

[11] Comentário enviado por lpriori em 21/10/2008 - 16:13h

Obrigado pelo comentário aqui e o que me enviou por email, kram3r

Como disse a você via email, eu nunca instalei esses gerenciadores de listas com Sceo. Quando você o fizer,
ficaremos feliz em ler um tutorial seu explicando o caminho (principalmente eu) ;-)

Podem enviar qualquer dúvida ou sugestão por email ou pelo site sceo.hospedaria.com.br que
ficarei feliz em ajudar ou que me ajudem. =)

Uma nova versão do Sceo esta a caminho, com muitos melhoramentos, por isso é importante que eu
receba sugestões para o projeto.

Há uma nova versão do modulo Mysql
A versão apontada pelo tutorial é a versão 1.1 e a nova versão é a 1.2
http://sceo.hospedaria.com.br/ferramentas/sceo_mysql_1.2.tar.bz2

Foi corrigido apenas um bug no controle de quota para caixas postais gigantes.

Abraço a todos e mais uma vez obrigado a equipe do VOL.



[12] Comentário enviado por lpriori em 14/11/2008 - 16:46h

Esta disponível no site do projeto o Sceo-UI. É uma ferramenta extremamente útil escrita em PHP para administrar seu servidor de emails.
Foi programada pelo Ananias (kram3r)

O link é http://sceo.hospedaria.com.br/ferramentas/sceo-ui-0.6.tar.gz


Obrigado Ananias por contribuir para o projeto. O administrador ficou excelente.

[13] Comentário enviado por lpriori em 12/12/2008 - 13:05h

Me desculpem mais eu percebi um erro no tutorial. É um erro de digitação apenas.

Na parte de Greylist, a regra que aciona o programa no arquivo regras_destinatario esta incorreta.

Na regra:
!SPF_resp? "1" !Auth? Internal_rcpt? Exec! "sceo_greylist -i %s -f %f -t %r" Exec_resp? "1" Reply! "451 Tente mais tarde" Deny!

A primeira condição esta digitada de forma errada, o correto é:
!Spf_resp? "1" .....

Com o erro, a Greylist acaba não sendo processada e por conseqüência, muitos Spams passam.



[14] Comentário enviado por calaff2 em 31/01/2009 - 23:46h

Ae meu velho estou com alguns problemas nunca configurei um servidor de email.
Vamos lá:
telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.

login lucas@dominio.com.br mudar123
-ERR Invalid command.

login idalmo@ipxba.no-ip.biz
-ERR Invalid command.

elnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.

user lucas@dominio.com.br
+OK Password required.

ass mudar123
-ERR Temporary problem, please try again later
Connection closed by foreign host.

telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.
user idalmo@ipxba.no-ip.biz
+OK Password required.
pass mudar123
-ERR Temporary problem, please try again later
Connection closed by foreign host.




[15] Comentário enviado por lpriori em 01/02/2009 - 12:56h

Olá calaff2,

O primeiro problema ocorreu porque você errou a porta. Você deu comandos de IMAP no POP3

"login lucas@dominio.com.br mudar123" é um comando de IMAP que funciona na porta 143

Veja que você deu um telnet na porta 110

O outro problema ocorreu porque provavelmente você não criou o diretorio HOME do email lucas@dominio.com.br

De uma olhada no tutorial, antes ele te manda criar o diretorio home do email...

Abraço,
Lucas

[16] Comentário enviado por calaff2 em 01/02/2009 - 14:41h

Lucas você tem como informar seu msn e seu email para contato tirar algumas duvidas?


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.
? login lucas@dominio.com.br mudar123
* BYE Temporary problem, please try again later
Connection closed by foreign host.


telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.
user lucas@dominio.com.br
+OK Password required.
pass mudar123
-ERR Temporary problem, please try again later
Connection closed by foreign host.



ta criado o direotrio

ls /home/mail/dominio.com.br/lucas/Maildir/
cur/ maildirsize new/ tmp/

ls /home/mail/ipxba.no-ip.biz/idalmo/Maildir/
cur/ maildirsize new/ tmp/


Att: Idalmo Junior

[17] Comentário enviado por lpriori em 02/02/2009 - 16:10h

Pode ser um problema de permissão então.

Tente dar um chmod -R 755 em /home/mail
chmod -R 755 /home/mail

o Corrier é meio chatinho mesmo.

Algum passo foi pulado no tutorial. Verifique se o /usr/local/libexec/courier-authlib/authdaemond esta rodando.


Você pode me contactar pelo email sceo@hospedaria.com.br

Abraço,
Lucas

[18] Comentário enviado por lpriori em 02/02/2009 - 16:11h

Esqueci de um detalhe,

Verifique se é o usuario do diretorio também.

chown -R sceo. /home/mail


[19] Comentário enviado por calaff2 em 11/02/2009 - 14:18h

Lucas velho você esta vivo ? hauhauha mandei alguns emails para você e até agora não recebi resposta .

Abraços

Att: Idalmo Junior

[20] Comentário enviado por lpriori em 22/06/2009 - 15:36h

Gostaria de informar que o código fonte do MTA Sceo será disponibilizado em breve sob licença GPL.
O código fonte esta sendo preparado para um fácil entendimento, como adição de comentários, estrutura interna de distribuição das funções em arquivos fonte separados, etc...

Espero poder contar com a comunidade livre

[21] Comentário enviado por kram3r em 22/06/2009 - 15:46h

Ótima notícia.
Lembrando que uma das ferramentas externas do sceo já é GPL (nasceu GPL)
O Sceo-UI que era de minha autoria e que já foi modificado por 4 pessoas e hoje tem um mantedor junto comigo na re-escrita do zero utilizando o framework CodeIgniter.
Parabéns pela decisão!

[22] Comentário enviado por poetah em 02/10/2009 - 11:15h

Belo artigo,
mais aqui não se encontra a pasta com o file
para iniciar o imap

/usr/lib/courier-imap/libexec/imapd.rc

debian lenny aqui

?


[23] Comentário enviado por poetah em 03/10/2009 - 01:09h

disfarça, acabei não lendo os erro na compilação e nao vi que precisa de permissão ali para criar as pastas!!!

(Y)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts