Noticias, Gadgets, Android, Móviles, Descargas de Aplicaciones

Cómo configurar IPTables en Linux Guía paso a paso 2020

IPTables es el nombre de un sistema de firewall que opera a través de la línea de comandos en Linux. Este programa está disponible principalmente como una utilidad predeterminada en Ubuntu. Los administradores a menudo usan el firewall de IPTables para permitir o bloquear el tráfico en sus redes. Si es nuevo en IPTables, una de las primeras cosas que debe hacer es actualizarlo o instalarlo usando el siguiente comando:

$ sudo apt-get install iptables

Si bien los usuarios que son nuevos en las interfaces de línea de comandos encuentran que hay una curva de aprendizaje adjunta a IPTables, la utilidad en sí es lo suficientemente simple de usar. Hay una variedad de comandos básicos que actúan como su pan y mantequilla para controlar el tráfico. Dicho esto, debe tener mucho cuidado al realizar cambios en las reglas de IPTables. Ingresar el comando incorrecto puede bloquearlo por completo de IPTables hasta que resuelva el problema dentro de la máquina física.

En este artículo, le proporcionaremos una guía básica de IPTables y le presentaremos los fundamentos. Antes de llegar al corazón de IPTables, debe asegurarse de tener una VPA con Ubuntu 16.04 y una máquina local con un cliente SSH. Si ya los tiene, es hora de empezar.

Tutorial de IPTables: Cadenas

Uno de los conceptos fundamentales a abordar en IPTables es el de cadenas. Una cadena es esencialmente una regla. Las tablas del filtro tienen tres cadenas que encontrará en IPTables; ENTRADA, ADELANTE y SALIDA.

ENTRADA – La cadena INPUT es la regla que controla los paquetes entrantes. Aquí puede bloquear o permitir nuevas conexiones. Puede hacer esto según el puerto, el protocolo y la dirección IP de origen.ADELANTE – La cadena FORWARD filtra los paquetes entrantes que se reenvían a una ubicación final diferente. Es poco probable que use esta cadena a menos que esté enrutando o buscando un reenvío específicamente.SALIDA – La cadena de SALIDA se usa para administrar paquetes y conexiones salientes. Es importante tener en cuenta que si hace ping a un host externo, la cadena de entrada se utilizará para devolverle los datos.

Comportamiento de cadena predeterminado

Es posible que desee saltar directamente a la configuración de reglas particulares al comenzar, pero primero debe dar un paso atrás para definir el comportamiento predeterminado. Para identificar cuál es el comportamiento predeterminado de sus cadenas, deberá ejecutar el comando:

$ sudo iptables -L command 

Esto mostrará lo siguiente:

user@ubuntu:~$ sudo iptables -L -v
Chain INPUT  (policy ACCEPT) 
Chain FORWARD (policy ACCEPT) 
Chain OUTPUT (policy ACCEPT) 
user@ubuntu:~$

Esta información le dice exactamente para qué están configuradas sus cadenas. En el ejemplo, las cadenas de entrada, reenvío y salida se han configurado para aceptar tráfico. Estas configuraciones son un buen punto de partida, ya que no bloquean las conexiones que desee.

Sin embargo, si descubre que sus políticas no aceptan conexiones, puede ingresar cada uno de los siguientes comandos para aceptar todas las conexiones:

$ sudo iptables —policy INPUT ACCEPT
$ sudo iptables —policy OUTPUT ACCEPT
$ sudo iptables —policy FORWARD ACCEPT

Una vez que sus valores predeterminados estén alineados para aceptar todas las conexiones, puede controlar el acceso a IPTables bloqueando las direcciones IP y los números de puerto. Esto le permite especificar qué conexiones desea bloquear en lugar de bloquear todo por defecto.

Si está trabajando con información particularmente sensible, puede configurar sus valores predeterminados para bloquear automáticamente todas las conexiones. De esta manera, puede usar IPTables para elegir direcciones IP individuales que desea permitir. Para hacer esto, debe ingresar el siguiente comando:

$ sudo iptables —policy INPUT DROP
$ sudo iptables —policy OUTPUT DROP
$ sudo iptables —policy FORWARD DROP

La mayoría de los usuarios estarán mejor aceptando todas las conexiones, pero vale la pena recordarlo si está trabajando en un servidor de alta seguridad.

Configurar conexiones individuales

Una vez que haya configurado su comportamiento de cadena predeterminado, es hora de configurar conexiones individuales. Este es el punto en el que configura lo que se conoce como una respuesta específica de la conexión. Esto esencialmente le dice a IPTables cómo interactuar cuando está conectado a una dirección IP o puerto. Estas respuestas son las siguientes; ACEPTAR, SOLTAR, RECHAZAR.
Como puede ver en la imagen de arriba, el usuario ha definido reglas de cadena para permitir, descartar o rechazar la conexión según los requisitos. A continuación se muestra una descripción de lo que implica cada respuesta:

ACEPTAR – Esta configuración simplemente permite que se realice la conexión.SOLTAR – Drop bloquea la conexión sin interactuar con la fuente de ninguna manera.RECHAZAR – Esto bloquea el intento de conexión pero también envía un mensaje de error. Esto generalmente es para notificar a la fuente que su firewall ha bloqueado el intento de conexión.

