Bug 1213798 - [ALP][SECURITY][FIPS] missing package + missing pattern
Summary: [ALP][SECURITY][FIPS] missing package + missing pattern
Status: RESOLVED FIXED
Alias: None
Product: Granite
Classification: SUSE ALP - SUSE Adaptable Linux Platform
Component: Security (show other bugs)
Version: unspecified
Hardware: Other Other
: P2 - High : Normal
Target Milestone: ---
Assignee: Jiri Srain
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-07-31 06:09 UTC by Paolo Stivanin
Modified: 2024-04-16 07:10 UTC (History)
5 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Paolo Stivanin 2023-07-31 06:09:44 UTC
Hello,
while testing FIPS on the latest Milestone 2, I found out the following issues:

1. there is no fips pattern
2. a package is missing: libkcapi-tools, therefore dracut-fips can't be installed 

Options: pkg install -y dracut-fips libgcrypt20-hmac libgnutls30-hmac openssh-fips
...
Resolving package dependencies...

Problem: nothing provides 'libkcapi-tools' needed by the to be installed dracut-fips-059+suse.476.g5e324584-1.3.x86_64
 Solution 1: do not install dracut-fips-059+suse.476.g5e324584-1.3.x86_64
 Solution 2: break dracut-fips-059+suse.476.g5e324584-1.3.x86_64 by ignoring some of its dependencies


The repos present on the system:

# | Alias                       | Name                        | Enabled | GPG Check | Refresh | URI
--+-----------------------------+-----------------------------+---------+-----------+---------+------------------------------------------------------------------------------------
1 | ALP Build Repository        | ALP Build Repository        | Yes     | (r ) Yes  | No      | http://openqa.suse.de/assets/repo/ALP-Dolomite-1.0-x86_64-Build2.4-Media1
2 | ALP Source Build Repository | ALP Source Build Repository | Yes     | (r ) Yes  | No      | http://download.suse.de/ibs/SUSE:/ALP:/Source:/Standard:/Core:/1.0:/Build/standard/
3 | ALP-Dolomite-1.0            | ALP Dolomite 1.0 Repository | Yes     | (r ) Yes  | Yes     | https://updates.suse.com/SUSE/Products/ALP-Dolomite/1.0/x86_64/product/
Comment 1 Marcus Meissner 2023-08-02 12:01:15 UTC
i submitted a fips pattern already.


i will submit libkcapi from factory to ALP
Comment 2 Paolo Stivanin 2023-08-03 07:06:09 UTC
thanks Marcus!
Comment 3 Marcus Meissner 2023-09-04 14:36:49 UTC
should be done
Comment 4 Paolo Stivanin 2023-09-06 07:00:53 UTC
I just tried on the latest Dolomite build (6.8), but I still don't see any fips pattern there.
Comment 5 Timo Jyrinki 2023-09-07 06:05:27 UTC
I think we may need to wait for next build as 6.8 was done earlier?
Comment 6 Paolo Stivanin 2023-09-07 12:15:33 UTC
Yes, the build was done before this change but, AFAIK, the main repo is always the same between builds (e.g. https://updates.suse.com/SUSE/Products/ALP-Dolomite/1.0/x86_64/product/)
Comment 7 Marcus Meissner 2023-09-07 12:21:10 UTC
worked with Jiri via email on this, will be fixed in the milestone after the next
Comment 8 Paolo Stivanin 2023-09-07 12:28:28 UTC
I see, thanks Marcus :)
Comment 9 Marcus Meissner 2023-10-13 07:14:15 UTC
-> jiri
Comment 10 Joaquín Rivera 2023-10-13 07:17:37 UTC
Same for latest build 7.30:
https://openqa.suse.de/tests/12484669#step/fips_setup/25
Comment 11 Paolo Stivanin 2023-11-22 07:11:51 UTC
same for latest build (7.95): https://openqa.suse.de/tests/12861727#step/fips_setup/23
Comment 12 Jiri Srain 2023-11-23 10:14:54 UTC
The package should be included in the latest media (for both Dolomite and Marble), search it in the generated package list at:
 https://build.suse.de/package/view_file/SUSE:ALP:Products:Dolomite:1.0/000product/alp_dolomite.group?expand=1

(and similarly for Marble). Could you, please, verify that you can install the package from the latest build? Try this URL

https://download.suse.de/ibs/SUSE:/ALP:/Products:/Dolomite:/1.0/images/repo/ALP-Dolomite-1.0-x86_64-Media1/
Comment 13 Paolo Stivanin 2023-11-24 08:59:17 UTC
Ah, I see. The pattern is called "alp_fips" and not "fips".

