systemadmin.es > Redes > Filtro de camino inverso (Reverse Path Filter)

Filtro de camino inverso (Reverse Path Filter)

En CentOS 6 nos encontraremos que la validación de camino inverso es mucho más estricta que en el caso de CentOS 5, aunque tenga el mismo valor la variable rp_filter:

# cat /proc/sys/net/ipv4/conf/default/rp_filter
1

Lo que define este parámetro es la comprobación del path inverso de un paquete para evitar que entren paquetes que no se esperan por una interfaz sino por otra. Estos paquetes que entran por una interfaz que no debería (desde el punto de vista de por dónde se mandaría dicho paquete) pueden ser legítimos debido a rutas o bien tratarse de un paquete malintencionado.

En CentOS 6 el significado de los posibles valores de rp_filer es:

  • 0: No se hace la comprobación de camino inverso
  • 1: Se comprueba según el RFC3704 en Strict mode (sección 2.2)
  • 2: Se comprueba también según el RFC3704, pero en Loose mode (sección 2.4). Este sería el comportamiento de CentOS 5

Por otro lado, la variable log_martians () nos puede servir para detectar posibles problemas. En el caso que descarte algún paquete se guardará en el messages.

# cat /proc/sys/net/ipv4/conf/all/log_martians 
0
# echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
# cat /proc/sys/net/ipv4/conf/all/log_martians 
1

El log que se guardará será como el siguiente:

Nov  8 10:05:10 gladiator kernel: martian source 10.1.1.9 from 10.1.1.9, on dev eth2

Para hacer los cambios permanentes deberemos añadir en el /etc/sysctl.conf las configuraciones. Por ejemplo:

net.ipv4.conf.all.log_martians=1
net.ipv4.conf.eth3.rp_filter=0

Cargaremos los cambios del sysctl con la opción -p:

# sysctl -p
net.ipv4.ip_forward = 0
(...)
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.eth3.rp_filter = 0
(...)

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>