CUERDA es un "módulo de partido" para Linux iptables que permite a los paquetes que se ajustará mediante reglas muy flexibles, escritas en un sencillo lenguaje de programación diseñados con un propósito. Fue escrito inicialmente para proporcionar apoyo a la próxima fase del proyecto P2PWall para controlar varios estilos de tráfico de las aplicaciones peer-to-peer, pero es mucho más amplio que en este es posibles usos. Ver la página Conceptos básicos para una visión general de estilo tutorial.
Los módulos de los partidos de iptables permiten las reglas para tomar acciones en función de si los paquetes se ajustan a ciertos criterios o no. La distribución estándar de netfilter / iptables ofrece una gama de módulos útiles de este tipo. Estos suelen permitir direcciones y puertos, etc tipos de protocolo (TCP o UDP), de origen y de destino para ser revisados.
También hay una serie de "extras" interesantes que pueden ser compilados en el kernel para proporcionar algunas características coincidentes de paquetes largos. Un ejemplo de ello es el módulo "string" que permite a los paquetes que se ajustará sobre la base de la existencia (o no) de cadenas especificadas en cualquier parte de la porción de carga útil de datos de los paquetes. Hay un número de otros tesoros ocultos que se pueden utilizar para ampliar significativamente las características del sistema.
Para utilizar CUERDA para construir una regla de partido, primero tiene que escribir el scriptlet CUERDA que codifica sus criterios de coincidencia. Como ejemplo, podríamos buscar el "Content-Length" cabecera de una descarga HTTP y comprobar que la longitud no supere 1000000 bytes utilizando el siguiente script ..
Este script tiene las siguientes medidas con el fin de hacer que funcione:
1. Busca la carga útil de datos del paquete de la cadena "de longitud contenido:", pero ignora mayúsculas y minúsculas, ya que busca.
2. Si no se encuentra la cadena, el script se detiene y devuelve un estado "no coincide" con netfilter.
3. Si no se encuentra la cadena, el guión toma los dígitos que le siguen, y los almacena como una cadena en el registro $ n.
4. La cadena en $ n se convierte en un entero y se compara con el número 1000000. Si $ n es grande de 1.000.000 entonces el script termina y devuelve un estado "igualado" para iptables.
5. En caso contrario, el guión termina con un estado "no coincide".
El idioma en el que las secuencias de comandos como este se escriben se basa en la idea de la notación ReversePolish sino que se extendió a manejar el concepto de AnchorBrackets. El lenguaje se documenta en detalle en LanguageReference.
Detalles de software:
Versión: 20051223
Fecha de carga: 3 Jun 15
Licencia: Libre
Popularidad: 50
Comentarios que no se encuentran