¿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:
- Conéctese a su servidor a través de SSH. Si no lo sabe, puede leer nuestro tutorial de SSH.
- Ejecute el siguiente comando uno por uno:
sudo apt-get update sudo apt-get install iptables
- 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!