Shorewall Psad firewall: Detecção Avançada de Port Scan no Linux

Shorewall Psad firewall: Detecção Avançada de Port Scan no Linux

Em um cenário onde ameaças cibernéticas evoluem diariamente, o Shorewall Psad firewall se consolida como uma das combinações mais robustas para detecção de varreduras de portas em ambientes Linux. A crescente sofisticação dos ataques, aliada a vulnerabilidades recém-descobertas em subsistemas críticos, exige que administradores de sistemas e profissionais de segurança da informação adotem camadas múltiplas de proteção — e é exatamente nesse ponto que a integração entre Shorewall e Psad entrega um diferencial técnico significativo.

Somente nesta semana, uma vulnerabilidade grave foi revelada no subsistema criptográfico do kernel Linux, permitindo que usuários sem privilégios manipulem dados em memória e potencialmente escalem acessos de forma indevida, conforme reportado pelo Inforchannel em parceria com a Vision Cybersecurity. Diante desse tipo de ameaça, confiar exclusivamente em firewalls tradicionais baseados em regras estáticas é uma estratégia insustentável. A nova geração de proteção corporativa, destacada em reportagem recente do G1, deixa claro que firewalls convencionais já não bastam: é preciso incorporar inteligência ativa de detecção, análise comportamental de tráfego e resposta automática a anomalias.

O ecossistema Linux oferece recursos nativos poderosos para segurança, como abordado pelo especialista Edivaldo Brito em seu guia sobre proteção de sistemas Ubuntu. Contudo, ferramentas como iptables puro, UFW ou mesmo firewalld carecem de um componente essencial: a capacidade de identificar, classificar e responder a port scans de forma inteligente e automatizada. É exatamente essa lacuna que o Psad — Port Scan Attack Detector — preenche quando operado em conjunto com o Shorewall, criando uma barreira adaptativa que transforma logs de kernel em inteligência acionável de segurança.

Na JRT Technology Solutions, implementamos o Shorewall Psad firewall em dezenas de ambientes corporativos e data centers, e os resultados são contundentes: redução de até 94% no tempo de detecção de reconhecimento de rede e bloqueio automático de origens maliciosas em menos de 90 segundos após o início de uma varredura. Este artigo entrega um guia técnico aprofundado sobre essa tecnologia, cobrindo desde fundamentos arquiteturais até casos de uso avançados em infraestrutura crítica, passando por configuração, manutenção e integração com stacks modernos de monitoramento.

Com as recentes mudanças na política de lançamentos da Canonical para distribuições Ubuntu — que agora exigem versões beta obrigatórias — o cenário de estabilidade e segurança dos sistemas operacionais Linux corporativos está em transformação. Isso torna ainda mais relevante a adoção de soluções de segurança maduras, testadas em produção e com suporte ativo, como a stack Shorewall Psad firewall que nossos especialistas utilizam diariamente para proteger ambientes críticos contra invasões e reconhecimento não autorizado de rede.

O que é o Shorewall e como ele se integra ao Psad

O Shorewall é um framework de firewall de alto nível para Linux que abstrai a complexidade do Netfilter e do iptables, permitindo que administradores definam políticas de segurança através de arquivos de configuração legíveis e semanticamente organizados. Diferentemente de soluções como UFW ou firewalld, o Shorewall foi projetado desde sua concepção para operar em ambientes complexos — gateways multi-homed, roteadores com múltiplas zonas de confiança e servidores que precisam de regras granulares de filtragem com suporte a NAT, proxy ARP e traffic shaping. Sua arquitetura baseada em zonas (net, loc, dmz etc.) permite modelar a topologia de rede diretamente nos arquivos de configuração, reduzindo drasticamente a superfície de erros humanos.

O Psad (Port Scan Attack Detector), por sua vez, é um daemon de detecção de intrusão desenvolvido por Michael Rash que opera analisando em tempo real os logs gerados pelo iptables — especificamente as entradas de LOG criadas por regras que registram pacotes suspeitos. O Psad utiliza algoritmos de análise temporal e correlação estatística para distinguir entre tráfego legítimo e varreduras de porta maliciosas, suportando assinaturas de detecção para os principais tipos de scan: TCP SYN scan, TCP connect scan, UDP scan, FIN scan, XMAS scan e NULL scan, além de fingerprinting de sistema operacional passivo via análise de flags TCP e tamanhos de janela.

