GNU/Linux >> Tutoriales Linux >  >> Linux

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

Introducción

En este artículo, analicemos algunos pasos básicos que puede seguir para solucionar los problemas que pueda tener al hacer que sus reglas de iptables hagan lo que usted quisiera que hicieran.

Requisitos

Servidor con CentOS 6.x (o cualquier distribución de Linux)

iptables instalados y configurados (para la configuración básica, consulte Configuración básica del archivo IPTables)

Resolución de problemas básicos de IPTables

Una adición útil para hacer sus reglas de iptables es configurar el registro. El registro utiliza un destino especial en la caja de herramientas de iptables que canaliza la salida seleccionada a los archivos de registro de su sistema operativo (dmesg o systemd).

En la línea de comando:

sudo iptables -A INPUT -j LOG --log-prefix DROPPED-INGRESS-

O, en su archivo /etc/sysconfig/iptables:

Ejemplo de sintaxis de registro

Descomprimamos la sintaxis:

* ‘-A INPUT ‘ añade esta regla al final de la cadena INPUT. Recuerde, el orden de las reglas es importante, por lo que si coloca esta regla después de una regla que descarta o rechaza el tráfico, nunca se usará. Más sobre esto cuando discutamos el --log-prefix a continuación.

* ‘-j LOG ‘ salta al LOG objetivo. Este objetivo es especial llamado objetivo "sin terminación". A diferencia de los objetivos más utilizados (como ACCEPT , DROP o REJECT ), este no impide que iptables analice más reglas. Entonces, cuando se invoca esta regla, registra el paquete (y puede realizar opciones adicionales, si se especifica en las opciones que le siguen), y luego continúa evaluando las reglas en la misma cadena hasta que encuentra una regla coincidente con un objetivo final o hasta que supera la última regla de la cadena y sigue el objetivo predeterminado.

* '--log-prefix DROPPED-INGRESS- ' agrega la cadena "DROPPED-INGRESS-" a cada entrada de registro. Esta adición puede ser útil para filtrar o buscar en un archivo de registro largo. El “--log-prefix La opción ” puede tomar una cadena de hasta 256 caracteres. Dado que esta regla es la regla final en este INPUT cadena, esto registrará cualquier paquete que no coincida con ninguna de las reglas anteriores y se manejará con la política predeterminada (en este caso, DROP ).

Si desea ver cuáles de sus reglas se están invocando (y, quizás lo que es igualmente importante, cuáles no), puede echar un vistazo a sus contadores de paquetes y tráfico. Utilice el '-v ‘ opción a ‘iptables ‘ comando para mostrar contadores (y también alguna información adicional):

sudo iptables -vL INPUT

o

sudo iptables -nvL INPUT

El resultado de cualquiera de estos comandos se mostrará en las columnas del lado izquierdo para los contadores de paquetes y bytes para cada regla. El '-L La opción indica que queremos que se enumeren las reglas (tenga en cuenta que esta opción en particular está en mayúscula). El '-n ‘ indica que no queremos resolver las direcciones IP en sus nombres de host (en listas más largas, esta resolución de nombre inversa puede causar una sobrecarga innecesaria del servidor y hacer que la resolución de problemas sea molestamente lenta). Puede usar cada bandera por separado (-n -v -L , por ejemplo) o juntos, como arriba, pero tenga cuidado:el 'L ‘ debe ser el último, ya que busca entradas adicionales en forma del nombre de la cadena para enumerar (si no se especifica nada, el valor predeterminado es enumerar todas las cadenas en la tabla de filtros).

iptables -nvL ENTRADA Salida

Tenga en cuenta aquí que tengo un paquete que golpea mi regla ssh de permitir todo y varios que golpean el primer permiso RELATED/ESTABLISHED regla (esto correspondería a mi sesión ssh en este servidor). También puedo ver que mis reglas para permitir el tráfico ssh desde el rango 192.168.50.0/24 no tienen resultados. Entonces, por ejemplo, si alguien dijera que no podía acceder a este servidor desde ese rango, podría ver que sus intentos ni siquiera estaban llegando a este servidor.

Es muy posible que los contadores de bytes de su paquete aumenten lo suficiente como para que los valores se acorten con una 'K', 'M' o incluso 'G' al final, correspondiente a 1000, 1,000,000 o 1,000,000,000, respectivamente. Si aún desea ver recuentos no abreviados, incluya el '-x ' bandera:

sudo iptables -nvxL INPUT

Si prefiere no tener que lidiar con números de conteo grandes, puede restablecer (cero) sus conteos con '-Z ' comando (nuevamente, tenga en cuenta que esta bandera está en mayúscula). Puede poner a cero los recuentos de todas las cadenas, una cadena específica o una línea específica de una cadena. respectivamente:

sudo iptables -Z
sudo iptables -Z INPUT
sudo iptables -Z INPUT 1

El ejemplo final solo pondría a cero los contadores para la línea número 1 en INPUT cadena.

Los contadores también se restablecerán cada vez que vuelva a cargar iptables (ya sea desde un reinicio del servidor o mediante la recarga de iptables del servicio Sudo). Sin embargo, estas no son las formas más ideales de lograr esta tarea.

También es posible que desee obtener un examen más en tiempo real de sus contadores de iptables. Aquí es donde el 'watch El comando es útil. ‘Watch ‘ nos permite repetir los mismos comandos y ver la salida cada cierto tiempo (el valor predeterminado es cada 2 segundos).

sudo watch iptables -nvL INPUT

Mientras ‘watch ' en sí mismo no requiere acceso a sudo, si el comando que está viendo lo requiere, puede anteponer 'sudo ‘ al ‘watch ‘ comando para tener privilegios de root para el comando que le gustaría ver. Además, si desea canalizar la salida observada a través de algo como 'grep ', querrá poner la cadena de comando completa entre comillas simples:

sudo watch 'iptables -nvL INPUT | grep tcp'

Para salir de 'watch ‘, presiona <Ctrl-C> .

Obtenga más información sobre nuestros servicios de alojamiento VPS y servidores privados virtuales.


Linux
  1. Cómo vaciar las reglas de iptables

  2. Cómo vaciar las reglas de iptables

  3. CentOS / RHEL 6:Cómo guardar las reglas de iptables

  4. ¿Cómo puedo verificar el conteo de visitas para cada regla en iptables?

  5. Cómo abrir puerto en Linux

Cómo instalar Iptables en CentOS 7

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:Configuración básica de archivos de IPTables

Cómo configurar un Firewall en Jelastic Cloud

Cómo migrar las reglas de iptables de CentOS/RHEL 6 a CentOS/RHEL 7 firewalld