Ubuntu Pro-Pakete ohne Landscape spiegeln
Was ist Ubuntu Pro?
Ubuntu Pro ist ein nicht unumstrittenes Zusatzangebot Canonicals für Ubuntu-Anwender:innen. Dieses erweitert - gegen Bezahlung - das Support-Zeitfenster von LTS-Releases von 5 auf bis zu 10 Jahre. Für die private Verwendung kann das Angebot kostenlos für bis zu 5 Computer benutzt werden - Ubuntu-Member dürfen sogar bis zu 50 Computer betanken. Für ältere Releases werden seit 2024 sogar bis zu 12 Jahre-Support angeboten, wofür jedoch eine zusätzliche - nicht offiziell bekannte - Gebühr entrichtet werden muss. Neben dem main
-Repository sind im Rahmen der Expanded Security Maintenance (ESM) auch einige Pakete des universe
-Pools in Ubuntu Pro enthalten. Eine konkrete Liste gibt es nicht - jedoch scheint der Fokus laut Webseite auf Server-Anwendungen und Programmiersprachen zu liegen. Zu den weiteren Angeboten gehören Kernel Live Patching und Security-Module, wie z.B. FIPS und USG. Damit bietet Canonical ein ähnliches Angebot wie SUSE Linux Enterprise Server und Red Hat Enterprise Linux - was vor allem Enterprise-Kund:innen interessieren dürfte.
Diese benötigen in der Regel jedoch eine Möglichkeit, diese Pakete lokal vorzuhalten - um unnötigen Internet-Traffic zu reduzieren. Canonicals Antwort hierauf ist das hauseigene Tool Ubuntu Landscape an, welches im Vergleich zu Uyuni und Foreman/Katello jedoch zahlreiche Einschränkungen aufweist:
- angestaubte Web-Oberfläche
- das Spiegeln von Software-Inhalten ist unnötig komplex (manuelle Interaktion mit der API)
- kein Einfrieren getesteter Patchstände (um zu verhindern, dass ungetestete Patches die Produktion gefährden)
- keine Security-Funktionen (z.B. CVE, OpenSCAP)
- keine Integration in gängiges Configuration Management (z.B. Ansible oder Salt)
- das integrierte Monitoring ist sehr rudimentär und bietet wenig Mehrwert
- übergriffige Telemetrie-Daten
- kein sinnvoller Airgapped-Betrieb (Cookie-Banner bei internen Anwendungen)
- andere Linux-Distributionen werden nicht unterstützt
Ubuntu Pro benutzen
Um Ubuntu Pro zu benutzen, wird ein Ubuntu One-Account benötigt. Nach Registrierung wird ein Token im Portal angezeigt, welches auf dem verwendeten System hinterlegt werden muss.
Hierzu muss, falls noch nicht geschehen, der Pro-Support installiert und aktiviert werden:
1# apt-get install ubuntu-advantage-tools
2# pro attach <token>
3Enabling default service esm-apps
4Updating Ubuntu Pro: ESM Apps package lists
5Ubuntu Pro: ESM Apps enabled
6Enabling default service esm-infra
7Updating Ubuntu Pro: ESM Infra package lists
8Ubuntu Pro: ESM Infra enabled
9Enabling default service livepatch
10Installing snapd
11Updating standard Ubuntu package lists
12Installing snapd snap
13Installing canonical-livepatch snap
14Canonical Livepatch enabled
15This machine is now attached to 'Ubuntu Pro - free personal subscription'
16
17SERVICE ENTITLED STATUS DESCRIPTION
18anbox-cloud yes disabled Scalable Android in the cloud
19esm-apps yes enabled Expanded Security Maintenance for Applications
20esm-infra yes enabled Expanded Security Maintenance for Infrastructure
21fips yes disabled NIST-certified FIPS crypto packages
22fips-updates yes disabled FIPS compliant crypto packages with stable security updates
23livepatch yes enabled Canonical Livepatch service
24ros yes disabled Security Updates for the Robot Operating System
25usg yes disabled Security compliance and audit tools
26
27NOTICES
28Operation in progress: pro attach
29
30For a list of all Ubuntu Pro services, run 'pro status --all'
31Enable services with: pro enable <service>
Hierbei wird auch wieder Snap installiert, um Kernel-Livepatches anzubieten. 🤡
Anschließend können weitere Updates installiert werden:
1# apt-get update ; apt-get full-upgrade
Pro-Pakete lokal spiegeln
Zwar gibt es eine Dokumentation zur Verwendung in airgapped-Umgebungen - diese benötigt jedoch eine aktive bezahlte Subscription. Das ist insofern verwunderlich, da die Pakete ja auch kostenlos konsumiert werden können.
Sobald aktiviert, greift ein registriertes Ubuntu-System unter anderem auf die folgenden Software-Repositories zu:
Name | URL | Beschreibung |
---|---|---|
esm-infra |
https://esm.ubuntu.com/infra/ubuntu/ | Betriebssystem-Komponenten |
esm-apps |
https://esm.ubuntu.com/apps/ubuntu/ | Applikationen und Programmiersprachen |
Die Kommunikation zwischen Client und Repository-Server erfolgt verschlüsselt und wird über ein Bearer-Token authentifiziert:
1# cat /etc/apt/auth.conf.d/90ubuntu-advantage
2machine esm.ubuntu.com/apps/ubuntu/ login bearer password <token> # ubuntu-pro-client
3machine esm.ubuntu.com/infra/ubuntu/ login bearer password <token> # ubuntu-pro-client
Pro Repository wird ein dediziertes Token benutzt.
Diese Informationen lassen sich jedoch auch in den URLs angeben - beispielsweise mit curl
:
1$ curl -u bearer:<token> https://esm.ubuntu.com/apps/ubuntu/pool/
2<html>
3<head><title>Index of /apps/ubuntu/pool/</title></head>
4<body bgcolor="white">
5<h1>Index of /apps/ubuntu/pool/</h1><hr><pre><a href="../">../</a>
6<a href="main/">main/</a> 18-May-2023 20:13 -
7</pre><hr></body>
8</html>
Damit lassen sich die Pakete auch mit anderen Tools, wie z.B. Uyuni, Foreman/Katello oder aptly synchronisieren:
URL | Beschreibung |
---|---|
https://bearer:<token>@esm.ubuntu.com/infra/ubuntu/dists/<release>-infra-updates/main/binary-<arch>/ |
Funktionsupdates für das Betriebssystem |
https://bearer:<token>@esm.ubuntu.com/infra/ubuntu/dists/<release>-infra-security/main/binary-<arch>/ |
Sicherheitsupdates für das Betriebssystem |
https://bearer:<token>@esm.ubuntu.com/apps/ubuntu/dists/<release>-apps-updates/main/binary-<arch>/ |
Funktionsupdates für Anwendungen |
https://bearer:<token>@esm.ubuntu.com/apps/ubuntu/dists/<release>-apps-security/main/binary-<arch>/ |
Sicherheitsupdates für Anwendungen |
arch
und release
müssen mit jeweils einem der folgenden Werte ersetzt werden:
Architekturen | Releases |
---|---|
amd64 , arm64 , armel , armhf , i386 , powerpc , ppc64el , s390x |
bionic , focal , jammy , noble , trusty , xenial |
Die Schritte dürften auch für die zusätzlichen Repositories fips
, fips-updates
, cis
, realtime
und ros
anwendbar sein.
Damit Uyuni die Repositories synchronisieren kann, müssen noch die entsprechenden GPG-Schlüssel (ubuntu-pro-esm-infra.gpg
, ubuntu-pro-esm-apps.gpg
) importiert werden. Diese befinden sich auf einem mit Ubuntu Pro registrierten System unterhalb /etc/apt/trusted.gpg.d
und können wie folgt importiert werden:
1# gpg --homedir /var/lib/spacewalk/gpgdir --import ubuntu-pro-*.gpg
Die hier gezeigte Vorgehen kann genutzt werden, um die Limitierungen der Subscription zu umgehen - dies stellt jedoch einen Bruch der Servicebedingungen dar und kann rechtliche Folgen nach sich ziehen. Es müssen immer ausreichend Subscriptions für die Anzahl der verwendeten Systeme vorliegen. Bitte bleibt fair - das kostenlose Pro-Angebot ist großzügig und sollte nicht missbraucht werden.
Fazit
Es ist wünschenswert, dass Canonical das Vorgehen zur Paket-Spiegelung öffentlich zugänglich macht und somit von Landscape entkoppelt. Für viele Szenarien ist es nicht das richtige Tool und die Koppelung an Landscape ist ein unnötiger Lock-In.
Es gibt reges Interesse an Ubuntu Pro und Anwender:innen anderer Patch Management-Tools würden sich darüber freuen, keine Steine in den Weg gelegt zu bekommen.