Puncte:0

Containerul Docker CMAKE dă crypto/fips/fips.c:153: eroare internă OpenSSL: Eșec FATAL FIPS SELFTEST - dracut-fips crypto.fips_enabled = 1

drapel in
AKS

Primind crypto/fips/fips.c:153: Eroare internă OpenSSL: Eșec FATAL FIPS SELFTEST când

dracut-fips pachetul este instalat și sysctl -a spectacole crypto.fips_enabled = 1

Restricţie: Poate sa nu dezactivați dracut-fips pachet sau crypto.fips_enable setarea în cazul meu.

ÎNTREBARE:

Cum pot obține cmake --versiune lucrează în interiorul containerului?

Această gazdă este locul în care apare problema în interiorul containerului, dar nu a sistemului de operare HOST.

someLinuxUser@jenkins-project_team_rh ~]$ nume gazdă -f; numele gazdă -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 versiunea 7.9 (Maipo)
[someLinuxUser@jenkins-project_team_rh ~]$
[someLinuxUser@jenkins-project_team_rh ~]$ cmake --version
cmake versiunea 3.18.2

Suita CMake întreținută și susținută de Kitware (kitware.com/cmake).

Listați și porniți containerul OpenSuse 15.2

[someLinuxUser@jenkins-project_team_rh ~]$ imagine sudo docker ls
DIMENSIUNEA ID-ului IMAGINIEI Etichetei de depozitare creată
opensuse-image 15.2 618840498a55 Acum 3 ore 2.59GB

Rulați containerul Docker

ACUM sunt în interiorul containerului. Rularea „cmake --version” aici eșuează cu o eroare.

NOTĂ: Aceeași imagine docker va funcționa bine dacă aveți ORICE sistem de operare gazdă, unde „sysctl -a | grep fips” va afișa „crypto.fips_enabled = 0” în rezultatul său. Deci, poate fi necesar să avem această valoare setată la 0.

[someLinuxUser@jenkins-project_team_rh ~]$ sudo docker run -it opensuse-image:15.2 bash
Parola Active Directory:
AVERTISMENT: redirecționarea IPv4 este dezactivată. Rețeaua nu va funcționa.
docker_nonroot_user@eaa40032f4d3:~/git>


docker_nonroot_user@eaa40032f4d3:~/git> care cmake; cmake --versiune
/usr/bin/cmake
crypto/fips/fips.c:153: Eroare internă OpenSSL: Eșec FATAL FIPS SELFTEST
Avortat (core dumping)
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/"

Fie pe HOST OS (RH 7.9) --/-- în interiorul containerului Docker (OpenSuse 15.2) Rulează:

[someLinuxUser@jenkins-project_team_rh ~]$ sysctl -a | grep fips_enabled
crypto.fips_enabled = 1

adică se arată că fips este activat pe această mașină HOST. Cred că dacă asta (crypto.fips_enabled a fost setat la = 0) atunci este posibil să nu vedem această problemă cu cmake, dar în cazul meu, nu pot dezactiva această setare.

Pe mașina gazdă, câteva pachete înrudite sunt:

[someLinuxUser@jenkins-project_team_rh ~]$ lista sudo yum instalată | 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 instalat
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 ~]$

ACUM, Dovada că imaginea/containerul DOCKER folosit mai sus nu este rău.

Folosind aceeași imagine Docker pe o altă mașină, același sistem de operare HOST.

Această altă mașină gazdă RH 7.9 OS pe care o am, are aceeași imagine docker, când pornesc aceeași imagine OpenSuse 15.2 ca și containerul docker și rulez cmake --versiune, totul merge bine și nu văd această eroare.

Alergare:

