Este artigo descreve bem detalhadamente a configuração de um servidor de email no CentOS. Precisei fazer isso e não obtive muita informação referente a uma instalação de um servidor de email mais robusto no CentOS, visto que é uma distribuição mais recente. Então depois de ralar bastante, segue minha contribuição ao pessoal do VOL e a alguém que venha precisar!
Run As User = postfix
Run As Group = postfix
MTA = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
File Timeout = 120
Maximum Archive Depth = 20
Virus Scanners = clamavmodule
Monitors for ClamAV Updates = /var/lib/clamav/*.cvd
Use SpamAssassin = yes
SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin
Spam List = ORDB-RBL SBL+XBL SORBS-DNSBL CBL RSL DSBL spamcop
Allow IFrame Tags = yes
Allow Script Tags = yes
Allow Object Codebase Tags = yes
Convert Dangerous HTML To Text = no
Minimum Stars If On Spam List = 3
Spam Lists To Reach High Score = 3
Sign Clean Messages = yes
Spam Actions = deliver
High Scoring Spam Actions = deliver
allow .[a-z][a-z0-9]{2,3}s*.[a-z0-9]{3}$ Found possible filename hiding
allow s{10,0} Filename contains lots of white space
allow {[a-hA-H0-9-]{25,}} Filename trying to hide its real type
allow .exe$ Windows/DOS Executable
allow .bmp$ Windows bitmap file security vulnerability
chkconfig --levels 235 postfix off
chkconfig --levels 2345 MailScanner on
Algumas configurações do MailScanner
Max Children = 1 -> quantas instâncias do MailScanner estaremos executando por vez, útil para acelerar o escaneamento de emails, mas acarreta uma maior carga no servidor.
Filename Rules = %etc-dir%/filename.rules.conf -> lista com as regras de processamento de anexos, edite este arquivo e configure conforme sua necessidade.
Quarantine Infections = no -> armazena uma cópia da mensagem infectada no servidor, aconselho a colocar "no".
Deleted Bad Content Message Report = %report-dir%/deleted.content.message.txt -> mensagem enviada ao usuário caso a mensagem apresente conteúdo perigoso, personalize este arquivo conforme sua necessidade.
Deleted Bad Filename Message Report = %report-dir%/deleted.filename.message.txt -> mensagem enviada para o usuário notificando-o sobre o anexo infectado, personalize a mensagem conforme sua necessidade.
Deleted Virus Message Report = %report-dir%/deleted.virus.message.txt -> mensagem enviada notificando sobre vírus, personalize a mensagem conforme sua necessidade.
Stored Bad Content Message Report = %report-dir%/stored.content.message.txt -> mensagem enviada para o usuário notificando que o email está em quarentena, personalize conforme sua necessidade.
Stored Bad Filename Message Report = %report-dir%/stored.filename.message.txt -> mensagem enviada ao usuário notificando que o anexo está em quarentena, personalize conforme sua necessidade.
Stored Virus Message Report = %report-dir%/stored.virus.message.txt -> email enviado ao usuário notificado-sobre a mensagem que está em quarentena, personalize conforme sua necessidade.
Disinfected Report = %report-dir%/disinfected.report.txt -> mensagem enviada ao usuário notificando que o email foi desinfectado, personalize conforme sua necessidade.
Inline HTML Warning = %report-dir%/inline.warning.html -> mensagem adicionada ao corpo do email dizendo que este foi escaneado.
Inline Text Warning = %report-dir%/inline.warning.txt -> mensagem adicionada ao corpo do email dizendo que este foi escaneado.
Sender Content Report = %report-dir%/sender.content.report.txt -> mensagem de resposta notificando o usuário que ele está enviando um vírus.
Sender Error Report = %report-dir%/sender.error.report.txt-> mensagem de resposta notificando o usuário que ele está enviando um vírus.
Sender Bad Filename Report = %report-dir%/sender.filename.report.txt-> mensagem de resposta notificando o usuário que ele está enviando um vírus.
Sender Virus Report = %report-dir%/sender.virus.report.txt-> mensagem de resposta notificando o usuário que ele está enviando um vírus.
Local Postmaster = email@dominio.com.br -> Local postmaster que irá receber as notificações de tudo o que está acontecendo em seu MailScanner.
Travar por email
No arquivo MailScanner.conf existe uma linha assim:
A propriedade "Filename Rules" aponta para um arquivo que contém um conjunto de regras visando aceitar ou negar um nome de arquivo, por exemplo, arquivos com extensão .exe, com muitos espaços entre uma letra e outra e com extensões repetidas são fortes candidatos a serem negados.
A propriedade "Filetype Rules" é parecida com Filename, mas trata de tipos de arquivos baseados em sua extensão, .zip, .exe, .mp3.
O arquivo configurado poderá ter qualquer nome, desde que o mesmo termine com .rules. É assim que o mailscanner identifica se um arquivo é uma regra ou um conjunto de regras.
Crie os arquivos filename.rules e filetype.rules.
É necessário criar os arquivos para que o MailScanner identifique qual arquivo de regras utilizar.
A sintaxe do arquivo é:
From ou To ou FromOrTO: <email> <arquivo da regra a ser utilizado>
Isto significa que se o email vier de wberbert@sermap.com.br, o MailScanner utilizará o arquivo filename.allow.exe.rules.conf para validar os anexos, caso venha de outro email, utilizará filename.rules.conf.
[2] Comentário enviado por farleypiva em 31/07/2007 - 13:43h
Ola Clezio.
Cara, essas linhas setam os serviços que vão ser inicializados com a maquina e suas prioridades.
No nosso exemplo, estamos desativando a inicialização do postfix e ativando a do MailScanner, porque ao inicializar o MailScanner, automaticamente ele inicializa o postfix.
Agora, sobre o seu erro; posta ele aki pra podermos entender melhor o erro.
[3] Comentário enviado por clezioazevedo em 01/08/2007 - 11:18h
Segue o erro:
Aug 1 11:15:15 server MailScanner[7045]: MailScanner E-Mail Virus Scanner version 4.41.3 starting...
Aug 1 11:15:15 server MailScanner[7045]: Possible syntax error in first keyword on line 25 of /etc/MailScanner/filetype.rules.conf
Aug 1 11:15:15 server MailScanner[7045]: Possible syntax error in first keyword on line 26 of /etc/MailScanner/filetype.rules.conf
Aug 1 11:15:15 server MailScanner[7045]: Read 120 hostnames from the phishing whitelist
vale salientar que as linhas 25 e 26 são as postadas no comentario anterior.
[6] Comentário enviado por farleypiva em 02/08/2007 - 09:04h
Ola oliveirajh!
Seguinte cara, assim que o endereço que voce criou receber um email, automaticamente o postfix cria o diretório em /home/vmail/dominio/usuario.
Mas só para constar, o usuario e o grupo são "vmail" e somente o dono tem permissoes que são rwx.
[7] Comentário enviado por oliveirajh em 02/08/2007 - 15:49h
Olá Farley,
As permissões do diretório, o usuário o grupo estão tudo OK. Crie o domínio na tabela domains e o usuário teste@domínio.com.br na tabela users. Quando envio um email recebo a mensagem no log: Recipient address rejected: Access denied; .... O que pode estar acontecendo?
[12] Comentário enviado por jgama em 10/08/2007 - 23:42h
Amigo Farley e compania.
Estou ou estava seguindo seu tuto mais parei quan a primeira copilação de erro
erro: Installed (but unpackaged) file(s) found:
/usr/lib/libltdl.a
/usr/lib/libltdl.la
/usr/lib/libltdl.so
/usr/lib/libltdl.so.3
/usr/lib/libltdl.so.3.1.0
Erros de criação do RPM:
Installed (but unpackaged) file(s) found:
/usr/lib/libltdl.a
/usr/lib/libltdl.la
/usr/lib/libltdl.so
/usr/lib/libltdl.so.3
/usr/lib/libltdl.so.3.1.0
Já a copilação do maildrop ocorreu sem problrema.
O que fazer para consegui copilar e criar o pacote rpm do courier-authlib-0.58-1
[13] Comentário enviado por farleypiva em 12/08/2007 - 20:48h
Caro José Valdir,
Estranho este erro, pois o maildrop deveria não ter compilado também...
Verifica se todos os pacotes que a gente instala no inicio como o rpm-build, gcc, gcc-c++ estão instalados.
Outro detalhe... voce atualizou o seu CentOS?
[14] Comentário enviado por TrancëJay em 13/08/2007 - 16:01h
Grande Farley,
Tudo parece estar funcionando perfeitametne a excessão do Mailwatch:
nenhuma das mensagens processadas aparecem na interface web, sempre fica a mensagem "No rows retrieved". Creio eu que seja algum problema de permissão, só não tenho idéia de onde. Tem alguma sugestão?
[15] Comentário enviado por farleypiva em 13/08/2007 - 16:10h
Beleza Leonardo?!
Cara, dá uma revisada nas configurações do MailWatch...usuario, senha, permissões também, conforme descrito no artigo. Se mesmo assim não funcionar, posta aqui novamente. Valeu
[17] Comentário enviado por farleypiva em 21/08/2007 - 13:41h
Vamos lá então Jose Valdir
Eu instalei utilizando o Centos 4, e não atualizei os pacotes não. Com certeza está faltando
algum pacote com as libs pra voce conseguir compilar.
Tenta instalar o pacote libc6-dev ou task-kernel-compiling ou linux-kernel-compiling...veja se existem alguns desses pacotes. Testa e poste aqui por favor.
[18] Comentário enviado por celsopimentel em 23/08/2007 - 17:02h
Instalei o MailWath, a unica alteração que tive que fazer para funcionar, talvez alguem jah passou ou possa passar po isso:
Em Mailscanner.conf
Virus Scanners = auto alterei para
Virus Scanners = clamav
[19] Comentário enviado por caiolira em 23/11/2007 - 11:27h
Oi Farley,
realizei os passos do tutorial mas não estou conseguindo logar no IMAP. Ao logar via telnet obtenho a seguinte mensagem:
. login email@dominio.com senha
* BYE Temporary problem, please try again later
Ao examinar o arquivo de log em /var/log/maillog encontro o seguinte:
Nov 23 10:29:47 mail imapd: Connection, ip=[::ffff:127.0.0.1]
Nov 23 10:30:00 mail imapd: LOGIN FAILED, user=email@dominio.com, ip=[::ffff:127.0.0.1]
Nov 23 10:30:00 mail imapd: authentication error: Input/output error
[21] Comentário enviado por caiolira em 23/11/2007 - 13:28h
Farley,
consegui resolver. Quando havia colado um dos arquivos de configuração com o editor nano ele inseriu uma quebra de linha que estava causando o problema.
Agora estou com outro problema hehe. Já cadastrei no banco de dados usuario,dominio, transporte. Quando tento enviar uma mensagem encontro o seguinte erro no log:
Nov 23 11:48:36 mail postfix/trivial-rewrite[4698]: warning: do not list domain dominio.com in BOTH mydestination and virtual_mailbox_domains
Nov 23 11:48:36 mail postfix/smtpd[4696]: NOQUEUE: reject: RCPT from localhost.localdomain[127.0.0.1]: 554 <email@dominio.com: Recipient address
rejected: Access denied; from=<root@localhost.localdomain> to=<email@dominio.com> proto=ESMTP helo=<localhost.localdomain>
Nov 23 11:48:36 mail sendmail[4695]: lANEmapU004695: to=email@dominio.com, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay,
pri=30045, relay=[127.0.0.1] [127.0.0.1], dsn=5.0.0, stat=Service unavailable
Nov 23 11:48:36 mail sendmail[4695]: lANEmapU004695: lANEmapV004695: DSN: Service unavailable
Nov 23 11:48:36 mail postfix/smtpd[4696]: NOQUEUE: reject: RCPT from localhost.localdomain[127.0.0.1]: 554 <root@localhost.localdomain>: Recipient
address rejected: Access denied; from=<> to=<root@localhost.localdomain> proto=ESMTP helo=<localhost.localdomain>
Nov 23 11:48:36 mail sendmail[4695]: lANEmapV004695: to=root, delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=31069, relay=[127.0.0.1]
[127.0.0.1], dsn=5.0.0, stat=Service unavailable
Nov 23 11:48:36 mail sendmail[4695]: lANEmapV004695: lANEmapW004695: return to sender: Service unavailable
Nov 23 11:48:36 mail postfix/smtpd[4696]: NOQUEUE: reject: RCPT from localhost.localdomain[127.0.0.1]: 554 <postmaster@localhost.localdomain>:
Recipient address rejected: Access denied; from=<> to=<postmaster@localhost.localdomain> proto=ESMTP helo=<localhost.localdomain>
Nov 23 11:48:36 mail sendmail[4695]: lANEmapW004695: to=postmaster, delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=32093, relay=[127.0.0.1]
[127.0.0.1], dsn=5.0.0, stat=Service unavailable
Nov 23 11:48:36 mail sendmail[4695]: lANEmapV004695: Losing ./qflANEmapV004695: savemail panic
Nov 23 11:48:36 mail sendmail[4695]: lANEmapV004695: SYSERR(root): savemail: cannot save rejected email anywhere
Nov 23 11:48:36 mail postfix/smtpd[4696]: disconnect from localhost.localdomain[127.0.0.1]
Acredito que seja algo relativo a criacao de diretorios, pois nao vi o diretorio do usuario ser criado em /home/vmail.
[22] Comentário enviado por farleypiva em 23/11/2007 - 14:20h
Beleza Caio.
Os diretorios são criados quando o usuario recebe o primeiro email.
Da uma olhada no arquivo /etc/postfix/main.cf nas linhas mydestination e virtual_mailbox_domains.
O meu está assim:
mydestination = $myhostname, localhost.$mydomain
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf
[23] Comentário enviado por caiolira em 23/11/2007 - 17:00h
Farley,
o problema estava na linha
smtpd_recipient_restrictions = permit_sasl_authenticated, reject
Esta linha nao permitia que enviasse email através do terminal simplesmenta através do comando "mail". Agora já estou conseguindo utilizar o servidor com o roundcube e estou enviando e recebendo emails entre as contas criadas. Agora só falta conseguir enviar email para a internet, estou aqui pesquisando o que falta para em seguida apontar o DNS em definitivo para este servidor.
[25] Comentário enviado por TrancëJay em 07/12/2007 - 11:37h
Cara, todos os seus relatórios funcionam? pq aqui no meu quase nenhum funciona. Ou a tela fica branca ou aparece 'no rows retrieved'. Já mandei um monte de spam e virus pra testar, aparece normalmente na 'recent list' mas os relatórios não funcionam. Alguma dica?
[28] Comentário enviado por infortecpfz em 17/09/2009 - 14:06h
Parabéns pelo Artigo!
Me esclareça uma dúvida por favor! Eu preciso configurar um grupo de e-mail para meu domínio,
semelhante aos grupos do Yahoo! e Google Grupos, para quando eu enviar um e-mail para
@meudominio.com.br todos que tiveram conta cadastrada neste domínio receba a mesma
mensagem, poderia me auxiliar no mesmo por favor? Muito obrigado :wq
[34] Comentário enviado por farleypiva em 22/12/2009 - 13:25h
Faz o seguinte então:
Cria um arquivo teste.php com o conteudo:
<?
phpinfo();
?>
E acesse esse arquivo pelo navegador. Tem que aparecer um monte de informações referentes ao php. Se não aparecer é pq o php não está instalado corretamente.
[35] Comentário enviado por jgrudek em 29/01/2013 - 18:07h
boa tarde fiz todo o procedimento do Tutorial
porem na hora que envio e-mails para fora volta um e-mail
com o seguinte erro:
<joaogustavo@meuemail.com.br>: host meuemail.com.br[x.x.x.x] said: 550 SMTP
AUTH is required for message submission on port 587 (in reply to RCPT TO
command)