GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo:Linux General – IPTables en General

Introducción

IPTables es un firewall que ya está instalado o puede instalarse en cualquiera de nuestras distribuciones de Linux para nuestro servicio en la nube. IPTables se utiliza para configurar cadenas de reglas de filtrado de paquetes y hacer cumplir las cadenas de reglas integradas o definidas por el usuario para su servidor. IPTables tiene componentes principales que involucran Tablas , Objetivos y Opciones .

Mesas

Las tablas en IPTables se utilizan para separar los paquetes en su categoría correspondiente. La clasificación de la tabla depende de los módulos que su sistema haya cargado y dónde coincida el paquete. En este momento, hay cinco tablas distintas para usar. Son filtro , natural , destrozar , crudo y seguridad . En su mayor parte, el uso básico de IPTables solo implicará el filtro mesa. Si está haciendo enrutamiento interno o redes más complicadas, también se centrará en usar las otras tablas. Esta página solo revisará filtro reglas de tipo.

filtro – Esta es la tabla básica como se mencionó y normalmente es la tabla predeterminada. Esta tabla consta de las cadenas de reglas ACEPTAR, ADELANTE, SALIDA.

natural – Esta tabla se usa para paquetes que crearán nuevas conexiones. Como enrutar una IP pública a una IP privada. Consta de las cadenas de reglas PREROUTING, POSTROUTING y OUTPUT.

destrozar – Esta tabla se utiliza para modificar la forma en que se manejan los paquetes. Consta de las cadenas de reglas INPUT, FORWARD, OUTPUT, PREROUTING y POSTROUTING.

crudo – Esta tabla se utiliza para configurar exenciones del seguimiento de conexiones con el destino NOTRACK. Consta de PREROUTING y OUTPUT.

seguridad – Esta tabla es para reglas MAC (Control de acceso obligatorio). Consta de ENTRADA, AVANCE y SALIDA

Objetivos

Los objetivos se definen como el valor de la cadena de reglas que está creando. Pueden contener los valores ACCEPT , SOLTAR , Cola o VOLVER . Estos valores le indican a la regla cómo proceder con un paquete que coincide con la regla.

ACEPTAR – Esto es bastante sencillo y significa permitir que el paquete llegue a su servidor.

SOLTAR – También es bastante sencillo, ya que significa denegar el paquete a través de su servidor.

Cola – Este objetivo significa pasar el paquete al espacio de usuario para que un usuario pueda definir qué hacer con él.

VOLVER – Este objetivo detiene el procesamiento de la cadena actual y le dice que reanude el procesamiento en la siguiente regla de la cadena anterior.

Opciones

Hay un montón de opciones disponibles para el uso de IPTables. Enumeraremos algunos de los más comunes que verá.

-A, –append:agrega su regla a una cadena.

-L, –list [cadena] – Esto enumerará todas las reglas en la cadena que especifique. Si no proporciona una cadena, enumerará todas las reglas.

-F, –flush [cadena]:esto eliminará cualquier cadena y regla en la cadena dada. Si no proporciona una cadena, se eliminarán todas las reglas y cadenas que se estén ejecutando actualmente.

-h – Esto proporciona una salida de todas las opciones que puede hacer.

-p, –protocolo protocolo – Este es el protocolo de paquetes. Estos pueden ser TCP, UDP, UDPlite, ICMP, ESP, AH, SCTP, todos, números equivalentes a estos, o comenzar con un ! para invertir la verificación del protocolo.

-s, –dirección de origen[/máscara][,…] – Una dirección de origen. Puede ser la IP, rango de IP mediante máscara de red, nombre de red o nombre de host.

-d, –dirección de destino[/máscara][,…] – Una dirección de destino. Mismo formato que –s.

-m, –coincidencia coincidencia – Un módulo de extensión que prueba una propiedad.

–dport[s] [número de puerto ][,…] – Un puerto que estás buscando. –dports se usa para especificar más de uno que están separados por comas. Cuando utilice –dports, asegúrese de configurar -m como multipuerto. Para especificar un rango de puertos, use un :como 1000:1100 que serían los puertos 1000-1100.

-j, –jump target:esta es la opción que le permite especificar el objetivo de su regla.

-i, –in-interface name:especifica una interfaz en la que se debe recibir el paquete.

-o, –out-interface name:especifica una interfaz en la que dejará el paquete.

-v, –verbose:hace que el comando de lista muestre los nombres de las interfaces, las opciones de reglas y las máscaras. También muestra contadores de paquetes y bytes.

Uso y ejemplos

Aquí mostraremos algunos usos básicos y ejemplos. Una regla típica de IPTables tenderá a seguir estos formatos. Asegúrese de que todas sus reglas se realicen por encima de COMMIT, ya que esto se usa para finalizar una tabla. Las reglas para otra tabla seguirán su propio COMMIT final.

Para permitir tráfico establecido:

-A ENTRADA -m coincidencia –estado ESTABLECIDO, RELACIONADO -j ACEPTAR

En uso esto sería:

-A ENTRADA -m estado –estado ESTABLECIDO, RELACIONADO -j ACEPTAR

