GNU/Linux >> Tutoriales Linux >  >> Linux

Introducción a las iptables

Este artículo explica cómo usar las tablas de IP para un firewall simple y describe el proceso de abrir agujeros en su firewall a los puertos necesarios. Una tabla de IP es una herramienta de red y firewall disponible para todas las distribuciones de Linux y funciona mediante el análisis de paquetes a nivel de kernel a medida que se reciben.

Para obtener una lista completa de los comandos, parámetros y otras opciones de las tablas de IP, consulte la página MAN y el procedimiento de las tablas de IP.

Conjunto de reglas básico

El comando para enumerar las reglas actuales es:

  sudo iptables --list

La salida predeterminada es:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Leyendo el conjunto de reglas

En una instalación predeterminada, verá tres Cadenas predefinidas , una lista de reglas que se ocupa de las tres actividades principales:tráfico entrante (ENTRADA), tráfico reenviado (REENVIAR) y tráfico saliente (SALIDA). Lo más importante de la tabla anterior es que el conjunto de reglas predeterminado para todas las políticas está establecido en ACEPTAR. .

Políticas

Las pólizas disponibles y otras opciones son amplias. Si desea saber más acerca de ellos, consulte la página del manual de IPtables. Este artículo cubre solo las políticas más comunes:

  • Aceptar pasa el tráfico explícitamente siempre que no se apliquen otras reglas de destino.

  • Rechazar devuelve un paquete de error en respuesta al paquete coincidente. De lo contrario, es equivalente a DROP por lo que es un OBJETIVO de terminación , finalizando el recorrido de la regla.

  • Soltar detiene una conexión a un host sin ninguna comunicación a menos que se aplique una regla de destino.

Opciones disponibles

Página MAN de IPtables:https://linux.die.net/man/8/iptables

Las opciones reconocidas por iptables vienen en los siguientes grupos:

  • Comandos especificar una acción para realizar.
  • Parámetros establecer especificaciones de reglas para los comandos utilizados.
  • Otras opciones que especifique, según sea necesario, para los comandos utilizados.

Comandos simples de firewall

Permita las conexiones que ya están conectadas a su servidor.

sudo iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

Permitir conexiones en ServiceNet. Requerido por otros productos de Rackspace Cloud, como Cloud Backup y Cloud Monitoring.

sudo iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

Permitir conexiones a SSH. También puede utilizar este comando para realizar personalizaciones. El siguiente comando permite todos los intentos de conexión TCP al puerto SSH 22 .

  sudo iptables -I INPUT 1 -p tcp  --dport 22 -j ACCEPT

Permita conexiones que solo provengan de una determinada subred IP mediante el uso de la notación CIDR (ClasslessInter Domain Routing). En este ejemplo, bloqueamos cualquier dirección IP que se encuentre en el rango de 192.168.1.0 - 192.168.1.255.

sudo iptables -I INPUT 1 -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT

Permitir conexiones a HTTP 80 o HTTPS 443 desde cualquier conexión.

sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT

Permitir conexiones para servidores FTP en el puerto 21 .

sudo iptables -I INPUT 1 -p tcp --dport 21 -j ACCEPT

Al cambiar la política predeterminada para denegar todas las conexiones, solo se aceptarán las conexiones permitidas.

sudo iptables -P INPUT DROP

IMPORTANTE :Ejecute esta regla después de haber configurado sus reglas de acceso para permitir conexiones SSH entrantes.

Lista de puertos comunes

Con los comandos anteriores, mezcle y combine las opciones de la siguiente lista de puertos comunes para crear reglas para cualquier servidor en ejecución que tenga.

Guarde su conjunto de reglas

Si el servidor se reinicia por algún motivo o usted reinicia IPTables, los cambios se perderán ya que las modificaciones se almacenan en la memoria volátil. Los siguientes comandos crean un archivo de texto sin formato, /etc/sysconfig/iptables , con sintaxis legible por humanos. Todas las ediciones de este archivo se activan cada vez que se reinicia iptables.

  • Para CentOS y Fedora

    /etc/init.d/iptables save
    
  • Para el sistema operativo Ubuntu

    iptables-save > /etc/iptables.rules
    
  • Para todas las demás distribuciones

    iptables-save > /etc/sysconfig/iptables
    

Resumen

Este artículo le muestra cómo crear un firewall simple para proteger su servidor de ataques básicos. Tenga en cuenta que IPTables es una herramienta poderosa que necesitaría un libro para explorarla por completo. Si necesita ayuda para crear más reglas, consulte Easy Firewall Generator for IPTables.

Referencias y enlaces utiles

  • Ubuntu IPtables Howto
  • Man IPtables

Linux
  1. Introducción a las herramientas automáticas de GNU

  2. Cómo abrir puertos en Iptables en un servidor Linux

  3. Lenguaje de programación C - Introducción

  4. Una introducción al editor vi

  5. Una introducción al comando diff

Una introducción a Virtual Machine Manager

Una introducción a bpftrace para Linux

Cómo abrir puertos en Iptables en un servidor Linux

Una introducción al navegador Vivaldi en Linux

Una introducción a los hechos de Ansible

¿Negar todas las conexiones entrantes con iptables?