Now get the following issue though:

Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: the to be installed pattern:alp_fips-5.0-11.1.x86_64 requires 'patterns-alp-fips', but this requirement cannot be provided
  not installable providers: patterns-alp-fips-5.0-11.1.x86_64[ALP-Dolomite-1.0]
 Solution 1: Following actions will be done:
  deinstallation of openssh-clients-9.3p2-2.52.x86_64
  deinstallation of openssh-9.3p2-2.52.x86_64
  downgrade of dracut-059+suse.501.gc44a365d-1.44.x86_64 to dracut-059+suse.501.gc44a365d-1.23.x86_64
  deinstallation of patterns-alp-defaults-5.0-11.3.x86_64
  deinstallation of patterns-alp-base-zypper-5.0-11.3.x86_64
 Solution 2: do not install pattern:alp_fips-5.0-11.1.x86_64
 Solution 3: break pattern:alp_fips-5.0-11.1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/3/c/d/?] (c): 




Moreover, openssh-fips doesn't seem to be part of the pattern. Is this expected?

zypper se fips
Loading repository data...
Reading installed packages...

S  | Name              | Summary                                                            | Type
---+-------------------+--------------------------------------------------------------------+--------
i+ | alp_fips          | FIPS 140-3 Support                                                 | pattern
i  | dracut-fips       | Dracut modules to build a dracut initramfs with an integrity check | package
   | openssh-fips      | OpenSSH FIPS crypto module HMACs                                   | package