Para permitir puerto[s] específico[s].

-A ENTRADA -p protocolo -m coincidencia –dport puerto -j ACEPTAR

En uso, un ejemplo sería:

-A ENTRADA -p tcp -m tcp –dport 80 -j ACEPTAR

O

-A ENTRADA -p tcp -m multipuerto –dports 80,443 -j ACEPTAR

Esto permitiría el tráfico web a través del puerto 80 (en el segundo ejemplo, también el puerto 443). Eso no es todo lo que puede hacer. También puede agregar lo siguiente como en los ejemplos a continuación.

-A ENTRADA -s IPADDR -p tcp -m tcp –dport 22 -j ACEPTAR

Esto permite solo la dirección IP (IPADDR ) que especifique a través de su puerto 22 (ssh). Puede usar cualquier forma de dirección IP que permita la opción -s.

-A ENTRADA -p tcp -m tcp –dport 22 -j DROP

Siguiendo el paso con el ejemplo anterior, esto eliminará todo el tráfico TCP que viaje a su puerto SSH. Es una buena regla general tener siempre las reglas DROP al final de la lista de reglas ACCEPT en la cadena. Por ejemplo:

-A ENTRADA... -j ACEPTAR

-A ENTRADA... -j ACEPTAR

-A ENTRADA... -j ACEPTAR

-A ENTRADA... -j CAÍDA

-A ADELANTE… -j ACEPTO

-A ADELANTE… -j ACEPTO

-A ADELANTE… -j ACEPTO

-A ADELANTE... -j CAÍDA

-A SALIDA… -j ACEPTAR

-A SALIDA… -j ACEPTAR

-A SALIDA… -j ACEPTAR

-A SALIDA... -j CAÍDA

También puede definir los objetivos (como ACCEPT o DROP) en la parte superior de sus IPTables para el comportamiento predeterminado. Cuando se trata de una nueva instalación de IPTables, siempre verá el comportamiento predeterminado (definido en la parte superior donde se enumeran ENTRADA, ADELANTE y SALIDA) como ACEPTAR. Una buena regla general para la seguridad es cambiarlo a DROP y solo hacer reglas para los puertos o el tráfico que desea permitir. Sin embargo, solo cámbielo si está seguro de haber hecho las excepciones que necesita.

También en la parte superior de una tabla, puede definir sus propios objetivos. Digamos que tiene lo siguiente en la parte superior de sus IPTables:

*filtro

:ENTRAR CAÍDA [0:0]

:ADELANTE CAÍDA [0:0]

:CAÍDA DE SALIDA [0:0]

COMPROMETER

Ahora, como hemos bloqueado todo, comencemos agregando nuestros propios objetivos como:

*filtro

:ENTRAR CAÍDA [0:0]

:ADELANTE CAÍDA [0:0]

:CAÍDA DE SALIDA [0:0]

:APLICACIÓN - [0:0]

:MiNuevoObjetivo – [0:0]

COMPROMETER

Ahora puede crear una cadena de reglas de tipo personalizado como la siguiente.

*filtro

:ENTRAR CAÍDA [0:0]

:ADELANTE CAÍDA [0:0]

:CAÍDA DE SALIDA [0:0]

:APLICACIÓN - [0:0]

:MiNuevoObjetivo – [0:0]

-A APP -p tcp -m multipuerto –dports 30:40,50:80 -j ACEPTAR

-A ENTRADA -s IPADDR -j MiNuevoObjetivo

-A MiNuevoObjetivo -j APLICACIÓN

COMPROMETER

Ahora lo que hemos hecho en lo anterior es crear nuevos objetivos, APP y MyNewTarget y asignarles opciones y objetivos. Lo que hace la última regla (arriba de COMMIT), es que si la conexión proviene de su IP de origen y está intentando llegar a los puertos 30-40 o 50-80, ¡déjelo pasar! Todo está definido en la cadena de arriba. Este nivel de personalización no es realmente necesario a menos que esté usando múltiples hosts o puertos que se encuentra repitiendo y desea más de una abreviatura o "atajo" para escribir reglas. Por ejemplo, cualquier regla nueva que necesite que provenga de esa IP de origen, ahora puede simplemente usar MyNewTarget.

En general, IPTables proporciona una gran cantidad de personalización de reglas y le permite manejar cómo su servidor maneja el tráfico entrante, saliente e interno. Algunas reglas pueden ser confusas y difíciles de seguir, pero no hay duda de la utilidad que brindan a la estabilidad del servidor.


Linux
  1. Cómo instalar Python en Linux

  2. Cómo instalar Java en Linux

  3. Linux – ¿Enrutamiento a través de Iptables?

  4. IPTables de Linux:cómo agregar reglas de firewall (con el ejemplo Permitir SSH)

  5. Cómo abrir puerto en Linux

Cómo instalar PSAD en Ubuntu Linux

Cómo configurar el cortafuegos de iptables en Linux

Cómo:Linux General - IPTables básicos a través de la línea de comandos

Cómo:Solución de problemas básicos de IPTables

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

Cómo configurar un cortafuegos en su servidor Linux