La guía para principiantes de iptables, el cortafuegos de Linux

Aug 27, 2023
Privacidad y seguridad

Iptables es una utilidad de firewall extremadamente flexible creada para sistemas operativos Linux. Ya sea que sea un novato en Linux o un administrador de sistemas, probablemente haya alguna forma en que iptables pueda ser de gran utilidad para usted. Siga leyendo mientras le mostramos cómo configurar el firewall de Linux más versátil.

Sobre iptables

iptables es una utilidad de firewall de línea de comandos que utiliza cadenas de políticas para permitir o bloquear el tráfico. Cuando una conexión intenta establecerse en su sistema, iptables busca una regla en su lista para hacerla coincidir. Si no encuentra uno, recurre a la acción predeterminada.

iptables casi siempre viene preinstalado en cualquier distribución de Linux. Para actualizarlo / instalarlo, simplemente recupere el paquete iptables:

sudo apt-get install iptables

Hay alternativas de GUI a iptables como Iniciador de fuego , pero iptables no es tan difícil una vez que tienes algunos comandos. Debe tener mucho cuidado al configurar las reglas de iptables, particularmente si está SSH en un servidor, porque un comando incorrecto puede bloquearlo permanentemente hasta que se arregle manualmente en la máquina física.

Tipos de cadenas

iptables usa tres cadenas diferentes: entrada, reenvío y salida.

Entrada - Esta cadena se utiliza para controlar el comportamiento de las conexiones entrantes. Por ejemplo, si un usuario intenta SSH en su PC / servidor, iptables intentará hacer coincidir la dirección IP y el puerto con una regla en la cadena de entrada.

Adelante - Esta cadena se usa para conexiones entrantes que en realidad no se entregan localmente. Piense en un enrutador: los datos siempre se envían a él, pero rara vez están destinados al enrutador en sí; los datos simplemente se reenvían a su destino. A menos que esté haciendo algún tipo de enrutamiento, NAT o algo más en su sistema que requiera reenvío, ni siquiera usará esta cadena.

Existe una forma infalible de comprobar si su sistema utiliza o necesita la cadena de avance.

iptables -L -v

La captura de pantalla anterior es de un servidor que ha estado funcionando durante algunas semanas y no tiene restricciones en las conexiones entrantes o salientes. Como puede ver, la cadena de entrada ha procesado 11 GB de paquetes y la cadena de salida ha procesado 17 GB. La cadena de reenvío, por otro lado, no ha necesitado procesar un solo paquete. Esto se debe a que el servidor no realiza ningún tipo de reenvío ni se utiliza como dispositivo de paso.

Salida - Esta cadena se utiliza para conexiones salientes. Por ejemplo, si intenta hacer ping a howtogeek.com, iptables comprobará su cadena de salida para ver cuáles son las reglas con respecto a ping y howtogeek.com antes de tomar la decisión de permitir o denegar el intento de conexión.

La advertencia

Aunque hacer ping a un host externo parece algo que solo necesitaría atravesar la cadena de salida, tenga en cuenta que para devolver los datos, también se utilizará la cadena de entrada. Cuando utilice iptables para bloquear su sistema, recuerde que muchos protocolos requerirán comunicación bidireccional, por lo que tanto la cadena de entrada como la de salida deberán configurarse correctamente. SSH es un protocolo común que las personas olvidan permitir en ambas cadenas.

Comportamiento predeterminado de la cadena de políticas

Antes de entrar y configurar reglas específicas, querrá decidir cuál quiere que sea el comportamiento predeterminado de las tres cadenas. En otras palabras, ¿qué quiere que haga iptables si la conexión no coincide con ninguna regla existente?

Para ver qué están configuradas sus cadenas de políticas para hacer con tráfico incomparable, ejecute el iptables -L mando.

Como puede ver, también usamos el comando grep para darnos una salida más limpia. En esa captura de pantalla, actualmente se calcula que nuestras cadenas aceptan tráfico.

La mayoría de las veces, querrá que su sistema acepte conexiones de forma predeterminada. A menos que haya cambiado las reglas de la cadena de políticas anteriormente, esta configuración ya debería estar configurada. De cualquier manera, aquí está el comando para aceptar conexiones por defecto:

iptables - política ENTRADA ACEPTAR
iptables - SALIDA DE POLÍTICA ACEPTAR
iptables --política ADELANTE ACEPTAR

