GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Tutorial de Iptables:asegurar Ubuntu VPS con Linux Firewall

¿Está buscando un tutorial completo de iptables? Quedarse quieto. En este artículo, le mostraremos cómo instalar y usar iptables en el sistema Ubuntu. Al conocer esta herramienta de firewall de Linux, puede proteger su VPS de Linux utilizando la interfaz de línea de comandos.

¿Qué es Iptables y cómo funciona?

En pocas palabras, iptables es un programa de firewall para Linux. Supervisará el tráfico desde y hacia su servidor utilizando tablas . Estas tablas contienen conjuntos de reglas , llamadas cadenas , que filtrará los paquetes de datos entrantes y salientes.

[optin-monster-shortcode id=”fv4lqeko3gylvecpszws”]

Cuando un paquete coincide con una regla , se le asigna un objetivo , que puede ser otra cadena o uno de estos valores especiales:

  • ACEPTAR – permitirá que el paquete pase.
  • SOLTAR – no dejará pasar el paquete.
  • VOLVER – impide que el paquete atraviese una cadena y le dice que vuelva a la cadena anterior.

En este tutorial de iptables, vamos a trabajar con una de las tablas predeterminadas, llamada filtro . Consta de tres cadenas:

  • ENTRADA – controla los paquetes entrantes al servidor.
  • ADELANTE – filtra los paquetes entrantes que se reenviarán a otro lugar.
  • SALIDA – filtra los paquetes que salen de tu servidor.

Antes de comenzar esta guía, asegúrese de tener SSH root o sudo acceso a su máquina que se ejecuta en Ubuntu 16.04 o superior. Puede establecer la conexión a través de PuTTY (Windows) o terminal shell (Linux, macOS). Si posee Hostinger VPS, puede obtener los detalles de inicio de sesión de SSH en la pestaña Servidores de hPanel.

¡Importante! Las reglas de iptables solo se aplican a ipv4 . Si desea configurar un cortafuegos para ipv6 protocolo, necesitará usar ip6tables en cambio.

Cómo instalar y usar el firewall de Iptables Linux

Dividiremos este tutorial de iptables en tres pasos. Primero, aprenderá cómo instalar la herramienta en Ubuntu. En segundo lugar, le mostraremos cómo definir las reglas. Por último, lo guiaremos para realizar cambios persistentes en iptables.

Paso 1:Instalación de Iptables

Iptables viene preinstalado en la mayoría de las distribuciones de Linux. Sin embargo, si no lo tiene en el sistema Ubuntu/Debian por defecto, siga los pasos a continuación:

  1. Conéctese a su servidor a través de SSH. Si no lo sabe, puede leer nuestro tutorial de SSH.
  2. Ejecute el siguiente comando uno por uno:
    sudo apt-get update
    sudo apt-get install iptables
  3. Compruebe el estado de su configuración actual de iptables ejecutando:
    sudo iptables -L -v

    Aquí, el -L La opción se usa para listar todas las reglas, y -v es para mostrar la información en un formato más detallado. A continuación se muestra el resultado de ejemplo:

    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target     prot opt in out   source destination
    
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target     prot opt in out   source destination
    
    Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target     prot opt in out   source destination

Ahora tendrá instalado el firewall de Linux. En este punto, puede notar que todas las cadenas están configuradas para ACEPTAR y no tener reglas. Esto no es seguro ya que cualquier paquete puede pasar sin filtrado.

No te preocupes. Le diremos cómo definir reglas en el próximo paso de nuestro tutorial de iptables.

Paso 2:Definición de reglas de cadena

Definir una regla significa agregarla a la cadena. Para hacer esto, debe insertar el -A opción (Anexar ) justo después del comando iptables, así:

sudo iptables -A

Alertará a iptables que está agregando nuevas reglas a una cadena. Luego, puede combinar el comando con otras opciones, como:

  • -yo (interfaz ) — la interfaz de red cuyo tráfico desea filtrar, como eth0, lo, ppp0, etc.
  • -p (protocolo ) — el protocolo de red donde se lleva a cabo su proceso de filtrado. Puede ser tcp , up , upplite , icmp , sctp , icmpv6 , y así. Alternativamente, puede escribir todos para elegir cada protocolo.
  • -s (fuente ) — la dirección de donde proviene el tráfico. Puede agregar un nombre de host o una dirección IP.
  • –dport (puerto de destino ) — el número de puerto de destino de un protocolo, como 22 (SSH ), 443 (https ), etc.
  • -j (objetivo ) — el nombre del objetivo (ACEPTAR , SOLTAR , VOLVER ). Debe insertar esto cada vez que crea una nueva regla.

Si desea utilizarlos todos, debe escribir el comando en este orden:

sudo iptables -A <chain> -i <interface> -p <protocol (tcp/udp) > -s <source> --dport <port no.>  -j <target>

Una vez que comprenda la sintaxis básica, puede comenzar a configurar el firewall para brindar más seguridad a su servidor. Para este tutorial de iptables, vamos a utilizar la INPUT cadena como ejemplo.

Habilitación de tráfico en Localhost

Para permitir el tráfico en localhost, escriba este comando:

