Info
nftables es un remplazo a {ip,ipv6,arp,eb}tables, el cual permite filtrar paquetes en linux segun reglas de manera unificada, tiene funciona como Firewall y NAT.
Terminologia
[tabla]: Espacio de nombre para agrupar cadenas y reglasfilter: Tabla predeterminadanat: Tabla NATmangle: Tabla especial
[cadena]: Reglas para procesar paquetesinput: paquetes entrantes al sistema localoutput: Paquetes salientes desde sistema localforward: Paquetes reenviados a travez del sistema (Router)prerouting: Paquetes antes de enrutarpostrouting: Paquetes despues de enrutar
[hook]: Enganche donde se aplica la[cadena]input,output,forward,prerouting,postrouting
[interfaz]: Nombre de la interfaz- Ejemplos:
eth0,wlan1,enp0s2,net3,wlp4s4,l5,veth6@if6,br-7
- Ejemplos:
[ip/Mask-CIDR]: Direccion IP Host o Network + Mascara en CIDR- Ejemplos:
10.0.0.1/32,192.168.1.0/24,::1/128
- Ejemplos:
[accion]: Accion a realizar sobre el paqueteaccept: Aceptar el paquetedrop: Descartar el paquetereject: Rechazar el paquete y notificar al remitentelog: Registrar informacion del paquetejump: Saltar a otra cadena
[familia]: Protocolo de red de Capa 2 o Capa 3[prioridad]: Orden en el que se aplican las cadenas0: Prioridad Predeterminada-100: Alta Prioridad100: Baja Prioridad
[proto]: De la Capa 4 o superiortcpudpicmp: Ver ICMPicmpv6
[puerto]: N° Puerto de Comunicacion- Ejemplos:
22(SSH),53(DNS),80(HTTP),443(HTTPS)[opciones]: Parametros adicionales mediante Flags
- Ejemplos:
[modificacion]-A: Añade una regla al final de la cadena-I: Inserta una regla al inicio o en una posicion especifica-D: Elimina una regla de la cadena-F: Limpia todas las reglas configuradas-F [cadena]: Limpia las reglas de una cadena
-X: Limpia todas las cadenas configuradas por el usuario-P: Establece la politica predeterminada de una cadena-P [cadena] [accion]
[Configuracion]-p: Modifica el[protocolo]--dport: Modifica el[puerto]-t: Modifica la[tabla]-i: Modifica la[interfaz]-s: Modifica la[ip-source/Mask-CIDR]-d: Modifica la[ip-destination/Mask-CIDR]o[dominio-web]
[Muestra]-L: Muestra las reglas de la cadena o tabla-v: Muestra informacion detallada-n: Muestra la IP y Puerto en formato numerico--line-numbers: Muestra las cadenas por numeracion
Ejemplos de Funcionamiento
Nota
Los valores entre llaves
{}se puede modificar por cualquier otro valor o quitar segun veas conveniente
Mostrar el estado
Listando todas las reglas actuales
iptables -L [cadena] -n -v --line-numbers
Ejemplo
iptables -L INPUT -n -v --line-numbers
Agregar una regla
Agregando reglas a una cadena
iptables -A [cadena] { -p [proto] --dport [puerto] } -j [accion]
Ejemplo
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Insertar una regla
NOTA: Puede ser al principio o señando una posicion con
[numero]
iptables -I [cadena] [numero] { -p [proto] --dport [puerto] } -j [accion]
Ejemplo
iptables -I INPUT 1 -p icmp --dport 53 -j Drop
Eliminar una Regla
Para saber el numero, puedes Mostrar el estado
iptables -D [cadena] [numero]
Ejemplo
iptables -D INPUT 3
Limpiar reglas
iptables -F
iptables -t [tabla] -F
iptables -X
Establecer Politicas por defecto
iptables -P [cadena] [accion]
Ejemplo
iptables -P INPUT DROP
Ejemplos de Uso
Borrar ip privadas en entorno publico
Relacionado IPv4 Clases Privadas
iptables -A [cadena] -i [interfaz] -s [ip/mask-CIDR] -j DROP
Ejemplo
iptables -A INPUT -i eth1 -s 192.168.1.0/24 -j DROP
Bloquear ip publicas en un entorno privado
iptables -A [cadena] -p [protocol] -d [ip/mask-CIDR] -j DROP
Ejemplo
iptables -A OUTPUT -p tcp -d 69.171.224.0/19 -j DROP
Bloquear Dominios Web
iptables -A [cadena] -p [protocol] -d [dominio-web] -j DROP
Ejemplo
iptables -A OUTPUT -p tcp -d www.facebook.com -j DROP
iptables -A OUTPUT -p tcp -d facebook.com -j DROP
Bloquear Ping
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
Configuracion IPtables
Modificar Estad Servicio
service iptables stop
service iptables start
service iptables restart
Guardar reglas
service iptables save
iptables-save > /root/reglas.firewall
cat /root/reglas.firewall
Restaurar Reglas
iptables-restore < /root/reglas.firewall