Si aplica de forma predeterminada la regla de aceptación, puede usar iptables para denegar direcciones IP o números de puerto específicos, mientras continúa aceptando todas las demás conexiones. Llegaremos a esos comandos en un minuto.

Si prefiere denegar todas las conexiones y especificar manualmente cuáles desea permitir que se conecten, debe cambiar la política predeterminada de sus cadenas. Hacer esto probablemente solo sería útil para servidores que contienen información confidencial y solo tienen las mismas direcciones IP conectadas a ellos.

iptables --política INPUT DROP
iptables - política de GOTA DE SALIDA
iptables --política FORWARD DROP

Respuestas específicas de la conexión

Con sus políticas de cadena predeterminadas configuradas, puede comenzar a agregar reglas a iptables para que sepa qué hacer cuando encuentra una conexión desde o hacia una dirección IP o puerto en particular. En esta guía, vamos a repasar las tres "respuestas" más básicas y de uso común.

Aceptar - Permitir la conexión.

soltar - Corta la conexión, actúa como si nunca hubiera sucedido. Esto es mejor si no desea que la fuente se dé cuenta de que su sistema existe.

Rechazar - No permita la conexión, pero envíe un error. Esto es mejor si no desea que una fuente en particular se conecte a su sistema, pero desea que sepan que su firewall los bloqueó.

La mejor manera de mostrar la diferencia entre estas tres reglas es mostrar cómo se ve cuando una PC intenta hacer ping a una máquina Linux con iptables configuradas para cada una de estas configuraciones.

Permitiendo la conexión:

Cortar la conexión:

Rechazando la conexión:

Permitir o bloquear conexiones específicas

Con sus cadenas de políticas configuradas, ahora puede configurar iptables para permitir o bloquear direcciones, rangos de direcciones y puertos específicos. En estos ejemplos, configuraremos las conexiones a SOLTAR , pero puedes cambiarlos a ACEPTAR o RECHAZAR , según sus necesidades y cómo configuró sus cadenas de políticas.

Nota: En estos ejemplos, usaremos iptables -A para agregar reglas a la cadena existente. iptables comienza en la parte superior de su lista y pasa por cada regla hasta encontrar una que coincida. Si necesita insertar una regla por encima de otra, puede usar iptables -I [chain] [number] para especificar el número que debe estar en la lista.

Conexiones desde una única dirección IP

Este ejemplo muestra cómo bloquear todas las conexiones desde la dirección IP 10.10.10.10.

iptables -A ENTRADA -s 10.10.10.10 -j DROP

Conexiones desde una variedad de direcciones IP

Este ejemplo muestra cómo bloquear todas las direcciones IP en el rango de red 10.10.10.0/24. Puede utilizar una notación de máscara de red o barra estándar para especificar el rango de direcciones IP.

iptables -A ENTRADA -s 10.10.10.0/24 -j DROP

o

iptables -A ENTRADA -s 10.10.10.0/255.255.255.0 -j DROP

Conexiones a un puerto específico

Este ejemplo muestra cómo bloquear conexiones SSH de 10.10.10.10.

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP

Puede reemplazar "ssh" con cualquier protocolo o número de puerto. los -p tcp parte del código le dice a iptables qué tipo de conexión usa el protocolo. Si estaba bloqueando un protocolo que usa UDP en lugar de TCP, entonces -p udp sería necesario en su lugar.

Este ejemplo muestra cómo bloquear conexiones SSH desde cualquier dirección IP.

iptables -A INPUT -p tcp --dport ssh -j DROP

Estados de conexión

Como mencionamos anteriormente, muchos protocolos requerirán comunicación bidireccional. Por ejemplo, si desea permitir conexiones SSH a su sistema, las cadenas de entrada y salida necesitarán que se les agregue una regla. Pero, ¿qué sucede si solo desea que se permita la entrada SSH en su sistema? ¿Agregar una regla a la cadena de salida también permitirá los intentos de SSH salientes?

Ahí es donde entran los estados de conexión, que le brindan la capacidad que necesitaría para permitir la comunicación bidireccional, pero solo permitir que se establezcan conexiones unidireccionales. Eche un vistazo a este ejemplo, donde se permiten las conexiones SSH DESDE 10.10.10.10, pero no las conexiones SSH A 10.10.10.10. Sin embargo, el sistema puede enviar información a través de SSH siempre que la sesión ya se haya establecido, lo que hace posible la comunicación SSH entre estos dos hosts.

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m state --state NUEVO, ESTABLECIDO -j ACEPTAR