[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ nume gazdă -f; numele gazdă -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 versiunea 7.9 (Maipo)

[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ imagine sudo docker ls
DIMENSIUNEA ID-ului IMAGINIEI Etichetei de depozitare creată
opensuse-image 15.2 618840498a55 Acum 3 ore 2.59GB

Acest HOST arată:

[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ sysctl -a 2>/dev/null | grep fips_enabled
crypto.fips_enabled = 0

Rulează imaginea Docker --> container și cmake --versiune în ea, funcționează!

[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 versiunea 3.17.0

Suita CMake întreținută și susținută de Kitware (kitware.com/cmake).
docker_nonroot_user@fb751d198066:~/git> ieșire

Pachetele YUM de pe mașina HOST sunt:

[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ sudo yum list instalat |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 instalat |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 instalat |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 instalat |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

După cum puteți vedea mai sus, există NU pachet numit dracut-fips instalat pe această mașină, presupunând că de aceea crypto.fips_enabled = 0 și „cmake --version” funcționează pe acest HOST și în container, de asemenea!!

ÎNTREBARE:

Cum pot obține cmake --versiune lucrează în interiorul containerului? cand nu pot sa dezinstalez dracut-fips pachet și dezactivați FIPS având crypto.fips_enabled = 0 pe primul OS HOST.

Puncte:0
drapel in
AKS

Am gasit solutia

DE CE venea problema asta: Docker build (pentru a crea imaginea) a fost rulat pe o mașină (cealaltă mașină, unde cmake lucra în interiorul containerului docker)... adică unde FIPS nu a fost instalat. În timpul etapei de construire, fișierul Docker rula zypper install cmake (sau yum instalează cmake).

Deoarece FIPS a fost dezactivat pe mașina unde a fost creată imaginea docker, cmake a fost instalat în imaginea docker, fără a înțelege că FIPS este activat / dracut-fips este instalat.

Apoi, când copiați această imagine și o consumați pe o mașină în care FIPS este de fapt ACTIVAT, atunci cmake a eșuat cu mesajul de eroare: crypto/fips/fips.c:153: Eroare internă OpenSSL: Eșec FATAL FIPS SELFTEST

De fapt, există 2 soluții.

--

Soluția #1: etichetați imaginea docker în mod corespunzător.

Rezumat:

PS: Dacă instalați cmake folosind cele de mai sus, atunci va funcționa numai pe mașina țintă pe care rulați containerul, dacă FIPS-ul acelei mașini este dezactivat sau activat în timpul construirii. adică dacă a fost activat FIPS, instalați cmake și îl rulați pe o mașină în care NU este aceeași setare FIPS ca și gazda, unde a fost creată imaginea, atunci veți citi această postare pentru ajutor.

O modalitate mai bună, în cazul în care doriți să instalați cmake folosind managerii de pachete de mai sus, ar fi să etichetați imaginea docker în mod corespunzător în timpul creării imaginii, adică:

docker build -t <nume-imagine>-fips-enabled... dacă FIPS este activat

și

docker build -t <nume-imagine>-fips-disabled... dacă FIPS pe acel aparat este dezactivat.

În acest fel, puteți alege imaginea docker corectă imagename-fips-activat vs imagename-fips-disabled conform la care este setarea FIPS pentru mașina dvs. țintă (unde veți efectua de fapt docker run... folosind această imagine).

--

Soluția #2: Nu utilizați zypper (OpenSuse) sau yum dacă aveți un container RedHat. și această soluție este flexibilă în sensul că este independent de setarea FIPS = 0 / 1 pe gazdă, unde a fost construită imaginea.

nu am folosit zypper/yum a instala cmake interior Dockerfile, dar doar apucat cmake-3.18.2-Linux-x86_64.tar.gz fișier pachet.

În Dockerfile, pur și simplu am extras acest fișier .tar.gz în interiorul unui director. De asemenea, am stabilit export PATH:/path/where/I/installed/cmake-3.18.2../bin:/..some_other_paths:/...:/.... în Dockerfile în interiorul instrucțiunii RUN.

adică RUN export PATH=/path/where/I/installed/cmake-3.18.2../bin:/...... && <mai multe cmd-uri aici> && <alte cmd-uri aici> && ... etc, astfel încât să găsească cmake extras 3.18.2 pentru orice timp de construcție (operațiuni cmake) și, de asemenea, să seteze același lucru PATH=/... variabilă ca ENV PATH=/.... aceeași valoare folosită în timpul RUN pentru PATH deci, în timpul rulării, când containerul rulează, $PATH este setat pentru găsire cmake (versiunea 3.18.2) mai degrabă decât utilizarea oricăruia existent /usr/bin/cmake sau alte rahaturi).

Instantaneu Dockerfile:

# curl -k -sSf -H "X-JFrog-Art-Api:dslfhjlieurqwihlj233lk2l4j6p9usdkajdfasddl809842iijhlkhflhafOHIHFLyeaGoodLuck" \
# -o /tmp/cmake.tar.gz https://artifactory.company.com/artifactory/some-Local/cmake/cmake-3.18.2-Linux-x86_64.tar.gz && \

și

ca al meu umask setările au fost setate la 022, nu a trebuit să fac nicio operațiune de chicken chmod post untar:

# echo -e "\n-- Se instalează CMake ...\n" && \
# tar -xvzpf /tmp/cmake.tar.gz -C /home/docker_nonroot_user/tools/ && \

În interiorul containerului docker, ca ENV PATH=/... a fost setat în Dockerfile și pentru această cale țintă, corectă cmake 3.18.2 a fost folosit la acțiunea de rulare a containerului docker.

cmake locația instalată în cazul meu a fost:

/home/docker_nonroot_user/tools/cmake-3.18.2-Linux-x86_64/bin/cmake

PATH în interiorul containerului docker a fost:

/home/docker_nonroot_user/tools/cov-analysis/bin:/home/docker_nonroot_user/tools/cmake-3.18.2-Linux-x86_64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin :/usr/bin:/sbin:/bin

REZULTAT:

Folosind o imagine Docker creată folosind SOLUȚIA #2 mai sus, adică imaginea docker construită pe o mașină unde FIPS = 0 aka DISABLED și apoi mai târziu, folosind aceeași imagine pentru a crea un container pe o mașină gazdă țintă total diferită unde FIPS = 1 și anume ACTIVAT, Înțeleg:

87d8104d8c41:/home/docker_nonroot_user # sysctl -a|grep fips_en
crypto.fips_enabled = 1
87d8104d8c41:/home/docker_nonroot_user #
87d8104d8c41:/home/docker_nonroot_user # which cmake
/usr/bin/cmake
87d8104d8c41:/home/docker_nonroot_user #
87d8104d8c41:/home/docker_nonroot_user # cmake --version
crypto/fips/fips.c:153: Eroare internă OpenSSL: Eșec FATAL FIPS SELFTEST
Avortat (core dumping)
87d8104d8c41:/home/docker_nonroot_user #

87d8104d8c41:/home/docker_nonroot_user #
87d8104d8c41:/home/docker_nonroot_user # ls -l /home/docker_nonroot_user/tools/cmake-3.18.2-Linux-x86_64/bin
total 75504
-rwxr-xr-x 1 rădăcină rădăcină 11908568 20 august 2020 ccmake
-rwxr-xr-x 1 rădăcină rădăcină 12096216 20 august 2020 cmake
-rwxr-xr-x 1 rădăcină rădăcină 27476480 20 august 2020 cmake-gui
-rwxr-xr-x 1 root root 12398808 20 august 2020 cpack
-rwxr-xr-x 1 rădăcină rădăcină 13318712 20 august 2020 ctest
87d8104d8c41:/home/docker_nonroot_user #
87d8104d8c41:/home/docker_nonroot_user # ls -l /home/docker_nonroot_user/tools/cmake-3.18.2-Linux-x86_64/bin/cmake
-rwxr-xr-x 1 root root 12096216 20 august 2020 /home/docker_nonroot_user/tools/cmake-3.18.2-Linux-x86_64/bin/cmake
87d8104d8c41:/home/docker_nonroot_user #
87d8104d8c41:/home/docker_nonroot_user # /home/docker_nonroot_user/tools/cmake-3.18.2-Linux-x86_64/bin/cmake --version
cmake versiunea 3.18.2

Suita CMake întreținută și susținută de Kitware (kitware.com/cmake).
87d8104d8c41:/home/docker_nonroot_user # : Crăciun fericit Baaaaeeebyyy! - nu mai există nicio eroare de rahat FIPS acum. În continuare, voi repara ceva chown pe ~<user> și voi închide povestea mea.

SOLUȚIA #3: Puteți dezactiva FIPS dar numai dacă ai voie să faci asta, atunci nu aveți nevoie de soluția #1 sau soluția #2.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.