我有两台CentOS 6.7机器(服务器A和B)。每个系统上都安装了相同的软件包版本。
上周我在服务器A上enabled the openSSH FIPS 140-2 module,该系统完美运行(包括对SQL Server实例的tsql查询)。
今天我在服务器B上执行了相同的步骤(在上面的链接中)。重新启动后,fips显示已启用并已经过测试确定 - 但是tsql
(对于同一个SQL Server实例)已停止使用以下错误:
[serverB ~]# tsql -S egServer80 -U myusername
Password:
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Error 20002 (severity 9):
Adaptive Server connection failed
There was a problem connecting to the server
我检查日志文件并找到它:
tsql: Libgcrypt warning: MD5 used - FIPS mode inactivated
在freetds中启用调试会产生以下额外错误:
14:56:46.617196 3577 (net.c:1366):'''handshake failed: GnuTLS internal error.
退出FIPS模块(从grub.conf中删除fips = 1)并重新启动设置,我又能tsql
进入我的SQL Server实例。
两台CentOS计算机都使用相同的libgcrypt版本(1.4.5)。
为什么(或如何)在grub中启用FIPS导致libgcrypt
在这台机器上失败?显然机器之间的某些配置已关闭,但我无法发现它,并且有耗尽资源,寻找下一步的目标。
注意#1:
我可以通过创建空文件tsql
来重现服务器B上的/etc/gcrypt/fips_enabled
问题,而无需在grub中启用FIPS 140-2。删除此文件会将系统恢复正常,tsql
会再次运行。
注意#2:
在服务器A上添加文件/etc/gcrypt/fips_enabled
根本不会影响tsql
功能。
其他信息
libgcrypt version 1.4.5
freetds version 0.91
openssl version 1.0.1e
CentOS version 6.7