Cuando necesitamos proporcionar cifrado TLS en una conexión TCP sin cifrar, uno de los métodos que existen en la actualidad es realizar un SSH Tunneling hacia el destino donde queremos comunicarnos. Otra forma es utilizar una VPN (Red Privada Virtual) ya sea de tipo OpenVPN o IPsec. Hoy os vamos a enseñar Stunnel, una herramienta sencilla para añadir cifrado TLS a los clientes y servidores existentes en nuestra red sin necesidad de hacer ningún cambio.
¿Qué es STunnel?
Stunnel es un proxy diseñado específicamente para añadir cifrado TLS a las conexiones TCP de los clientes, y todo ello sin realizar ningún cambio en los programas que estemos utilizando, ya que todo se realiza de forma totalmente transparente. La arquitectura de esta herramienta está optimizada para proporcionar seguridad, portabilidad y también escalabilidad, ya que soporta balanceo de carga permitiendo que podamos utilizar varios servidores para proporcionar el mejor rendimiento posible. Conoce cómo funciona ECH para proteger tu navegación web.
La herramienta utiliza la popular librería criptográfica OpenSSL, por lo que podremos utilizar una gran cantidad de algoritmos criptográficos de dicha librería, para que simplemente tengamos que configurar Stunnel y empezar a cifrar cualquier conexión TCP.
Principales características y sus opciones de seguridad
Stunnel puede funcionar en modo TLS-PSK (con claves precompartidas) y también con certificados digitales. Esta herramienta además permite listas CRL para la revocación de los certificados, y permite la incorporación de SNI (Server Name Indication), PFS (Perfect Forward Secrecy) con Diffie-Hellmann original y también con ECDH (con curvas elípticas).
El modo de funcionamiento de esta herramienta permite configurarlo tanto de manera remota en un socket, como de manera local en el inetd del sistema, además, permite la dirección de las conexiones TLS de los clientes para que todo pase por este túnel. Otras características interesantes, es que tiene compatibilidad completa con IPv6, los protocolos de nivel de aplicación que soporta Stunnel son los siguientes:
- CIFS
- Connect
- IMAP
- NNTP
- Pgsql
- Pop3
- Proxy
- SMTP
- SOCKS 4, 4a y 5
Algunas de las características de Stunnel al utilizarlo en Windows es que tiene interfaz gráfica de usuario, tiene la posibilidad de guardar en archivos los certificados digitales de los clientes y por último, es capaz de funcionar como servicio en el sistema operativo.
Respecto a las características en Linux, soporta sus sockets, soporta la activación del socket con systemd, exportación de logs al syslog del sistema, posibilidad de configurar chroot, setuid y setgid así como ejecutarse con Libwrap (TCP Wrappers).
Configuración de Stunnel
En la página web oficial tenemos manuales de configuración de Stunnel, tanto en modo PSK como con certificados digitales:
También tenemos disponible un manual de cómo configurar un SOCKS VPN totalmente transparente:
Por último, también encontramos el fichero de configuración para Windows y para sistemas Unix de Stunnel. También os recomendamos visitar este manual de configuración de Stunnel en sistemas Ubuntu.
Descarga de Stunnel
En la zona de descargas de la página web oficial tenemos disponible todos los enlaces para la descarga en sus versiones Windows, Unix y también para Android. Recientemente el equipo de desarrollo ha actualizado la herramienta y ya podéis descargar Stunnel 5.34, de hecho, también podéis descargar las versiones beta.