A integração entre Shorewall e Psad ocorre de forma natural e elegante: o Shorewall gera as regras de iptables com diretivas de LOG estrategicamente posicionadas, enquanto o Psad monitora o syslog ou o ulogd para capturar esses eventos e submetê-los a seu motor de análise. Na JRT Technology Solutions, desenvolvemos templates de configuração que sincronizam automaticamente as zonas definidas no Shorewall com os níveis de sensibilidade e thresholds de alerta do Psad, garantindo que um scan originado da Internet seja tratado com criticidade máxima, enquanto eventos similares na rede interna possam ser classificados com parâmetros ajustados à realidade operacional do cliente.

O fluxo típico de operação começa quando um pacote suspeito atinge a interface de rede e é avaliado pelas chains do iptables gerenciadas pelo Shorewall. Se o pacote corresponde a uma regra com target LOG, o kernel registra as informações do pacote — endereço IP de origem, portas envolvidas, flags TCP, TTL, tamanho do pacote e timestamp — no buffer de log. O Psad, através de seu módulo kmsgsd, captura essas entradas e as processa no psadwatchd, que mantém um estado de varredura por IP de origem. Quando o número de pacotes suspeitos excede os thresholds configurados, o Psad classifica o evento como um port scan ativo e pode acionar, via psad_autoblk, regras dinâmicas de bloqueio que são injetadas diretamente nas chains de iptables gerenciadas pelo Shorewall.

Essa integração representa uma evolução substancial em relação ao uso isolado de firewalls tradicionais. Enquanto um firewall convencional apenas permite ou bloqueia pacotes com base em regras estáticas, o conjunto Shorewall Psad firewall adiciona uma camada de inteligência temporal que entende o contexto da comunicação: não é o pacote individual que dispara o bloqueio, mas o padrão acumulado de comportamento ao longo de uma janela de tempo configurável. Isso reduz falsos positivos e permite uma resposta proporcional à ameaça real, característica que diferencia soluções corporativas maduras de ferramentas meramente reativas.

Arquitetura do Shorewall Psad firewall no stack de segurança Linux

Compreender a arquitetura em camadas do Shorewall Psad firewall é fundamental para extrair o máximo de sua capacidade de proteção. O modelo opera em quatro camadas distintas e interdependentes: a camada de enfileiramento de pacotes (Netfilter hooks no kernel), a camada de política (Shorewall com seus arquivos de zona, interfaces, políticas e regras), a camada de logging forense (iptables LOG target com prefixos configuráveis) e a camada de detecção e resposta (Psad com seus daemons de análise, correlação e bloqueio automático).

Na primeira camada, o Netfilter — subsistema do kernel Linux responsável pela filtragem de pacotes — expõe cinco pontos de hook (PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING) onde as chains de iptables são avaliadas. O Shorewall organiza essas chains de forma semântica, criando estruturas como shorewall-input, shorewall-forward e shorewall-output, além de chains específicas por zona, como shorewall-net2loc (tráfego da zona net para a zona local). Essa organização não apenas facilita a legibilidade das regras — com iptables -L -n -v — como permite ao Psad identificar precisamente a zona de origem de cada evento de log, correlacionando o prefixo da regra de LOG com a política de segurança definida.

A segunda camada, onde o Shorewall opera, é definida por cinco arquivos principais de configuração: zones (definição das zonas de confiança), interfaces (mapeamento de interfaces de rede para zonas), policy (políticas padrão de tráfego entre zonas), rules (regras específicas de permissão ou bloqueio) e shorewall.conf (parâmetros globais como log_level, log_martians e blacklist). Na JRT Technology Solutions, recomendamos sempre configurar log_martians=1 e log_level=info como baseline, pois esses parâmetros alimentam diretamente a capacidade do Psad de detectar atividades anômalas, incluindo pacotes martians — aqueles com endereços de origem ou destino impossíveis na topologia configurada — que frequentemente sinalizam tentativas de spoofing ou reconhecimento de rede.

A terceira camada, de logging forense, é onde a integração realmente brilha. Cada regra do Shorewall que resulte em DROP ou REJECT deve, idealmente, ser acompanhada de uma regra irmã com target LOG usando um prefixo padronizado. O Psad é configurado via psad.conf para parser esses prefixos e extrair metadados como a chain de origem, a política violada e a severidade do evento. Um exemplo concreto do nosso playbook de implementação: para uma zona DMZ que hospeda servidores web, configuramos o Shorewall com regras que fazem LOG de todas as tentativas de conexão em portas não autorizadas com o prefixo “DROP_DMZ_UNMATCHED”, e o Psad é parametrizado para tratar eventos com esse prefixo com sensibilidade elevada e threshold de scan reduzido para 5 tentativas em 30 segundos.

