5 de agosto de 2016

Acabe com o SPAM em sua estrutura de e-mail - ASSP 2.5 com MySQL


É enorme a quantidade de SPAMs que circulam na internet atualmente, o que diminuiu drasticamente a produtividade dos usuários, além de possibilitar infecções por vírus provindas de e-mails maliciosos. A implantação de um sistema de anti-spam se tornou quase que obrigatória para o administrador de redes que tem como objetivo a implantação de um sistema de e-mails seguro e eficiente.

Por Diego Santana



O seguinte procedimento foi executado em um servidor com CentOS 7.
A localização dos arquivos de configuração foi definida para o diretório raiz (/assp), mas pode ser personalizado.

1 - INSTALAÇÃO ASSP CENTOS 7 COM MYSQL

1.1 - Desativar o firewall iptables
# systemctl stop firewalld                                                                                                                        
# systemctl disable firewalld

1.2 – Apagar regras default do iptables
# iptables -F;iptables -X;iptables -t nat -F;iptables -t nat -X;iptables -t mangle -F;iptables -t mangle -X

1.3 - Desabilitar o selinux
# sed -ie "s/=enforcing/=disabled/" /etc/selinux/config                                                                          
# reboot

2 - Desabilitar o Gerenciador de rede
# systemctl disable NetworkManager                                                                                                     
# systemctl stop NetworkManager
# systemctl enable network

3 - Atualizar o sistema e instalar pacotes necessários
# yum -y update                                                                                                                                       
# yum install vim telnet wget unzip psmisc gcc openssl-devel kernel-devel perl cpan

3.1 - Instalar os modulos necessários.
# perl -MCPAN -e shell                                                                                                                           
# install Text::Glob Number::Compare Compress::Raw::Bzip2 Compress::Raw::Zlib Compress::Zlib MIME::Body Convert::TNEF Digest::MD5 Digest::SHA1 Email::MIME::Modifier Email::Send Email::Valid File::ReadBackwards File::Scan::ClamAV LWP::Simple MIME::Types Mail::DKIM::Verifier Mail::SPF Mail::SPF::Query Mail::SRS Net::CIDR::Lite Net::DNS Net::IP::Match::Regexp Net::LDAP Net::SMTP Net::SenderBase Net::Syslog PerlIO::scalar threads threads::shared Thread::Queue Thread::State Tie::DBI Time::HiRes Schedule::Cron Sys::MemInfo IO::Socket::SSL BerkeleyDB Crypt::CBC Crypt::OpenSSL::AES use Unicode::GCString Sys::CpuAffinity Sys::Syslog Regexp::Optimizer

# notest install Mail::SPF::Query
Obs: Os módulos instalados via CPAN, por padrão ficam no home do usuário. Se a instalação for feito pelo usuário root, o diretório será no /root (/root/perl5/). É necessário incluir a variavel de ambiente PERL5LIB no arquivo de inicialização do serviço (/etc/systemd/system/assp.service):

PATH=/root/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PERL5LIB=/root/perl5/lib/perl5:

4 - Baixar e descompactar o source do ASSP no endereço "https://sourceforge.net/projects/assp/" (Home / ASSP V2 multithreading / 2.5.1 16177)
# unzip ASSP_X.X.X_XXXXX_install.zip                                                                                                         

5 - Ir no diretorio do assp e executar:
# perl assp.pl                                                                                                                                            

6 - Acessar o assp http://IP_SERVER:55555 (192.168.0.15:55555)

7.1 Na seção "Server Setup" alterar a opção "Run ASSP as a Daemon" para "Yes - Externally Controlled"

8 - Instalar os módulos para o assp no link "https://sourceforge.net/projects/assp/"
Caminho: (Files/ASSP V2 multithreading/ASSP V2 module installation/mod_inst.pl.2.01.zip)
# mkdir /assp/assp.mod/install/                                                                                                               
# cd /assp/assp.mod/install/
# wget https://sourceforge.net/projects/assp/files/ASSP%20V2%20multithreading/ASSP%20V2%20module%20installation/mod_inst.pl.2.01.zip
# unzip ASSP_X.X.X_XXXXX_install.zip
# perl mod_inst.pl
Obs: É necessário antes executar o passo 5, para a criação do arquivo assp.cfg, solicitado pelo script de instalação dos módulos.

