Skip to content

Commit 0117fbe

Browse files
author
SUSE Update Bot
committed
Test build for #1092
1 parent 5ea13a5 commit 0117fbe

File tree

5 files changed

+188
-0
lines changed

5 files changed

+188
-0
lines changed

.obs/workflows.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
---
22
staging_build:
33
steps:
4+
- branch_package:
5+
source_project: home:defolos:BCI:CR:SLE-15-SP4
6+
source_package: base-fips-image
7+
target_project: home:defolos:BCI:CR:SLE-15-SP4:Staging
48
filters:
59
event: pull_request
610

@@ -18,6 +22,9 @@ refresh_staging_project:
1822

1923
refresh_devel_BCI:
2024
steps:
25+
- trigger_services:
26+
project: devel:BCI:SLE-15-SP4
27+
package: base-fips-image
2128
filters:
2229
event: push
2330
branches:

base-fips-image/Dockerfile

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# SPDX-License-Identifier: MIT
2+
3+
# Copyright (c) 2024 SUSE LLC
4+
5+
# All modifications and additions to the file contributed by third parties
6+
# remain the property of their copyright owners, unless otherwise agreed
7+
# upon.
8+
9+
# The content of THIS FILE IS AUTOGENERATED and should not be manually modified.
10+
# It is maintained by the BCI team and generated by
11+
# https://github.com/SUSE/BCI-dockerfile-generator
12+
13+
# Please submit bugfixes or comments via https://bugs.opensuse.org/
14+
# You can contact the BCI team via https://github.com/SUSE/bci/discussions
15+
16+
#!ExclusiveArch: x86_64
17+
#!BuildTag: suse/ltss/sle15.4/bci-base-fips:%OS_VERSION_ID_SP%
18+
#!BuildTag: suse/ltss/sle15.4/bci-base-fips:%OS_VERSION_ID_SP%.%RELEASE%
19+
#!BuildName: suse-ltss-sle15.4-bci-base-fips-%OS_VERSION_ID_SP%
20+
#!BuildVersion: 15.4
21+
FROM suse/ltss/sle15.4/sle15:15.4
22+
23+
RUN set -euo pipefail; zypper -n in --no-recommends sles-ltss-release crypto-policies-scripts; zypper -n clean; rm -rf /var/log/{lastlog,tallylog,zypper.log,zypp/history,YaST2}
24+
25+
# Define labels according to https://en.opensuse.org/Building_derived_containers
26+
# labelprefix=com.suse.sle.base-fips
27+
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
28+
LABEL org.opencontainers.image.title="SLE LTSS BCI 15 SP4 FIPS-140-3"
29+
LABEL org.opencontainers.image.description="15 SP4 FIPS-140-3 container based on the SLE LTSS Base Container Image."
30+
LABEL org.opencontainers.image.version="%OS_VERSION_ID_SP%.%RELEASE%"
31+
LABEL org.opencontainers.image.url="https://www.suse.com/products/long-term-service-pack-support/"
32+
LABEL org.opencontainers.image.created="%BUILDTIME%"
33+
LABEL org.opencontainers.image.vendor="SUSE LLC"
34+
LABEL org.opencontainers.image.source="%SOURCEURL%"
35+
LABEL org.opencontainers.image.ref.name="%OS_VERSION_ID_SP%.%RELEASE%"
36+
LABEL org.opensuse.reference="registry.suse.com/suse/ltss/sle15.4/bci-base-fips:%OS_VERSION_ID_SP%.%RELEASE%"
37+
LABEL org.openbuildservice.disturl="%DISTURL%"
38+
LABEL com.suse.supportlevel="l3"
39+
LABEL com.suse.supportlevel.until="2026-12-31"
40+
LABEL com.suse.eula="sle-eula"
41+
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle#suse-linux-enterprise-server-15"
42+
LABEL com.suse.release-stage="released"
43+
# endlabelprefix
44+
LABEL io.artifacthub.package.readme-url="%SOURCEURL%/README.md"
45+
LABEL usage="This container should only be used on a FIPS enabled host (fips=1 on kernel cmdline)."
46+
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP4:Update/pool/x86_64/openssl-1_1.28168/openssl-1_1-1.1.1l-150400.7.28.1.x86_64.rpm
47+
COPY openssl-1_1-1.1.1l-150400.7.28.1.x86_64.rpm .
48+
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP4:Update/pool/x86_64/openssl-1_1.28168/libopenssl1_1-1.1.1l-150400.7.28.1.x86_64.rpm
49+
COPY libopenssl1_1-1.1.1l-150400.7.28.1.x86_64.rpm .
50+
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP4:Update/pool/x86_64/openssl-1_1.28168/libopenssl1_1-hmac-1.1.1l-150400.7.28.1.x86_64.rpm
51+
COPY libopenssl1_1-hmac-1.1.1l-150400.7.28.1.x86_64.rpm .
52+
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP4:Update/pool/x86_64/libgcrypt.28151/libgcrypt20-1.9.4-150400.6.8.1.x86_64.rpm
53+
COPY libgcrypt20-1.9.4-150400.6.8.1.x86_64.rpm .
54+
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP4:Update/pool/x86_64/libgcrypt.28151/libgcrypt20-hmac-1.9.4-150400.6.8.1.x86_64.rpm
55+
COPY libgcrypt20-hmac-1.9.4-150400.6.8.1.x86_64.rpm .
56+
RUN set -euo pipefail; \
57+
[ $(LC_ALL=C rpm --checksig -v *rpm | \
58+
grep -c -E "^ *V3.*key ID 39db7c82: OK") = 5 ] \
59+
&& rpm -Uvh --oldpackage --force *.rpm \
60+
&& rm -vf *.rpm \
61+
&& rpmqpack | grep -E '(openssl|libgcrypt)' | xargs zypper -n addlock
62+
RUN set -euo pipefail; update-crypto-policies --no-reload --set FIPS
63+
64+
ENV OPENSSL_FIPS=1
65+
ENV OPENSSL_FORCE_FIPS_MODE=1
66+
ENV LIBGCRYPT_FORCE_FIPS_MODE=1
67+
ENV GNUTLS_FORCE_FIPS_MODE=1

