El libre pensamiento para un internet libre

No estas registrado.  

Anuncio

Wifi-highpower.es es distribuidor oficial de Alfa Network

#1 05-02-2019 16:04:03

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 4,717

¿Por qué y cómo pasar de iptables a nftables?

¿Por qué y cómo pasar de iptables a nftables?

giphy.gif

[email protected] hemos oído hablar de las iptables ya que "son el firewall" de Linux desde el kernel 2.4 (desde 2001).
Pongo la expresión entre comillas porque se suele hablar de iptables cuando deberíamos hablar de netfilter,
Iptable es un elemento de netfilter: Es la utilidad que permite redactar reglas.
Como es a esta utilidad que el usuario final se enfrenta ( el temido ejercicio, redactar las reglas iptables) su nombre ha acabado asimilándose al conjunto. 
 
  Después muchos años de leales servicios, netfilter y iptables empiezan a hacerse mayorcitos...
¡El nivel de complejidad de las redes y el trafico de datos no tienen nada que ver hoy en día con los años 2000!
  Ver: Iptable se jubila y llega bpfilter
Bpfilter ha integrado el kernel 4.18 y está llamado a tomar el relevo de netfilter
ntfstable de su lado ya está presente desde el kernel 3.13  de 2014 y está aquí para reemplazar a las iptables.

  No se trata de un cambio "violento", bpfilter sabe trabajar con reglas iptables.
Pero será siempre pensar en actualizarse y abrazar el cambio ya que viene con ventajas. wink

Ventajas

Sin entrar en detalles:

  • Sintaxis más humana

  • Reglas combinadas (ahorramos lineas)

  • Posibilidad de multiplicar las acciones adentro de una misma regla

  • Podemos establecer Reglas compatibles con todos los protocolos (todo en una regla en lugar de una para cada protocolo)

  • Es más rapido

  • etc...

Además se puede exportar sencillamente un conjunto de reglas en formato JSON para usarlo después y muchas otras novedades.
Más información en:

iptables-translate

  Personalmente no hablo iptables así que para mi es igual de confuso si es iptables o nftables 
La sintaxis puede ser más entendible: Sigo sin enterrarme mucho y necesito mirar la ayuda para entender a que sirve una regla.
Afortunadamente tenemos a  iptables-translate para convertir una regla iptables en una regla nftsable sin tener idea de uno u otro big_smile
  En sistemas debian y derivados lo instalaremos con:

sudo apt install iptables-nftables-compat

  Tomemos en ejemplo unas reglas de airgeddon.sh del amigo v1sitor:

if [ "${et_mode}" = "et_captive_portal" ]; then
		"${iptables_cmd}" -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination ${et_ip_router}:80
		"${iptables_cmd}" -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination ${et_ip_router}:80
		"${iptables_cmd}" -A INPUT -p tcp --destination-port 80 -j ACCEPT
		"${iptables_cmd}" -A INPUT -p tcp --destination-port 443 -j ACCEPT
		if [ ${captive_portal_mode} = "dnsblackhole" ]; then
			"${iptables_cmd}" -A INPUT -p udp --destination-port 53 -j ACCEPT

si queremos convertir la primera regla hacemos

 iptables-translate  -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80

O sea: Cambiamos iptables por iptables translate y tendremos a la conversión en nftable
En este caso he cambiado la variable "ip_router" pour una ipo real para no tener problemas
Y me sale en consola el resultado:

nft add rule ip nat PREROUTING tcp dport 80 counter dnat to 192.168.1.1:80

 
Pondríamos nuestra variable en lugar de la dirección ip y la regla estaría adaptada para airgeddon.sh

¿Os acordéis que nftables permite redactar reglas para varios puertos, IP, protocolos...?
Tomemos estas dos lineas:

		"${iptables_cmd}" -A INPUT -p tcp --destination-port 80 -j ACCEPT
		"${iptables_cmd}" -A INPUT -p tcp --destination-port 443 -j ACCEPT

Son la misma cosa solo que la primera linea es para el puerto http y la segundo para el https.
Aquí podemos hacer una sola linea con nftables gracias al uso de los arrays: { }.
Traduzco la primera linea

iptables-translate -A INPUT -p tcp --destination-port 80 -j ACCEPT
nft add rule ip filter INPUT tcp dport 80 counter accept

Añadimos el puerto 443 así:

nft add rule ip filter INPUT tcp dport { 80, 443 } counter accept

Hemos combinado así dos reglas iptables en una sola regla nftables sin muchas complicaciones gracias a iptables-translate cool

Podríamos hacer lo mismo con las dos primeras reglas

		"${iptables_cmd}" -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination ${et_ip_router}:80
		"${iptables_cmd}" -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination ${et_ip_router}:80

Nos daría

nft add rule ip nat PREROUTING tcp dport { 80, 443 } counter dnat to ${et_ip_router}:80

  Fuentes y links de interes

Desconectado

Anuncio

Wifi-libre.com: El libre pensamiento para un internet libre / Regístrese ahora

#2 05-02-2019 16:34:34

Koala
Very Important Usuario

Registrado: 11-09-2016
Mensajes: 796

Re: ¿Por qué y cómo pasar de iptables a nftables?

Gracias por este post muy completo, como siempre cool

Voy a tener que hacer la modificacion un dia o otro en el hostbaseLa verdad es que no me da gana de poner me otra vez con las reglas iptables perdon, nftables big_smile

Lo bueno es que parece facil a cambiar pero es que tengo un monton de lineas con iptables a cambiar


Hostbase rogue AP project con Kali-linux xfce.

Debian--Arch--Kali--DFlinux

Desconectado

#3 05-02-2019 16:52:34

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 4,717

Re: ¿Por qué y cómo pasar de iptables a nftables?

He buscado una opción para convertir una lista de reglas de golpe pero no he encontrado
Lo que se puede hacer es traducir las reglas iptables en uso al momento con

iptables-save > save.txt
iptables-restore-translate -f save.txt

Pero mo es muy útil en tu caso ya que tienes a varias configuraciones en tu script.

Desconectado

Anuncio

Wifi-highpower.es es distribuidor oficial de Alfa Network

Temas similares

Tema Respuestas Vistas Ultimo mensaje
7 2387 Ayer 21:01:03 por muglio
0 25 Ayer 20:29:59 por Hunter310#
90 43485 Ayer 20:10:49 por Hunter310#
Escaneo de Redes Wifi por Hunter310#
0 22 Ayer 20:09:14 por Hunter310#
0 20 Ayer 19:52:13 por kcdtv

Pie de página

Información del usuario

Ultimo usuario registrado: Hunter310#
Usuarios registrados conectados: 0
Invitados conectados: 11

Estadisticas de los foros

Número total de usuarios registrados: 1,390
Número total de temas: 1,268
Número total de mensajes: 13,027

Máx. usuarios conectados: 74 el 13-11-2018 18:47:20