Herramientas de administración del sistema: cómo usar iptables

Si desea administrar completamente el tráfico de red hacia y desde su sistema Linux, el iptables comando es lo que necesita aprender. En este artículo, doy consejos generales sobre cómo crear iptables entradas y varios ejemplos genéricos para empezar. El lamentable hecho de iptables es que hay opciones que no tienen sentido intuitivo. Para estos, solo necesitarás memorizarlos o usar este artículo como un iptables hoja de trucos

tengo que mencionarlo iptables las reglas entran en vigor inmediatamente después de su entrada. No hay demonio para reiniciar o configuración para recargar. Por esta razón, debe tener mucho cuidado o se bloqueará el sistema que está utilizando. Siempre emita reglas que le permitan ingresar al sistema antes de ingresar las que no.

No ejecute firewalld e iptables al mismo tiempo. Deshabilite firewalld para ejecutar iptables.

Índice

    Mostrar, no decir

    Hay muchas maneras de ver su iptables lista de reglas, pero generalmente solo uso una, que cubre las dos cosas que quiero ver: reglas y números de línea. Por ejemplo:

    $ sudo iptables -L --line-numbers
    
    Chain INPUT (policy ACCEPT)
    num  target     prot opt source               destination         
    1    ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:ssh
    2    DROP       all  --  anywhere             anywhere            
    
    Chain FORWARD (policy ACCEPT)
    num  target     prot opt source               destination         
    
    Chain OUTPUT (policy ACCEPT)
    num  target     prot opt source               destination  

    Los números de línea son importantes cuando se intenta eliminar una regla. Si no le importan los números de línea, entonces un simple iptables -L funcionará para usted:

    $ sudo iptables -L 
    
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:ssh
    DROP       all  --  anywhere             anywhere            
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination       

    Como puede ver en la lista anterior, hay tres secciones en el iptables salida de comando: ENTRADA, ADELANTE y SALIDA. Las reglas FORWARD son entre las interfaces del sistema.

    Reglas de orden

    Si decide que el orden de sus reglas es torpe, desorganizado o simplemente incorrecto, cambie su orden exportando las reglas con:

    $ sudo iptables-save > ~/iptables.txt

    Realice sus cambios en su editor favorito, que es, por supuesto, vi—a continuación, importe la nueva versión de nuevo en iptables:

    $ sudo iptables-restore < ~/iptables.txt

    Porque iptables las reglas se leen de arriba hacia abajo, este factor puede convertirse en un problema si las reglas contradictorias se leen en el orden incorrecto.

    ENTRADA vs SALIDA

    Cuando crea una nueva regla, generalmente toma la forma de agregar una ENTRADA o una SALIDA. Las reglas de ENTRADA gobiernan el tráfico que ingresa al sistema protegido, y las reglas de SALIDA gobiernan el tráfico que sale del sistema. No sé por qué se usaron ENTRADA y SALIDA en lugar de las más descriptivas ENTRADA y SALIDA o ENTRADA y SALIDA, pero como tantas otras cosas en la vida, nadie me pidió mi opinión antes de la implementación.

    Así, la forma general de una regla INPUT es:

    iptables -I INPUT <other options>

    Y, las reglas de SALIDA son:

    iptables -I OUTPUT <other options>

    Agregar entradas

    Hay dos formas en que agrego iptables reglas. Uno es con agregar (-A), pero solo lo uso una vez por sistema. El segundo es insertar (-I), que es como agrego todas las demás reglas a un sistema. Mi explicación es que agregar coloca la regla al final de la lista, y solo hay una regla que quiero al final: la clásica DENEGAR TODO. Es simple de agregar.

    $ sudo iptables -A INPUT -j DROP

    Esta entrada agrega la regla DENY ALL al final de la lista de reglas que ya existe. En un nuevo sistema no habrá, pero es una buena práctica para empezar. Recordar, iptables las reglas se leen de arriba a abajo, por lo que siempre desea que la regla DENY ALL sea la última en la lista. Si esta regla está en cualquier otro lugar de la lista, no se procesará nada a continuación. Todas las demás reglas deben insertarse con (-I), como esto :

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

    La opción de inserción agrega la regla a la parte superior de la lista, por lo que la nueva regla no se verá afectada por DENY ALL. La regla particular anterior permite que cada sistema en la red 192.168.1.0/24 se conecte al sistema protegido a través de SSH. No olvide agregar esta regla, porque la regla DROP lo excluye completamente de su sistema al negarle todo el tráfico TCP. No le diré quién, pero conozco a alguien a quien recientemente se le bloqueó el sistema que estaba usando para un artículo que cubría iptables olvidando la regla SSH. Afortunadamente, el sistema en cuestión es una máquina virtual y la consola es de fácil acceso. Imagínese lo que sucedería si alguien enviara la regla DENY ALL sin la regla SSH en un sistema alojado de forma remota y no fuera tan fácil acceder a la consola.

    Notar: Primero debe agregar la regla SSH y agregar la regla DENY ALL.

    Eliminación de entradas

    Supresión iptables entradas es donde el --line-numbers opción se vuelve inevitable. En una lista anterior, puede ver que mi llamada regla DENY ALL es la segunda regla en la lista (como debería ser). Para eliminar esta regla, busque el número de línea de la regla que desea eliminar. Por ejemplo:

    $ sudo iptables -L --line-numbers
    
    Chain INPUT (policy ACCEPT)
    num  target     prot opt source               destination         
    1    ACCEPT     tcp  --  192.168.1.0/24       anywhere             tcp dpt:ssh
    2    DROP       all  --  anywhere             anywhere            
    
    Chain FORWARD (policy ACCEPT)
    num  target     prot opt source               destination         
    
    Chain OUTPUT (policy ACCEPT)
    num  target     prot opt source               destination  

    Ejecute el siguiente comando para eliminar la segunda regla:

    $ sudo iptables -D INPUT 2

    Debe especificar la lista (ENTRADA, SALIDA o ADELANTE) y el número de línea de la regla en esta lista. No hay respuesta del comando de eliminación.

    Registro de entradas

    Probablemente querrá que sus iptables configuradas sobrevivan a los reinicios, así que asegúrese de ejecutar el siguiente comando para guardar sus valiosas entradas; de lo contrario, tendrá que importar sus reglas después de cada reinicio o crear un script para la importación.

    $ sudo iptables-save > /etc/sysconfig/iptables

    Entradas estándar

    Para un sistema realmente bloqueado, necesita una regla que le permita ingresar por SSH desde un host o red específicos, y una regla DENY ALL para ENTRADA y SALIDA. Todas las demás reglas se insertarían según sea necesario para permitir el tráfico específico dentro y fuera del sistema.

    Aparte de estas reglas mínimas, no hay otras reglas "estándar" que se apliquen a todos los sistemas. Si tiene un servidor web, debe escribir una regla de ENTRADA para permitir los puertos 80 y 443. Si es accesible en Internet, debe abrirlo a todos los hosts. Si el servidor web es interno, solo puede permitir el acceso web desde sus redes corporativas internas.

    Envoltura

    Este artículo es una breve introducción a una de las herramientas de administración de sistemas más necesarias y útiles: iptables. iptables es fácil de usar y prácticamente no requiere mantenimiento. No requiere reiniciar el demonio y está disponible para todos los sistemas Linux. Una de las primeras cosas que debe hacer al poner en línea un nuevo sistema Linux es tener estas reglas estándar en su lugar. No es necesario que surjan problemas de seguridad en los primeros días de la implementación (o nunca, en realidad) y iptables es una solución de seguridad rápida si alguna vez hubo una.

    Artículos de interés

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Si continuas utilizando este sitio aceptas el uso de cookies. Más información