Author Topic: [ RESOLVIDO ] Filtro de E-mail  (Read 2010 times)

Gilberto Ferreira

  • Zen Hero
  • *****
  • Posts: 516
  • Karma: +12/-1
    • View Profile
[ RESOLVIDO ] Filtro de E-mail
« on: August 03, 2013, 07:13:33 pm »
Pessoal... Abri até um novo tópico pra isso...

Vou relatar aqui como eu resolvi o assunto do Filtro de SPAM e Anti-virus.
Acontece que o cliente tem um servidor de e-mail que não foi implantado por nós...
Implantamos um Servidor pra ele, com Proxy e VPN. Tudo bonitinho.
O cliente relatou muito spam no e-mail, então sugerimos colocar um serviço de MailFilter no Firewall.

Foi instalado os seguintes módulos:

- Mail
- MailFilter

Após instalar e ativar os módulos, precisamos ir em Communications -> Correio -> Geral.
Altere as configurações a seguir, mostrado no primeiro screen. Note que criamos um usuário no servidor de e-mail, para servir como smarthost do serviço postfix do Firewall.

No segundo screen eu desabilitei a parte de Pop(s) e Imap(s). Não precisaremos deles.

Habilite também a Lista Cinza (também conhecido como Postgrey (greylist)), em Communications -> Correio -> Lista Cinza. Veja o terceiro screen abaixo.

Salve a configuração.

Abra no Firewall do Zentyal, para ele deixar chegar nele, a comunicação com a porta 25, vindo da Internet.
Vá em Firewall -> Filtro de Pacotes -> Regras de filtros de redes externas para o Zentyal e crie uma nova regra, permitindo a chegada de e-mail para o firewall. Retire, se houver, a regra de redirecionamento (NAT) da porta 25 para o servidor de e-mail interno. Aplique as alterações.

Aqui temos que fazer um truque na linha de comando.
Se você observar a o log do mail, /var/log/mail.log, vai perceber que tem um monte de "Relay denied", pois o postfix do firewall.

Vamos acessar o servidor Zentyal pela linha de comando e ir para o diretório /usr/share/zentyal/stubs/mail.
Abra com o vim ou nano o arquivo main.cf.mas. Na linha 39, altere o seguinte (salve o main.cf.mas primeiro, copiando ele para outro lugar, antes de alterá-lo. Só pro precaução):

De:

$smtpRecipientRestrictions .= 'permit_sasl_authenticated, ';

Para:
$smtpRecipientRestrictions .= 'permit, defer ';


Esta parte abaixo, pode ser removida:

$smtpRecipientRestrictions .= 'permit_sasl_authenticated, ';
$smtpRecipientRestrictions .=  'permit_mynetworks, ';
#at his point all mail for whom the server isn't the final point or the
forwarder has been rejected so the next restrictions only applies in this two cases
$smtpRecipientRestrictions .= 'reject_unauth_destination, ';

$smtpRecipientRestrictions .= 'reject_non_fqdn_sender, ';
$smtpRecipientRestrictions .= 'reject_unknown_sender_domain, ';

$smtpRecipientRestrictions .= 'reject_invalid_helo_hostname, ';
$smtpRecipientRestrictions .= 'reject_non_fqdn_helo_hostname, ';
$smtpRecipientRestrictions .= 'check_helo_access pcre:/etc/postfix/helo_checks.pcre';

Agora salve o arquivo e reinicie o postfix, através do Zentyal:

/etc/init.d/zentyal mail restart

Abra o /etc/postfix/main.cf e veja que a alteração está lá, na linha 95:

smtpd_recipient_restrictions = permit, defer, check_policy_service inet:127.0.0.1:60000

O check_policy aqui refere-se ao Postgrey. Não altere.

Feito isso, se voltarmos ao /var/log/mail.log, veremos que agora o firewall está aceitando as mensagens vindas na Internet e repassando para o servidor de e-mail interno.
Use tail -f  /var/log/mail.log nos dois servidores para confirmar isso. Para sair do comando tail digite Crtl + c.

Agora voltamos para a interface Web do Zentyal e vamos para Communications -> Filtro de e-mail SMTP.
Na aba geral, alteramos o parâmetro:

Notifica sobre mensagens problemáticas não-spam:

Para enviar uma notificação de mensagem de SPAM para uma conta interna no servidor de e-mail.
Com isso, caso aja algum falso positivo, podemos pegar o e-mail dessa conta, posteriormente.

Na aba política de filtragem, em Regra de SPAM e Política de cabeçalhos mal-formados, deixe o padrão, que é Passar, pois por hora só iremos validar a solução.

Em Conexão Externas, em Servidores de e-mail externos, vamos Adicionar o IP do servidor de e-mail e marcar Permitir Conexão.
Faça o mesmo logo abaixo, só que para o dominio (FQDN) e marque Permitir Conexão.
Com isso estamos permitindo que tanto o IP como o dominio interno terão permissão de usar o filtro de mail. Aqui Externo, refere-se ao servidor de e-mail fora do Zentyal.

Aplique as alterações.

Em Filtro de E-mail -> Anti-spam temos como configurar o comportamento do Spamassassin. Os usuários mais avançados saberão o que fazer. Em caso de dúvida Não mexa. rs... A configuração que sempre faço é colocar uma mensagem personalizada em:

Etiqueta de assunto spam:

Aqui pode ser alterado sem mais problemas.

Aplique todas as configurações e depois vamos na linha de comando novamente.
Logue-se no Firewall e no servidor de e-mail e acompanhe com o comando tail -f /var/log/mail.log nos dois servidores, o que está acontecendo na linha de comando.

Eu espero que vocês também possam implementar essa solução aí no servidor de vocês.

Grande abraço...



Gilberto Ferreira

  • Zen Hero
  • *****
  • Posts: 516
  • Karma: +12/-1
    • View Profile
Re: [ RESOLVIDO ] Filtro de E-mail
« Reply #1 on: August 03, 2013, 07:22:25 pm »
SUPLEMENTO

Como nem tudo é perfeito, pode acontecer que algum e-mail caia no filtro de spam.
Mas e aí? Como fazer??

Vá para Communications -> Filtro de E-mail -> Antispam e em Política do rementente.
Clique em adicionar novo, e coloque o e-mail que caiu no filtro de spam e marque como Lista Branca. Logo em seguida clique em Adicinar
Aplicar as mudanças.
Agora o e-mail está na lista branca e não vai ser mais analisado pelo ant-spam.

Att