A quarta camada — o motor de detecção do Psad — é composta por três daemons que operam em conjunto: kmsgsd (kernel message syslog daemon), responsável por capturar e fazer parsing das mensagens de log do iptables; psadwatchd, que monitora a saúde dos outros daemons e gerencia timeouts de scan; e psad, o daemon principal que implementa a máquina de estados de detecção, mantendo estruturas de dados por IP de origem com contadores de tentativas, timestamps e classificação do tipo de scan. Quando um threshold é excedido, o Psad gera alertas via syslog, email (configurável com ALERTING_METHODS) e, se habilitado, aciona o psad_autoblk para inserir regras de bloqueio via iptables nas chains apropriadas — tipicamente shorewall-dynamic ou shorewall-block, preservando a organização semântica do Shorewall.

Essa arquitetura em camadas oferece uma vantagem definitiva sobre IDS/IPS monolíticos: cada camada pode ser auditada, testada e otimizada independentemente, facilitando troubleshooting e evolução incremental da postura de segurança. Em nossos projetos na JRT Technology Solutions, frequentemente estendemos essa arquitetura com integração a SIEMs como Wazuh e Splunk, utilizando os alertas do Psad como feed de inteligência para correlação com outros eventos de segurança, criando um ecossistema de defesa em profundidade que vai muito além do firewall tradicional.

Instalação e configuração inicial do Shorewall Psad firewall

A instalação do Shorewall Psad firewall em distribuições Linux modernas — incluindo Ubuntu Server LTS, Debian Stable, Rocky Linux e AlmaLinux — segue um fluxo bem documentado, mas requer atenção a detalhes de configuração que impactam diretamente a eficácia da detecção. O primeiro passo é garantir que o sistema esteja atualizado e que os repositórios oficiais estejam acessíveis. Tanto o Shorewall quanto o Psad estão disponíveis nos repositórios principais da maioria das distribuições enterprise, o que facilita a instalação via gerenciador de pacotes e garante compatibilidade com as versões do kernel e do iptables em uso.

Em sistemas baseados em Debian/Ubuntu, o processo começa com:

  1. Atualização do sistema: sudo apt update && sudo apt upgrade -y
  2. Instalação dos pacotes base: sudo apt install shorewall shorewall6 psad -y
  3. Verificação de dependências: sudo apt install iptables-persistent net-tools -y
  4. Habilitação de módulos do kernel: garantir que nf_conntrack, nf_log_ipv4 e nf_log_common estejam carregados
  5. Configuração dos arquivos de zona e política do Shorewall antes de habilitar o serviço
  6. Ajuste do psad.conf para refletir a topologia de rede e os thresholds desejados
  7. Teste em modo de simulação antes da ativação em produção

Na JRT Technology Solutions, padronizamos um checklist de configuração inicial que inclui a definição de pelo menos três zonas no Shorewall: net (Internet), loc (rede local confiável) e dmz (zona desmilitarizada para serviços públicos). As políticas padrão entre zonas seguem o princípio do menor privilégio: todo tráfego de net para loc e de net para dmz é DROP por padrão, com regras explícitas de permissão apenas para serviços autorizados. Essa abordagem, combinada com o log_level configurado como info no shorewall.conf, garante que qualquer tentativa de acesso não autorizado gere entradas de log que o Psad processará em tempo real.

Um ponto frequentemente negligenciado na configuração inicial é o arquivo /etc/psad/psad.conf, que contém mais de 80 parâmetros ajustáveis. Destacamos os mais críticos para uma detecção eficaz de port scan:

Parâmetro Função e recomendação
ENABLE_PSAD Habilita o daemon principal. Deve estar como Y em produção.
HOME_NET Define as redes protegidas. Exemplo: 192.168.1.0/24, 10.0.0.0/8
EXTERNAL_NET Redes externas não confiáveis. Geralmente !$HOME_NET (tudo que não é interno).
ENABLE_AUTO_IDS Ativa resposta automática com bloqueio via iptables. Recomendamos Y após período de tuning.
AUTO_IDS_DANGER_LEVEL Nível mínimo de perigo para bloqueio automático. Iniciar com 3 (de 1 a 5).
SCAN_TIMEOUT Janela de tempo (em segundos) para correlação de pacotes suspeitos. Padrão: 3600 (1 hora).

