Produtos

HACKER Filter para OpenSMTPD

Um filtro OpenSMTPD pronto para producao, criado para operar junto da sua stack de seguranca de email.

Visao geral

O que o HACKER Filter faz

O HACKER Filter e um filtro OpenSMTPD pronto para producao que oferece:

  • Bloqueio por IP com suporte a sub-redes CIDR
  • Bloqueio de hostnames/dominios usando regex
  • Validacao HELO/EHLO para detectar conexoes forjadas
  • Filtro de remetente no nivel do envelope
  • Protecao de destinatarios sensiveis
  • Filtro de conteudo para palavras e frases de spam
  • Inspecao de cabecalhos para padroes maliciosos
  • Configuracoes por usuario para personalizacao individual
  • Suporte a whitelist global e por usuario

Dica

O filtro integra com stacks existentes de seguranca de email, incluindo rspamd, SpamAssassin, ClamAV e verificacao DKIM/DMARC.

Arquitetura

Visao geral do sistema

O filtro entra no ciclo de vida de sessao do OpenSMTPD e entrega para o pipeline maior de seguranca antes da entrega local.

┌─────────────────────────────────────────────────────────────────────────┐
│                                INTERNET                                 │
└─────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                         FIREWALL (pf/pfctl)                             │
│                         Port 25, 465, 587                               │
└─────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                          OpenSMTPD (smtpd)                              │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐     │
│  │   CONNECT   │─▶│    HELO     │─▶│  MAIL FROM │─▶│  RCPT TO   │     │
│  └─────────────┘  └─────────────┘  └─────────────┘  └─────────────┘     │
│         │               │               │               │               │
│         ▼               ▼               ▼               ▼               │
│  ┌─────────────────────────────────────────────────────────────────┐    │
│  │                          HACKER FILTER                          │    │
│  │  ┌───────────────────────────────────────────────────────────┐  │    │
│  │  │                       Global Config                       │  │    │
│  │  │               /etc/mail/filter-hacker.json                │  │    │
│  │  └───────────────────────────────────────────────────────────┘  │    │
│  │  ┌───────────────────────────────────────────────────────────┐  │    │
│  │  │                       User Configs                        │  │    │
│  │  │            /etc/mail/filter-users/<email>.json            │  │    │
│  │  └───────────────────────────────────────────────────────────┘  │    │
│  └─────────────────────────────────────────────────────────────────┘    │
│         │                                                               │
│         ▼                                                               │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐     │
│  │   rspamd    │─▶│ SpamAssassin│─▶│   ClamAV   │─▶│   DKIM     │     │
│  └─────────────┘  └─────────────┘  └─────────────┘  └─────────────┘     │
└─────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                             LOCAL DELIVERY                              │
│                        Maildir / Dovecot / LMTP                         │
└─────────────────────────────────────────────────────────────────────────┘

Arquitetura

Fluxo do protocolo do filtro

O filtro implementa o protocolo de filtros do OpenSMTPD (smtpd-filters(7)):

SMTP Phase          Filter Event       Possible Actions
─────────────────────────────────────────────────────────
Connection      →   connect        →   proceed | reject | disconnect
HELO/EHLO       →   helo/ehlo      →   proceed | reject
MAIL FROM       →   mail-from      →   proceed | reject
RCPT TO         →   rcpt-to        →   proceed | reject
DATA content    →   data-line      →   filter-dataline (pass through)
End of DATA     →   commit         →   proceed | reject

Arquitetura

Estrutura de arquivos

/etc/mail/
├── smtpd.conf                      # OpenSMTPD main configuration
├── filter-hacker.json              # Global filter configuration
└── filter-users/                   # Per-user configurations
    ├── user1@domain.com.json
    ├── user2@domain.com.json
    └── ...

/usr/local/libexec/smtpd/
└── filter-hacker.js                # Filter executable

/var/log/
├── maillog                         # OpenSMTPD logs
└── smtpd-filter.log                # Filter-specific logs

Requisitos

Requisitos de software

ComponenteVersao minimaRecomendado
OpenBSD7.07.4+
OpenSMTPD6.87.7+

Requisitos

Requisitos de hardware

RecursoMinimoRecomendado
RAM512 MB2 GB
CPU1 core2+ cores
Disk10 GB50 GB

Por mailbox

Opcoes de filtro que cada usuario pode personalizar

Cada dono de uma mailbox @hacker.com.br pode gerenciar suas proprias regras pelo painel. Filtros por usuario funcionam acima do HACKER Filter global - eles nao enfraquecem as listas de bloqueio do operador, mas permitem adicionar bloqueios extras ou liberar remetentes confiaveis. Os padroes usam a mesma logica da configuracao global.

Blocked IPs

IP addresses or CIDR ranges that should be rejected.

e.g. 203.0.113.0/24

Blocked hostnames

Regex patterns matched against connecting hostnames.

e.g. .*\.example\.com$

Blocked HELO/EHLO

Regex patterns matched against HELO / EHLO values.

e.g. ^localhost$

Blocked senders

Regex patterns matched against the MAIL FROM envelope.

e.g. .*@spamdomain\.com$

Blocked recipients

Regex patterns matched against the RCPT TO envelope.

e.g. ^admin@.*

Blocked words

Regex patterns matched against message body content.

e.g. \bviagra\b

Cabecalhos bloqueados

Combine um nome de cabecalho com uma regex - util para detectar assinaturas especificas de mailers, prefixos quebrados de assunto ou marcadores conhecidos de spam.

e.g. Subject^\[SPAM\]

Whitelisted IPs

IPs or CIDR ranges that bypass blocking rules.

e.g. 127.0.0.1

Whitelisted hostnames

Hostnames that bypass blocking rules.

e.g. trusted.example.com

Whitelisted senders

Senders that bypass blocking rules.

e.g. friend@example.com

Dica

Padroes usam regex estilo POSIX. Regras de IP aceitam IPs simples ou faixas CIDR. Entradas na whitelist sempre vencem bloqueios para que enderecos confiaveis continuem chegando.

Email Hacker.com.br

Tenha uma mailbox premium @hacker.com.br rodando na mesma stack de seguranca para a qual o HACKER Filter foi criado.

Reservar mailbox