Điểm:0

Bộ chứa Docker CMAKE cung cấp tiền điện tử/fips/fips.c:153: Lỗi nội bộ OpenSSL: FATAL FIPS TỰ KIỂM TRA LỖI - dracut-fips crypto.fips_enabled = 1

lá cờ in
AKS

Nhận crypto/fips/fips.c:153: Lỗi nội bộ OpenSSL: FATAL FIPS TỰ KIỂM TRA LỖI khi nào

dracut-fis gói được cài đặt sysctl -a trình diễn crypto.fips_enabled = 1

Sự hạn chế: Có thể không phải vô hiệu hóa dracut-fis gói hoặc crypto.fips_enable thiết lập trong trường hợp của tôi.

CÂU HỎI:

Làm thế nào tôi có thể nhận được cmake --version làm việc bên trong container?

Máy chủ lưu trữ này là nơi xảy ra sự cố bên trong vùng chứa chứ không phải từ Hệ điều hành HOST.

someLinuxUser@jenkins-project_team_rh ~]$ hostname -f; tên máy chủ -i
jenkins-project_team_rh.lewisville.us.company.com
20.10.20.10[someLinuxUser@jenkins-project_team_rh ~]$ cat /etc/redhat-release
Bản phát hành Red Hat Enterprise Linux Server 7.9 (Maipo)
[someLinuxUser@jenkins-project_team_rh ~]$
[someLinuxUser@jenkins-project_team_rh ~]$ cmake --version
phiên bản cmake 3.18.2

Bộ CMake được duy trì và hỗ trợ bởi Kitware (kitware.com/cmake).

Liệt kê và bắt đầu bộ chứa OpenSuse 15.2

[someLinuxUser@jenkins-project_team_rh ~]$ sudo docker image ls
ID HÌNH ẢNH THẺ KHO KÍCH THƯỚC TẠO
opensuse-image 15.2 618840498a55 3 giờ trước 2,59GB

Chạy bộ chứa Docker

BÂY GIỜ tôi đang ở trong container. Chạy "cmake --version" ở đây không thành công với lỗi.

GHI CHÚ: Hình ảnh docker tương tự sẽ hoạt động tốt nếu bạn có BẤT KỲ HĐH máy chủ nào, trong đó "sysctl -a | grep fips" sẽ hiển thị "crypto.fips_enabled = 0" trong đầu ra của nó. Vì vậy, chúng ta có thể cần phải đặt giá trị này là 0.

[someLinuxUser@jenkins-project_team_rh ~]$ sudo docker run -it opensuse-image:15.2 bash
Mật khẩu thư mục hoạt động:
CẢNH BÁO: Chuyển tiếp IPv4 bị tắt. Mạng sẽ không hoạt động.
docker_nonroot_user@eaa40032f4d3:~/git>


docker_nonroot_user@eaa40032f4d3:~/git> which cmake; cmake --version
/usr/bin/cmake
crypto/fips/fips.c:153: Lỗi nội bộ OpenSSL: FATAL FIPS TỰ KIỂM TRA LỖI
Đã hủy bỏ (đổ lõi)
docker_nonroot_user@eaa40032f4d3:~/git>

docker_nonroot_user@3e63938cf7e7:~/git> cat /etc/os-release
NAME="openSUSE Leap"
PHIÊN BẢN="15.2"
ID="opensuse-leap"
ID_LIKE="suse openuse"
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/"

Trên HOST OS (RH 7.9) --/-- bên trong bộ chứa Docker (OpenSuse 15.2) Đang chạy:

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

tức là nó hiển thị, fips được bật trên máy HOST này. Tôi nghĩ nếu điều này (crypto.fips_enabled đã được đặt thành = 0) thì chúng tôi có thể không gặp sự cố này với cmake, nhưng trong trường hợp của tôi, tôi không thể tắt cài đặt này.

Trên máy chủ, một số gói liên quan là:

[someLinuxUser@jenkins-project_team_rh ~]$ đã cài đặt danh sách sudo yum | 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 đã được cài đặt
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 ~]$

BÂY GIỜ, Bằng chứng là hình ảnh/bộ chứa DOCKER được sử dụng ở trên không tệ.

Sử dụng cùng một hình ảnh Docker trên một máy khác, cùng một hệ điều hành HOST.