base-fips-image/README.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
2+
# The SUSE Linux Enterprise 15 SP4 LTSS FIPS-140-3 container image
3+
4+
![Access Protected](https://img.shields.io/badge/Requires_login_for_access-orange)
5+
![Long Term Service Pack Support](https://img.shields.io/badge/LTSS-Yes-orange)
6+
[![SLSA](https://img.shields.io/badge/SLSA_(v0.1)-Level_4-Green)](https://documentation.suse.com/sbp/server-linux/html/SBP-SLSA4/)
7+
[![Provenance: Available](https://img.shields.io/badge/Provenance-Available-Green)](https://documentation.suse.com/container/all/html/Container-guide/index.html#container-verify)
8+
9+
## Description
10+
11+
12+
This SUSE Linux Enterprise 15 SP4 LTSS-based container image includes the
13+
OpenSSL and libgcrypt modules that have been interim validated to FIPS 140-3.
14+
15+
The [FIPS 140-3 certified OpenSSL module](https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents/security-policies/140sp4725.pdf)
16+
is a cryptographic module that provides a FIPS 140-3 compliant cryptographic
17+
library. The module is designed to provide the same functionality as the
18+
standard OpenSSL library, with additional security features to meet the FIPS
19+
140-3 requirements. [An interim validation has been issued](https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4725)
20+
by NIST.
21+
22+
Similarly, the [FIPS 140-3 certified libgcrypt module](https://csrc.nist.gov/CSRC/media/projects/cryptographic-module-validation-program/documents/security-policies/140sp4722.pdf)
23+
is designed to provide the same functionality as the standard libgcrypt
24+
library, with additional security features enforced to meet the FIPS 140-3
25+
requirements. [An interim validation has been issued](https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4722)
26+
by NIST.
27+
28+
29+
30+
## Usage
31+
The image is configured to enforce the use of FIPS mode by default,
32+
independent of the host environment setup by specifying the following
33+
environment variables:
34+
* `OPENSSL_FIPS=1`: Initialize the OpenSSL FIPS mode
35+
* `OPENSSL_FORCE_FIPS_MODE=1`: Set FIPS mode to enforcing independent of the host kernel
36+
* `LIBGCRYPT_FORCE_FIPS_MODE=1`: Set FIPS mode in libgcrypt to enforcing
37+
38+
Below is a list of other environment variables that can be used to configure the OpenSSL library:
39+
40+
* `OPENSSL_ENFORCE_MODULUS_BITS=1`: Restrict the OpenSSL module to only generate
41+
the acceptable key sizes of RSA.
42+
## Accessing the container image
43+
44+
Accessing this container image requires a valid SUSE subscription. In order
45+
to access the container image, you must login to the SUSE Registry with your credentials.
46+
There are three ways to do that which are described below. The first two methods
47+
leverage the system registration of your host system, while the third method
48+
requires you to obtain the organisation SCC mirroring credentials.
49+
50+
### Use the system registration of your host system
51+
52+
If the host system you are using to build or run a container is already registered with
53+
the correct subscription required for accessing the LTSS container images, you can use
54+
the registration information from the host to log in to the registry.
55+
56+
The file `/etc/zypp/credentials.d/SCCcredentials` contains a username and a password.
57+
These credentials allow you to access any container that is available under the
58+
subscription of the respective host system. You can use these credentials to log
59+
in to SUSE Registry using the following commands
60+
(use the leading space before the echo command to avoid storing the credentials in the
61+
shell history):
62+
63+
```ShellSession
64+
set +o history
65+
echo PASSWORD | podman login -u USERNAME --password-stdin registry.suse.com
66+
set -o history
67+
```
68+
69+
### Use a separate SUSE Customer Center registration code
70+
71+
If the host system is not registered with SUSE Customer Center, you can use a valid
72+
SUSE Customer Center registration code to log in to the registry:
73+
74+
```ShellSession
75+
set +o history
76+
echo SCC_REGISTRATION_CODE | podman login -u "regcode" --password-stdin registry.suse.com
77+
set -o history
78+
```
79+
The user parameter in this case is the verbatim string `regcode`, and
80+
`SCC_REGISTRATION_CODE` is the actual registration code obtained from SUSE.
81+
82+
### Use the organization mirroring credentials
83+
84+
You can also use the organization mirroring credentials to log in to the
85+
SUSE Registry:
86+
87+
```ShellSession
88+
set +o history
89+
echo SCC_MIRRORING_PASSWORD | podman login -u "SCC_MIRRORING_USER" --password-stdin registry.suse.com
90+
set -o history
91+
```
92+
93+
These credentials give you access to all subscriptions the organization owns,
94+
including those related to container images in the SUSE Registry.
95+
The credentials are highly privileged and should be preferably used for
96+
a private mirroring registry only.
97+
## Licensing
98+
99+
`SPDX-License-Identifier: MIT`
100+
101+
This documentation and the build recipe are licensed as MIT.
102+
The container itself contains various software components under various open source licenses listed in the associated
103+
Software Bill of Materials (SBOM).
104+
105+
This image is based on [SUSE Linux Enterprise Server](https://www.suse.com/products/server/), a reliable,
106+
secure, and scalable server operating system built to power mission-critical workloads in physical and virtual environments.

base-fips-image/_service

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<services>
2+
<service mode="buildtime" name="docker_label_helper"/>
3+
<service mode="buildtime" name="kiwi_metainfo_helper"/>
4+
</services>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
-------------------------------------------------------------------
2+
Tue Sep 03 09:35:30 UTC 2024 - SUSE Update Bot <[email protected]>
3+
4+
- First version of the 15 SP4 FIPS-140-3 BCI

0 commit comments

Comments
 (0)