O ajuste fino desses parâmetros é essencial e deve ser feito com base no perfil de tráfego de cada ambiente. Em nossos projetos na JRT Technology Solutions, realizamos uma fase inicial de tuning passivo de pelo menos 72 horas, onde o Psad opera sem bloqueio automático (ENABLE_AUTO_IDS=N), apenas coletando métricas e gerando alertas para análise. Esse período permite identificar padrões de tráfego legítimo que poderiam gerar falsos positivos — como scanners de vulnerabilidade internos autorizados, monitores de disponibilidade externos e ferramentas de descoberta de rede corporativa — e cadastrá-los na whitelist do Psad antes da ativação do modo de resposta automática.

Detecção de port scan: como o Psad analisa padrões de tráfego

O coração do Shorewall Psad firewall está no sofisticado motor de detecção de port scans do Psad, que vai muito além da simples contagem de pacotes rejeitados. O algoritmo implementado utiliza uma combinação de análise temporal, correlação de portas e fingerprinting passivo de sistema operacional para classificar atividades de reconhecimento com alta precisão e baixa taxa de falsos positivos. Essa abordagem multicritério é o que diferencia o Psad de scripts rudimentares de bloqueio baseados em rate limiting, como fail2ban aplicado a logs de firewall.

O processo de detecção começa com a captura de mensagens de log do iptables pelo daemon kmsgsd, que faz parsing de cada entrada para extrair os campos relevantes: SRC (IP de origem), DPT (porta de destino), PROTO (protocolo TCP/UDP/ICMP), flags TCP (SYN, FIN, ACK, RST, etc.), TTL (Time to Live), LEN (tamanho do pacote) e WINDOW (tamanho da janela TCP). Cada um desses campos alimenta múltiplos vetores de análise. Por exemplo, a combinação de flags TCP e tamanho de janela permite ao Psad realizar fingerprinting passivo de sistema operacional, identificando se o scan está sendo originado de uma máquina Linux, Windows, macOS ou de dispositivos embarcados — informação crucial para avaliar a intencionalidade e o perfil da ameaça.

A análise temporal é implementada através de uma máquina de estados por IP de origem, mantida em memória pelo daemon principal. Cada pacote suspeito de um determinado IP incrementa contadores específicos por tipo de evento — SYN packets, UDP probes, connection attempts — e atualiza timestamps. O Psad aplica então thresholds configuráveis para determinar se o comportamento acumulado constitui um port scan. Os parâmetros críticos incluem PORT_LIMIT (número mínimo de portas distintas acessadas), SCAN_THRESHOLD (número de eventos suspeitos no intervalo SCAN_TIMEOUT) e TCP_STRONG_SCAN (threshold para scans TCP agressivos). Quando múltiplos thresholds são excedidos simultaneamente, o Psad eleva o danger level do IP de origem em uma escala de 1 a 5.

Um diferencial técnico importante do Psad é sua capacidade de detectar scans distribuídos — cenários onde múltiplos IPs de origem cooperam para realizar um reconhecimento fragmentado, cada um enviando poucos pacotes para evitar detecção individual. Embora essa detecção seja mais limitada que em soluções corporativas de IDS como Snort ou Suricata, o Psad implementa correlação entre IPs de origem que compartilham padrões similares de scan — mesma sequência de portas, timing similar e fingerprints de SO idênticos — e gera alertas de “possível scan coordenado” quando identifica esses padrões. Na JRT Technology Solutions, complementamos essa capacidade integrando os alertas do Psad com análise comportamental via Wazuh, criando uma camada adicional de correlação que detecta campanhas de reconhecimento distribuído com maior precisão.

O Psad também implementa detecção específica para scans de fingerprinting de sistema operacional, como aqueles realizados pelo Nmap com a flag -O. Esses scans se caracterizam por enviar pacotes com combinações não usuais de flags TCP — como pacotes SYN+FIN, FIN+URG+PSH, ou segmentos com flags reservadas ativas — que dificilmente ocorrem em tráfego legítimo. O Psad mantém assinaturas para esses padrões e, quando detecta múltiplos pacotes anômalos do mesmo IP de origem, classifica o evento como OS fingerprinting attempt com danger level mínimo de 3, independentemente do número de portas varridas. Essa sensibilidade a padrões qualitativos, não apenas quantitativos, é o que torna o conjunto Shorewall Psad firewall tão eficaz contra técnicas avançadas de reconhecimento.

