5

2 台の CentOS 6.7 マシン (サーバー A とサーバー B) があります。各システムに同じパッケージ バージョンがインストールされます。

先週、サーバー A でopenSSH FIPS 140-2 モジュールを有効にしました。そのシステムは問題なく動作します (SQL Server インスタンスへの tsql クエリを含む)。

今日、サーバー B (上のリンク) で同じ手順を実行しました。再起動後、fips は有効でテスト済みで OK を示しましたが、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 モジュールをバックアウト (fips=1 を grub.conf から削除) し、再起動して設定を元に戻すと、再びtsqlSQL Server インスタンスにアクセスできるようになりました。

どちらの CentOS マシンも同じ libgcrypt バージョン (1.4.5) を使用しています。

なぜ (またはどのように) grub で FIPS を有効libgcryptにすると、この 1 台のマシンで失敗するのですか? 明らかに、マシン間で何か構成がずれていますが、私はそれを見つけることができず、次に探す場所を見つけるためにリソースを使い果たしました。


注 1:

tsql空のファイルを作成することで、grub で FIPS 140-2 を有効にせずにサーバー B で問題を再現できます/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