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.060 ]

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 desabilitar RAID 1

Como explicar o que é kernel para um leigo

Leitura recomendada

Configurando OpenSSH no Windows Server 2003 para autenticação por chave (sem senha)

Criando uma ISO bootável do OpenBSD

Enviando mensagens para usuários da rede

Multi-head usando udev e Xnest

Convertendo TXT ou HTML em OGG

  
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