iptables -A SALIDA -p tcp --sport 22 -d 10.10.10.10 -m estado --estado ESTABLECIDO -j ACEPTAR

Guardando cambios

Los cambios que realice en las reglas de iptables se eliminarán la próxima vez que se reinicie el servicio iptables, a menos que ejecute un comando para guardar los cambios. Este comando puede diferir según su distribución:

Ubuntu:

sudo / sbin / iptables-save

Red Hat / CentOS:

/ sbin / service iptables guardar

O

/etc/init.d/iptables guardar

Otros comandos

Enumere las reglas de iptables configuradas actualmente:

iptables -L

Añadiendo el -a La opción le dará información de paquetes y bytes, y agregará -norte enumerará todo numéricamente. En otras palabras, los nombres de host, los protocolos y las redes se enumeran como números.

Para borrar todas las reglas configuradas actualmente, puede ejecutar el comando flush.

iptables -F

.entrada-contenido .entry-footer

Iptables Walkthrough (Linux Firewall)

Introduction To Linux IPTables

Introduction To Linux Firewall

Using `iptables` On Linux

Iptables Firewall Examples (ITS335, L23, Y14)

07 Iptables Firewall Rules

Firewalling In Linux Using IPtables Sp8scorp

Introduction To Linux: #15 - Iptables

Introduction To Iptables

Introduction To IPTables

Linux Firewall Configurations - Intro To Firewalld (RHCE Topic)

Linux Iptables - Configuring And Implementing Linux Iptables - Learn About Ip Values And Ranges #41

Advanced Linux Firewall Config. With Firewalld Rich Rules And IPset - Rich Rules + Ipset

Ubuntu Server 18.04 Administration Guide Part 11 - Configuring Firewall Rules With UFW

Intro To IPTables With Jason

Understand The Security At OS & Network Level | Configure Linux Firewall | DevOps Tutorial | Edureka


Privacidad y seguridad - Artículos más populares

Cómo cambiar su contraseña en una Chromebook

Privacidad y seguridad Nov 27, 2022

Es una buena práctica cambiar su contraseña de forma rutinaria. Esto es especialmente cierto para los Chromebook, ya que utiliza su cuenta de Google para iniciar sesión. Afortuna..


Microsoft bloquea todas las actualizaciones de seguridad de Windows 7 a menos que tenga un antivirus

Privacidad y seguridad Apr 11, 2023

CONTENIDO NO CUBIERTO Microsoft retiene ahora las actualizaciones de seguridad de los usuarios de Windows 7 que no tienen un antivirus instalado. Hay una forma de evitar esta limi..


Qué hacer cuando su computadora o teléfono no puede conectarse a una red Wi-Fi pública

Privacidad y seguridad Jul 4, 2023

La mayoría de las redes públicas usan lo que se llama un portal cautivo: es la página de autorización donde aceptas los términos del lugar y haces clic en "Conectar" para acced..


¿Por qué las extensiones de Chrome necesitan "todos sus datos en los sitios web que visita"?

Privacidad y seguridad Feb 6, 2023

Muchas extensiones de Chrome Web Store quieren "leer y cambiar todos sus datos en los sitios web que visita". Eso suena un poco peligroso, y puede serlo, pero muchas extensiones sol..


Cómo configurar la Nest Cam

Privacidad y seguridad Jan 30, 2023

CONTENIDO NO CUBIERTO La Nest Cam es una cámara de seguridad fácil de usar que se conecta a cualquier tomacorriente y se conecta directamente a su Wi-Fi para que pueda controlar..


Los mejores artículos prácticos para geek de agosto de 2012

Privacidad y seguridad Mar 23, 2023

CONTENIDO NO CUBIERTO El mes pasado cubrimos temas como cómo hacer que Mozilla Firefox vuelva a ser rápido, 11 formas de hacer que su cuenta de LastPass sea aún más segura, c�..


Iron Browser es una versión consciente de la privacidad de Google Chrome

Privacidad y seguridad Jul 5, 2023

CONTENIDO NO CUBIERTO Google Chrome está basado en Cromo , un proyecto de navegador de código abierto. Cualquiera puede tomar el código fuente de Chr..


Computación segura: Protección antivirus gratuita con AVG Free Edition

Privacidad y seguridad Sep 15, 2022

CONTENIDO NO CUBIERTO Durante mi carrera en el campo de la informática, he descubierto que cualquiera de las conocidas utilidades antivirus gratuitas hará el trabajo y es esencial en un p..