Cómo permitir o bloquear conexiones

Hay muchas formas diferentes de bloquear o permitir conexiones según su configuración. Los ejemplos a continuación utilizan el método de bloqueo encubierto de usar soltar para eliminar conexiones sin ninguna interacción. iptables -A nos permite agregar advertencias adicionales a las reglas establecidas por nuestra configuración de cadena predeterminada. Puede ver cómo usar este comando para bloquear conexiones a continuación:

Bloquear una única dirección IP:

$ sudo iptables -A INPUT -S 10.10.10.10 -j DROP

En el ejemplo anterior, reemplazaría 10.10.10.10 con la dirección IP que desea bloquear.

Bloquear un rango de direcciones IP:

$ sudo iptables -A INPUT -s 10.10.10.10.0/24 -j DROP    

o

$ sudo iptables -A INPUT -s 10.10.10.0/255.255.255/.0 -j DROP

Bloquear un solo puerto:

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

Tenga en cuenta que ‘ssh se puede reemplazar por cualquier protocolo o número de puerto. También es importante tener en cuenta que el segmento -p tcp del código se usa para hacer referencia a si el protocolo que desea bloquear está usando UDP o TCP.

Si el protocolo usa UDP, entonces debe ingresar -p udp en vez de -p tcp. También puede bloquear todas las conexiones desde direcciones IP ingresando el siguiente comando:

$ sudo iptables -A INPUT -p tcp —dport ssh -jDROP

Comunicación bidireccional: Tutorial de IPTables de estados de conexión

La mayoría de los protocolos que encuentra requieren que la comunicación sea en ambos sentidos para que se lleve a cabo una transferencia. Esto significa que las transferencias se componen de una entrada y una salida. Lo que entra en su sistema es tan importante como lo que sale. Los estados de conexión le permiten mezclar y combinar conexiones bidireccionales y conexiones unidireccionales. En el siguiente ejemplo, el protocolo SSH ha bloqueado las conexiones SSH desde la dirección IP, pero las permite a la dirección IP:

$ sudo iptables -A INPUT -p tcp —dport ssh -s 10.10.10.10 -m state —state NEW, ESTABLISHED -j ACCEPT 

$ sudo iptables -A OUTPUT -p tcp —sport 22 -d 10.10.10.10. -m state —state ESTABLISHED -J ACCEPT 

Una vez que haya ingresado un comando para cambiar los estados de conexión, debe guardar los cambios. Si no lo hace, cuando cierre la utilidad, se perderá la configuración. Dependiendo del sistema de distribución que esté usando, hay varios comandos diferentes que puede usar:

Ubuntu:

$ sudo /sbin/iptables-save

Red Hat / CentOS –

$ sudo /sbin/service iptables save

O

$ sudo  /etc/init.d/iptables save 

Es vital recordar utilizar estos comandos porque eliminará la molestia de tener que configurar cada vez que cargue la utilidad.

Eliminar una regla

Tan importante como poder guardar sus reglas es poder eliminarlas. Si comete un error o simplemente desea eliminar una regla anterior, puede usar la opción:re mando. Este comando debe combinarse con el número de la regla que ingrese. El número le dice a IPTables qué regla se debe eliminar. Por ejemplo, si ingresara:

$ sudo iptables -D INPUT 10

Entonces se eliminará la décima regla que configuró.

Si desea limpiar la casa y eliminar una serie de reglas, puede usar el -F comando. Puede hacer esto ingresando lo siguiente:

$ sudo iptables -F

Esto borrará todo el conjunto de reglas y limpiará su IPTable.

IPTables: ¡Aprenda las reglas de la cadena!

Eso concluye nuestro tutorial de IPTables. Como puede ver, IPTables es una herramienta versátil para bloquear y permitir el tráfico en Linux distribuciones. Usar la utilidad de manera efectiva implica configurar sus configuraciones predeterminadas de manera efectiva y construir reglas adicionales además de eso. Las configuraciones predeterminadas le permitirán describir sus amplias intenciones de tráfico para permitir o denegar tráfico; las reglas le permitirán estructurar su enfoque con respecto a direcciones IP, puertos y protocolos.

Solo hemos arañado la superficie con el potencial de IPTables, y hay un montón de comandos diferentes que puede usar para decidir cómo experimenta el tráfico en su servidor. Sin embargo, le recomendamos que aprenda los conceptos básicos antes de comenzar con otros comandos. Por ejemplo, querrá familiarizarse con las reglas básicas de las cadenas antes de comprometerse con algo más especializado.

Una vez que se haya acostumbrado a cómo funciona IPTables, puede comenzar a incorporar aún más reglas para personalizar su experiencia. Al hacerlo, podrá especificar exactamente qué tipo de conexiones permitirá con mucha mayor precisión que nunca.

Lea también Pasos para instalar Firefox Developer Edition en Linux Ubuntu 2019

Cómo instalar yarn en ubuntu 18.04 y Debian Linux