Si está usando computadoras por un tiempo, debe estar familiarizado con la palabra «cortafuegos”. Sabemos que las cosas parecen complejas desde la superficie, pero a través de este tutorial, vamos a explicar la base de IPTable y el uso de comandos básicos para que aunque seas estudiante de networking o quieras profundizar en las redes, puedas beneficiarte de esta guía.
Tabla de Contenidos
¿Qué es IPTables?
la forma en que cortafuegos funciona es bastante simple. Crea una barrera entre las redes confiables y no confiables para que su sistema pueda estar a salvo de paquetes maliciosos.
Pero, ¿cómo vamos a decidir qué es seguro y qué no? De manera predeterminada, obtiene algunos privilegios para configurar reglas para su Firewall, pero para una vigilancia más detallada de los paquetes entrantes y salientes, IPTables son lo que más requieres.
IPTables se puede usar para computación personal o también se puede aplicar a toda la red. Usando IPTablesestaremos definiendo un conjunto de reglas mediante las cuales podemos monitorear, permitir o bloquear los paquetes de red entrantes o salientes.
En lugar de centrarnos únicamente en toda la parte teórica, solo vamos a discutir lo que importa en el mundo práctico. Entonces, comencemos con la comprensión de los conceptos básicos de IPTables.
Comprender el concepto de IPTables
Mientras discutía IPTablesdebemos entender 3 términos: Mesas, Cadenasy Normas. Como estas son las partes importantes, vamos a discutir cada una de ellas.
Así que empecemos con Mesas.
Tablas en IPTables
Hay 5 tipos de mesas en IPTables y cada uno tiene diferentes reglas aplicadas. Entonces, comencemos con la tabla más común «Archivador”.
- Tabla de filtros – Esta es la tabla principal y predeterminada durante el uso IPTables. Significa que siempre que no mencione ninguna tabla específica al aplicar las reglas, se aplicarán a la tabla de filtro. Como su nombre indica, la función de la tabla Filter es decidir si se debe permitir que los paquetes lleguen a su destino o denegar su solicitud.
- NAT (traducción de direcciones de red) – Como su nombre indica, esta tabla permite a los usuarios determinar la traducción de las direcciones de red. La función de esta tabla es determinar si modificar y cómo modificar el origen y el destino de la dirección del paquete.
- Mesa Destrozada – Esta tabla nos permite modificar las cabeceras IP de los paquetes. Por ejemplo, puede ajustar TTL para alargar o acortar los saltos de red que el paquete puede soportar. Del mismo modo, también se pueden modificar otros encabezados de IP según sus preferencias.
- Tabla CRUDA – El uso principal de esta tabla es rastrear conexiones, ya que proporciona un mecanismo para marcar paquetes para verlos como parte de una sesión en curso.
- Mesa de seguridad – Usando la tabla de Seguridad, los usuarios pueden aplicar internamente SELinux marcas de contexto de seguridad en paquetes de red.
Para la mayoría de los casos de uso, los últimos 2 tipos (CRUDO y Seguridad) de la mesa no tienen mucho que hacer y solo las 3 primeras opciones se cuentan como mesas principales.
Ahora, hablemos de Cadenas.
Cadenas en IPTables
Se comportan en puntos del recorrido de la red donde podemos aplicar reglas. En IPTables, tenemos 5 tipos de cadenas y hablaremos de cada uno de ellos. Tenga en cuenta que no cada tipo de cadena está disponible para cada tipo de mesa.
- Pre-enrutamiento – Esta cadena se aplica a cualquier paquete entrante una vez que ingresa a la pila de red y esta cadena se procesa incluso antes de que se haya tomado cualquier decisión de enrutamiento con respecto al destino final del paquete.
- Cadena de entrada – Es el punto donde un paquete ingresa a la pila de red.
- Cadena de avance – Es el punto donde el paquete ha sido reenviado a través de su sistema.
- Cadena de salida – La cadena de salida se aplica al paquete cuando se originó a través de su sistema y se apaga.
- Post-enrutamiento – Esto es todo lo contrario de la cadena previa al enrutamiento y se aplica a los paquetes reenviados o salientes una vez que se ha tomado la decisión de enrutamiento.
Ahora, lo único que queda por discutir es normas, y es el más fácil de los 3 que hemos discutido aquí. Así que completemos lo que queda de la parte teórica.
Reglas en IPTables
Normas no son más que los comandos establecidos o individuales mediante los cuales los usuarios manipulan el tráfico de la red. Una vez que cada cadena entre en acción, el paquete se verificará con las reglas definidas.
Si una regla no cumple la condición, se saltará a la siguiente y si cumple la condición, la siguiente regla se especificará por el valor del objetivo.
Cada regla tiene dos componentes: el componente coincidente y el componente objetivo.
- Componente coincidente – Son condiciones diferentes para definir reglas que pueden coincidir por protocolo, dirección IP, dirección de puerto, interfaces y encabezados.
- Componente objetivo – Esta es una acción que se activará una vez que se cumplan las condiciones.
Esta fue la parte explicativa y ahora cubriremos los comandos básicos relacionados con IPTables en linux
Instalación del cortafuegos de IPTables en Linux
En las distribuciones modernas de Linux como Pop!_OS, IPTables viene preinstalado, pero si su sistema carece del paquete IPTables, puede instalarlo fácilmente siguiendo las instrucciones dadas:
Para instalar IPTables en distribuciones de Linux basadas en RHEL, como Rocky Linux, AlmaLinux y CentOS Stream, use el siguiente comando dnf.
$ sudo dnf install iptables-services
Importante: Si está utilizando Firewalld, deberá desactivarlo antes de continuar con la instalación. Para detener el firewall por completo, deberá utilizar los siguientes comandos:
$ sudo systemctl stop firewalld $ sudo systemctl disable firewalld $ sudo systemctl mask firewalld
Para instalar IPTables en distribuciones de Linux basadas en Debian, use el siguiente comando apt.
$ sudo apt install iptables
Una vez que instale IPTablespuede habilitar el firewall con los comandos dados:
$ sudo systemctl enable iptables $ sudo systemctl start iptables
Para monitorear el estado de la IPTable servicio, puede usar el comando dado:
$ sudo systemctl status iptables
Aprenda los conceptos básicos del comando IPTables en Linux
Una vez que hayamos terminado con la instalación, podemos continuar con la sintaxis de IPTables lo que le permitirá modificar los valores predeterminados y configurarlo según sus necesidades.
La sintaxis básica de IPTables es como sigue:
# iptables -t {type of table} -options {chain points} {condition or matching component} {action}
Entendamos la explicación del comando anterior:
Mesa
la primera parte es -t
donde podemos elegir entre cualquiera de las 5 opciones de mesa disponibles y si elimina la -t
parte del comando, utilizará filtrar table ya que es el tipo de tabla predeterminado.
Opciones de cadena
La segunda parte es para el cadena. Aquí puede elegir entre diferentes opciones de puntos de cadena y esas opciones se dan a continuación:
-A
– Agrega una nueva regla a la cadena al final de la cadena.-C
– Comprueba la regla si cumple con el requisito de la cadena.-D
– Permite a los usuarios eliminar una regla existente de la cadena.-F
– Esto eliminará cada regla definida por el usuario.-I
– Permite a los usuarios agregar una nueva regla en la posición especificada.-N
– Crea una cadena completamente nueva.-v
– Cuando se usa con la opción de lista, trae información detallada.-X
– Elimina cadena.
Componente coincidente
Las opciones coincidentes son la condición para verificar el requisito de la cadena. Puede elegir entre varias opciones y algunas de ellas se detallan a continuación:
Protocols -p Source IP -s Destination IP -d IN interface -i OUT interface -o
Para TCPson los siguientes:
-sport -dport --tcp-flags
Componente de acción
Ahora, si consideramos la parte de acción, las opciones disponibles dependen del tipo de tabla, como NAT, y la mesa mangle tiene más opciones en comparación con otras. Al usar la acción, también puede apuntar a una tabla o cadena específica.
La acción más utilizada es Jump (-j)
lo cual nos dará varias opciones como:
- ACEPTAR – Se utiliza para aceptar paquetes y finalizar el traspaso.
- SOLTAR – Se utiliza para descartar paquetes y finalizar el recorrido.
- RECHAZAR – Esto es bastante similar a DROP pero envía paquetes rechazados a la fuente.
- DEVOLVER – Esto detendrá el paso del paquete en la subcadena y enviará el paquete específico a la cadena superior sin ningún efecto.
Una vez que hayamos terminado con la sintaxis, le mostraremos cómo puede usar IPTables incluida la configuración básica.
Listado del conjunto actual de reglas de IPTables
Si quieres comprobar lo que pasa por tu cortafuegos por defecto, enumerar un conjunto actual de reglas es una manera perfecta. Para enumerar las reglas aplicadas, use el comando dado:
$ sudo iptables -L

