OpenSSL自带的s_client工具可用于手动检测服务器是否存在特定漏洞(如心脏出血、Freak、受戒礼等),适用于快速验证单个服务器的漏洞状态。
步骤:
openssl version,若版本为1.0.1-1.0.1f(含)或1.0.2-beta,则存在潜在风险。openssl s_client -connect 目标服务器:443 -tlsextdebug 2>&1 | grep 'TLS server extension "heartbeat" (id=15), len=1'。若输出包含该字符串,说明服务器开启了心跳扩展,存在漏洞。命令:openssl s_client -connect 目标服务器:443 -cipher EXPORT
结果判断:若连接成功且返回证书信息,说明服务器支持导出级加密套件,存在Freak漏洞。
命令:openssl s_client -connect 目标服务器:443 -cipher RC4
结果判断:若连接成功且返回证书信息,说明服务器支持RC4加密算法,存在受戒礼漏洞。
testssl.sh是一款开源的SSL/TLS服务器漏洞检测工具,支持检测多种漏洞(如心脏出血、Freak、SWEET32、DROWN等),并提供详细的报告。
git clone --depth 1 https://github.com/drwetter/testssl.sh.git
cd testssl.sh/
./testssl.sh 目标服务器[:端口]
示例:检测example.com的443端口,运行./testssl.sh example.com;检测192.168.1.1的8443端口,运行./testssl.sh 192.168.1.1:8443。
对于多台Linux服务器,可通过Python脚本+Paramiko库实现自动化批量检测(如检测心脏出血、Freak漏洞)。
serverlist.txt文件中的服务器IP列表;openssl s_client -connect localhost:443 -cipher RC4);apt update && apt upgrade openssl或yum update openssl命令升级)。通过上述方法,可全面检测Linux服务器上的OpenSSL漏洞,及时发现并修复风险,保障服务器安全。