Ubuntu-VM


LRZ-Update-Mechanismus

Funktionsweise

Durch einen Cronjob (/etc/cron.d/lrz-base) wird gemäß LRZ-Standard-Policy zweimal täglich das Skript /usr/sbin/update-debian.sh ausgeführt, welches sich um Paketupdates und das LRZ-seitige Monitoring der VM kümmert.

Für die Paketupdates wird der in Ubuntu nativ vorhandene unattended-upgrades Mechanismus von unserem Skript ausgelöst. Um Redundanzen zu vermeiden, sind dessen eigene Automatismen deaktiviert.
Die LRZ-eigene Konfiguration von unattended-upgrades list in /etc/apt/apt.conf.d/90lrz-base-unattended-upgrades definiert. Diese Datei wird durch unser Management-Paket lrz-base verwaltet und sollte keinesfalls modifiziert werden!

Bitte beachten:

Standardmäßig werden nur jene Repositories vom LRZ-Update-Mechanismus abgedeckt, welche bei der Auslieferung der VM vorkonfiguriert sind! Dies sind die Ubuntu-Standard-Repositories, sowie das LRZ-eigene Repository, welches zusätzliche Software bereitstellt.

Falls weitere externe Repositories in das System eingebunden werden, so muss man diese selbst in die Konfigurationsdatei /etc/apt/apt.conf.d/99unattended-upgrades-custom eintragen, damit auch hier automatische Updates stattfinden können! Anderenfalls müssen deren Pakete regelmäßig (d.h. spätestens alle 7 Tage) manuell auf den neuesten Stand gebracht werden!


Einbinden zusätzlicher Repositories in den Update-Mechanismus

Zunächst müssen ein paar Variablen für die Repositories ermittelt werden, die man dann für die Update-Konfiguration verwenden kann. Hierfür ist das Kommando apt-cache policy hilfreich:

root@linux:~# apt-cache policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
     release o=Docker,a=focal,l=Docker CE,c=stable,b=amd64
     origin download.docker.com
 500 http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 Packages
     release v=20.04,o=LP-PPA-ondrej-php,a=focal,n=focal,l=***** The main PPA for supported PHP versions with many PECL extensions *****,c=main,b=amd64
     origin ppa.launchpad.net
 500 http://ubuntu.mirror.lrz.de/debian-lrz buster/non-free amd64 Packages
     release o=LRZ,a=stable,n=buster,c=non-free,b=amd64
     origin ubuntu.mirror.lrz.de
 500 http://ubuntu.mirror.lrz.de/debian-lrz buster/main amd64 Packages
     release o=LRZ,a=stable,n=buster,c=main,b=amd64
     origin ubuntu.mirror.lrz.de
 500 http://ubuntu.mirror.lrz.de/ubuntu focal-security/multiverse amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=multiverse,b=amd64
     origin ubuntu.mirror.lrz.de
 500 http://ubuntu.mirror.lrz.de/ubuntu focal-security/universe amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=universe,b=amd64
     origin ubuntu.mirror.lrz.de
 500 http://ubuntu.mirror.lrz.de/ubuntu focal-security/restricted amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=restricted,b=amd64
     origin ubuntu.mirror.lrz.de
 500 http://ubuntu.mirror.lrz.de/ubuntu focal-security/main amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=main,b=amd64
     origin ubuntu.mirror.lrz.de
 100 http://ubuntu.mirror.lrz.de/ubuntu focal-backports/universe amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-backports,n=focal,l=Ubuntu,c=universe,b=amd64
     origin ubuntu.mirror.lrz.de
 100 http://ubuntu.mirror.lrz.de/ubuntu focal-backports/main amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-backports,n=focal,l=Ubuntu,c=main,b=amd64
     origin ubuntu.mirror.lrz.de
 500 http://ubuntu.mirror.lrz.de/ubuntu focal-updates/multiverse amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-updates,n=focal,l=Ubuntu,c=multiverse,b=amd64
     origin ubuntu.mirror.lrz.de
 500 http://ubuntu.mirror.lrz.de/ubuntu focal-updates/universe amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-updates,n=focal,l=Ubuntu,c=universe,b=amd64
     origin ubuntu.mirror.lrz.de
 500 http://ubuntu.mirror.lrz.de/ubuntu focal-updates/restricted amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-updates,n=focal,l=Ubuntu,c=restricted,b=amd64
     origin ubuntu.mirror.lrz.de
 500 http://ubuntu.mirror.lrz.de/ubuntu focal-updates/main amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-updates,n=focal,l=Ubuntu,c=main,b=amd64
     origin ubuntu.mirror.lrz.de
 500 http://ubuntu.mirror.lrz.de/ubuntu focal/multiverse amd64 Packages
     release v=20.04,o=Ubuntu,a=focal,n=focal,l=Ubuntu,c=multiverse,b=amd64
     origin ubuntu.mirror.lrz.de
 500 http://ubuntu.mirror.lrz.de/ubuntu focal/universe amd64 Packages
     release v=20.04,o=Ubuntu,a=focal,n=focal,l=Ubuntu,c=universe,b=amd64
     origin ubuntu.mirror.lrz.de
 500 http://ubuntu.mirror.lrz.de/ubuntu focal/restricted amd64 Packages
     release v=20.04,o=Ubuntu,a=focal,n=focal,l=Ubuntu,c=restricted,b=amd64
     origin ubuntu.mirror.lrz.de
 500 http://ubuntu.mirror.lrz.de/ubuntu focal/main amd64 Packages
     release v=20.04,o=Ubuntu,a=focal,n=focal,l=Ubuntu,c=main,b=amd64
     origin ubuntu.mirror.lrz.de