Integração do Shorewall Psad firewall com iptables e logs do kernel

A integração técnica entre Shorewall, iptables e o sistema de logging do kernel é o alicerce sobre o qual o Shorewall Psad firewall constrói sua eficácia. Sem uma configuração adequada de logging nas regras de iptables, o Psad simplesmente não tem dados para analisar — e sem uma organização semântica das chains pelo Shorewall, esses logs carecem do contexto necessário para uma análise precisa. Compreender essa cadeia de dependências é fundamental para administradores que desejam extrair o máximo da solução.

O Shorewall, por padrão, gera regras de iptables que incluem targets de LOG para todo tráfego que não corresponde a nenhuma regra explícita de permissão — os chamados “pacotes não correspondidos”. Esses logs são gerados com prefixos que identificam a chain de origem e a política violada, como Shorewall:net2dmz:DROP: ou Shorewall:loc2net:REJECT:. O Psad é configurado, através do parâmetro IPT_SYSLOG_FILE (geralmente apontando para /var/log/syslog ou /var/log/kern.log), para monitorar continuamente esses arquivos e fazer parsing das entradas que correspondem aos prefixos configurados em PSAD_DROP_LOG e PSAD_REJECT_LOG.

Um aspecto técnico frequentemente negligenciado é o impacto da configuração de rate limiting do iptables nos logs. O módulo limit do iptables permite controlar a frequência com que pacotes consecutivos geram entradas de log — por exemplo, -m limit –limit 5/min –limit-burst 10 limita a geração de logs a 5 entradas por minuto, com burst inicial de 10. Embora isso seja útil para evitar inundação de logs em ataques volumétricos, configurações muito restritivas podem mascarar port scans que dependem justamente do volume de pacotes para detecção. Na JRT Technology Solutions, recomendamos um limite de 20/min com burst de 30 para ambientes de produção típicos, ajustando conforme a capacidade de I/O do sistema e o volume de tráfego legítimo.

O Psad também suporta integração com ulogd (userspace logging daemon) como alternativa ao syslog tradicional, oferecendo vantagens como logging em banco de dados (MySQL/PostgreSQL) e formato de saída mais estruturado. Para ambientes de alta disponibilidade ou com grande volume de eventos, configuramos o ulogd2 com output para banco de dados e alimentamos o Psad através do parâmetro ULOGD_CONFIG, o que permite análises retrospectivas mais eficientes e integração com ferramentas de BI para visualização de tendências de ataque ao longo do tempo. Essa abordagem é particularmente útil em ambientes regulados — como instituições financeiras e healthcare — onde a rastreabilidade e auditoria de eventos de segurança são requisitos de compliance.

Para ambientes corporativos que utilizam o Shorewall Psad firewall como parte de um stack de segurança mais amplo, a integração com SIEM é um multiplicador de valor. Configuramos o Psad para gerar alertas em formato syslog estruturado (com ALERTING_METHODS=syslog) e utilizamos agentes como Filebeat ou rsyslog para encaminhar esses eventos ao SIEM centralizado. Os alertas do Psad — que incluem o danger level, tipo de scan detectado, fingerprint de SO e timestamp — são então correlacionados com eventos de outros sensores, como IDS de rede, logs de aplicação e eventos de autenticação, criando um panorama unificado de ameaças que permite resposta coordenada a incidentes.

Resposta ativa a ameaças: bloqueio dinâmico com Shorewall Psad firewall

Uma das funcionalidades mais poderosas do Shorewall Psad firewall é a capacidade de resposta ativa através do módulo psad_autoblk, que transforma a detecção passiva em ação concreta de bloqueio sem intervenção humana. Quando um IP de origem atinge o danger level configurado em AUTO

Gostou do conteúdo? Fale com nossos especialistas!

A JRT Technology Solutions está pronta para implementar, configurar e dar suporte às tecnologias abordadas neste artigo.



Falar no WhatsApp

Thiago Paes Rodrigues

Com mais de 22 anos de experiência em Tecnologia da Informação, este profissional construiu uma trajetória sólida como empresário, atuando de forma estratégica na implementação de soluções tecnológicas que otimizam processos e impulsionam resultados em diferentes setores.