mardi 12 octobre 2021

Signature des RPM

 Interroger un rpm installé:

[root@alien1 ~]# rpm -qi whois-5.1.1-2.el7.x86_64
Name : whois
Version : 5.1.1
Release : 2.el7
Architecture: x86_64
Install Date: mer. 11 mars 2020 10:12:45 CET
Group : Applications/Internet
Size : 227186
License : GPLv2+
Signature : RSA/SHA256, ven. 04 juil. 2014 07:43:09 CEST, Key ID 24c6a8a7f4a80eb5
Source RPM : whois-5.1.1-2.el7.src.rpm
Build Date : mar. 10 juin 2014 00:42:13 CEST
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://www.linux.it/~md/software/
Summary : Improved WHOIS client
Description :
Searches for an object in a RFC 3912 database.

This version of the WHOIS client tries to guess the right server to ask for
the specified object. If no guess can be made it will connect to
whois.networksolutions.com for NIC handles or whois.arin.net for IPv4
addresses and network names.

Liste des clés publiques:

[root@alien1 ~]# rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n'
gpg-pubkey-f4a80eb5-53a7ff4b --> gpg(CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>)
gpg-pubkey-baadae52-49beffa4 --> gpg(elrepo.org (RPM Signing Key for elrepo.org) <secure@elrepo.org>)
gpg-pubkey-352c64e5-52ae6884 --> gpg(Fedora EPEL (7) <epel@fedoraproject.org>)
gpg-pubkey-7fa2af80-576db785 --> gpg(cudatools <cudatools@nvidia.com>)
gpg-pubkey-85c6cd8a-4e060c35 --> gpg(Nux.Ro (rpm builder) <rpm@li.nux.ro>)
gpg-pubkey-621e9f35-58adea78 --> gpg(Docker Release (CE rpm) <docker@docker.com>)
gpg-pubkey-5c964ca1-5b6464f6 --> gpg(NordVPN <admin@nordvpn.com>)
gpg-pubkey-b6792c39-53c4fbdd --> gpg(CentOS-7 Debug (CentOS-7 Debuginfo RPMS) <security@centos.org>)
gpg-pubkey-d3d831ef-53dfa827 --> gpg(Xamarin Public Jenkins (auto-signing) <releng@xamarin.com>)
gpg-pubkey-222d23d0-5910b0f0 --> gpg(Sublime HQ Pty Ltd <support@sublimetext.com>)

Vérifier la signature d'un rpm téléchargé:

[root@alien1 ~]# rpm -Kv whois-5.2.18-1.el7.x86_64.rpm 
whois-5.2.18-1.el7.x86_64.rpm:
Entête V4 DSA/SHA1 Signature, clé ID 2a6b914a: NOKEY
Hachage de l'entête SHA1 : OK (8263f6f00b49ee2d1b84311ba7ab4eb5b5b5df7a)
MD5 : OK (2639d598cc7fe94aaac35604d117adef)
V4 DSA/SHA1 Signature, clé ID 2a6b914a: NOKEY

Cas d'un rpm corrompu:

[root@alien1 ~]# rpm -Kv whois-5.2.18-1.el7.x86_64_KO.rpm 
erreur : whois-5.2.18-1.el7.x86_64_KO.rpm : échec de headerRead region trailer : ERRONÉ, tag 2048 type 16128 offset -2047 décompte -249856


Signature d'un RPM:

Diagram depicting the header and payload of the RPM is signed and that the signature is also stored in the RPM.

Contrôle de la signature d'un RPM:


Diagram showing the process for verifying the header and payload of an RPM.

https://access.redhat.com/blogs/766093/posts/3373211


jeudi 22 juillet 2021

Restaurer les capabilities suite restauration d'un backup sans xattrs

Si une sauvegarde est réalisée sans l'argument xattrs, alors on perd les capabilities lors d'une restauration. Bien sur, c'est dans le cas où la sauvegarde comporte des fichiers avec des capabilités.

Il est possible de restaurer les capabilités par défaut en faisant un requête sur les RPM.

Faire une requête pour lister les capabilités:

[serge@alien1 ~]$ rpm --qf "[%{FILECAPS} %{FILENAMES}\n]" -qa | grep '^='
= cap_setgid+ep /usr/bin/newgidmap
= cap_setuid+ep /usr/bin/newuidmap
= cap_net_admin,cap_net_raw+p /usr/bin/ping
= cap_net_raw+p /usr/sbin/arping
= cap_net_raw+p /usr/sbin/clockdiff
= cap_net_raw+ep /usr/sbin/mtr
= cap_ipc_lock+ep /usr/bin/gnome-keyring-daemon
= cap_net_admin,cap_net_raw+ep /usr/sbin/dumpcap
= cap_setgid,cap_setuid+ep /usr/sbin/suexec

Appliquer les capabilities:

Exemple pour arping:

[root@alien1 ~]# setcap cap_net_raw+p /usr/sbin/arping