5

我有两台 CentOS 6.7 机器(服务器 A 和 B)。每个系统上都安装了相同的软件包版本。

上周我在服务器 A 上启用了 openSSH FIPS 140-2 模块,并且该系统完美运行(包括对 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 上重现该问题,而无需在 grub 中启用 FIPS 140-2 /etc/gcrypt/fips_enabled。删除此文件可使系统恢复正常,并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
4

0 回答 0