Nesta dica irei descrever como implementar o
header_checks do
Postfix junto com o
MySQL.
Sem blablabla.... vamos direto ao ponto.
Para que tudo funcione é necessário ter o MySQL instalado. Em distribuições Debian like digite o seguinte comando para instalar o servidor MySQL:
# apt-get install mysql-server-5.5
Feito isso, siga os passos de instalação que serão descritos na tela.
Logue como ROOT em seu MySQL e crie o banco de dados "postfix", ou qualquer outro nome que seja fácil para sua identificação:
# mysql -u root -p
CREATE DATABASE postfix;
Entre no banco de dados postfix para poder criar a tabela dentro do mesmo:
use postfix;
Agora crie a tabela header_checks com o seguinte comando:
CREATE TABLE `header_checks` (
`hc_id` int(11) NOT NULL AUTO_INCREMENT,
`rule` varchar(255) NOT NULL,
`action` varchar(255) NOT NULL,
PRIMARY KEY (`hc_id`),
KEY `rule` (`rule`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
Preparação do Postfix
Creio que você já deva ter o Postfix instalado em seu servidor, já existem vários artigos tratando da instalação do mesmo.
Criaremos agora o arquivo de configuração para comunicação com o MySQL:
# vi /etc/postfix/header_checks.cf
Coloque este conteúdo dentro do arquivo que estamos editando:
user = SEU_USUARIO_DO_BANCO_postfix
password = SUA_SENHA_DO_BANCO_postfix
hosts = IP_ou_NOME_do_SEU_Servidor
dbname = NOME_DO_BANCO_DE_DADOS_postfix
query = SELECT action FROM header_checks WHERE '%s' REGEXP rule LIMIT 0,1
Próximo passo é editar a configuração no arquivo
/etc/postfix/main.cf, caso você ainda não tenha a linha abaixo, adicione-a:
header_checks = mysql:/etc/postfix/header_checks.cf
Com estes passos concluídos, nos resta apenas dar um restart no postfix e popular a tabela header_checks lá no MySQL, que mostrarei a correta sintaxe a seguir.
# /etc/init.d/postfix restart
Criando as regras de checks no MySQL
Aqui não temos muitos segredos, o que me deu mais trabalho foi encontrar a sintaxe correta de escrever a regra, mas vou poupá-los deste árduo trabalho e já passar a sintaxe correta da forma que estou utilizando em meus servidores.
Acesse o MYSQL:
# mysql -u root -p
use postfix;
INSERT INTO header_checks (`hc_id`, `rule`, `action`) VALUES (NULL, '^From:(.*)dominio.com.br', 'DISCARD #Dominio de SPAM Detectado');
Perceba que a sintaxe para a REGEXP usada pelo header_checks segue o seguinte padrão:
^From:(.*)dominio.com.br
Essa regra eu particularmente utilizo para bloquear domínios que costumam enviar SPAMs, mas podemos usar por exemplo para bloquear mensagens com determinados assuntos, no caso a regra ficaria parecida com isso:
^Subject:(.*)PROPAGANDA
Bom pessoal, é isso aí...
Espero que o assunto tenha sido abordado de maneira clara e objetiva.
Abraços.
Nenhum comentário foi encontrado.