Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
NFtables-IPtables-integration-script — Script para implementar Q-Feeds directamente en NFtables o IPtables | Kitploit
Herramientas/GitHubGitHub/q-feeds/nftables-iptables-integration-script
Herramientas DefensivasScripting y AutomatizaciónAuditoría de ConfiguraciónSeguridad de RedesInteligencia de AmenazasRespuesta a Incidentes
GitHubq-feeds/nftables-iptables-integration-script

NFtables-IPtables-integration-script

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Script para implementar Q-Feeds directamente en NFtables o IPtables

Ver RepositorioSitio web
26hace 9 díasAún no revisado
Compartir

🛡️ Integración de listas de bloqueo del cortafuegos de Linux Q-Feeds

Lista de bloqueo automatizada de IP de malware para servidores Linux — compatible con nftables e iptables+ipset

License Linux


📋 Tabla de contenidos

  • Inicio rápido
  • Descripción general
  • Cómo funciona
  • Requisitos previos
  • Instalación detallada
  • Configuración
  • Uso y verificación
  • Solución de problemas
  • Desinstalación
  • Licencia

🚀 Inicio rápido

Paso 1: Obtén tu token de API

Obtén una clave de API gratuita en tip.qfeeds.com.

Paso 2: Descarga los 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

Paso 3: Ejecutar el instalador como root

sudo ./qfeeds-installer.sh

El instalador hará lo siguiente:

  1. Detectar automáticamente tu backend de firewall (nftables o iptables)
  2. Solicitarte tu token de API, las opciones de bloqueo y la lista blanca opcional
  3. Instalar todas las dependencias, el script de actualización y la tarea cron
  4. Realizar la primera sincronización completa de inmediato

Paso 4: Listo

Tu servidor ahora está protegido. La tarea cron busca actualizaciones cada 20 minutos (configurable), y las llamadas reales a la API solo ocurren cuando tu licencia lo permite.


📖 Descripción general

Esta solución descarga periódicamente el feed de inteligencia de amenazas más reciente desde Q-Feeds y lo aplica como reglas de firewall (guía paso a paso: Configuración de NFtables/IPtables), lo que te permite:

  • ✅ Bloquear conexiones entrantes desde IPs maliciosas conocidas
  • ✅ Bloquear conexiones salientes hacia IPs maliciosas conocidas
  • ✅ Incluir en la lista blanca tus propias IPs/CIDRs para que nunca te bloquees a ti mismo
  • ✅ Programación automática según tu licencia de Q-Feeds
  • ✅ Actualizaciones incrementales mediante sincronización basada en diferencias para un uso mínimo de recursos

¿Por qué este enfoque?

  • ✅ Detecta automáticamente el backend — funciona con nftables o iptables+ipset sin selección manual
  • ✅ Rápido — carga más de 400k IPs en segundos usando conjuntos hash optimizados (nftables) o ipset (iptables)
  • ✅ Seguro — usa tablas/conjuntos dedicados — nunca toca tus reglas de firewall existentes
  • ✅ Eficiente — las actualizaciones basadas en diferencias solo procesan los cambios, no la lista completa
  • ✅ Confiable — autorreparable: detecta un conjunto local vacío o incompleto (por ejemplo, tras un reinicio) y lo reconstruye, con respaldo automático a una sincronización completa si falla una diferencia
  • ✅ Flexible — elige el bloqueo entrante/saliente, lista blanca opcional

🔧 Cómo funciona

Detección del backend

El instalador detecta automáticamente qué backend de firewall está disponible:

PrioridadDetecciónBackend
1.ªComando nft encontradonftables
2.ªComando iptables encontradoiptables+ipset
—Ninguno encontradoError (salir)

El backend detectado se almacena en el archivo de configuración. Los scripts de actualización y desinstalación lo usan para ejecutar los comandos de firewall correctos.

Arquitectura: Dos tipos de conjuntos

Ambos backends usan la misma estrategia de conjuntos divididos para un rendimiento máximo:

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 de 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)     │
└──────────────────────────────────────────────────────────┘

La misma estructura existe para IPv6 (tabla ip6 qfeeds o ip6tables + ipsets con family inet6).

¿Por qué dos tipos de conjuntos?

  • Los conjuntos hash almacenan IPs individuales con inserción y búsqueda O(1) — cargar más de 400k IPs toma segundos
  • Los conjuntos net/interval solo se usan para el pequeño número de rangos CIDR en el feed
  • Esto evita operaciones de fusión costosas que ralentizarían un único conjunto con cientos de miles de entradas

Flujo de actualización

Descargar herramienta