Pinned packages:


In diesem Beispiel betrachten wir die manuell hinzugefügten Docker- und PHP-Repositories und deren Release-Schlüsselwörter genauer:


https://download.docker.com/linux/ubuntu
Schlüsselwort
(Abkürzung)
Schlüsselwort
(vollständiger Name)
Wert
oorigin

Docker

aarchivefocal
ncodenamehier nicht gesetzt
llabelDocker CE
ccomponentstable


http://ppa.launchpad.net/ondrej/php/ubuntu
Schlüsselwort
(Abkürzung)
Schlüsselwort
(vollständiger Name)
Wert
oorigin

LP-PPA-ondrej-php

aarchivefocal
ncodenamefocal
llabel***** The main PPA for supported PHP versions with many PECL extensions *****
ccomponentmain


Mit Hilfe dieser Informationen lassen sich nun entsprechende Regeln in die Konfigurationsdatei /etc/apt/apt.conf.d/99unattended-upgrades-custom einfügen. Die zu modifizierende Sektion bzw. APT-Variable lautet Unattended-Upgrade::Origins-Pattern. Ein einfaches Hinzufügen einer neuen Zeile pro Repository genügt. Für das Docker- und PHP-Repository könnte die Konfiguration z.B. so aussehen:

/etc/apt/apt.conf.d/99unattended-upgrades-custom
Unattended-Upgrade::Origins-Pattern {
        "origin=Docker,label=Docker CE";                                        // Docker CE packages
        "origin=LP-PPA-ondrej-php,codename=focal";                              // PHP packages
};

Durch diese Konfiguration werden nun auch alle Pakete der eingebundenen Docker- und PHP-Repositories vom LRZ-Update-Mechanismus vollständig erfasst.


Automatischer Reboot

Falls Updates installiert werden, die einen Reboot erfordern (derzeit unter Ubuntu nur Kernelupdates), wird ein "Flag" (/var/run/lrz-base-reboot-required) gesetzt.
Die Existenz dieses Flags wird durch einen weiteren Cronjob (/etc/cron.d/lrz-base-automatic-reboot) in regelmäßigen Abständen geprüft und dann der Server automatisch rebootet, falls nötig.

Die Zeiten, in denen ein automatischer Reboot erfolgen darf, werden durch diesen Cronjob geregelt und können bei Bedarf angepasst werden.
Das Standardzeitfenster ist von Montag bis Freitag zwischen 07:00 und 07:30 definiert.
Von einer kompletten Deaktivierung raten wir jedoch dringend ab.


Security

Host-Firewall

Auf den Ubuntu-VMs des LRZ wird die "Uncomplicated Firewall" (UFW) als Host-Firewall-Lösung verwendet. Diese ist im Auslieferungszustand aktiviert und lässt lediglich den SSH-Zugriff von einem oder mehrerer bei der Bestellung angegebenen Subnetze bzw. IP-Adressen zu. Alle anderen Zugriffe werden blockiert.

Eine ausführliche Anleitung zur Konfiguration der UFW finden Sie hier: https://help.ubuntu.com/community/UFW