====== Buster Upgrade ====== Aktueller Stand der Hosts: [[https://fachschaften.rwth-aachen.de/etherpad/p/buster-upgrade]] Clients werden einfach wieder neuaufgesetzt. Beim Rest sollte ein Update möglich sein, wenn wir nicht eh den entsprechenden Host obsoletieren wollen. ===== Wichtige Änderungen ===== * UEFI Secure Boot besser unterstützt, sollte einfach so funktionieren * AppArmor enabled by default, einfach im Hinterkopf haben, falls Dinge komisch sind * apt sandbox * nftables ist default und iptables nimmt das jetzt auch als Backend * cryptsetup default ist jetzt LUKS2 * su has changed semantics in buster and no longer preserves the user environment variables DISPLAY and XAUTHORITY. * sshd: neue Semantik für PubkeyAcceptedKeyTypes, benutzen wir afaik aber nicht * OpenSSL defaults wurden relevant erhöht, mindestens TLSv1.2, 2048bit RSA und SHA-2 sind gefordert. ===== Beschränkungen im Security Support ===== ==== Go-basierte Pakete ==== > Go based packages won't be covered by regular security support until the infrastructure is improved to deal with them maintainably. If updates are warranted, they can only come via regular point releases, which may be slow in arriving. Betrifft acmetool, was wir wegen ACMEv2 aber eh ersetzen wollen. ==== Webbrowser ==== > Browsers built upon e.g. the webkit and khtml engines are included in buster, but not covered by security support. These browsers should not be used against untrusted websites. The webkit2gtk source package is covered by security support. For general web browser use we recommend Firefox or Chromium. They will be kept up-to-date by rebuilding the current ESR releases for stable. The same strategy will be applied for Thunderbird. ===== Anleitung ===== ==== Vor dem Update ==== === Backup und Restore === Vor dem Update sicherstellen, dass es ein aktuelles und funktionierendes und wiederherstellbares Backup gibt. === eth-named Interfaces === Die alte Methode das "eth0"-Naming zu erhalten wurde durch eine neue Methode abgelöst. Um die bisherigen Namen zu erhalten, entweder Kernel-Cmdline ''net.ifnames=0'' oder ein entsprechendes ''systemd.link'' file nutzen. Für die PCI-basierte Benennung, folgendes tun: rm /etc/udev/rules.d/70-persistent-net.rules rm /etc/systemd/network/99-default.link rm /etc/systemd/network/50-virtio-kernel-names.link rgrep -w eth0 /etc # jegliches relevantes Auftreten fixen # bei networkd: einfach in den Wildcard `en*` ändern, ansible trägt später die richtige Zahl ein. update-initramfs -u === systemd kaputtiert bonding === **Wenn das Bonding mit Ansible konfiguriert wird, einfach vorher nochmal drüber rollen und fertig.** systemd bringt jetzt folgende Konfigurationsdatei ''/lib/modprobe.d/systemd.conf'' mit: options bonding max_bonds=0 options dummy numdummies=0 > Admins who were depending on different values will need to ensure they are set in the correct way to take precedence. A file in ''/etc/modprobe.d'' will override one with the same name under ''/lib/modprobe.d'', **but** the names are processed in //alphabetical// order, so ''/lib/modprobe.d/systemd.conf'' follows and overrides (for instance) ''/etc/modprobe.d/dummy.conf''. Make sure that any local configuration file has a name that sorts after ''systemd.conf'', such as ''/etc/modprobe.d/zz-local.conf''. ==== Das Update ==== === Unnötige Pakete entfernen === ein ''apt autoremove %%--%%purge'' auf folgende Pakete ausführen: aptitude search '~i(!~ODebian)' aptitude search '~o' Die Pakete ''tivsm-*'', ''gskssl'', ''gskcrypto'', ''systemd-journal-persistent'', ''sssd'' bitte konfiguriert auf dem System belassen. === Pinning entfernen === Pinnings unter ''/etc/apt/preferences'' oder ''/etc/apt/preferences.d'' entfernen. Außer ''apache2'' auf nginx Systemen; das soll weiterhin wegbleiben. === dpkg fragen was los ist === ''dpkg %%--%%audit'' ausführen, wenn es nichts ausgibt, dann ist alles gut. === Sources vorbereiten === Alles was nicht offizielle Sourcen sind (halifax-ftp debian main/contrib/non-free; security.debian.org) (temporär) rausschmeißen. Die verbleibenden Sourcen auf buster abändern. Das Update externer Sourcen auf nach dem offiziellen Update vermerken. === Update === Bei **Postgres**-Hosts beachten, dass der Cluster geupgradet werden muss. Dafür ist die alte Version notwendig. Zum Upgrade des Clusters siehe weiter unten den Abschnitt zu Postgres. apt update apt upgrade apt dist-upgrade Zwischendurch auf Enter hauen. Alles, was wir bisher an Rückfragen gesehen haben, war mit dem Default zu beantworten, insbesondere geänderte Dateien behalten. === Reboot === ==== Nach dem Update ==== === Aufräumen === Purgen von removed packages: # auflisten dpkg -l | awk '/^rc/ { print $2 }' # löschen apt purge $(dpkg -l | awk '/^rc/ { print $2 }') Obsolete packages: aptitude search '~o' (Siehe auch oben, hier bitte nochmal schauen, ob es was zu entfernen gibt.) Generelles aufräumen: apt clean apt autoremove --purge === Postgres === Direkt nach Upgrade vor weiterer Nutzung einer Postgres Datenbank, re-index-en mit: sudo -u postgres reindexdb --all Upgrade eines 9.6 (stretch) Clusters zu Version 11 (buster): https://ideatrash.net/2019/07/mastodon-and-upgrading-debian-to-buster-postgresql-and-libprotobuf10.html pg_dropcluster 11 main --stop pg_upgradecluster 9.6 main pg_dropcluster 9.6 main apt purge postgresql-9.6 postgresql-client-9.6 postgresql-contrib-9.6 === Externe Quellen wieder einbinden === Externe Quellen wieder einbinden und mit dem üblichen Prozedere updaten und upgraden. === SysV === Reste loswerden mit: apt purge initscripts sysv-rc insserv startpar === System hängt beim Reboot/braucht länger === Mit ping nachhelfen. Es ringt nach Entropie. Eigentlich wöllten wir ''virtio_rng'' für VMs haben. === Geänderte OpenSSL defaults === Prüfen, ob wir hier aktiv werden müssen. Ob Dinge kaputt sind, ob wir irgendwo alte Einstellungen haben die jetzt sicherer sein könnten, etc. Details zur Konfiguration unter: [[https://www.debian.org/releases/buster/amd64/release-notes/ch-information.en.html#openssl-defaults]] Auch neu: [[https://ssl-config.mozilla.org/]] === Ansible === Ansible auf dem Host vollständig laufen lassen. ===== Längerfristige Umstellungen ===== * Deprecated packages ersetzen: ''python2'', ''mailman2'' * ''phpmyadmin'' ist nicht mehr in der Distribution, also eigene Rolle entwickeln * https://ssl-config.mozilla.org/