sudo iptables -A INPUT -i lo -j ACCEPT

Para este tutorial de iptables, usamos lo o bucle invertido interfaz. Se utiliza para todas las comunicaciones en el localhost. El comando anterior se asegurará de que las conexiones entre una base de datos y una aplicación web en la misma máquina funcionen correctamente.

Habilitación de conexiones en puerto HTTP, SSH y SSL

A continuación, queremos http (puerto 80 ), https (puerto 443 ), y ssh (puerto 22 ) conexiones para trabajar como de costumbre. Para hacer esto, necesitamos especificar el protocolo (-p ) y el puerto correspondiente (–dport ). Puede ejecutar estos comandos uno por uno:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Es hora de comprobar si las reglas se han añadido en iptables:

sudo iptables -L -v

Debería regresar con los resultados a continuación, lo que significa que se aceptarán todas las conexiones de protocolo TCP de los puertos especificados:

Filtrado de paquetes según el origen

Iptables le permite filtrar paquetes según una dirección IP o un rango de direcciones IP. Debe especificarlo después de la -s opción. Por ejemplo, para aceptar paquetes de 192.168.1.3 , el comando sería:

sudo iptables -A INPUT -s 192.168.1.3 -j ACCEPT

También puede rechazar paquetes de una dirección IP específica reemplazando el ACEPTAR objetivo con DROP .

sudo iptables -A INPUT -s 192.168.1.3 -j DROP

Si desea descartar paquetes de un rango de direcciones IP, debe usar -m opción y iprange módulo. Luego, especifique el rango de direcciones IP con –src-range . Recuerde, un guión debe separar el rango de direcciones IP sin espacio, así:

sudo iptables -A INPUT -m iprange --src-range 192.168.1.100-192.168.1.200 -j DROP

Descartar todo el resto del tráfico

Es crucial usar el DROP objetivo para el resto del tráfico después de definir –dport normas. Esto evitará que una conexión no autorizada acceda al servidor a través de otros puertos abiertos. Para lograr esto, simplemente escriba:

sudo iptables -A INPUT -j DROP

Ahora, se interrumpirá la conexión fuera del puerto especificado.

Reglas de eliminación

Si desea eliminar todas las reglas y comenzar desde cero, puede usar -F opción (vaciar ):

sudo iptables -F

Este comando borra todas las reglas actuales. Sin embargo, para eliminar una regla específica, debe usar la opción -D. Primero, debe ver todas las reglas disponibles ingresando el siguiente comando:

sudo iptables -L --line-numbers

Obtendrá una lista de reglas con números:

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination

1    ACCEPT     all -- 192.168.0.4          anywhere
2    ACCEPT     tcp -- anywhere             anywhere tcp dpt:https
3    ACCEPT     tcp -- anywhere             anywhere tcp dpt:http
4    ACCEPT     tcp -- anywhere             anywhere tcp dpt:ssh

Para eliminar una regla, inserte la cadena correspondiente y el número de la lista. Digamos que para este tutorial de iptables, queremos deshacernos de la regla número tres de la ENTRADA cadena. El comando debe ser:

sudo iptables -D INPUT 3

Paso 3:cambios persistentes

Las reglas de iptables que hemos creado se guardan en memoria. Eso significa que tenemos que redefinirlos al reiniciar. Para que estos cambios sean persistentes después de reiniciar el servidor, puede usar este comando:

sudo /sbin/iptables-save

Guardará las reglas actuales en el archivo de configuración del sistema, que se utilizará para reconfigurar las tablas cada vez que se reinicie el servidor.

Tenga en cuenta que siempre debe ejecutar este comando cada vez que realice cambios en las reglas. Por ejemplo, si desea deshabilitar iptables, debe ejecutar estas dos líneas:

sudo iptables -F
sudo /sbin/iptables-save

Verá los siguientes resultados:

Conclusión

Iptables es un poderoso programa de firewall que puede usar para proteger su servidor Linux o VPS. Lo bueno es que puedes definir varias reglas según tus preferencias.

En este tutorial de iptables, aprendió cómo instalar y usar la herramienta. Ahora, esperamos que pueda administrar sus conjuntos de reglas para filtrar los paquetes entrantes y salientes.

¡Es hora de probarlo tú mismo y buena suerte!


Ubuntu
  1. Configuración de Firewall usando Iptables en Ubuntu 14.04

  2. Configurar Linux Container con LXC en Ubuntu 16.04

  3. ¿Adaptador de pantalla USB con controladores Linux/ubuntu?

  4. ¿Cómo reemplazamos Iptables con Firewalld en Ubuntu 16.04?

  5. Cómo configurar un firewall con iptables en Ubuntu y CentOS

Cómo instalar PSAD en Ubuntu Linux

Cómo conectar Kindle Fire HD con Ubuntu Linux

Cómo configurar el cortafuegos con UFW en Ubuntu Linux

Cómo:asegurar su servidor Ubuntu o Debian con IPTables

Cómo proteger un firewall de Linux con reglas de IPTables

Tutorial de firewall de Linux:tablas, cadenas y fundamentos de reglas de IPTables