stringtranslate.com

Tablas ip

iptables es un programa de utilidad de espacio de usuario que permite a un administrador de sistemas configurar las reglas de filtrado de paquetes IP del firewall del kernel de Linux , implementado como diferentes módulos Netfilter . Los filtros están organizados en un conjunto de tablas, que contienen cadenas de reglas sobre cómo tratar los paquetes de tráfico de red. Actualmente se utilizan diferentes módulos y programas del kernel para diferentes protocolos; iptables se aplica a IPv4, ip6tables a IPv6, arptables a ARP y ebtables a tramas Ethernet .

iptables requiere privilegios elevados para funcionar y debe ser ejecutado por el usuario root , de lo contrario no funciona. En la mayoría de los sistemas Linux, iptables se instala como /usr/sbin/iptables y se documenta en sus páginas de manual , que se pueden abrir usando man iptablescuando se instala. También se puede encontrar en /sbin/iptables, pero como iptables es más como un servicio que un "binario esencial", la ubicación preferida sigue siendo /usr/sbin .

El término iptables también se usa comúnmente para referirse de manera inclusiva a los componentes de nivel de kernel. x_tables es el nombre del módulo del kernel que lleva la porción de código compartido utilizada por los cuatro módulos y que también proporciona la API utilizada para las extensiones; posteriormente, Xtables se usa más o menos para referirse a toda la arquitectura del firewall (v4, v6, arp y eb).

iptables reemplazó a ipchains ; y el sucesor de iptables es nftables , que se lanzó el 19 de enero de 2014 [2] y se fusionó con la línea principal del kernel de Linux en la versión 3.13 del kernel.

Descripción general

iptables permite al administrador del sistema definir tablas que contienen cadenas de reglas para el tratamiento de paquetes. Cada tabla está asociada con un tipo diferente de procesamiento de paquetes . Los paquetes se procesan recorriendo secuencialmente las reglas en cadenas. Una regla en una cadena puede causar un goto o salto a otra cadena, y esto se puede repetir hasta cualquier nivel de anidamiento que se desee. (Un salto es como una "llamada", es decir, se recuerda el punto desde el que se saltó). Cada paquete de red que llega o sale de la computadora atraviesa al menos una cadena.

Rutas de flujo de paquetes. Los paquetes comienzan en una determinada caja y seguirán una determinada ruta, según las circunstancias.

El origen del paquete determina qué cadena atraviesa inicialmente. Hay cinco cadenas predefinidas (que corresponden a los cinco ganchos de Netfilter disponibles), aunque es posible que una tabla no tenga todas las cadenas. Las cadenas predefinidas tienen una política , por ejemplo DROP, que se aplica al paquete si llega al final de la cadena. El administrador del sistema puede crear tantas otras cadenas como desee. Estas cadenas no tienen ninguna política; si un paquete llega al final de la cadena, se devuelve a la cadena que lo llamó. Una cadena puede estar vacía.

Una cadena no existe por sí misma, pertenece a una tabla . Existen tres tablas: nat , filter y mangle . A menos que esté precedido por la opción -t , un iptablescomando se refiere a la tabla filteriptables -L -v -n de manera predeterminada. Por ejemplo, el comando , que muestra algunas cadenas y sus reglas, es equivalente a iptables -t filter -L -v -n. Para mostrar cadenas de la tabla nat , utilice el comandoiptables -t nat -L -v -n

Cada regla de una cadena contiene la especificación de los paquetes con los que coincide. También puede contener un objetivo (usado para extensiones) o un veredicto (una de las decisiones integradas). A medida que un paquete atraviesa una cadena, se examina cada regla a su vez. Si una regla no coincide con el paquete, el paquete pasa a la siguiente regla. Si una regla coincide con el paquete, la regla toma la acción indicada por el objetivo/veredicto, que puede dar como resultado que se permita que el paquete continúe a lo largo de la cadena o no. Las coincidencias constituyen la mayor parte de los conjuntos de reglas, ya que contienen las condiciones para las que se prueban los paquetes. Esto puede suceder para casi cualquier capa en el modelo OSI , como con los parámetros --mac-sourcey -p tcp --dport, y también hay coincidencias independientes del protocolo, como -m time.

El paquete continúa recorriendo la cadena hasta que

  1. una regla coincide con el paquete y decide el destino final del paquete, por ejemplo, llamando a uno de los ACCEPTo DROP, o un módulo que devuelve dicho destino final; o
  2. una regla invoca el RETURNveredicto, en cuyo caso el procesamiento vuelve a la cadena que invoca; o
  3. se llega al final de la cadena; el recorrido continúa en la cadena principal (como si RETURNse hubiera utilizado) o se utiliza la política de la cadena base, que es un destino final.

Los objetivos también devuelven un veredicto como ACCEPT( NATlos módulos harán esto) o DROP(por ejemplo, el REJECTmódulo), pero también pueden implicar CONTINUE(por ejemplo, el LOGmódulo; CONTINUEes un nombre interno) continuar con la siguiente regla como si no se hubiera especificado ningún objetivo/veredicto.

Utilidades del espacio de usuario

Frontales

Existen numerosas aplicaciones de software de terceros para iptables que intentan facilitar la creación de reglas. Los front-ends en formato textual o gráfico permiten a los usuarios generar conjuntos de reglas simples con un clic; los scripts generalmente hacen referencia a scripts de shell (pero también son posibles otros lenguajes de scripts) que llaman a iptables o (el más rápido) iptables-restorecon un conjunto de reglas predefinidas, o reglas expandidas a partir de una plantilla con la ayuda de un archivo de configuración simple. Las distribuciones Linux emplean comúnmente este último esquema de uso de plantillas. Este enfoque basado en plantillas es prácticamente una forma limitada de un generador de reglas, y dichos generadores también existen de manera independiente, por ejemplo, como páginas web PHP.

Estos front-ends, generadores y scripts suelen estar limitados por sus sistemas de plantillas integrados y por el hecho de que las plantillas ofrecen puntos de sustitución para las reglas definidas por el usuario. Además, las reglas generadas generalmente no están optimizadas para el efecto de firewall particular que desea el usuario, ya que hacerlo probablemente aumentará el costo de mantenimiento para el desarrollador. Se recomienda a los usuarios que comprendan razonablemente iptables y quieran optimizar su conjunto de reglas que construyan su propio conjunto de reglas.

Otras herramientas destacables

Véase también

Referencias

  1. ^ Phil Sutter (10 de octubre de 2023). «lanzamiento de iptables 1.8.10» . Consultado el 10 de octubre de 2023 .
  2. ^ "Linux 3.13, Sección 1.2. nftables, el sucesor de iptables". kernelnewbies.org . 19 de enero de 2014 . Consultado el 20 de enero de 2014 .

Literatura

Enlaces externos