Permitir/denegar tráfico de red en puertos específicos
En esta sección, le mostraremos cómo puede permitir o denegar el tráfico de red para puertos específicos. Le mostraremos algunos puertos conocidos, ya que queremos ser lo más útiles posible.
Si quieres permitir HTTPS tráfico de red, tendremos que permitir el puerto no 443 utilizando el comando dado:
$ sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Del mismo modo, también puede deshabilitar HTTP tráfico web por comando dado:
$ sudo iptables -A INPUT -p tcp --dport 80 -j REJECT
Explicación de las opciones de comando utilizadas:
-p
se usa para verificar el protocolo especificado y en nuestro caso es TCP.--dport
se utiliza para especificar el puerto de destino.-j
se utiliza para tomar medidas (aceptar o descartar).
Controlar el tráfico con dirección IP
Sí, también puede controlar el tráfico de red desde una dirección IP. No solo uno o dos, sino también controle el rango de direcciones IP y le mostraremos cómo hacerlo.
Para permitir una dirección IP específica, utilice la estructura de comando dada:
$ sudo iptables -A INPUT -s 69.63.176.13 -j ACCEPT
De manera similar, para descartar paquetes de una IP específica, debe usar la estructura de comando dada:
$ sudo iptables -A INPUT -s 192.168.0.27 -j DROP
Si lo desea, también puede controlar el rango de direcciones IP utilizando la estructura de comando dada:
$ sudo iptables -A INPUT -m range --src-range 192.168.0.1-192.168.0.255 -j REJECT
Eliminar regla definida por el usuario
A veces podemos terminar cometiendo errores al crear reglas y la mejor manera de superar esos errores es eliminarlos. Eliminar reglas definidas es el proceso más fácil a lo largo de esta guía y para eliminarlas, primero tendremos que enumerarlas.
Para listar reglas definidas con números, use el comando dado:
$ sudo iptables -L --line-numbers

Para eliminar reglas, tendremos que seguir la estructura de comandos dada:
$ sudo iptables -D
Supongamos que quiero eliminar la décima regla de APORTE entonces usaré el comando dado:
$ sudo iptables -D INPUT 10
Para verificar si hemos eliminado la regla con éxito, debemos enumerar las reglas por comando dado:
$ sudo iptables -L –line-numbers

Como puede ver, hemos eliminado con éxito la décima regla.
Guardar reglas de IPTables definidas
Quizás se pregunte por qué tenemos que guardar reglas donde funcionan bien después de aplicarlas. El problema es que una vez que su sistema se reinicia, todas las reglas definidas que no se guardan se eliminarán, por lo que es crucial para nosotros.
Para guardar reglas en RHELdistribuciones basadas en:
$ sudo /sbin/service iptables save
Para guardar reglas en Debian derivados:
$ sudo /sbin/iptables–save
Para obtener más información sobre las reglas de IPtable Firewall, consulte nuestra guía detallada en:
A lo largo de esta guía, hemos tratado de simplificar las cosas para que todos puedan beneficiarse de ella. Esta fue una guía de explicación básica sobre IPTables y si tienes alguna duda, no dudes en preguntar en los comentarios.