tdc2016poa | trilha python - heimdall guard - spam filter
TRANSCRIPT
Heimdal Guard Spam Filter
Outubro/2016
Alisson Machado
Conhecendo o Palestrante
Alisson Machado;
Analista de Sistemas DevOps;
5 anos de experincia em projetos FOSS (Free and Open Source Software) e Python;
Certificaes LPI 1 , LPI2, SUSE CLA
Responsvel pelo Desenvolvimento do BeavOps e Heimdall Guardian
Alisson Machado
Conhecendo a 4Linux
Metodologia IT Experience - Cenrios reais
Cursos prticos, rpidos e baratos de autores feras: www.4shot.com.br
Projetos complexos de misso crtica, com infra e desenvolvimento PHP
Ao final dessa palestra
1 sorteio de cursos online via filipeta
Curso de Python
Projeto Heimdall Guard
Descrio do Cenrio
(Necessidade!)
Com o surgimento da filosofia DEVOPS tudo isso se tornou realidade!
Necessidade
Filtrar Emails invlidos;
Cabealho Invlido;
Spams;
Vrus;
Brigar com a Cisco;
Mais de 10 Milhes de Emails.
Necessidade
Heimdall Guard Spam Filter;
OpenSource;
Python e Flask;
Projeto Heimdall Guard
Porque Python?
Linguagem que navega muito bem no mundo DevOps (Infraestrutura / Desenvolvimento);
Mdulos prontos para a maioria das Tecnologias;
Desenvolvimento Web e Scripts na mesma linguagem;
Know How Interno;
Soluo proposta - Arquitetura
Visualizar Original
Postfix
Receber todos os e-mails e aplicar os filtros
/opt/postfix/main.cf
content_filter = smtp-amavis:[127.0.0.1]:10024
Postfix
Receber todos os e-mails e aplicar os filtros
/opt/postfix/ACL/client_access.cfHosts = 127.0.0.1 # dados banco amavisuser = user_bancopassword = passwd_bancodbname = db_namequery = SELECT (case when type = 'W' then 'OK' else 'REJECT' end) as action FROM postfix_wb_list WHERE address = '%s' and rules = 'C'
Amavis
Integra Postfix com o ClamAV
/etc/amavis/conf.d/50-user
@storage_sql_dsn = ( ['DBI:Pg:database=amavisdb;host=127.0.0.1;port=5432', 'user_amavis', 'passwd_amavis'],);
PostgreSQL
Banco de Dados Amavis e Heimdall
Banco de Dados Relacional
Alta Performance
Escalabilidade Vertical
Auto Vacuum
SQLAlchemy
ORM escrito em Python
Facilidade em Conexo com o Banco de Dados
Abstrao do banco de dados em orientao a objetos
Cria banco de dados automaticamente
Gerando Model
Banco de dados j existente
Gerar Model a partir deste banco
pip install sqlacodegen
sqlacodegen postgresql://user:password@localhost/dbname
SpamAssassin
Aprendizado de Deteco de Spam
Banco de dados noSQL
Aprendizagem bayesiana
Escalabilidade Vertical
sa-learn --{0} --no-sync -u {1}
subprocess.call([cmd],shell=True)
Dashboard
Porque Flask? Microframework, Modular;
Separao de Responsabilidades (Blueprint)
timo para construir API
Mdulos para SQLAlchemy
Mdulos Autenticao e Permisso
Dashboard
Jinja2
Mdulos usados: Flask Desenvolvimento da Aplicao
Flask-SQLalchemy Conexo com o banco
Flask-Login Controle de Acesso
Demonstrao
Com o surgimento da filosofia DEVOPS tudo isso se tornou realidade!
Resultados Ps Implantao
Desc/AmbienteIronPort
(Nov15)Heimdall (Abr16)
Bloqueio de Spam2.212.0741.889.828
Bloqueio por Reputao13.859.0021.859.077
Bloqueio de DNS invlido515.69615.324.782
Bloquei de Vrus2.3092
Mensagens Limpas5.184.0285.185.788
Falso Positivo/Negativo-856.558
Comparativo IronPort X HeimdallGuard
Concluso:
Nvel de eficincia entre as solues so similares
Prximos Passos
Para 2017Evoluo da Interface;
Trocar Banco Relacional por noSQL(MongoDB);
Clusterizao Nativa;
Gerao de Relatrios;
Exportao de Relatrios.
4Linux Open Source Software
http://4linux.github.io
Perguntas
Boa Sorte!!
Gabriela DiasAlisson Machadowww.4linux.com.brwww.4shot.com.br
Sigam-nos@4linux@4shotcursoshttp://pt.slideshare.net/4LinuxCursos/