openssl – ¿Cómo puedo encontrar puertos SSL habilitados o instancias SSL en Linux RHEL 5.3?

Estoy tratando de hacer una auditoría de los puertos / servicios habilitados para SSL que se ejecutan en nuestros servidores Linux RHEL 5.3.
Estoy tratando de encontrar qué puertos en nuestros servidores están habilitados para SSL. No estoy seguro de cómo encontrar esto. Necesito saber cómo verificar qué puertos están utilizando servicios habilitados para SSL.

He ejecutado los comandos a continuación

lsof -i -n -P
netstat -ntulp
netstat -nap

pero de los resultados de estos no estoy seguro de cómo determinar qué puertos están ejecutando SSL. No estoy seguro de qué buscar

Cualquier ayuda por favor, conozco la utilidad SSLscan pero cuando la ejecuto no devuelve ningún valor y escupe un error … no se pudo abrir una conexión al host 127.0.0.1 en el puerto 443

SSLscan Parece que funciona en nuestro entorno de Windows sin errores pero no Linux. También conozco nmap pero no puedo usarlo en nuestro entorno por razones de seguridad

Ayuda por favor

Mejor respuesta
No estoy seguro de si hay una forma automática de hacer esto.

Primero, enumeraría todos los puertos que están escuchando y los emparejaría con el proceso / ejecutable (por ejemplo, con netstat -t -l -p, como root para poder ver el ID de proceso (PID)).

[EDITAR]

Obtendrá entradas como esta, donde el PID es:

tcp        0      0 *:https            *:*                LISTEN      5221/apache2

Esto le indica qué programa se está ejecutando en el puerto https. (Use netstat -t -l -p -n si solo desea el número de puerto, en cuyo caso verá *: 443 en lugar de *: https). Esto le indica que hay un socket escuchando en el puerto 443. Además, aquí, 5221 es el PID para apache2, por lo que también le indica qué aplicación se está utilizando. A veces, es posible que no se vea de inmediato qué aplicación se está utilizando (puede ver el contenido de / proc / 5221 / cmdline para ver más detalles, por ejemplo).

Solo me enfocaría en las entradas que están vinculadas a interfaces externas (e ignoraría las entradas de host local).

Por lo general, puede ver algo escuchando en el puerto 22 (ssh), 80 (http), 443 (https), …

Luego tendrá que probarlos uno por uno según el método que se describe a continuación.

Por ejemplo echo “” | openssl s_client -connect your.host.name:80 debería mostrar un mensaje de error, ya que su servidor web no (o no debería) escuchar las solicitudes SSL / TLS en este puerto, echo “” | openssl s_client -connect your.host.name:443 debería funcionar y mostrarle información sobre el certificado y la conexión.

[/EDITAR]

Para up-front SSL/TLS, puede verificar si aceptará un TLS ClientHello (es decir, será un servidor TLS desde el inicio de la conexión), pero utilizando echo “” | openssl s_client -connect hostname: puerto (echo “” | es opcional, simplemente detendrá openssl tan pronto como se haya establecido la conexión, ya que probablemente no desee enviar nada específico).

Para “upgraded” SSL/TLS connections, realizado después de un comando en el nivel de protocolo de aplicación (como STARTTLS), esto puede ser más complicado.

Puede hacer esto agregando -starttls the_name_of_the_protocol a este comando openssl s_client. Según la documentación de OpenSSL, “Actualmente, los únicos [nombres de protocolo] compatibles son” smtp “,” pop3 “,” imap “y” ftp “”.

Esto no lo ayudará con LDAP (si está configurado para usar Start TLS y no TLS inicial), MySQL, PostgreSQL, … Para estos, simplemente tendrá que buscar en sus respectivos archivos de configuración.
Automatizar este proceso requeriría una herramienta que pueda comprender todos estos protocolos, lo que puede ser bastante difícil.

Un par de puntos adicionales, si es para una auditoría de seguridad más general:

> Habilitar SSL / TLS rara vez es suficiente. También debe asegurarse de que esté configurado correctamente: certificado válido, SSLv2 deshabilitado, tratando de pasar a los valores más altos de SSL / TLS (SSLv3, TLSv1.0, TLSv1.1) desactivando versiones anteriores si su base de usuarios es suficientemente compatible , renegociación insegura deshabilitada si es posible, conjuntos de cifrado razonablemente fuertes.
> A pesar de usar la biblioteca OpenSSL, OpenSSH (y SSH en general) no se basa en SSL / TLS. Es posible que aún desee conservar este, incluso si su política es utilizar servicios solo SSL / TLS.

Por favor indique la dirección original:openssl – ¿Cómo puedo encontrar puertos SSL habilitados o instancias SSL en Linux RHEL 5.3? - Código de registro