PDF de programación - A2 - Filtrado y registro de paquetes con Iptables

<<>>
Imágen de pdf A2 - Filtrado y registro de paquetes con Iptables

A2 - Filtrado y registro de paquetes con Iptablesgráfica de visualizaciones

Publicado el 29 de Abril del 2018
481 visualizaciones desde el 29 de Abril del 2018
489,0 KB
20 paginas
A2 – Filtrado y
registro de paquetes
con Iptables

Joaquín García Alfaro

c

FUOC

Índice

A2 – Filtrado y monitorizaci ón de paquetes con Iptables

2.1. Iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1. Utilización de la herramienta iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1.1. Comandos para la manipulación de cadenas . . . . . . . . . . . . . . . . . . . . . . .
2.1.1.2. Filtrado por dirección IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1.3. Filtrado por interfaz de red. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1.4. Filtrado por protocolo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2. Invirtiendo selecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3. Ejemplo de definición y utilización de cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.4. Tratamiento adicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.5. Uso y obtención de guiones de filtrado mediante herramientas gráficas . . . .

3
4
5
6
6
7
7
8
9
10

Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20


c

FUOC

2.1. Iptables
.

3

A2 – Filtrado y monitorización de paquetes con Iptables

La herramienta iptables permite el filtrado y monitorización de tráfico TCP/IP en sistemas
GNU/Linux. De hecho, esta herramienta no es más que una interfaz hacia el módulo
netfilter de la serie 2.4 o superior del kernel Linux, el cual proporciona los mecanismos
de seguridad para la capa de red del kernel (como, por ejemplo, el filtrado de paquetes),
así como otras funciones relacionadas con el tratamiento de paquetes TCP/IP como, por
ejemplo, traduccion de direcciones de red (Network Address Translation, NAT).

Como ya hemos avanzado, netfilter es un modulo para la serie 2.4 del kernel Linux y es
el responsable del filtrado de paquetes TCP/IP. Observando las cabeceras de cada paquete
que pasa por el equipo, decidirá si ese paquete debe ser aceptado, descartado o si deberá
realizarse alguna otra operación más compleja con él.

Para realizar filtrado de paquetes en un único equipo, Netfilter parte de dos conjuntos de
reglas básicas: INPUT y OUTPUT. De ahora en adelante nos referiremos a estos conjuntos
como cadenas de filtrado o simplemente cadenas. Los paquetes TCP/IP pasarán a través
de estas cadenas básicas tal y como muestra la siguiente figura:

Origen de iptables

iptables fue escrito por Rusty
Russell, también autor de
ipchains (módulo de la serie
2.2 del kernel Linux para el
tratamiento de paquetes
TCP/IP). Su trabajo fue
patrocinado por Watchguard
(www.watchguard.com),
Penguin Computing (antarcti-
ca.penguincomputing.com/ net-
filter/), el equipo “Samba
Team”
(www.samba.org/netfilter/) y
Jim Pick
(netfilter.kernelnotes.org). El
equipo “Samba Team”
también mantiene una lista
de correo sobre iptables. Ver
lists.samba.org para más
información.

TrÆfico

de entrada

paquetes

Input

Descartar

Output

Proceso

local

Cada cadena tendrá asociada una lista de reglas que serán consultadas de forma secuencial
por cada paquete. A medida que éstos vayan atravesando las reglas de la cadena que
les corresponda, serán examinados para determinar qué acción tomar. En caso de ser
aceptados, pasarán al siguiente punto del diagrama. Por contra, si son descartados, el
paquete desaparecerá del esquema.


c

FUOC

4

A2 – Filtrado y monitorización de paquetes con Iptables

2.1.1. Utilización de la herramienta iptables

El primer paso para dar de alta iptables es asegurarse de que ha sido creado correctamente
como una parte del kernel o como módulos asociados al mismo. Para ello, habrá que
contestar afirmativamente a la cuestión CONFIG NETFILTER durante la configuración
de un kernel 2.3.15 o superior.

Si iptables ha sido construido correctamente, podremos utilizar las herramientas asociadas
en el espacio de usuario. La herramienta básica es iptables, que será utilizada para la
construcción del conjunto de reglas. Estos conjuntos de reglas se añadirán a cada una de
las cadenas básicas como si fueran bloques independientes de filtrado. En el siguiente
ejemplo podemos ver un guión de sistema para la construcción de un conjunto de reglas
de filtrado y registro de paquetes mediante iptables:

# creamos una nueva cadena
iptables -N EJEMPLO

# activamos algunas reglas en la cadena EJEMPLO
iptables -A EJEMPLO -i eth0 -s 10.0.1.100 -j LOG --log-prefix
"Paquete descartado:"
iptables -A EJEMPLO -s 10.0.1.100 -j DROP
iptables -A EJEMPLO -s 10.0.2.100 -j LOG --log-prefix
"Paquete aceptado:"
iptables -A EJEMPLO -j LOG --log-prefix "Aceptando paquete:"
iptables -A EJEMPLO -j DROP