9 - Criar script para inicialização via systemctl
# vim /etc/systemd/system/assp.service                                                                                                  

9.1 - Conteúdo do arquivo assp.service:
[Unit]                                                                                                                                                       
Description=AntiSpam SMTP Proxy
After=network.target
[Service]
Type=oneshot
Environment=PATH=/root/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Environment=PERL5LIB=/assp/lib:/root/perl5/lib/perl5:
RemainAfterExit=true
ExecStart=/usr/bin/perl /assp/assp.pl /assp/
ExecStop=/usr/bin/killall /usr/bin/perl
[Install]
WantedBy=multi-user.target
Obs: Alterar as entradas PATH com a variável $PATH do sistema, PERLLIB de acordo com o diretório de instalação dos módulos via cpan. A inclusão variável PATH é opcional e está configurada apenas para demonstração.

10 - Habilitando o serviço para inicialização automática
# systemctl daemon-reload                                                                                                                      
# systemctl enable assp
# systemctl start assp


2 - CONFIGURAR O MÓDULO DO MYSQL

2.1 - Instalar o pacotes dev do mysql no servidor assp.
# wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm                              
# yum localinstall mysql57-community-release-el7-8.noarch.rpm
# yum install mysql-community-devel.x86_64

3 – Acessar o shell do cpan e instalar o módulo do mysql e reiniciar o serviço do assp.
# perl -MCPAN -e shell                                                                                                                        
# install DBD::mysql
# systemctl restart assp.service
Obs: Certifique-se de ter instalado o módulo Tie::RDBM

4 – Configurar o ASSP para utilização do banco de dados.

4.1 - Na seção "File Paths and Database" alterar os campos para inserir:

4.1.1 – O endereço IP do servidor do banco de dados Mysql.
  • database hostname or IP
4.1.2 – O nome do driver para o banco Mysql
  • database driver name
mysql,PORT=3306                                                                                                                               

4.1.3 – O nome da base de dados:
  • database name
4.1.4 – O usuário da base:
  • database username
4.1.5 – A senha da base:
  • database password
4.2 – Aplicar as configurações e reiniciar o serviço.


5 – Definir os dados que serão armazenados na base de dados.

5.1 - Na seção "File Paths and Database" seta os campos que utilizarão o banco de dados, inserindo “DB:” no campo.

5.1.1 – Para whitelist:
  • Email Whitelist Database File
5.1.2 – Para redlist
  • Email Redlist Database File
5.1.3 – Para Blacklist Pessoal
  • Personal Blacklist Database File
5.1.4 – Para os arquivos de penalidade de spam
  • PenaltyBox Database (pbdb)
5.2 – Reiniciar o serviço do assp
# Systemctl restart assp.service                                                                                                               

A seguinte saída será armazenada no arquivo de log /assp/logs/maillog.txt


6 - Importar os arquivos existentes para a base de dados Mysql

6.1 - Copiar os arquivos de whitelist, redlist etc em (/assp/database/) para o diretório /assp/mysql/dbimport renomendo todos para a extensão “.rpl”.

6.2 – Copiar os arquivos de penalidade “pb” em (/assp/database/pb/) para o mesmo diretório com a extensão “.rpl”.

6.3 - Em "File Paths and Database" Marcar a opção (import all files from the importDBDir Directory in to the database - now) e rodar o DBimport Now.


Obs: É possível analisar o estado da importação, abrindo o arquivo em /assp/logs/maillog.txt.

Um comentário:

  1. Muito bom artigo, sem dúvida o spam é sempre um grande problema, é muito bom que exista uma solução para isso, por isso fiz uma conta em ... ig criar conta direto, e para ter um melhor controle de spam .
    saudações

    ResponderExcluir