Publicado el 24 de Mayo del 2018
593 visualizaciones desde el 24 de Mayo del 2018
291,5 KB
19 paginas
Creado hace 13a (06/06/2010)
Xtables-addons – Extendiendo Iptables
Xtables-addons
Extendiendo Iptables
Jorge Suárez de Lis
1
Xtables-addons – Extendiendo Iptables
• Índice de contenido
Introducción..........................................................................................................................................3
Xtables-addons contra Patch-o-matic..............................................................................................3
Instalación en sistemas Debian........................................................................................................4
Descripción de los módulos disponibles..............................................................................................5
Módulos de matching.......................................................................................................................5
Condition.....................................................................................................................................5
dhcpmac......................................................................................................................................6
fuzzy............................................................................................................................................6
geoip............................................................................................................................................7
iface.............................................................................................................................................7
ipp2p............................................................................................................................................8
ipv4options..................................................................................................................................9
length...........................................................................................................................................9
lscan..........................................................................................................................................10
psd.............................................................................................................................................10
quota2........................................................................................................................................11
pknock.......................................................................................................................................12
Módulos de targets.........................................................................................................................12
ACCOUNT...............................................................................................................................12
DELUDE...................................................................................................................................13
TARPIT.....................................................................................................................................13
CHAOS.....................................................................................................................................14
DHCPMAC...............................................................................................................................14
IPMARK...................................................................................................................................15
LOGMARK..............................................................................................................................16
RAWDNAT, RAWSNAT..........................................................................................................16
STEAL......................................................................................................................................16
SYSRQ......................................................................................................................................17
TEE...........................................................................................................................................17
Bibliografía.........................................................................................................................................19
2
Xtables-addons – Extendiendo Iptables
Introducción
Iptables es una herramienta de cortafuegos que permite filtrar paquetes, realizar traducción de
direcciones o mantener registros de log, entre otras muchas funcionalidades. Forma parte del
entorno Netfilter, que tiene también otros componentes tanto en espacio de usuario como del
núcleo.
Una característica muy importante y sobre la que vamos a basar este estudio, es su
extensibilidad mediante módulos adicionales. La herramienta iptables ya está preparada para
ello, aunque también es habitual que se haga uso de utilidades adicionales.
El proyecto que contiene toda esa serie de módulos y utilidades adicionales que no vienen
incluídas en iptables se llama Xtables-addons. Estos módulos añaden diferentes matches y
targets que añaden funcionalidades de todo tipo, algo sobre lo que ahondaremos en la siguiente
sección.
Xtables-addons contra Patch-o-matic
Tradicionalmente, las extensiones para Iptables se distribuían en forma de parches para el
núcleo Linux con un sistema llamado Patch-o-matic. Era tratado en parte como un playground
donde probar toda clase de código que extendiera la funcionalidad de Iptables, sin prestar
mucha atención a la calidad ni a la mantenibilidad. Esto causaba varios problemas:
• A menudo algunos parches conflictían entre ellos, bien al aplicarse o en el momento de
su funcionamiento.
• No había un proceso de revisión del código, se aceptaba prácticamente cualquier cosa
que fuera código que compilase.
• Como tan solo eran parches de código, normalmente era necesario recompilar los
módulos de iptables y en ocasiones también el núcleo.
• Como el API de iptables iba evolucionando en diferentes versiones del núcleo Linux, el
código de los parches estaba plagado de condiciones de preprocesado según la versión
del núcleo para la que fueran a ser compilados.
Xtables-addons ha querido mejorar este escenario, y soluciona esos problemas en mayor
medida:
• Las extensiones se encapsulan en módulos independientes, ya no parchean directamente
el código de iptables, por lo que no es necesario recompilar ni iptables ni el núcleo.
•
Introduce un API común para esos módulos que será la encargada de hablar con
iptables. Esa API de compatibilidad será la encargada de resolver la mayor parte de los
cambios de API que pueda haber en iptables del núcleo, por lo que el código de las
extensiones es mucho más limpio.
3
Xtables-addons – Extendiendo Iptables
• El código sufre un proceso de revisión y se intenta que unos módulos no conflictan con
otros, aunque la naturaleza experimental del proyecto sigue estando ahí.
Instalación en sistemas Debian
El código de Xtables-addons puede descargarse de su página web y compilarse, siempre y
cuando dispongamos del entorno de construcción adecuado. Necesitaremos las cabeceras del
núcleo,a demás de las bibliotecas y utilidades básicas de compilación.
En sistemas derivados de Debian, como es el caso de Ubuntu, la instalación se puede hacer
siguiendo el sistema de paquetes de la distribución, lo que nos permitirá un mayor y mejor
control.
En las últimas versiones de estas distribuciones todos los paquetes están en los repositorios
principales. Partimos de la suposición de que estos están activados y actualizados.
Primero, debemos instalar los paquetes xtablesaddonssource y xtables
addonscommon. Esto instalará también todo lo necesario para compilar los módulos de
Xtables-addons, como module-assistant y las cabeceras del núcleo.
# apt-get install xtables-addons-source xtables-addons-common
Tras hacerlo, ya podremos compilar e instalar los módulos de Xtables-addons utilizando la
herramienta module-assistant:
# module-assistant build xtables-addons
# module-assistant install xtables-addons
Eso es todo. Naturalmente, los módulos no se cargan solos. Si queremos hacer uso de alguno
de ellos, deberemos cargarlos de forma manual, bien introduciéndolos en un sistema de carga
de módulos o a través de la herramienta modprobe.
Los módulos comienzan todos por «xt_» y sigue el nombre del módulo, una palabra en
minúsculas si es el nombre de matching, o una palabra en mayúscula si es el nombre de un
target. Por ejemplo:
# modprobe xt_ACCOUNT
# modprobe xt_geoip
Esto cargará los módulos para utilizar el target ACCOUNT y el match geoip.
4
Xtables-addons – Extendiendo Iptables
Descripción de los módulos disponibles
Como ya hemos comentado anteriormente, cada uno de los módulos de Xtables-addons hacen
una de estas dos cosas: o añadir un target o añadir un match.
El target es la parte de las reglas de Iptables que especifica qué hacer con un paquete, una vez
ya se ha determinado que debe hacer algo con él. El match es la parte de las reglas de Iptables
que se encarga de determinar si debe hacerse algo con el paquete o no.
Módulos de matching
Con Iptables pueden establecerse algunas condiciones básicas para determinar si debe hacerse
algo con un paquete o no, pero gracias a estos módulos podemos extender estas condiciones.
Normalmente se indican con el parámetro «-m» y necesitan algún parámetro más. Ahora
veremos cada uno de estos módulos en detalle.
Condition
Este match permite establecer una condición arbitraria. Que se cumpla la condición o no
depende del valor almacenado en un archivo del sistema de archivos proc, de la forma
/proc/net/nf_condition/nombre.
Hay una única opción que sirve para establecer el nombre del archivo que almacenará el valor
de la condición:
--condition nombre
Para utilizarlo es necesario ca
Comentarios de: Xtables-addons - Extendiendo Iptables (0)
No hay comentarios