Docker-контейнер CMAKE выдает crypto/fips/fips.c:153: внутренняя ошибка OpenSSL: FATAL FIPS SELFTEST FAILURE - dracut-fips crypto.fips_enabled = 1
Получение crypto/fips/fips.c:153: внутренняя ошибка OpenSSL: FATAL FIPS SELFTEST FAILURE, когда
Пакет dracut-fips установлен и sysctl -a показываетcrypto.fips_enabled = 1
Ограничение : невозможно отключить пакет илиcrypto.fips_enable
настройка в моем случае.
ВОПРОС:
Как мне начать работать внутри контейнера?
На этом хосте проблема возникает внутри контейнера, а не в операционной системе HOST.
someLinuxUser@jenkins-project_team_rh ~]$ hostname -f; hostname -i
jenkins-project_team_rh.lewisville.us.company.com
10.20.20.10[someLinuxUser@jenkins-project_team_rh ~]$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
[someLinuxUser@jenkins-project_team_rh ~]$
[someLinuxUser@jenkins-project_team_rh ~]$ cmake --version
cmake version 3.18.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
Список и запуск контейнера OpenSuse 15.2
[someLinuxUser@jenkins-project_team_rh ~]$ sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
opensuse-image 15.2 618840498a55 3 hours ago 2.59GB
Запустить Docker-контейнер
СЕЙЧАС я внутри контейнера. Запуск «cmake --version» здесь завершается ошибкой.
ПРИМЕЧАНИЕ. Тот же образ докера будет работать нормально, если у вас есть ЛЮБАЯ хост-операционная система, где в выводе «sysctl -a | grep fips» будет отображаться «crypto.fips_enabled = 0». Поэтому нам может потребоваться установить это значение равным 0.
[someLinuxUser@jenkins-project_team_rh ~]$ sudo docker run -it opensuse-image:15.2 bash
Active Directory Password:
WARNING: IPv4 forwarding is disabled. Networking will not work.
docker_nonroot_user@eaa40032f4d3:~/git>
docker_nonroot_user@eaa40032f4d3:~/git> which cmake; cmake --version
/usr/bin/cmake
crypto/fips/fips.c:153: OpenSSL internal error: FATAL FIPS SELFTEST FAILURE
Aborted (core dumped)
docker_nonroot_user@eaa40032f4d3:~/git>
docker_nonroot_user@3e63938cf7e7:~/git> cat /etc/os-release
NAME="openSUSE Leap"
VERSION="15.2"
ID="opensuse-leap"
ID_LIKE="suse opensuse"
VERSION_ID="15.2"
PRETTY_NAME="openSUSE Leap 15.2"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:15.2"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
Либо в ОС HOST (RH 7.9) --/-- внутри контейнера Docker (OpenSuse 15.2) Выполняется:
[someLinuxUser@jenkins-project_team_rh ~]$ sysctl -a | grep fips_enabled
crypto.fips_enabled = 1
т. е. он показывает, что на этом ХОСТ-машине включен протокол FiPS. Я думаю, если это (crypto.fips_enabled
был настроен на= 0
), то мы можем не увидеть эту проблему с cmake, но в моем случае я не могу отключить этот параметр.
На хост-компьютере есть некоторые связанные пакеты:
[someLinuxUser@jenkins-project_team_rh ~]$ sudo yum list installed | egrep "fips|openssl|dracut"
dracut-fips.x86_64 033-572.el7 @rhel-x86_64-server-7
fipscheck.x86_64 1.4.1-6.el7 @anaconda/7.6
fipscheck-lib.x86_64 1.4.1-6.el7 @anaconda/7.6
CentrifyDC-openssl.x86_64 5.7.1-347 installed
openssl.x86_64 1:1.0.2k-22.el7_9 @q1_rhel-x86_64-server-7
openssl-devel.x86_64 1:1.0.2k-22.el7_9 @q1_rhel-x86_64-server-7
openssl-libs.x86_64 1:1.0.2k-22.el7_9 @q1_rhel-x86_64-server-7
openssl098e.x86_64 0.9.8e-29.el7_2.3 @anaconda/7.6
xmlsec1-openssl.x86_64 1.2.20-7.el7_4 @anaconda/7.6
dracut.x86_64 033-572.el7 @rhel-x86_64-server-7
dracut-config-rescue.x86_64 033-572.el7 @rhel-x86_64-server-7
dracut-network.x86_64 033-572.el7 @rhel-x86_64-server-7
[someLinuxUser@jenkins-project_team_rh ~]$
ТЕПЕРЬ, докажите, что образ/контейнер DOCKER, использованный выше, неплох.
Использование того же образа Docker на другом компьютере и той же ОС HOST.
Эта другая хост-машина с ОС RH 7.9, которая у меня есть, имеет тот же образ докера, когда я запускаю тот же образ OpenSuse 15.2, что и контейнер докеров, и запускаю cmake --version, все работает нормально, и я не вижу этой ошибки.
Бег:
[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ hostname -f; hostname -i
rh_7_9_os_machine.company.local
10.100.100.10
[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
opensuse-image 15.2 618840498a55 3 hours ago 2.59GB
Этот ХОСТ показывает:
[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ sysctl -a 2>/dev/null | grep fips_enabled
crypto.fips_enabled = 0
Запуск образа Docker -> контейнера и в нем работает!
[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ sudo docker run -it opensuse-image:15.2 bash
docker_nonroot_user@fb751d198066:~/git>
docker_nonroot_user@fb751d198066:~/git> sysctl -a 2>/dev/null | grep fips
crypto.fips_enabled = 0
docker_nonroot_user@fb751d198066:~/git>
docker_nonroot_user@fb751d198066:~/git> cmake --version
cmake version 3.17.0
CMake suite maintained and supported by Kitware (kitware.com/cmake).
docker_nonroot_user@fb751d198066:~/git> exit
Пакеты YUM на машине HOST:
[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ sudo yum list installed |grep fips
fipscheck.x86_64 1.4.1-6.el7 @anaconda/7.4
fipscheck-lib.x86_64 1.4.1-6.el7 @anaconda/7.4
[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$
[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ sudo yum list installed |grep openssl
openssl.x86_64 1:1.0.2k-22.el7_9 @rhel-7-server-rhui-rpms
openssl-devel.x86_64 1:1.0.2k-22.el7_9 @rhel-7-server-rhui-rpms
openssl-libs.x86_64 1:1.0.2k-22.el7_9 @rhel-7-server-rhui-rpms
openssl11-libs.x86_64 1:1.1.1g-2.el7 @epel
xmlsec1-openssl.x86_64 1.2.20-7.el7_4 @rhui-REGION-rhel-server-releases
[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$
[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ sudo yum list installed |grep dracut\-fips
[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$
[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ sudo yum list installed |grep dracut
dracut.x86_64 033-572.el7 @rhel-7-server-rhui-rpms
dracut-config-generic.x86_64 033-572.el7 @rhel-7-server-rhui-rpms
dracut-config-rescue.x86_64 033-572.el7 @rhel-7-server-rhui-rpms
dracut-network.x86_64 033-572.el7 @rhel-7-server-rhui-rpms
Как вы можете видеть выше, на этом компьютере НЕТ пакета с именем dracut-fips , если предположить, что именно поэтому crypto.fips_enabled = 0 и «cmake --version» работают на этом ХОСТЕ, а также внутри контейнера!
ВОПРОС:
Как я могу получить
cmake --version
работает внутри контейнера? когда я не могу удалитьdracut-fips
пакет и отключите FIPS, задав crypto.fips_enabled = 0 в первой ОС HOST.