Monitoreo del tráfico HTTP en el servidor openvpn

1

He configurado un servidor OpenVPN y puedo monitorear el tráfico HTTP a través de tcpdump. ¿Hay alguna manera de controlar el tráfico HTTPS también?

Sugerencias Certificado SSL autofirmado como certificado raíz en la máquina del cliente VPN.

Si la sugerencia anterior me permite monitorear el tráfico, especifique cómo se puede implementar en centOS + OpenVPN.

    
pregunta Tarek Siddiki 04.04.2016 - 19:04
fuente

1 respuesta

0

TL: DR; Tendrías que configurar un proxy transparente en tu servidor VPN.

Puede redireccionar todo el tráfico saliente al puerto 443 desde su servidor VPN (que probablemente sean sus clientes VPN) utilizando iptables. Después de esto, puede ejecutar un proxy interceptor como mitmproxy que también se encarga del bit SSL.

  • En primer lugar, redirecciona todo el tráfico web saliente a su proxy local, por ejemplo:

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8080
    

    Esto te convierte en un proxy transparente; es decir, el tráfico a todos los puertos web (en los casos anteriores solo el puerto 80 y 443, puede agregar más) sus clientes no tendrán que configurar un proxy en sus navegadores, sin embargo, el tráfico pasa por su proxy.

    Se asegura de que su caja reenvíe el tráfico, pero eso ya suele ocurrir si está ejecutando OpenVPN (de lo contrario, no podrán acceder a Internet).

  • Segundo, necesitamos configurar un proxy de intercepción, como MiTM Proxy, esto puede ejecutarse simplemente en modo transparente con el parámetro -T;

    mitmproxy -T --host
    

    Establece una CA y ese certificado se puede encontrar en el servidor en el directorio ~ / .mitmproxy. Ese certificado debe ser distribuido a sus clientes y debe ser confiable para ellos. El parámetro --host garantiza que se utiliza el valor del encabezado del Host.

Esto le daría acceso al tráfico HTTP; y deberías verlo sucediendo en tu pantalla MITMProxy. Para manejar una gran cantidad de tráfico, o almacenarlos, agregue el parámetro --outfile a mitmproxy para escribir todo el tráfico en un archivo. Puede encontrar más información en enlace

Algunos clientes evitarán la conexión a sitios web SSL específicos (como google), debido a la identificación del certificado; por lo tanto, puede fallar la funcionalidad o debería implementar una regla que no atrape esta información. Puedes hacer esto en MiTMproxy o usando iptables.

Además, para seguir siendo ético. Debe decirles a sus usuarios que su tráfico está siendo monitoreado; pueden averiguarlo de todos modos (ya que todos los certificados estarán "firmados" por la misma CA, la suya).

    
respondido por el ndrix 04.04.2016 - 23:57
fuente

Lea otras preguntas en las etiquetas