Đây là một máy chủ hệ điều hành RH 7.9 khác mà tôi có, có cùng một hình ảnh docker, khi tôi khởi động cùng một hình ảnh OpenSuse 15.2 dưới dạng bộ chứa docker và chạy cmake --version, mọi thứ hoạt động tốt và tôi không thấy lỗi này.

Đang chạy:

[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ tên máy chủ -f; tên máy chủ -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
Bản phát hành Red Hat Enterprise Linux Server 7.9 (Maipo)

[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ sudo docker image ls
ID HÌNH ẢNH THẺ KHO KÍCH THƯỚC TẠO
opensuse-image 15.2 618840498a55 3 giờ trước 2,59GB

HOST này cho thấy:

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

Chạy hình ảnh Docker -> vùng chứa và cmake --version trong đó, hoạt động!

[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
phiên bản cmake 3.17.0

Bộ CMake được duy trì và hỗ trợ bởi Kitware (kitware.com/cmake).
docker_nonroot_user@fb751d198066:~/git> thoát

Các gói YUM trên máy HOST là:

[gigauser@rh_7_9_os_machine opensuse-x-project_team_-mse]$ danh sách sudo yum đã cài đặt |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]$ danh sách sudo yum đã cài đặt |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]$ danh sách sudo yum đã cài đặt |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]$ danh sách sudo yum đã cài đặt |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

Như bạn có thể thấy ở trên, có KHÔNG gói có tên dracut-fis được cài đặt trên máy này, giả sử đó là lý do tại sao crypto.fips_enabled = 0 và "cmake --version" cũng hoạt động trên HOST này và trong vùng chứa!!

CÂU HỎI:

Làm thế nào tôi có thể nhận được cmake --version làm việc bên trong container? khi tôi không thể gỡ cài đặt dracut-fis đóng gói và vô hiệu hóa FIPS bằng cách có crypto.fips_enabled = 0 trên hệ điều hành HOST đầu tiên.

Điểm:0
lá cờ in
AKS

Tìm thấy giải pháp

TẠI SAO vấn đề này đã đến: Bản dựng docker (để tạo hình ảnh) đã được chạy trên một máy (máy khác, nơi cmake đang hoạt động bên trong bộ chứa docker)... tức là nơi FIPS chưa được cài đặt. Trong bước xây dựng, tệp Docker đang chạy zypper cài đặt cmake (hoặc yum cài đặt cmake).

Vì FIPS đã bị vô hiệu hóa trên máy nơi hình ảnh docker được tạo, cmake đã được cài đặt trong hình ảnh docker, mà không hiểu FIPS đang được bật/dracut-fips đang được cài đặt.

Sau đó, khi bạn sao chép hình ảnh này và sử dụng nó trên một máy mà FIPS thực sự được BẬT, thì cmake đã không thành công với thông báo lỗi đó: crypto/fips/fips.c:153: Lỗi nội bộ OpenSSL: FATAL FIPS TỰ KIỂM TRA LỖI

Trên thực tế có 2 giải pháp.

--

Giải pháp số 1: Gắn thẻ hình ảnh docker của bạn một cách thích hợp.

Tóm lược:

Tái bút: Nếu bạn cài đặt cmake bằng cách sử dụng ở trên, thì nó sẽ chỉ hoạt động trên máy đích nơi bạn chạy bộ chứa, nếu FIPS của máy đó bị tắt hoặc bật khi xây dựng. tức là nếu FIPS đã được bật, bạn cài đặt cmake và chạy nó trên một máy có cài đặt FIPS KHÔNG giống với máy chủ, nơi hình ảnh được tạo, thì bạn sẽ đọc bài đăng này để được trợ giúp.

Cách tốt hơn trong trường hợp bạn muốn cài đặt cmake bằng các trình quản lý gói ở trên, đó là gắn thẻ hình ảnh docker của bạn một cách thích hợp trong thời gian tạo hình ảnh, tức là:

docker build -t <image-name>-fips-enabled ... nếu FIPS được bật

docker build -t <image-name>-fips-disabled ... nếu FIPS trên máy đó bị vô hiệu hóa.

Bằng cách đó, bạn có thể chọn hình ảnh docker chính xác imagename-fips-enabled so với imagename-fips-disabled acc. cài đặt FIPS máy mục tiêu của bạn là gì (nơi bạn thực sự sẽ thực hiện docker chạy... sử dụng hình ảnh này).

