Comandos Clave - 334.3 Filtrado de Paquetes

nftables - Tablas y Cadenas

ComandoDescripcion
nft list rulesetListar toda la configuracion
nft -a list rulesetListar con handles (para eliminar reglas)
nft add table inet nombreCrear tabla
nft delete table inet nombreEliminar tabla
nft flush table inet nombreVaciar tabla
nft add chain inet tabla cadena { type filter hook input priority 0 ; policy drop ; }Crear cadena base
nft add chain inet tabla cadena_regularCrear cadena regular
nft flush rulesetLimpiar todo

nftables - Reglas

ComandoDescripcion
nft add rule inet t c tcp dport 22 acceptAñadir regla al final
nft insert rule inet t c tcp dport 80 acceptInsertar al principio
nft add rule inet t c position N reglaInsertar tras posicion N
nft delete rule inet t c handle NEliminar regla por handle
nft add rule inet t c iif lo acceptPermitir loopback
nft add rule inet t c ct state established,related acceptConexiones establecidas
nft add rule inet t c ct state invalid dropDescartar invalidas
nft add rule inet t c tcp dport { 80, 443 } acceptMultiples puertos
nft add rule inet t c limit rate 3/minute acceptLimitar tasa
nft add rule inet t c log prefix "DROP: " counter dropLog + contador + drop
nft add rule inet t c jump otra_cadenaSaltar a cadena

nftables - Sets y Maps

ComandoDescripcion
nft add set inet t nombre { type ipv4_addr ; }Crear set de IPs
nft add set inet t nombre { type inet_service ; }Crear set de puertos
nft add set inet t nombre { type ipv4_addr ; flags interval ; }Set con rangos CIDR
nft add set inet t nombre { type ipv4_addr ; timeout 1h ; }Set con expiracion
nft add element inet t nombre { 10.0.0.1, 10.0.0.2 }Añadir elementos
nft delete element inet t nombre { 10.0.0.1 }Eliminar elemento
nft add rule inet t c ip saddr @nombre dropUsar set en regla
nft add map inet t nombre { type inet_service : verdict ; }Crear map
nft add rule inet t c tcp dport vmap @nombreUsar map en regla

nftables - NAT

ComandoDescripcion
nft add chain inet nat postrouting { type nat hook postrouting priority 100 ; }Cadena SNAT
nft add chain inet nat prerouting { type nat hook prerouting priority -100 ; }Cadena DNAT
nft add rule inet nat postrouting oif eth0 masqueradeMasquerade
nft add rule inet nat postrouting oif eth0 snat to IPSNAT fijo
nft add rule inet nat prerouting iif eth0 tcp dport 8080 dnat to IP:80DNAT
nft add rule inet nat prerouting tcp dport 80 redirect to :3128Redirect local

Connection Tracking

ComandoDescripcion
conntrack -LListar conexiones
conntrack -SEstadisticas
conntrack -EEventos en tiempo real
conntrack -D -s IPEliminar conexion
conntrack -FFlush de todas las conexiones
sysctl net.netfilter.nf_conntrack_maxVer maximo de conexiones

firewalld

ComandoDescripcion
firewall-cmd --get-default-zoneVer zona por defecto
firewall-cmd --get-active-zonesVer zonas activas
firewall-cmd --zone=public --add-service=http --permanentAñadir servicio
firewall-cmd --zone=public --add-port=8080/tcp --permanentAñadir puerto
firewall-cmd --reloadRecargar configuracion

Persistencia

ComandoDescripcion
nft list ruleset > /etc/nftables.confGuardar reglas
nft -f /etc/nftables.confCargar reglas
systemctl enable nftablesHabilitar al inicio
iptables-save > /etc/iptables/rules.v4Guardar iptables
iptables-restore < /etc/iptables/rules.v4Restaurar iptables