Ejercicios - 334.3 Filtrado de Paquetes
Pregunta 1
¿Que familia de nftables permite definir reglas que apliquen tanto a IPv4 como a IPv6 simultaneamente?
a) ip
b) ip6
c) inet
d) bridge
Respuesta
c) inet
La familia inet es dual-stack y permite definir reglas que aplican tanto a trafico IPv4 como IPv6 con una sola regla, evitando duplicacion.
Pregunta 2
¿Que comando crea un set de nftables con elementos que expiran automaticamente despues de 1 hora?
a) nft add set inet t ips { type ipv4_addr ; expire 1h ; }
b) nft add set inet t ips { type ipv4_addr ; timeout 1h ; }
c) nft add set inet t ips { type ipv4_addr ; ttl 3600 ; }
d) nft add set inet t ips { type ipv4_addr ; lifetime 1h ; }
Respuesta
b) nft add set inet t ips { type ipv4_addr ; timeout 1h ; }
La opcion timeout define el tiempo de vida de los elementos del set. Los elementos añadidos expiran automaticamente pasado el tiempo especificado.
Pregunta 3
¿Que comando de nftables configura masquerade (SNAT dinamico) para trafico saliente por la interfaz eth0?
a) nft add rule inet nat postrouting oif eth0 masquerade
b) nft add rule inet nat prerouting oif eth0 masquerade
c) nft add rule inet filter output oif eth0 masquerade
d) nft add rule inet nat output oif eth0 snat dynamic
Respuesta
a) nft add rule inet nat postrouting oif eth0 masquerade
Masquerade se configura en el hook postrouting de la tabla nat. oif eth0 especifica la interfaz de salida. Masquerade traduce automaticamente la IP de origen a la IP de la interfaz de salida.
Pregunta 4
¿Cual es la prioridad por defecto para cadenas de tipo filter en nftables?
a) -300 b) -100 c) 0 d) 100
Respuesta
c) 0
La prioridad 0 corresponde al filtrado standard (NF_IP_PRI_FILTER). Las prioridades menores (negativas) se procesan antes: raw (-300), mangle (-150), dnat (-100). Las mayores despues: snat (100).
Pregunta 5
¿Que comando lista las reglas de nftables mostrando los handles necesarios para eliminar reglas individuales?
a) nft list ruleset --handles
b) nft -a list ruleset
c) nft list ruleset -v
d) nft list ruleset --show-id
Respuesta
b) nft -a list ruleset
La opcion -a (handle) muestra el numero de handle de cada regla. Este handle se necesita para eliminar reglas individuales con nft delete rule tabla cadena handle N.
Pregunta 6
¿Que tipo de cadena nftables se necesita para configurar DNAT (port forwarding)?
a) type filter hook prerouting
b) type nat hook prerouting
c) type route hook prerouting
d) type nat hook postrouting
Respuesta
b) type nat hook prerouting
El DNAT (Destination NAT) se configura en cadenas de tipo nat en el hook prerouting, ya que la direccion de destino debe modificarse antes de que se tome la decision de enrutamiento.
Pregunta 7
¿Que comando de nftables usa un map para asociar puertos con acciones (verdict map)?
a) nft add rule inet t c tcp dport map @port_actions
b) nft add rule inet t c tcp dport vmap @port_actions
c) nft add rule inet t c tcp dport lookup @port_actions
d) nft add rule inet t c tcp dport match @port_actions
Respuesta
b) nft add rule inet t c tcp dport vmap @port_actions
vmap (verdict map) permite asociar valores con acciones (accept, drop, jump) en un solo map, evitando multiples reglas individuales.
Pregunta 8
¿Que herramienta permite usar la sintaxis clasica de iptables pero con el backend de nftables?
a) iptables-legacy
b) iptables-nft
c) nft-iptables
d) iptables-translate
Respuesta
b) iptables-nft
iptables-nft es una capa de compatibilidad que acepta la sintaxis clasica de iptables pero traduce las reglas internamente al framework nftables. Se puede verificar con iptables -V que mostrara “(nf_tables)”.
Pregunta 9
¿Que comando permite ver el numero maximo de conexiones rastreadas por el sistema de connection tracking?
a) conntrack --max
b) sysctl net.netfilter.nf_conntrack_max
c) nft show conntrack limit
d) cat /proc/net/nf_conntrack_count
Respuesta
b) sysctl net.netfilter.nf_conntrack_max
Este parametro del kernel define el numero maximo de conexiones que el sistema de connection tracking puede rastrear simultaneamente. Si se alcanza el limite, se descartan nuevas conexiones.
Pregunta 10
¿Que comando de firewalld añade permanentemente el servicio HTTPS a la zona publica?
a) firewall-cmd --add-service=https --zone=public
b) firewall-cmd --zone=public --add-service=https --permanent
c) firewall-cmd --permanent --zone=public --enable=https
d) firewall-cmd --zone=public --service=https --add --save
Respuesta
b) firewall-cmd --zone=public --add-service=https --permanent
La opcion --permanent hace que el cambio sea persistente tras reinicios. Sin --permanent, el cambio es temporal. Despues de un cambio permanente, se debe ejecutar firewall-cmd --reload para aplicarlo en la sesion actual.
Pregunta 11
¿Que comando de nftables inserta una regla al principio de una cadena en lugar de añadirla al final?
a) nft prepend rule inet t c tcp dport 80 accept
b) nft insert rule inet t c tcp dport 80 accept
c) nft add rule --first inet t c tcp dport 80 accept
d) nft add rule inet t c position 0 tcp dport 80 accept
Respuesta
b) Correcta
nft insert rule inserta la regla al principio de la cadena, mientras que nft add rule la añade al final. El orden de las reglas es importante: nftables las evalua secuencialmente de arriba a abajo, y la primera regla que coincida se aplica.
Pregunta 12
¿Que familia de nftables opera a nivel de dispositivo de red y permite filtrar trafico en el hook ingress antes de cualquier otro procesamiento?
a) bridge
b) inet
c) netdev
d) arp
Respuesta
c) Correcta
La familia netdev opera a nivel de dispositivo de red y proporciona el hook ingress, que permite filtrar paquetes en la etapa mas temprana posible del procesamiento de red del kernel. Es util para filtrado de alto rendimiento, como mitigar ataques DDoS descartando paquetes antes de que entren al stack de red.
Pregunta 13
¿Que comando de nftables elimina completamente una tabla y todo su contenido (cadenas, reglas, sets)?
a) nft flush table inet mi_firewall
b) nft delete table inet mi_firewall
c) nft remove table inet mi_firewall
d) nft drop table inet mi_firewall
Respuesta
b) Correcta
nft delete table elimina la tabla completamente junto con todas sus cadenas, reglas y sets. nft flush table solo vacia el contenido (elimina reglas, sets y cadenas) pero mantiene la tabla. Es importante distinguir entre ambos: flush limpia, delete destruye.
Pregunta 14
En nftables, ¿que expresion se usa para descartar paquetes cuyo estado de connection tracking es “invalid”?
a) ct state invalid reject
b) ct state invalid drop
c) ct status invalid drop
d) conntrack state invalid drop
Respuesta
b) Correcta
ct state invalid drop descarta paquetes que el sistema de connection tracking no puede asociar a ninguna conexion conocida. Estos paquetes pueden ser resultado de escaneos de puertos, paquetes corruptos o intentos de evasion. Es una regla de seguridad fundamental que debe colocarse al principio de las cadenas de filtrado.
Pregunta 15
¿Que comando de nftables configura una regla DNAT para redirigir el trafico que llega al puerto 8080 hacia el servidor interno 192.168.1.100 en el puerto 80?
a) nft add rule inet nat postrouting tcp dport 8080 dnat to 192.168.1.100:80
b) nft add rule inet nat prerouting iif eth0 tcp dport 8080 dnat to 192.168.1.100:80
c) nft add rule inet filter prerouting tcp dport 8080 redirect to 192.168.1.100:80
d) nft add rule inet nat output tcp dport 8080 dnat to 192.168.1.100:80
Respuesta
b) Correcta
El DNAT se configura en una cadena de tipo nat en el hook prerouting, ya que la direccion de destino debe modificarse antes de la decision de enrutamiento. iif eth0 especifica la interfaz de entrada. dnat to 192.168.1.100:80 cambia la IP y puerto de destino del paquete.
Pregunta 16
¿Que opcion de conntrack permite ver los eventos de connection tracking en tiempo real?
a) conntrack -L --realtime
b) conntrack -E
c) conntrack -W
d) conntrack --events
Respuesta
b) Correcta
conntrack -E (events) muestra los eventos de connection tracking en tiempo real: nuevas conexiones, cambios de estado, destruccion de entradas, etc. Es una herramienta muy util para diagnosticar problemas de conectividad relacionados con el firewall y el seguimiento de conexiones.
Pregunta 17
¿Que comando de firewalld muestra las zonas activas y las interfaces asignadas a cada una?
a) firewall-cmd --list-zones
b) firewall-cmd --get-active-zones
c) firewall-cmd --zone-info
d) firewall-cmd --show-zones
Respuesta
b) Correcta
firewall-cmd --get-active-zones muestra solo las zonas que tienen interfaces o fuentes asignadas, junto con la informacion de que interfaces pertenecen a cada zona. --get-zones lista todas las zonas disponibles (incluidas las inactivas), y --get-default-zone muestra la zona predeterminada.
Pregunta 18
En nftables, ¿que tipo de set requiere la flag interval para poder almacenar rangos de direcciones IP o subredes CIDR?
a) Sets anonimos b) Sets con timeout c) Sets con intervalos d) Sets concatenados
Respuesta
c) Correcta
Los sets con la flag interval permiten almacenar rangos y subredes CIDR (como 192.168.0.0/16 o 10.0.0.1-10.0.0.100). Sin esta flag, el set solo acepta valores individuales. Se crean con: nft add set inet t s { type ipv4_addr ; flags interval ; }.
Pregunta 19
¿Que comando guarda la configuracion actual de nftables en un archivo para hacerla persistente?
a) nft save > /etc/nftables.conf
b) nft list ruleset > /etc/nftables.conf
c) nft export > /etc/nftables.conf
d) nft dump ruleset > /etc/nftables.conf
Respuesta
b) Correcta
nft list ruleset muestra toda la configuracion actual de nftables en formato que puede ser cargado nuevamente. Redirigiendo la salida a /etc/nftables.conf, se persiste la configuracion. Al iniciar el servicio nftables (via systemd), se carga automaticamente este archivo con nft -f /etc/nftables.conf.
Pregunta 20
¿Que rich rule de firewalld permite el acceso SSH solo desde la red 192.168.1.0/24?
a) rule family="ipv4" source address="192.168.1.0/24" port port="22" protocol="tcp" accept
b) rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept
c) rule source="192.168.1.0/24" allow service ssh
d) rule ipv4 from 192.168.1.0/24 accept ssh
Respuesta
b) Correcta
Las rich rules de firewalld usan una sintaxis declarativa con rule family para especificar la familia de direcciones, source address para el origen, y service name para el servicio. Se añaden con firewall-cmd --add-rich-rule='...'. Tanto la opcion a) con port como la b) con service son validas, pero la b) es la forma mas limpia y habitual.
Pregunta 21
Escribe el comando de nftables para crear una tabla llamada mi_firewall en la familia inet.
Respuesta
nft add table inet mi_firewall
nft add table crea una nueva tabla en la familia especificada. La familia inet permite que las reglas dentro de la tabla apliquen tanto a trafico IPv4 como IPv6. Las tablas son contenedores que agrupan cadenas y sets relacionados.
Pregunta 22
Escribe el comando de nftables para añadir una regla que permita trafico SSH (puerto 22) solo desde la subred 192.168.1.0/24 en la cadena entrada de la tabla inet mi_firewall.
Respuesta
nft add rule inet mi_firewall entrada ip saddr 192.168.1.0/24 tcp dport 22 accept
La regla combina multiples criterios de matching: ip saddr 192.168.1.0/24 filtra por IP de origen, tcp dport 22 filtra por puerto de destino SSH, y accept es la accion final. Solo los paquetes que cumplen todos los criterios simultaneamente seran aceptados.
Pregunta 23
Escribe el comando para eliminar todas las conexiones rastreadas (flush) de la tabla de connection tracking.
Respuesta
conntrack -F
conntrack -F (flush) elimina todas las entradas de la tabla de seguimiento de conexiones del kernel. Esto puede ser necesario tras cambios importantes en las reglas del firewall para forzar que las conexiones existentes sean reevaluadas. Usar con precaucion ya que puede interrumpir conexiones activas.
Pregunta 24
Escribe el comando para cargar un archivo de configuracion de nftables desde /etc/nftables.conf.
Respuesta
nft -f /etc/nftables.conf
La opcion -f (file) de nft carga y ejecuta las reglas desde un archivo de configuracion. Este es el metodo utilizado por el servicio systemd nftables para restaurar las reglas al arrancar el sistema. El archivo debe contener comandos nftables validos en formato de script.
Pregunta 25
Escribe el comando de firewalld para recargar la configuracion despues de realizar cambios permanentes.
Respuesta
firewall-cmd —reload
firewall-cmd --reload recarga la configuracion permanente de firewalld, aplicando todos los cambios realizados con la opcion --permanent. Sin ejecutar --reload, los cambios permanentes no se aplican a la configuracion en ejecucion hasta el proximo reinicio del servicio.