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
Hinweis

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

In Uyuni synchronisierte Ubuntu Pro-Pakete

Achtung

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.

Übersetzungen: