Skip to main content

Conjuntos o sets en nftables

Los Conjuntos o sets permiten predefinir determinados valores en nftables. Esto nos permite definir grupos a efectos de simplificar estos valores.

Tipos soportados

Las especificaciones de los conjuntos son:

type o typeof, es obligatorio y determina el tipo de datos de los elementos del conjunto.
Los tipos de datos admitidos si se utiliza la palabra clave type son:

ipv4_addr: dirección IPv4
ipv6_addr: dirección IPv6.
ether_addr: dirección Ethernet.
inet_proto: tipo de protocolo Inet.
inet_service: servicio de Internet (el puerto tcp, por ejemplo)
mark: tipo de marca de un paquete previamente marcado.
ifname: nombre de la interfaz de red (eth0, eth1...)

Por ejemplo, un serie de IP (por ejemplo nuestras IP de gestión)

set management_ips_ipv4 {
  	type ipv4_addr
	flags interval
  	elements = {A.B.C.D/26,
		F.G.H.I/23,
		J.K.L.M/24,
		N.O.P.R}
    }

En este caso, vemos una etiqueta denominada management_ips_ipv4 que puede ser referenciada en nuestras reglas con un @management_ips_ipv4

Se pueden crear conjuntos con diferentes parámetros, por ejemplo puertos, Vlan id, etc.

set conjunto2 {
		type vlan id
		elements = { 205, 206, 207, 250 }
	}