--

Giải pháp số 2: Không sử dụng zypper (OpenSuse) hoặc yum nếu bạn có bộ chứa RedHat. và giải pháp này là linh hoạt theo nghĩa, đó là độc lập với cài đặt FIPS = 0/1 trên máy chủ, nơi hình ảnh được xây dựng.

tôi đã không sử dụng dây kéo/ngon để cài đặt cmake phía trong Dockerfile, nhưng chỉ cần nắm lấy cmake-3.18.2-Linux-x86_64.tar.gz tập tin bó.

Trong Dockerfile, tôi chỉ cần trích xuất tệp .tar.gz này bên trong một số thư mục. Ngoài ra tôi thiết lập xuất PATH:/path/where/I/installed/cmake-3.18.2../bin:/..some_other_paths:/...:/.... trong Dockerfile bên trong câu lệnh RUN.

I E. RUN export PATH=/path/where/I/installed/cmake-3.18.2../bin:/...... && <thêm cmds tại đây> && <một số cmds khác tại đây> && ... v.v., vì vậy nó có thể tìm thấy cmake 3.18.2 đã trích xuất cho bất kỳ thời gian xây dựng nào (thao tác cmake) và cũng SET giống nhau ĐƯỜNG=/... biến như ENV PATH=/.... cùng một giá trị được sử dụng trong RUN cho PATH vì vậy trong thời gian chạy, khi bộ chứa chạy, $PATH đã sẵn sàng để tìm kiếm cmake (phiên bản 3.18.2) thay vì sử dụng bất kỳ phiên bản nào hiện có /usr/bin/cmake hoặc một số thứ khác).

Ảnh chụp nhanh 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 && \

như của tôi cái ô cài đặt đã được đặt thành 022, tôi đã không phải thực hiện bất kỳ thao tác chmod gà nào sau đây:

# echo -e "\n-- Đang cài đặt CMake ...\n" && \
# tar -xvzpf /tmp/cmake.tar.gz -C /home/docker_nonroot_user/tools/ && \

Bên trong container docker, như ĐƯỜNG ENV=/... cũng được đặt trong Dockerfile cho đường dẫn đích này, đúng cmake 3.18.2 đã được sử dụng trong hành động thời gian chạy bộ chứa docker.

cmake vị trí được cài đặt trong trường hợp của tôi là:

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

PATH bên trong bộ chứa docker là:

/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

KẾT QUẢ:

Sử dụng hình ảnh Docker được tạo bằng cách sử dụng GIẢI PHÁP #2 ở trên, tức là hình ảnh docker được xây dựng trên máy trong đó FIPS = 0 hay còn gọi là ĐÃ TẮTsau đó, sử dụng chính hình ảnh này để tạo vùng chứa trên một máy chủ mục tiêu hoàn toàn khác trong đó FIPS = 1 hay còn gọi là ĐÃ BẬT, Tôi hiểu rồi:

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: Lỗi nội bộ OpenSSL: FATAL FIPS TỰ KIỂM TRA LỖI
Đã hủy bỏ (đổ lõi)
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
tổng số 75504
-rwxr-xr-x 1 gốc gốc 11908568 Ngày 20 tháng 8 năm 2020 ccmake
-rwxr-xr-x 1 root root 12096216 20 Tháng tám 2020 cmake
-rwxr-xr-x 1 root root 27476480 Ngày 20 tháng 8 năm 2020 cmake-gui
-rwxr-xr-x 1 gốc gốc 12398808 Ngày 20 tháng 8 năm 2020 cpack
-rwxr-xr-x 1 gốc gốc 13318712 Ngày 20 tháng 8 năm 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 Ngày 20 tháng 8 năm 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
phiên bản cmake 3.18.2

Bộ CMake được duy trì và hỗ trợ bởi Kitware (kitware.com/cmake).
87d8104d8c41:/home/docker_nonroot_user # : Giáng sinh vui vẻ Baaaaeeeebyyy! - không còn lỗi chết tiệt FIPS nữa. Tiếp theo, tôi sẽ sửa một số chown on ~<user> và đóng câu chuyện của mình.

GIẢI PHÁP #3: Bạn có thể tắt FIPS nhưng chỉ khi bạn được phép làm như vậy, thì bạn không cần giải pháp số 1 hoặc giải pháp số 2.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.