# todo el tráfico que nos llegue a la cadena de INPUT saltará
# a la cadena EJEMPLO
iptables -A INPUT -j EJEMPLO

Después de cargar el conjunto de reglas que mostramos en el ejemplo anterior, podríamos
tratar de realizar una conexión desde las direcciones IP 10.0.1.100 y 10.0.2.100. La prime-
ra conexión fallará (y generará una entrada de registro en el equipo de destino indicándolo),
mientras que la segunda conexión será aceptada (generando también una nueva entrada de
registro). Para desactivar las reglas y dejar el equipo tal y como estaba antes de lanzar el
guión de sistema, realizaremos las siguientes llamadas a iptables:

iptables -F EJEMPLO
iptables -X EJEMPLO
iptables -F INPUT

Una vez nos hemos asegurado de que el kernel contiene el código de iptables correctamen-
te, y hemos verificado la existencia de la herramienta necesaria para acceder a él, veremos
a continuación cómo construir reglas de filtrado mediante iptables.


c

FUOC

5

A2 – Filtrado y monitorización de paquetes con Iptables

2.1.1.1. Comandos para la manipulación de cadenas

Antes de empezar a escribir reglas de iptables, es importante tener claro la política de
seguridad que queremos implementar, cómo construir las reglas de manera que sean fáciles
de manejar y de mantener, y cómo hacer que las reglas sean lo más eficientes posible sin
perder por ello las facilidades anteriores.

Si las reglas que vamos a dar de alta no implementan de forma correcta nuestra política de
seguridad, más valdría no activarlas. Por otro lado, es muy probable que si las reglas no han
sido construidas de forma correcta, un atacante detecte cómo vulnerarlas para alcanzar su
objetivo. Además, la construcción de reglas complejas y de difícil comprensión aumentará
la posibilidad de cometer entradas erróneas que dejen abierta una brecha en el sistema.

Antes de empezar a trabajar con iptables, es importante repasar los distintos parámetros de
la herramienta. La siguiente tabla muestra un resumen de los comandos básicos de iptables
para el tratamiento de cadenas:

ParÆmetro

Descripcin

-N cadena

Creacin de una nueva cadena

-L cadena

Muestra las reglas de una cadena

-P cadena

Cambia la poltica por defecto de una cadena

-Z cadena

Inicializa el contador de paquetes de una cadena

-F cadena

Vacia todas las reglas de una cadena

-X cadena
(excepto las cadenas bÆsicas)

Elimina una cadena si estÆ vacia

Aparte de las operaciones básicas para el mantenimiento y creación de cadenas, también
necesitaremos un conjunto de operaciones para el tratamiento de reglas de una cadena. La
siguiente tabla muestra algunas de las operaciones básicas de iptables para este propósito:

ParÆmetro

Descripcin

-A cadena regla

Aæade una regla al final de la cadena

-I cadena regla pos.

Inserta una regla en la posicion indicada de la cadena

-R cadena regla pos.

Reemplaza una regla en la posicion indicada de la cadena

-D cadena regla pos.

Elimina una regla de la cadena
(puede indicarse por posicion o por contenido)


c

FUOC

6

A2 – Filtrado y monitorización de paquetes con Iptables

Utilizando las opciones de cadenas y de reglas que hemos visto en las tablas anteriores,
podremos empezar a crear y modificar el guión de sistema que habíamos iniciado en la
sección anterior. Veamos, por ejemplo, como deberíamos analizar la siguiente entrada:

iptables -A EJEMPLO -s 10.0.1.100 -j DROP

El parámetro -A EJEMPLO indica que estamos añadiendo una nueva regla a la cadena
EJEMPLO y que dicha regla será añadida al final de la cadena. La opción -s 10.0.1.100
indica que la regla será aplicada únicamente a aquellos paquetes cuya dirección IP de ori-
gen sea 10.0.1.100.

Por último, el parámetro -j DROP le indicará a netfilter que descarte este paquete
sin ningún procesado posterior. Es decir, el parámetro -j indica a netfilter que el paquete
que acaba de entrar por la cadena EJEMPLO debe saltar a la cadena DROP. Todos los
paquetes que lleguen a la cadena DROP, serán descartados.

2.1.1.2. Filtrado por dirección IP

En nuestro ejemplo, hemos definido la dirección de origen mediante el parámetro -s. Esta
opción de iptables puede ser definida mediante el uso de máscaras como, por ejemplo:

iptables -A EJEMPLO -s 10.0.1.0/24 -j DROP

o mediante el nombre de equipo:

iptables -A EJEMPLO -s equipo1.ejemplo.es -j DROP

De manera similar a la dirección de origen, podríamos realizar el filtrado mediante la direc-
ción de destino utilizando como argumento el parámetro -d (los argumentos -source,
-src, -destination y -dst también serán válidos).

2.1.1.3. Filtrado por interfaz de red

En lugar de filtrar por dirección IP, podríamos definir filtros de paquetes por interfaz de
  • Links de descarga
http://lwp-l.com/pdf10711

Comentarios de: A2 - Filtrado y registro de paquetes con Iptables (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad