Necesitaría crear una configuración OpenVPN cliente-servidor tal que en el lado del cliente a cada paquete IP se le asignen algunos metadatos (por ejemplo, un ID o nombre) y en el otro lado, cada uno de ellos se maneja de manera diferente en función de los metadatos que tienen asignados. con. Para enviar los metadatos, se me ocurren dos maneras:
- Usando el campo ToS, aunque es pequeño.
- Anexando a la carga útil y, por lo tanto, cambiando la longitud / suma de comprobación / ...
¿Hay una mejor manera de marcar cada paquete? ¿OpenVPN proporciona una solución para este requisito?
En el lado del servidor (es decir, en el lado del servidor OpenVPN), ¿hay alguna forma de aprovechar el mecanismo existente para el tipo de MITM de cada paquete? Para ser más exactos, necesito leer cada metadato (con el que viene cada paquete IP) y registrar algunas estadísticas de clasificación o firewall.
¿OpenVPN proporciona una solución limpia para esto? De lo contrario, ¿debería tocar el código del lado del servidor OpenVPN y construirlos por mi cuenta?
+------+ + ----+ +--------+ +--------+ +-----+ +----------+
| apps |---| tun |---| socket | ========= | socket |---| tun | ---| Internet |
+------+ +-----+ +--------+ +--------+ +-----+ +----------+
^ ^
| |
here packets are marked by my custom OpenVPN client |
|
here I'd need to firewall packets based on the "metadata"
tun
Interfaz e interceptar paquetes allí? Quiero decir. Necesitaría filtrar algunos paquetes según sus "metadatos" y decidir cuáles deberían enviarse a tun
y cuáles no deberían.
iptables
es para. Busque tutoriales en Google o agregue información específica sobre exactamente lo que desea hacer (qué tipo de "metadatos" agregar desde qué fuente / condiciones, qué decisiones tomar sobre esos "metadatos").
iptables
y situaciones para las que se debe utilizar. Sin embargo mi situación es un poco diferente. iptables
puede decidir según el TCP / IP conocido o cualquier otra característica, no mis "metadatos" personalizados incrustados en algún lugar del paquete IP. Ese metadato debería ser interpretado por mí, iptables
no puede manejarlo. Así que necesitaría poner mi integración de firewall en algún lugar entre el puerto UDP de escucha OpenVPN y su asociado tun
. Para solucionar el problema, puede pensar en esos "metadatos" como el PID que el cliente OpenVPN proporciona e integra en el paquete IP.
iptables
otc
Manipular paquetes y crear estadísticas. Esto no tiene nada que ver con una VPN o OpenVPN específicamente. También tenga en cuenta que una forma más fácil de agregar "metadatos" es usar diferentes direcciones de origen IP (lo que es fácil de hacer).