Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
NFtables-IPtables-integration-script — Script para implementar Q-Feeds diretamente no NFtables ou IPtables | Kitploit
Ferramentas/GitHubGitHub/q-feeds/nftables-iptables-integration-script
Ferramentas DefensivasScripting e AutomaçãoAuditoria de ConfiguraçãoSegurança de RedeInteligência de AmeaçasResposta a Incidentes
GitHubq-feeds/nftables-iptables-integration-script

NFtables-IPtables-integration-script

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →

Script para implementar Q-Feeds diretamente no NFtables ou IPtables

Ver RepositórioSite
26há 9 diasAinda não revisado
Compartilhar

🛡️ Integração da Blocklist do Firewall Linux Q-Feeds

Blocklist automatizada de IPs de malware para servidores Linux — suporta nftables e iptables+ipset

License Linux


📋 Índice

  • Início Rápido
  • Visão Geral
  • Como Funciona
  • Pré-requisitos
  • Instalação Detalhada
  • Configuração
  • Uso e Verificação
  • Solução de Problemas
  • Desinstalação
  • Licença

🚀 Início Rápido

Passo 1: Obtenha seu token de API

Obtenha uma chave de API gratuita em tip.qfeeds.com.

Passo 2: Baixe os scripts

git clone https://github.com/Q-Feeds/NFtables-IPtables-integration-script.git
cd NFtables-IPtables-integration-script
chmod +x qfeeds-installer.sh qfeeds-uninstaller.sh

Passo 3: Execute o instalador como root

sudo ./qfeeds-installer.sh

O instalador irá:

  1. Detetar automaticamente o seu backend de firewall (nftables ou iptables)
  2. Solicitar-lhe o seu token de API, opções de bloqueio e lista de permissões opcional
  3. Instalar todas as dependências, o script de atualização e a tarefa cron
  4. Realizar a primeira sincronização completa imediatamente

Passo 4: Concluído

O seu servidor está agora protegido. A tarefa cron verifica atualizações a cada 20 minutos (configurável), e as chamadas reais à API só acontecem quando a sua licença o permite.


📖 Visão Geral

Esta solução descarrega periodicamente o feed de inteligência de ameaças mais recente do Q-Feeds e aplica-o como regras de firewall (guia passo a passo: Configuração de NFtables/IPtables), permitindo-lhe:

  • ✅ Bloquear conexões de entrada de IPs maliciosos conhecidos
  • ✅ Bloquear conexões de saída para IPs maliciosos conhecidos
  • ✅ Adicionar os seus próprios IPs/CIDRs à lista de permissões para nunca se bloquear a si próprio
  • ✅ Agendamento automático com base na sua licença Q-Feeds
  • ✅ Atualizações incrementais através de sincronização baseada em diff para utilização mínima de recursos

Porquê Esta Abordagem?

  • ✅ Deteta automaticamente o backend — funciona com nftables ou iptables+ipset sem seleção manual
  • ✅ Rápido — carrega mais de 400k IPs em segundos usando conjuntos hash otimizados (nftables) ou ipset (iptables)
  • ✅ Seguro — usa tabelas/conjuntos dedicados — nunca toca nas suas regras de firewall existentes
  • ✅ Eficiente — as atualizações baseadas em diff processam apenas as alterações, não a lista completa
  • ✅ Fiável — auto-recuperação: deteta um conjunto local vazio ou incompleto (por exemplo, após um reinício) e reconstrói-o, com fallback automático para uma sincronização completa se um diff falhar
  • ✅ Flexível — escolha bloqueio de entrada/saída, lista de permissões opcional

🔧 Como Funciona

Deteção de Backend

O instalador deteta automaticamente qual o backend de firewall disponível:

PrioridadeDeteçãoBackend
1ªcomando nft encontradonftables
2ªcomando iptables encontradoiptables+ipset
—Nenhum encontradoErro (sair)

O backend detetado é armazenado no ficheiro de configuração. Os scripts de atualização e desinstalação usam-no para executar os comandos de firewall corretos.

Arquitetura: Dois Tipos de Conjuntos

Ambos os backends usam a mesma estratégia de conjuntos divididos para máximo desempenho:

Backend nftables:

┌─────────────────────────────────────────────────────────┐
│  table ip qfeeds                                        │
│                                                         │
│  ┌─────────────────────────┐  ┌───────────────────────┐ │
│  │ qfeeds_blacklist_v4     │  │ qfeeds_blacklist_v4   │ │
│  │ (hash set)              │  │ _nets (interval set)  │ │
│  │                         │  │                       │ │
│  │ Individual IPs          │  │ CIDR ranges           │ │
│  │ ~99% of entries         │  │ ~1% of entries        │ │
│  │ O(1) lookup & insert    │  │ O(log n) lookup       │ │
│  └─────────────────────────┘  └───────────────────────┘ │
│                                                         │
│  ┌─────────────────────────┐                            │
│  │ qfeeds_whitelist_v4     │                            │
│  │ (interval set)          │                            │
│  │ Your allowed IPs/CIDRs  │                            │
│  └─────────────────────────┘                            │
│                                                         │
│  chain input-chain (hook input, priority 0, accept)     │
│    → ip saddr @qfeeds_whitelist_v4 accept               │
│    → ip saddr @qfeeds_blacklist_v4 drop                 │
│    → ip saddr @qfeeds_blacklist_v4_nets drop            │
│                                                         │
│  chain output-chain (if enabled)                        │
│    → ip daddr @qfeeds_whitelist_v4 accept               │
│    → ip daddr @qfeeds_blacklist_v4 drop                 │
│    → ip daddr @qfeeds_blacklist_v4_nets drop            │
└─────────────────────────────────────────────────────────┘

Backend iptables+ipset:

┌──────────────────────────────────────────────────────────┐
│  ipset sets                                              │
│                                                          │
│  ┌─────────────────────────┐  ┌────────────────────────┐ │
│  │ qfeeds_blacklist_v4     │  │ qfeeds_blacklist_v4    │ │
│  │ (hash:ip)               │  │ _nets (hash:net)       │ │
│  │ maxelem 1000000         │  │ maxelem 65536          │ │
│  │                         │  │                        │ │
│  │ Individual IPs          │  │ CIDR ranges            │ │
│  └─────────────────────────┘  └────────────────────────┘ │
│                                                          │
│  ┌─────────────────────────┐                             │
│  │ qfeeds_whitelist_v4     │                             │
│  │ (hash:net)              │                             │
│  └─────────────────────────┘                             │
│                                                          │
│  iptables: INPUT/OUTPUT jump to a dedicated chain        │
│  (jump rule tagged -m comment "qfeeds"):                 │
│                                                          │
│  chain QFEEDS_INPUT (rebuilt each run, in order):        │
│    -m set --match-set whitelist_v4 src -j ACCEPT         │
│    -m set --match-set blacklist_v4 src -j DROP           │
│    -m set --match-set blacklist_v4_nets src -j DROP      │
│    (QFEEDS_OUTPUT mirrors this with dst, if enabled)     │
└──────────────────────────────────────────────────────────┘

A mesma estrutura existe para IPv6 (tabela ip6 qfeeds ou ip6tables + ipsets family inet6).

Por que dois tipos de conjunto?

  • Conjuntos hash armazenam IPs individuais com inserção e consulta O(1) — carregar mais de 400k IPs leva segundos
  • Conjuntos net/interval são usados apenas para o pequeno número de intervalos CIDR no feed
  • Isso evita operações de merge custosas que atrasariam um único conjunto com centenas de milhares de entradas

Fluxo de Atualização

Baixar ferramenta