
Quiero implementar una solución de seguridad similar a MACsec que capture un paquete en su totalidad (incluido el encabezado MAC) en un nodo de red intermedio (por ejemplo, un conmutador basado en Linux), realice algún procesamiento en el paquete y luego lo envíe al nodo intermedio. .
¿Podría indicarme los recursos apropiados que puedan ayudarme a hacer esto? Actualmente estoy buscando soluciones que requieran modificación del controlador NIC. ¿Existe alguna otra solución más sencilla que esta? ¿Cómo implementan otros MACsec?
Tenga en cuenta que no busco simplemente capturar un paquete usando pcap y métodos similares. Lo que busco es poder capturar un paquete antes de que pase por un nodo intermedio, manipularlo y enviarlo al destinatario previsto.
Gracias
Respuesta1
Si desea analizar el paquete a medida que lo recibe el kernel de Linux, tendrá que escribir un controlador del kernel, posiblemente llegando incluso a modificar el kernel mismo. Cuando la interfaz recibe datos, el procesamiento comienza inmediatamente. A todo lo que esté registrado para recibir la siguiente capa se le llamará su controlador. Dado que el encabezado MAC no requiere mucho procesamiento, el controlador de la capa IP es el primero que comienza a realizar gran parte del procesamiento.
Si desea manipular el encabezado MAC y hacer lo suyo, deberá insertarse justo después de recibir el encabezado MAC y antes del procesamiento de IP. O podría escribir un controlador para que sea una NIC virtual. De esa manera podrías procesar los datos como mejor te parezca. La NIC virtual vería todos los datos tal como lo hace la NIC real. Esta sería probablemente tu mejor opción, ya que no querrás empezar a trastear con el kernel y reconstruirlo sólo para tu propio proyecto.
mi respuesta aquiofrece varios buenos enlaces para aprender sobre las redes del kernel de Linux. También sugeriría leer Redes del kernel de Linux: implementación y teoría de Rami Rosen. Gran recurso para una mirada en profundidad a la pila de red.
MACSec en algún momento se implementará en el kernel. IPSec, por ejemplo, mantiene sus políticas de seguridad en el kernel mientras un demonio de usuario realiza un seguimiento de las conexiones del túnel. Desafortunadamente, creo que tendrás que escribir algún nivel de código del kernel para realizar las acciones que deseas.
Respuesta2
Hace un tiempo quería jugar un poco con paquetes de datos como capa 2, capa 3 o capas superiores. Encontré una buena herramienta, basada en Python, para hacer eso. Esta herramienta llama
asustadizo.
Puede capturar y manipular paquetes. O puede crear un filtro basado en paquetes según sus necesidades.