i+ | patterns-alp-fips | FIPS 140-3 Support                                                 | package
Comment 14 Timo Jyrinki 2023-12-01 08:27:54 UTC
Comment #13 is also true on Marble beta 1.
Comment 15 Jose Lausuch 2023-12-01 13:20:00 UTC
(In reply to Timo Jyrinki from comment #14)
> Comment #13 is also true on Marble beta 1.

Maybe this was fixed meanwhile?

I was able to install it

> localhost:~ # transactional-update pkg install patterns-alp-fips
> Checking for newer version.
> transactional-update 4.4.0 started
> Options: pkg install patterns-alp-fips
> Separate /var detected.
> WARNING: You are creating a snapshot from a different base (3) than the
>          current default snapshot (4).
>          If you want to continue a previous snapshot use the --continue
>          option, otherwise the previous changes will be discarded.
> 2023-11-30 23:25:10 tukit 4.4.0 started
> 2023-11-30 23:25:10 Options: -c3 open 
> 2023-11-30 23:25:10 Using snapshot 3 as base for new snapshot 5.
> 2023-11-30 23:25:10 Syncing /etc of previous snapshot 2 as base into new snapshot "/.snapshots/5/snapshot"
> 2023-11-30 23:25:10 SELinux is enabled.
> ID: 5
> 2023-11-30 23:25:13 Transaction completed.
> Calling zypper install
> 2023-11-30 23:25:16 tukit 4.4.0 started
> 2023-11-30 23:25:16 Options: callext 5 zypper -R {} install patterns-alp-fips 
> 2023-11-30 23:25:18 Executing `zypper -R /tmp/transactional-update-clE0Om install patterns-alp-fips`:
> Refreshing service 'SUSE_Linux_Enterprise_Micro_6.0_x86_64'.
> Loading repository data...
> Reading installed packages...
> Resolving package dependencies...
> 
> The following 6 NEW packages are going to be installed:
>   dracut-fips libkcapi-tools libkcapi1 libopenssl1_1 openssh-fips patterns-alp-fips
> 
> The following NEW pattern is going to be installed:
>   alp_fips
> 
> 6 new packages to install.
> Overall download size: 2.3 MiB. Already cached: 0 B. After the operation, additional 4.6 MiB will be used.
> Continue? [y/n/v/...? shows all options] (y): y
> 
> Checking for file conflicts: [...done]
> Warning: 6 packages had to be excluded from file conflicts check because they are not yet downloaded.
> 
>     Note: Checking for file conflicts requires not installed packages to be downloaded in advance in
>     order to access their file lists. See option '--download-in-advance / --dry-run --download-only'
>     in the zypper manual page for details.
> 
> Retrieving: libkcapi1-1.4.0-1.25.x86_64 (SLE-Micro-6.0-Pool) (1/6),  50.9 KiB    
> Retrieving: libkcapi1-1.4.0-1.25.x86_64.rpm [..................done (50.9 KiB/s)]
> (1/6) Installing: libkcapi1-1.4.0-1.25.x86_64 [...done]
> Retrieving: libopenssl1_1-1.1.1w-3.1.x86_64 (SLE-Micro-6.0-Pool) (2/6),   1.6 MiB    
> Retrieving: libopenssl1_1-1.1.1w-3.1.x86_64.rpm [....................................................................................................................................................................................................................................................................................................................................................................................................................................done (799.9 KiB/s)]
> (2/6) Installing: libopenssl1_1-1.1.1w-3.1.x86_64 [...done]
> Retrieving: openssh-fips-9.3p2-2.56.x86_64 (SLE-Micro-6.0-Pool) (3/6), 225.4 KiB    
> Retrieving: openssh-fips-9.3p2-2.56.x86_64.rpm [.............done (225.4 KiB/s)]
> (3/6) Installing: openssh-fips-9.3p2-2.56.x86_64 [..done]
> Retrieving: libkcapi-tools-1.4.0-1.25.x86_64 (SLE-Micro-6.0-Pool) (4/6), 248.2 KiB    
> Retrieving: libkcapi-tools-1.4.0-1.25.x86_64.rpm [...................done (248.2 KiB/s)]
> (4/6) Installing: libkcapi-tools-1.4.0-1.25.x86_64 [..done]
> Retrieving: dracut-fips-059+suse.501.gc44a365d-1.49.x86_64 (SLE-Micro-6.0-Pool) (5/6), 187.7 KiB    
> Retrieving: dracut-fips-059+suse.501.gc44a365d-1.49.x86_64.rpm [..............done (187.7 KiB/s)]
> (5/6) Installing: dracut-fips-059+suse.501.gc44a365d-1.49.x86_64 [..done]
> Retrieving: patterns-alp-fips-6.0-3.1.x86_64 (SLE-Micro-6.0-Pool) (6/6),   9.3 KiB    
> Retrieving: patterns-alp-fips-6.0-3.1.x86_64.rpm [...done (9.3 KiB/s)]
> (6/6) Installing: patterns-alp-fips-6.0-3.1.x86_64 [..done]
> Running post-transaction scripts [..
> %posttrans(dracut-fips-059+suse.501.gc44a365d-1.49.x86_64) script output:
> dracut[I]: Executing: /usr/bin/dracut --kver=6.4.0-3-default -f
> dracut[I]: Module 'systemd-networkd' will not be installed, because command 'networkctl' could not be found!
> dracut[I]: Module 'systemd-networkd' will not be installed, because command '/usr/lib/systemd/systemd-networkd' could not be found!
> dracut[I]: Module 'systemd-networkd' will not be installed, because command '/usr/lib/systemd/systemd-networkd-wait-online' could not be found!
> dracut[I]: Module 'systemd-pcrphase' will not be installed, because command '/usr/lib/systemd/systemd-pcrphase' could not be found!
> dracut[I]: Module 'systemd-portabled' will not be installed, because command 'portablectl' could not be found!
> dracut[I]: Module 'systemd-portabled' will not be installed, because command '/usr/lib/systemd/systemd-portabled' could not be found!
> dracut[I]: Module 'systemd-repart' will not be installed, because command 'systemd-repart' could not be found!
> dracut[I]: Module 'systemd-resolved' will not be installed, because command 'resolvectl' could not be found!
> dracut[I]: Module 'systemd-resolved' will not be installed, because command '/usr/lib/systemd/systemd-resolved' could not be found!
> dracut[I]: Module 'modsign' will not be installed, because command 'keyctl' could not be found!
> dracut[I]: Module 'dbus-broker' will not be installed, because command 'dbus-broker' could not be found!
> dracut[I]: Module 'rngd' will not be installed, because command 'rngd' could not be found!
> dracut[I]: Module 'connman' will not be installed, because command 'connmand' could not be found!
> dracut[I]: Module 'connman' will not be installed, because command 'connmanctl' could not be found!
> dracut[I]: Module 'connman' will not be installed, because command 'connmand-wait-online' could not be found!
> dracut[I]: 35network-legacy: Could not find any command of 'dhclient wicked'!
> dracut[I]: 62bluetooth: Could not find any command of '/usr/lib/bluetooth/bluetoothd /usr/libexec/bluetooth/bluetoothd'!
> dracut[I]: Module 'dmraid' will not be installed, because command 'dmraid' could not be found!
> dracut[I]: Module 'dmsquash-live-ntfs' will not be installed, because command 'ntfs-3g' could not be found!
> dracut[I]: Module 'pcsc' will not be installed, because command 'pcscd' could not be found!
> dracut[I]: Module 'cifs' will not be installed, because command 'mount.cifs' could not be found!
> dracut[I]: Module 'iscsi' will not be installed, because command 'iscsi-iname' could not be found!
> dracut[I]: Module 'iscsi' will not be installed, because command 'iscsiadm' could not be found!
> dracut[I]: Module 'iscsi' will not be installed, because command 'iscsid' could not be found!
> dracut[I]: 95nfs: Could not find any command of 'rpcbind portmap'!
> dracut[I]: Module 'nvmf' will not be installed, because command 'nvme' could not be found!
> dracut[I]: Module 'nvmf' will not be installed, because command 'jq' could not be found!
> dracut[I]: Module 'memstrack' will not be installed, because command 'memstrack' could not be found!
> dracut[I]: memstrack is not available
> dracut[I]: If you need to use rd.memdebug>=4, please install memstrack and procps-ng
> dracut[I]: Module 'squash' will not be installed, because command 'mksquashfs' could not be found!
> dracut[I]: Module 'squash' will not be installed, because command 'unsquashfs' could not be found!
> dracut[I]: Module 'systemd-pcrphase' will not be installed, because command '/usr/lib/systemd/systemd-pcrphase' could not be found!
> dracut[I]: Module 'systemd-portabled' will not be installed, because command 'portablectl' could not be found!
> dracut[I]: Module 'systemd-portabled' will not be installed, because command '/usr/lib/systemd/systemd-portabled' could not be found!
> dracut[I]: Module 'systemd-repart' will not be installed, because command 'systemd-repart' could not be found!
> dracut[I]: Module 'systemd-resolved' will not be installed, because command 'resolvectl' could not be found!
> dracut[I]: Module 'systemd-resolved' will not be installed, because command '/usr/lib/systemd/systemd-resolved' could not be found!
> dracut[I]: Module 'modsign' will not be installed, because command 'keyctl' could not be found!
> dracut[I]: Module 'dbus-broker' will not be installed, because command 'dbus-broker' could not be found!
> dracut[I]: Module 'rngd' will not be installed, because command 'rngd' could not be found!
> dracut[I]: Module 'connman' will not be installed, because command 'connmand' could not be found!
> dracut[I]: Module 'connman' will not be installed, because command 'connmanctl' could not be found!
> dracut[I]: Module 'connman' will not be installed, because command 'connmand-wait-online' could not be found!
> dracut[I]: 35network-legacy: Could not find any command of 'dhclient wicked'!
> dracut[I]: 62bluetooth: Could not find any command of '/usr/lib/bluetooth/bluetoothd /usr/libexec/bluetooth/bluetoothd'!
> dracut[I]: Module 'dmraid' will not be installed, because command 'dmraid' could not be found!
> dracut[I]: Module 'dmsquash-live-ntfs' will not be installed, because command 'ntfs-3g' could not be found!
> dracut[I]: Module 'pcsc' will not be installed, because command 'pcscd' could not be found!
> dracut[I]: Module 'cifs' will not be installed, because command 'mount.cifs' could not be found!
> dracut[I]: Module 'iscsi' will not be installed, because command 'iscsi-iname' could not be found!
> dracut[I]: Module 'iscsi' will not be installed, because command 'iscsiadm' could not be found!
> dracut[I]: Module 'iscsi' will not be installed, because command 'iscsid' could not be found!
> dracut[I]: 95nfs: Could not find any command of 'rpcbind portmap'!
> dracut[I]: Module 'nvmf' will not be installed, because command 'nvme' could not be found!
> dracut[I]: Module 'nvmf' will not be installed, because command 'jq' could not be found!
> dracut[I]: Module 'memstrack' will not be installed, because command 'memstrack' could not be found!
> dracut[I]: memstrack is not available
> dracut[I]: If you need to use rd.memdebug>=4, please install memstrack and procps-ng
> dracut[I]: Module 'squash' will not be installed, because command 'mksquashfs' could not be found!
> dracut[I]: Module 'squash' will not be installed, because command 'unsquashfs' could not be found!
> dracut[I]: *** Including module: bash ***
> dracut[I]: *** Including module: systemd ***
> dracut[I]: *** Including module: fips ***
> dracut[I]: *** Including module: systemd-initrd ***
> dracut[I]: *** Including module: i18n ***
> dracut[I]: No KEYMAP configured.
> dracut[I]: *** Including module: drm ***
> dracut[I]: *** Including module: health-checker ***
> dracut[I]: *** Including module: transactional-update ***
> dracut[I]: *** Including module: btrfs ***
> dracut[I]: *** Including module: kernel-modules ***
> dracut[I]: *** Including module: kernel-modules-extra ***
> dracut[I]: *** Including module: rootfs-block ***
> dracut[I]: *** Including module: suse-btrfs ***
> dracut[I]: *** Including module: suse-xfs ***
> dracut[I]: *** Including module: terminfo ***
> dracut[I]: *** Including module: udev-rules ***
> dracut[I]: *** Including module: biosdevname ***
> dracut[I]: *** Including module: dracut-systemd ***
> dracut[I]: *** Including module: haveged ***
> dracut[I]: *** Including module: selinux-microos ***
> dracut[I]: *** Including module: usrmount ***
> dracut[I]: *** Including module: base ***
> dracut[I]: *** Including module: fs-lib ***
> dracut[I]: *** Including module: shutdown ***
> dracut[I]: *** Including module: suse ***
> dracut[I]: *** Including module: suse-initrd ***
> dracut[I]: *** Including modules done ***
> dracut[I]: *** Installing kernel module dependencies ***
> dracut[I]: *** Installing kernel module dependencies done ***
> dracut[I]: *** Resolving executable dependencies ***
> dracut[I]: *** Resolving executable dependencies done ***
> dracut[I]: *** Hardlinking files ***
> dracut[I]: *** Hardlinking files done ***
> dracut[I]: *** Generating early-microcode cpio image ***
> dracut[I]: *** Constructing GenuineIntel.bin ***
> dracut[I]: *** Store current command line parameters ***
> dracut[I]: Stored kernel commandline:
> dracut[I]:  rd.driver.pre=btrfs
> dracut[I]: rd.driver.pre=overlay
> dracut[I]:  root=UUID=6327f0c5-0454-4b19-8355-10beef082fe8 rootfstype=btrfs rootflags=rw,relatime,seclabel,space_cache=v2,subvolid=281,subvol=/@/.snapshots/5/snapshot,subvol=@/.snapshots/5/snapshot
> dracut[I]: *** Creating image file '/boot/initrd-6.4.0-3-default' ***
> dracut[I]: *** Creating initramfs image file '/boot/initrd-6.4.0-3-default' done ***
> ..done]
> 2023-11-30 23:25:43 Application returned with exit status 0.
> 2023-11-30 23:25:44 Transaction completed.
> Trying to rebuild kdump initrd
> 2023-11-30 23:25:46 tukit 4.4.0 started
> 2023-11-30 23:25:46 Options: close 5 
> 2023-11-30 23:25:48 New default snapshot is #5 (/.snapshots/5/snapshot).
> 2023-11-30 23:25:48 Transaction completed.
> 
> Please reboot your machine to activate the changes and avoid data loss.
> 
> WARNING: This snapshot has been created from a different base (3)
>          than the previous default snapshot (4) and does not
>          contain the changes from the latter.
> 
> New default snapshot is #5 (/.snapshots/5/snapshot).
> transactional-update finished
Comment 16 Timo Jyrinki 2023-12-01 13:46:27 UTC
I'm using the encrypted raw image (SLE-Micro.x86_64-6.0-Default-encrypted-Build3.4.raw), did SUSEConnect -r to register and then tried the transactional-update pkg install -t pattern alp_fips

The problem still happens on this VM in a similar way to before (also if using patterns-alp-fips), and also after zypper ref (which states SLE-Micro-6.0-Pool is up to date.
Comment 17 Jose Lausuch 2023-12-01 20:43:17 UTC
(In reply to Timo Jyrinki from comment #16)
> I'm using the encrypted raw image
> (SLE-Micro.x86_64-6.0-Default-encrypted-Build3.4.raw), did SUSEConnect -r to
> register and then tried the transactional-update pkg install -t pattern
> alp_fips
> 
> The problem still happens on this VM in a similar way to before (also if
> using patterns-alp-fips), and also after zypper ref (which states
> SLE-Micro-6.0-Pool is up to date.

The fix has been pushed to ToTest channel, not released yet. you need to use the proxy SCC as URL for registration. Maybe that's the cause why it still doesn't work for you?
Comment 18 Timo Jyrinki 2023-12-05 09:20:54 UTC
Ok, adding 10.100.93.51 micro-3.4.proxy.scc.suse.de to /etc/hosts and using SUSEConnect -r [REGCODE] --url micro-3.4.proxy.scc.suse.de indeed works so that zypper can find the correct in-sync repositories and transactional-update pkg install -t pattern alp_fips works.
Comment 19 Marcus Meissner 2024-02-29 14:17:32 UTC
t-u setup-fips currently does:

- looks for pattern() = fips
- installs that pattern

This alias was currently alp_fips for not a real good reason, adjusted.
Comment 21 Jiri Srain 2024-03-07 08:27:12 UTC
The patter rename is in, should be fixed in next snapshot.