La utilidad stunnel escrita por Michał Trojnara permite, si entiendo correctamente, "envolver" los protocolos no SSL ( como ssh
) en una conexión SSL.
Por ejemplo, imagine que todos los puertos de red en una red están bloqueados, excepto los puertos 80
y 443
para el tráfico HTTP y HTTPS, respectivamente. La inspección profunda de paquetes también se usa para garantizar que los dos puertos solo se usen para HTTP (S) y nada más, por lo que no puede simplemente ejecutar un servidor SSH en el puerto 443 y esperar que pueda conectarse a través de este firewall. / p>
Ahora, stunnel
se puede usar en este caso ejecutando un stunnel
listener en el puerto 443 del servidor (vinculado al puerto interno 22) y usando el cliente stunnel
para conectarse al puerto 443 del servidor, De hecho se conecta a su demonio SSH. El firewall no tiene idea de que esto sucede porque
- La conexión está encriptada y la integridad verificada por diseño, por lo que el firewall no sabe qué datos se están intercambiando, HTTP o no.
- Debido a que es una conexión SSL y se ejecuta sobre 443, el servidor no puede distinguir entre un servidor HTTPS y, por ejemplo, ssh.
Mi pregunta es: ¿cuál sería una manera de detectar realmente el uso de stunnel
y bloquearlo? Supongamos que los métodos de análisis, como observar patrones de datos ( hmm, muchos intercambios de datos son inusuales en una conexión HTTPS, por lo que este túnel SSL debe usarse para otra cosa ) no están disponibles. Tampoco podemos instalar software o certificados en los dispositivos de los usuarios.
¿Existe realmente alguna forma práctica de detener esto, considerando que mantener el funcionamiento de HTTPS es crucial?