Antispam em Shell Script

O funcionamento do esquema proposto neste artigo não pretende ser a melhor forma de bloquear emails indesejáveis, existem melhores opções para isto. Serve para exemplificar o poder do shell script junto com ferramentas do sistema normalmente encontradas na maioria das distribuições Linux.

[ Hits: 20.411 ]

Por: Jorge Alberto Corso em 02/02/2009


Funcionamento



O esquema proposto funciona do seguinte modo: em todo email de entrada será analisado seu remetente pelo Procmail antes de ser entregue para a caixa postal de destino. Primeiro será verificado se o email do remetente se encontra em uma lista de emails permitidos, se for encontrado é direcionado para a caixa postal de destino, senão será verificado se está em uma lista de emails bloqueados, se for encontrado, o email é automaticamente descartado, e por último se não for encontrado em nenhuma das duas listas, três atividades serão executadas:
  • o email é direcionado para a caixa postal de destino;
  • o email do remetente é adicionado na lista de emails bloqueados;
  • e por último um email com um aviso do bloqueio do email e solicitação para o desbloqueio é enviado para o remetente.

No email enviado ao remetente será colocado um link para que o mesmo acesse e então um novo email será direcionado para o destinatário inicial com um assunto padrão, caberá então ao destinatário decidir liberar ou não emails deste remetente.

Funcionalidade

Este esquema apenas eliminará emails verificando o remetente do email. Na primeira vez que um remetente enviar um email ele automaticamente estará bloqueado para receber outros emails do mesmo remetente enquanto o destinatário não receber outro email gerado pelo acesso do remetente ao clicar no link no corpo do email enviado avisando sobre o bloqueio.

Isto implica, por exemplo, em problemas quando um remetente ao tentar enviar um email com arquivo anexo esquece de anexar o arquivo e logo em seguida envia outro email com o devido anexo (situação muito comum), este segundo email será automaticamente descartado.

Requisitos necessários

Não serão explicados como funcionam o programas envolvidos.
  • procmail
  • formail
  • bash
  • apache com php
  • editor de texto
  • sed

Componentes

Todos os arquivos abaixo estarão no diretório home do usuário:
  • emails_bloqueados.txt: lista de emails bloqueados, um email por linha;
  • emails_permitidos.txt: lista de emails permitidos, um email por linha;
  • bloqueados.rc: arquivo procmail com emails bloqueados;
  • permitidos.rc: arquivo procmail com emails permitidos;
  • gera_emails_bloqueados.sh: shell script para criar o arquivo "bloqueados.rc";
  • gera_emails_permitidos.sh: shell script para criar o arquivo "permitidos.rc";
  • gera_email_retorno.sh: shell script para enviar email com aviso de email bloqueado;
  • novo_email.tmp: arquivo temporário para incluir email na lista de emails permitidos;
  • emails_bloqueados.tmp: arquivo temporário para excluir email da lista de emails bloqueados;
  • emails_permitidos.tmp: arquivo temporário para incluir emails na lista de emails permitidos;
  • msg.txt: arquivo com o corpo do email que será enviado para o remetente, solicitando que o mesmo acesso um site;
  • procmail.rc: arquivo de configuração do Procmail personalizado para o usuário.

Preparando o Procmail

Crie ou edite o arquivo .procmailrc no diretório home do usuário com o seguinte conteúdo:

INCLUDERC=~/permitidos.rc
INCLUDERC=~/bloqueados.rc

Sem este arquivo com este conteúdo todo o esquema não funcionará.

    Próxima página

Páginas do artigo
   1. Funcionamento
   2. Bloqueando automaticamente remetentes dos emails
   3. Desbloqueando email
Outros artigos deste autor

Desbravando o mundo do Software Livre

Como explicar o que é kernel para um leigo

Como desabilitar RAID 1

Leitura recomendada

Redundância de links - Mon + Shell Script

Solução para provedores - Receber aviso no celular quando ocorrer perda de pacote, hosts parados ou pacotes duplicados

Script de backup full + diferencial + compactador + restauração

Xdialog - Programação Gráfica Útil

Desinstalando todos os programas instalados a partir de uma data específica

  
Comentários
[1] Comentário enviado por robsonsbrasil em 16/09/2009 - 13:46h

Amigo no caso dos usuários que fazem uso do outlook como seria esse bloqueio e inclusão?
Abraços


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts