Red Hat Training

A Red Hat training course is available for RHEL 8

45.8.2. Bloqueo de direcciones IP que intentan más de diez nuevas conexiones TCP entrantes en un minuto

El marco nftables permite a los administradores actualizar dinámicamente los conjuntos. Esta sección explica cómo utilizar esta función para bloquear temporalmente los hosts que establecen más de diez conexiones TCP IPv4 en un minuto. Después de cinco minutos, nftables elimina automáticamente la dirección IP de la lista de denegación.

Procedimiento

  1. Crear la tabla filter con la familia de direcciones ip:

    # nft add table ip filter
  2. Añade la cadena input a la tabla filter:

    # nft add chain ip filter input { type filter hook input priority 0 \; }
  3. Añade un conjunto llamado denylist a la tabla filter:

    # nft add set ip filter denylist { type ipv4_addr \️; flags dynamic, timeout \️; timeout 5m \️; }

    Este comando crea un conjunto dinámico de direcciones IPv4. El parámetro timeout 5m define que nftables elimine automáticamente las entradas después de 5 minutos del conjunto.

  4. Añada una regla que añada automáticamente la dirección IP de origen de los hosts que intenten establecer más de diez nuevas conexiones TCP en un minuto al conjunto denylist:

    # nft add rule ip filter input ip protocol tcp ct state new, untracked limit rate over 10/minute add @denylist { ip saddr }
  5. Añada una regla que elimine todas las conexiones de las direcciones IP del conjunto denylist:

    # nft add rule ip filter input ip saddr @denylist drop