staging.inyokaproject.org

2023 Woche 45

10. November 2023



Canonical hat auf dem Ubuntu Summit 2023 weitere Details über die neue Desktop-Version von Ubuntu Core bekannt gegeben. Diese neue Version wird als "immutable" (unveränderlich) Desktop-Edition neben der nächsten LTS-Version von Ubuntu, die im April erscheinen wird, veröffentlicht.

Ubuntu Core Desktop ersetzt nicht die herkömmliche Ubuntu-Version; diese bleibt bestehen. Es handelt sich vielmehr um eine grafische Desktop-Version der bestehenden Ubuntu Core-Distribution, die vor allem für IoT-Geräte gedacht ist. Das System ist "immutable", das heißt, das Wurzel-Dateisystem ist schreibgeschützt und es gibt keinen herkömmlichen Paketmanager.

Die Aktualisierungen bei Ubuntu Core Desktop erfolgen in einem Schritt, ähnlich wie bei einem Smartphone-Betriebssystem: Ein neues OS-Image wird auf die Geräte gepusht und alle Komponenten werden gleichzeitig aktualisiert.

Canonical betont einige Vorteile dieses Ansatzes, wie Stabilität durch schreibgeschützte Systemdateien und atomare Updates, sowie bessere Verwaltbarkeit aufgrund der Konsistenz zwischen den verschiedenen Systemen.

Einzigartig an Ubuntu Core Desktop ist, dass es komplett mit Snaps aufgebaut ist – einem von Canonical entwickelten Paketformat, welches einige Vorteile gegenüber ähnlichen Tools von SUSE und Red Hat bietet. Es ist einfacher zu handhaben und benötigt kein spezielles Dateisystem für Snapshots.

Das System wird als eine mehrschichtige Architektur beschrieben, von einem Basis-Kernel bis zu multiplen Snap-Apps. Die Modularität soll es ermöglichen, Teile des Systems zu ersetzen, ohne das gesamte System zu beeinträchtigen, was zum Beispiel bei spezialisierten Kernels für Gaming vorteilhaft sein kann.

Darüber hinaus werden Funktionen wie vollständige Festplattenverschlüsselung unterstützt, die dank TPM-Chip ohne Passworteingabe beim Start auskommt. Auch wird die Unterstützung für allgemeinere Anwendungsfälle, einschließlich Gaming, berücksichtigt.

Canonical arbeitet an weiteren Features wie LXD-Containern für die Softwareentwicklung und die Integration in das Landscape-Flottenmanagement-Tool. Auch die Anmeldung über Microsofts Active Directory ist geplant.

Canonical sieht großes Potenzial in Ubuntu Core Desktop und betrachtet es als Möglichkeit, das Snap-Format zu etablieren und Widerstände dagegen zu überwinden. Es wird jedoch noch etwa fünf bis sechs Monate dauern, bis Ubuntu Core Desktop fertiggestellt ist, wobei die Erstellung von ISOs, Testinfrastrukturen, stabile Release-Kanäle und unterstützende Dokumentation als Release-Blocker gelten.

Zusammenfassend plant Canonical, mit Ubuntu Core Desktop eine stabile, leicht zu verwaltende und sichere Desktop-Umgebung anzubieten, die sich gut für eine Vielzahl von Anwendungsfällen eignet und gleichzeitig die Vorteile einer "immutable" Distribution nutzt.


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

9. November 2023

Mit dem Fakespot Chat ist Mozillas erstes sogenannte Large Language Model (LLM) gestartet. Der Chatbot berät beim Online-Shopping auf Amazon.

Im Mai hatte Mozilla angekündigt, das Unternehmen Fakespot gekauft zu haben. Bei Fakespot handelt es sich um einen Anbieter, der Künstliche Intelligenz (KI) nutzt, um gefälschte Rezensionen auf Shopping-Plattformen wie Amazon zu erkennen. Seit dem arbeitet Mozilla an einer Integration in Firefox für den Desktop, Android sowie iOS, welche voraussichtlich mit Firefox 120 erstmals in den USA für Amazon, Walmart sowie Best Buy starten wird, bald darauf auch für Amazon in Deutschland und Frankreich. Eine erste Vorschau auf die Integration hatte ich im August gegeben.

Nun hat Mozilla Fakespot Chat angekündigt. Dabei handelt es sich um einen Chatbot, welcher derzeit als erste Alpha-Version für amazon.com und in englischer Sprache verfügbar ist. Das ist gleichzeitig Mozillas erstes sogenanntes Large Language Model (LLM). LLMs sind dazu in der Lage, natürliche Sprache zu verstehen und zu generieren und bilden damit die Grundlage für KI-Chatbots wie ChatGPT und Google Bard.

Mit dem Fakespot Chat können Fragen zu einem konkreten Produkt gestellt werden, welche der Bot dann nicht einfach anhand der Produktbeschreibung vom Hersteller, sondern auf Basis von echten Nutzer-Bewertungen beantwortet. So kann beispielsweise die Frage nach der Akkulaufzeit der Apple AirPods damit beantwortet werden, dass diese laut einigen Nutzern eine gute Akkulaufzeit hätten, während manche Nutzer davon berichten, dass eine Ladung nur sechs Stunden oder weniger hält.

Um Fakespot Chat nutzen zu können, muss die Funktion zunächst auf der eigens dafür eingerichteten Website aktiviert werden. Wenn die Browser-Erweiterung von Fakespot installiert ist, öffnet sich bei Klick auf den Analysieren-Button auf amazon.com dann die entsprechende Produktseite auf fakespot.com, welche Vorteile, Nachteile und Highlights des Produkts zusammenfasst. Zusätzlich steht dort dann auch der Chatbot zur Verfügung, dem Fragen zum jeweiligen Produkt gestellt werden können. Alternativ kann ohne Erweiterung auch direkt auf fakespot.com die URL der Produktseite eingegeben werden.

Fakespot Chat

Wenn man sich nicht sicher ist, was man fragen soll, schlägt der Fakespot Chat Fragen vor, die zum jeweiligen Produkt passen. Unter jeder Antwort gibt es einen Daumen nach oben sowie einen Daumen nach unten, um mitzuteilen, ob eine Antwort korrekt oder ungenau war, womit jeder dazu beitragen kann, das Modell und seine Antworten zu verbessern.

Fakespot Chat

Der Beitrag Mozilla kündigt erstes Large Language Model (LLM) an: Fakespot Chat startet erschien zuerst auf soeren-hentzschel.at.

Mit ein wenig Verspätung ist die Version 39 der Distribution Fedora erschienen.



Am 6. November 2003 veröffentlichte das Fedora-Projekt Fedora Core 1, und fast genau 20 Jahre später wird Fedora Linux 39 vorgestellt, ein umfassendes Betriebssystem für verschiedene Plattformen.

 

Hier sind die wichtigsten Punkte:

  1. Breite Plattformunterstützung: Fedora Linux 39 deckt Desktops, Laptops, Server, die Cloud und Edge-Geräte ab.
  2. Upgrade-Empfehlung: Es wird empfohlen, vor dem Upgrade sicherzustellen, dass Ihr System vollständig auf dem neuesten Stand ist.
  3. Desktop-Verbesserungen: Fedora Workstation bietet nun GNOME 45, was nicht nur eine bessere Leistung, sondern auch viele neue Funktionen wie einen überarbeiteten Arbeitsbereichswechsler und eine verbesserte Bildbetrachtungsanwendung mit sich bringt.
  4. Alternative Desktop-Erfahrungen: Neben GNOME gibt es auch alternative Desktop-Erfahrungen wie Fedora Onyx, basierend auf Budgie, sowie Varianten mit KDE Plasma Desktop, Xfce, Cinnamon und anderen.
  5. Cloud-Integration: Fedora Cloud-Images sind nun offiziell in Microsoft Azure verfügbar und wurden so konfiguriert, dass man bei der ersten Bereitstellung mithilfe von cloud-init Updates installieren kann.
  6. Aktualisierte Software: Fedora Linux 39 bringt viele Aktualisierungen, darunter GCC 13.2, Binutils 2.40, Glibc 2.38, GDB 13.2 und RPM 4.19. Ebenso sind beliebte Programmiersprachen wie Python 3.12 und Rust 1.73 auf dem neuesten Stand.

Eine besondere Erwähnung bekommt Inkscape, das beliebte Vektorgrafik-Illustrations- und Zeichenwerkzeug, das ebenfalls sein 20-jähriges Jubiläum feiert.

Insgesamt bietet Fedora Linux 39 eine Vielzahl von Aktualisierungen und Verbesserungen in verschiedenen Bereichen und stellt ein spannendes Upgrade für die Fedora-Community dar.

Mein Updatebericht

Ich habe mich wie üblich an diese Anleitung gehalten. 

Nach sudo dnf install dnf-plugin-system-upgrade und dnf system-upgrade download --releasever=39 wurde ich mit dieser Meldung begrüßt:

Beachtlich schnell ging der Download vonstatten. 11MB/s sind ungefähr das Limit meiner 100 MBit Leitung und das bei 2540 Paketen dauerhaft aufrechtzuerhalten bekommt leider nicht jede Linuxdistro hin, von Windows oder macOS ganz zu schweigen.

Nach dem sudo dnf system-upgrade reboot fing ungünstigerweise zu ersten Mal in meiner langen Fedorageschichte ein Problemchen beim Upgrade an. Beim ersten Reboot kam der übliche Upgrade-Bildschirm, doch dann startete der Rechner sofort neu und Fedora fuhr ohne Upgrade in Version 38 hoch.

Anstatt in den Logs Fehler zu suchen habe ich die letzten beiden Befehle einfach noch einmal ausgeführt und dieses Mal funktionierte alles wie immer. Computer sind in der Theorie deterministische Maschinen, bei denen sowas nicht funktionieren sollte, aber oft funktioniert es dann doch. "That is the world we live in." würde der Engländer sagen.

Jedenfalls begrüßt mich mein Fedora 39 mit einem neuen Standardhintergrund und ansonsten wenigen offensichtlichen Neuerungen:

Ich bin seit Jahren mit Fedora zufrieden und bisher hatte ich noch nie wirkliche Probleme damit. Fedora 39 sieht auch wieder wie ein solides Release aus. Daumen hoch.

Jetzt beginnt das 6-monatige (+ evtl. ein paar Wochen) Warten auf Fedora 40, welches unter Umständen wesentlich größere Veränderungen beinhalten könnte: KDE Plasma 6, DNF5 und vielleicht kein X11 in der Standardinstallation. Es bleibt spannend.

Quelle: https://fedoramagazine.org/announcing-fedora-linux-39/

Quelle Bild 1: Daimar Stein


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

Die UBports Foundation rollt die nächste Version des freien Betriebssystems für mobile Geräte aus.



Das alternative Betriebssystem für mobile Geräte, Ubuntu Touch, basiert in der aktuellen Version auf Ubuntu 20.04 LTS (Focal Fossa). Damit liegt es bald vier Jahre hinter dem kommenden Ubuntu LTS Release (24.04). Gestern hat die UBports Foundation die Verfügbarkeit von Ubuntu Touch 20.04 OTA-3 verkündet. Damit gibt es eine neue stabile Version des Betriebssystems für Smartphones und Tablets, das Privatsphäre und Freiheit respektiert.

Ubuntu Touch wurde bereits auf den PinePhone-, PinePhone Pro- und PineTab-Geräten von PINE64 unterstützt, aber die Nutzer mussten ihre Geräte unabhängig vom Rest der offiziell unterstützten Geräte aktualisieren, da sie keine neuen OTA-Updates über den Stable Channel erhielten.

PinePhone-Besitzer erhielten außerdem Unterstützung für DSI als interne Anzeigeoption, um Probleme mit der Shell-Rotation zu beheben, sowie den gpsd-Provider, der für PinePhone-Mainline-Linux-Geräte erforderlich ist. Allerdings betrachten die Entwickler die PinePhone/PineTab-Images als Beta-Status und nicht als stabil.

Diese Version aktualisiert auch die Systemeinstellungs-App von Ubuntu Touch mit einer neu gestalteten Benutzeroberfläche und Menüstruktur der Seiten Sicherheit und Datenschutz sowie der Möglichkeit, Änderungen bei der Kanalauswahl auf der Seite Update zu berücksichtigen. Ebenfalls aktualisiert wurde der Morph-Browser von Ubuntu Touch, der nun einen Umschalter für den Mobil-/Desktop-Modus und ein Kontrollkästchen für das automatische Laden von Bildern in seinen Einstellungen bietet.

Für diejenigen, die Android-Apps verwenden möchten, verbessert Ubuntu Touch OTA-3 die Waydroid-Unterstützung, indem es die Berechnung der verfügbaren Displaygrösse für Android-Apps anpasst, sodass die unteren Navigationstasten nicht mehr abgeschnitten werden. Darüber hinaus wurde die Tethering-Erkennung auf CDC-{NCM,ECM} erweitert und USB-Tethering-Unterstützung auf unterstützten Geräten wie dem Fairphone 4 hinzugefügt.

Ubuntu Touch OTA-3 führt auch erste Snap-Unterstützung ein, implementiert die Möglichkeit, innerhalb von Unterhaltungen in der Messaging-App zu suchen, stellt die Möglichkeit wieder her, Vibrationen von Benachrichtigungen und anderen Apps zu deaktivieren, wechselt zu lineageos-apndb als primärem APN-Datenbank-Provider, wodurch mobile Daten und MMS-Unterstützung für mehr Nutzer ermöglicht wird, und aktiviert wieder die Unterstützung für die Content-Hub-basierte Zwischenablage, um das Kopieren/Einfügen zwischen Apps zu verbessern.

Mehrere neue Tastaturlayouts wurden hinzugefügt und bestehende aktualisiert, und viele Sprachübersetzungen erhielten Updates. Natürlich enthält diese Version auch viele andere Fehler- und Sicherheitsbehebungen für ein stabileres Ubuntu Touch-Erlebnis.

Ubuntu Touch 20. 04 OTA-3 wird jetzt auf diese Geräte ausgerollt:

  • Asus Zenfone Max Pro M1
  • Pro1-X
  • Fairphone 3 and 3+
  • Fairphone 4
  • Google Pixel 3a and 3a XL
  • JingPad A1
  • Oneplus 5 and 5T
  • OnePlus 6 and 6T
  • PinePhone (beta)
  • PinePhone Pro (beta)
  • PineTab (beta)
  • PineTab2 (beta)
  • Sony Xperia X
  • Vollaphone
  • Vollaphone X
  • Vollaphone 22
  • Vollaphone X23
  • Xiaomi Poco M2 Pro
  • Xiaomi Poco X3 NFC / X3
  • Xiaomi Redmi Note 9, 9 Pro, 9 Pro Max and 9S

Quelle: https://ubports.com/en/blog/ubports-news-1/post/ubuntu-touch-20-04-ota-3-is-available-now-3905


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.

8. November 2023

 

Quake wars: Enemy Territory

 

Das Spiel Quake Wars: Enemy Territory hat einen besonderen Reiz, auch wenn ich es bisher nicht allzu oft gespielt habe, hauptsächlich aufgrund des Mangels an Mitspielern.

Die offiziellen Server waren stets von starken Gegnern frequentiert, und meine Kenntnisse der Karten waren nicht ausreichend, um mithalten zu können.

 

Aber dennoch reizt es mich das Game auf der kommenden Lan Party zu spielen, ich muß halt etwas üben.

etqw ist ein i386 System. Da bei mir die Multiarch bereits verfügbar ist, war das die Installation fast ein Kinderspiel.

Da ich zwar noch die Original DVD Verpackung (mit Key) habe, aber die DVD nicht auffindbar ist,
habe ich mir die Enemy_Territory_Quake_Wars_Win_ISO_EN.zip geholt und das darin enthaltene iso Image mit

mount -o loop OGD_Enemy_Territory_Quake_Wars.iso  /mnt

gemountet.

Der Linux Installer findet die gemountete DVD automatisch, das ganze ist recht einfach

ETQW-client-1.5-full.x86.run

Alternative: https://github.com/liflg/etqw_1.5-multilingual_x86

mit etqw_1.5-multilingual_x86-master.zip

Hinweis zum CD Key: ETQW läuft lokal auch ohne Key, nur für den Fall, dass jemand das Game mal auprobieren möchte.

Fallstricke

Der Direktstart von etqw.x86 führt bei mir zu  schweren Fehlern.

(pure virtual method called terminate called recursively)

Das Programm war schwer  zum Starten zu überreden.

Die Lösung brachte das voranstellen von  __GL_THREADED_OPTIMIZATIONS=1 (dank chatgpt)

Erläuterung: In der Linux-Konsole kann eine Umgebungsvariable vor dem Aufruf eines Programms durch Voranstellen der Variable zum Befehl gesetzt werden. Die vorangestellte Umgebungsvariable gilt nur für den Aufruf des nachfolgenden Programms und beeinflusst dessen Ausführungsumgebung.

 cat etqw
#!/bin/bash
cd "$(dirname $0)"
TILDE_DE="$(xmodmap -pke | grep 'keycode\s*49')"
TILDE_US="$(keycode 49 = grave 'asciitilde')"

xmodmap -e "$TILDE_US"

unset LD_LIBRARY_PATH
__GL_THREADED_OPTIMIZATIONS=1 exec ./etqw.x86 "$@"

 

Die Tilde Geschichte stammt übrigens von holarse.de

Sound: installieren von
apt install pipewire-alsa:i386
Aber ACHTUNG
Bei mir wurde der komplette Gnome Desktop deinstalliert.
Nach reparieren via aptitude und tasksel Gnome
konnte apt install pipewire-alsa:i386
erneut durchgeführt werden.

etqw auf Deutsch

cd :~/games/ETQW/
$ cp /mnt/Setup/Data/base/DEU/zpak_german000.pk4 ./base/
echo 'seta sys_lang "german"' >>$HOME/.etqwcl/base/etqwconfig.cfg

 

Jetzt rennt Enemy Territory wie verückt.

Performance

Um den Vorteil von zwei oder mehr Kernen ausnutzen zu können, muss das Spiel mit etqw-rthread an Stelle von etqw gestartet werden. Zusätzlich muss man in der Datei ~/.etqwcl/base/etqwconfig.cfg folgendes hinzufügen:

seta r_usethreadedrenderer "2"

Hinweise teils von hier

Das binary etqw-rthread.x86 hat ibSDL-1.2.id.so.0 als Abhängigkeit, es wird allerdings mitgeliefert.
Es kann aber nicht mit LD_LIBRARY_PATH=. eingebunden werden, weil sonst alle mitgelieferten Libs benutzt werden, was nicht zum Ziel führt.

Meine, zugegeben "schmutzige" Lösung ist, die Library nach /usr/lib/i386-linux-gnu/libSDL-1.2.id.so.0 zu verliinken.

ln -s /home/bed/games/ETQW/libSDL-1.2.id.so.0 /usr/lib/i386-linux-gnu/libSDL-1.2.id.so.0

Damit wird zusammen mit unset LD_LIBRARY_PATH sicher gestellt, dass alle Libs vom aktuellen System geladen werden. Hier bei mir Debian Trixie, aber das wisst ihr sicher bereits vom UT2004 Artikel.

Mit __GL_THREADED_OPTIMIZATIONS=4 ./etqw-rthread.x86

(die 4 ist mein Versuch, starten geht auch mit 1, wohl eher ein Flag)

Das Ganze nun in das Startscript gegossen, sieht so aus:

 cat etqw-rthread
#!/bin/bash
cd "$(dirname $0)"
TILDE_DE="$(xmodmap -pke | grep 'keycode\s*49')"
TILDE_US="$(keycode 49 = grave 'asciitilde')"

xmodmap -e "$TILDE_US"
unset LD_LIBRARY_PATH
__GL_THREADED_OPTIMIZATIONS=4 exec ./etqw-rthread.x86 "$@"
xmodmap -e "$TILDE_DE"

 

Der Unterschied zwischen den Varianten von etqw und etqw-rthread ist für mich nicht feststellbar. Der Screenshot ist mit dem einfachen etqw.
Also, meiner Meinung nach kann man sich den rthread part durchaus schenken. Mein tuxedo Aura Gen2 ist jedenfalls schnell genug.

 

Punkbuster wird nicht mehr aktualisiert. Anleitung von holarse.de übernommen.

 cat pbcl.cfg
//
// filename: pbcl.cfg -- goes to game's /pb/
//
pb_MsgPrefix "^5PunkBuster Client"
pb_Sleep 500
pb_LogToFile 1
pb_SsLog 1
pb_SsSave 1
PB_LogMD5Tool 1
pb_Security 0 // allow pb-update downloads from ANY (game-)server

Den letzten Stand findet man hier: http://www.pbbans.com/forums/files/quake-wars-linux-file66.html

Und jetzt sind 2 Knallergames bereit für die Lanparty ✅

Die MZLA Technologies Corporation hat mit Thunderbird 115.4.2 ein Update für seinen Open Source E-Mail-Client veröffentlicht.

Neuerungen von Thunderbird 115.4.2

Mit dem Update auf Thunderbird 115.4.2 hat die MZLA Technologies Corporation ein Update für seinen Open Source E-Mail-Client veröffentlicht und behebt damit mehrere Probleme, welche sich in den Release Notes (engl.) nachlesen lassen.

Der Beitrag Thunderbird 115.4.2 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

7. November 2023

Mozilla hat Firefox 119.0.1 veröffentlicht und behebt damit mehrere Probleme der Vorgängerversion.

Download Mozilla Firefox 119.0.1

Mit dem Update auf Firefox 119.0.1 behebt Mozilla mehrere Webkompatibilitätsprobleme. Außerdem wurde die Ursache für ein mögliches Einfrieren einer Website bei Änderung der Fenstergröße unter macOS und Linux in Zusammenhang mit Hardware-beschleunigtem Canvas2D sowie eine mögliche Absturzursache behoben. Des Weiteren ist die Integration von Firefox Relay nun immer aktiv, nachdem diese in den letzten Monaten schrittweise ausgerollt worden war. Schließlich wurde noch ein Darstellungsproblem unter macOS behoben, welches verursachte, dass Einträge in der Lesezeichen-Sidebar unsichtbar wurden, wenn diese ausgewählt wurden.

Der Beitrag Mozilla veröffentlicht Firefox 119.0.1 erschien zuerst auf soeren-hentzschel.at.

6. November 2023

Um ein Programm auf 32-Bit-Hardware zu starten, das auf 32-Bit-Hardware compiliert wurde und für das kein Quellcode vorhanden ist, kann man mit den folgenden Befehlen beide Architekturen bereitstellen.

dpkg --add-architecture i386

Alle Einträge in der /etc/apt/sources.list entsprechend diesem Beispiel für Debian Trixie ändern.

deb [arch=amd64,i386] http://deb.debian.org/debian/ trixie main non-free contrib non-free-firmware

apt update && apt full-upgrade

 

Warum schreibe ich das?

Es war mir aufgefallen, dass ich das noch nie Blog erwähnt hatte und ich das mit ETQW verlinken wollte.

Das Datum habe ich nun auf 6.11. gesetzt, dann ist es hoffentlich nicht mehr top in den Planeten

 

Diese Einführung gibt Antworten auf die folgenden Fragen:

  • Was ist ein Intrusion Detection System?
  • Was ist AIDE?
  • Wie installiert und konfiguriert man es?
  • Wie nutzt man AIDE?

In dieser Einführung verwendete Betriebssysteme:

  • Debian 12 (Bookworm)
  • Red Hat Enterprise Linux (RHEL) 9

Um dieser Einleitung folgen zu können, solltet ihr mit den Grundlagen der Linux-Systemadministration vertraut sein und zumindest mit den folgenden Begriffen etwas anfangen können:

Einleitung

Ein Intrusion Detection System (englisch intrusion „Eindringen“, IDS) bzw. Angriffserkennungssystem ist ein System zur Erkennung von Angriffen, die gegen ein Computersystem oder Rechnernetz gerichtet sind. Das IDS kann eine Firewall ergänzen oder auch direkt auf dem zu überwachenden Computersystem laufen und so die Sicherheit von Netzwerken und Computersystemen erhöhen. Erkannte Angriffe werden meistens in Log-Dateien gesammelt und Benutzern oder Administratoren mitgeteilt; hier grenzt sich der Begriff von Intrusion Prevention System (englisch prevention „Verhindern“, IPS) ab, welches ein System beschreibt, das Angriffe automatisiert und aktiv verhindert.

Quelle: https://de.wikipedia.org/wiki/Intrusion_Detection_System (Letzter Abruf: 2023-09-08)

Die Gruppe der Intrusion Detection Systems (IDS) untergliedert sich in:

  • Host-basierte IDS, welche auf einem Host installiert und betrieben werden
  • Netz-basierte IDS, welche auf Netzwerkkomponenten installiert werden und die Kommunikation auf Netz-Ebene überwachen
  • Hybride IDS, welche die Komponenten aus den vorstehend genannten Gruppen kombinieren

Beim AIDE handelt es sich um ein Host-basiertes IDS. Es ist unter der GPL-2.0 lizenziert.

Zweck und Nutzen des AIDE

Aus dem vorhergehenden Abschnitt ist bekannt, dass es sich bei AIDE um ein Host-basiertes System zur Angriffs- bzw. Einbruchserkennung für Linux-Systeme handelt. Es stellt ein kostengünstiges Werkzeug dar, mit dem die Integrität eines Systems überprüft werden kann.

Es soll dem Administrator helfen, zu erkennen, ob Dateien oder Verzeichnisse eines Systems hinsichtlich ihres Inhalts und bzw. oder ihrer Eigenschaften wie z.B. Berechtigungen, SELinux-Kontext, erweiterte Attribute, etc. verändert wurden.

Grundlegende Funktionsweise des AIDE

  • Die zu überwachenden Dateien und Verzeichnisse werden durch reguläre Ausdrücke in der Konfigurationsdatei bestimmt
  • Basierend auf diesen Regeln wird eine Datenbank erstellt
  • Nach dem Initialisieren der Datenbank kann AIDE dazuverwendet werden, die Integrität der Dateien und Verzeichnisse zu überprüfen
    • Die initial erstellte Datenbank dient dabei als Referenz
    • Bei folgenen Überprüfungen wird eine neue Datenbank erstellt und mit der Referenzdatenbank verglichen
  • Änderungen an überwachten Dateien und Verzeichnissen werden in der Logdatei /var/log/aide/aide.log protokolliert

Schwäche von AIDE und Host-basierter IDS im Allgemeinen

  • Programm, Konfigurationsdatei(en), Datenbank und Logdatei liegen lokal auf dem jeweiligen Host
  • Angreifer, welche lokale Dateien verändern können, können potenziell auch die zu AIDE gehörenden Dateien verändern
  • Dadurch muss die Integrität der zur Integritätsprüfung eingesetzten IDS bezweifelt werden

Um diese Schwäche zu minimieren, sind folgende Maßnahmen durch Administratoren in Erwägung zu ziehen:

  • Logdateien an einen zentralen Loghost senden
  • Die AIDE-Referenzdatenbank außerhalb des zu überwachenden Hosts speichern
  • Den Abgleich gegen die AIDE-Referenzdatenbank außerhalb des zu überwachenden Hosts durchführen

Wie diese Maßnahmen umgesetzt werden können, beschreibe ich in einem folgenden Beitrag.

Auswirkungen auf die eigene Arbeitsweise

Werden beispielsweise Konfigurationsdateien unterhalb von /etc auf Änderungen hin überwacht, wird auch jede beabsichtige Änderung protokolliert. Das Programm kann zwischen legitimen und unautorisierten Änderungen nicht unterscheiden.

Daher ist nach jeder legitimen Änderungen die Referenzdatenbank zu aktualisieren. Ich empfehle, dies als einen Schritt in den Konfiguration-Management-Workflow zu integrieren und diese Aufgabe einen Automaten wie Ansible, Chef, Puppet o.ä. erledigen zu lassen. Dies erscheint mir weniger fehleranfällig zu sein als bei einer manuellen Durchführung, wo dieser Schritt sicher gern einmal vergessen wird.

Die Installation von AIDE

AIDE ist in den Paketquellen der meisten Distributionen vorhanden und kann wie folgt installiert werden.

RHEL 9

$ sudo dnf in aide
[sudo] password for tronde: 
Updating Subscription Management repositories.
Last metadata expiration check: 2:26:44 ago on Fri 08 Sep 2023 08:16:28 PM CEST.
Dependencies resolved.
================================================================================
 Package Arch      Version            Repository                           Size
================================================================================
Installing:
 aide    x86_64    0.16-100.el9       rhel-9-for-x86_64-appstream-rpms    154 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 154 k
Installed size: 354 k
Is this ok [y/N]: 
  • Obiger Code-Block zeigt die Installationsanweisung für RHEL 9
  • Die Konfigurationdatei /etc/aide.conf besitzt im Auslieferungszustand bereits 303 Zeilen; ohne Kommentare und Leerzeilen sind es immerhin noch 161
  • Den Aufbau der Datei erklärt die Manpage aide.conf(5)
  • Um AIDE sinnvoll nutzen zu können, sollte sich jeder Administrator mit dem Inhalt von /etc/aide.conf vertraut machen; oder würdet ihr einem Firewall-Regelwerk vertrauen, das ihr nicht kennt?
  • Im Abschnitt „Gedanken zur Konfiguration von AIDE“ findet ihr meine Gedanken und Hinweise zur Konfiguration

Debian 12 (Bookworm)

$ sudo apt install aide
[sudo] password for jkastning: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  aide-common liblockfile-bin liblockfile1 libmhash2
Suggested packages:
  figlet
The following NEW packages will be installed:
  aide aide-common liblockfile-bin liblockfile1 libmhash2
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 372 kB of archives.
After this operation, 1064 kB of additional disk space will be used.
Do you want to continue? [Y/n]
  • Obiger Code-Block zeigt die Installationsanweisung für Debian 12
  • Neben aide werden noch die Pakete aide-common, liblockfile-bin, liblockfile1 und `libmhash2` installiert
    • Neben der Konfigurationdatei /etc/aide/aide.conf installiert Debian auch das Verzeichnis /etc/aide/aide.conf.d, in welchem sich direkt nach der Installation schon etliche Konfigurationsdateien befinden:
$ ls -l /etc/aide/aide.conf.d/ | wc -l
212
  • Auch hier empfehle ich Administratoren, sich mit der Konfiguration zu beschäftigen und sich damit vertraut zu machen (siehe dazu auch aide.conf(5))
  • Im folgenden Abschnitt „Zur Konfiguration von AIDE“ findet ihr meine Gedanken und Hinweise zur Konfiguration

Zur Konfiguration von AIDE

Während AIDE in RHEL über eine einzige Datei (/etc/aide.conf) konfiguriert wird, gibt es in Debian eine Konfigurationsdatei (/etc/aide/aide.conf) und die Verzeichnisse /etc/aide/aide.conf.d sowie /etc/aide/aide.settings.d, welche weitere Dateien zur Konfiguration und Einstellungen beinhalten.

Eine AIDE-Konfigurationsdatei aide.conf besteht aus drei verschiedenen Arten von Zeilen:

  • Optionen, welche die Konfigurationsparameter und Gruppen definieren; aufgebaut sind diese nach dem Muster Parameter = Wert bzw. Gruppenname = Wert
  • Regeln, welche bestimmen, welche Dateien und Verzeichnisse in die Datenbank aufzunehmen sind und welche Attribute überwacht werden sollen
  • Macros, mit denen sich Variablen definieren lassen; z.B. definierte @@define foo bar die Variable foo mit dem Wert bar

AIDE kann die folgenden Attribute bzw. Elemente von Dateien auf Änderungen hin überwachen:

#p:      permissions
#i:      inode
#n:      number of links
#u:      user
#g:      group
#s:      size
#b:      block count
#m:      mtime
#a:      atime
#c:      ctime
#S:      check for growing size
#acl:           Access Control Lists
#selinux        SELinux security context
#xattrs:        Extended file attributes
#md5:    md5 checksum
#sha1:   sha1 checksum
#sha256:        sha256 checksum
#sha512:        sha512 checksum
#rmd160: rmd160 checksum
#tiger:  tiger checksum

Der folgende Code-Block zeigt die Definition der beiden Gruppen NORMAL und DIR (aus der /etc/aide.conf in RHEL 9), welche spezifizieren, welche Attribute überwacht werden sollen, wenn die jeweilige Gruppe in einer Regel verwendet wird.

NORMAL = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha512

# For directories, don't bother doing hashes
DIR = p+i+n+u+g+acl+selinux+xattrs

Welche Dateien und Verzeichnisse in die AIDE-Datenbank aufzunehmen bzw. auszuschließen sind durch reguläre Ausdrücke bestimmt. Der nächste Code-Block zeigt drei Beispiele, die anschließend erläutert werden:

/etc NORMAL
=/var/log/ DIR
=/home DIR
!/dev
  • Das Verzeichnis /etc und alle darunterliegenden Dateien und Verzeichnisse werden in die AIDE-Datenbank aufgenommen und mit den Regeln aus der Gruppe NORMAL verknüpft
  • Nur das Verzeichnis /var/log/ und die direkt darunter befindlichen Dateien und Verzeichnisse werden in die AIDE-Datenbank aufgenommen und mit der Gruppe DIR verknüpft; der Inhalt der Unterverzeichnisse wird nicht in die Datenbank aufgenommen
  • Ausschließlich /home wird aufgenommen; nicht jedoch der Inhalt davon
  • Das Verzeichnis /dev und alle darunterliegenden Dateien und Verzeichnisse werden nicht in die AIDE-Datenbank aufgenommen

Initialisierung der AIDE-Datenbank

Mit Sicherheit und Vertrauen ist das immer so eine Sache. Am besten ist es stets, wenn Vertrauen für Sicherheit nicht erforderlich ist. Daher rate ich an dieser Stelle nochmals ausdrücklich, die AIDE-Konfiguration zu überprüfen und ggf. den eigenen Bedürfnissen anzupassen… Nur um direkt gegen meinen eigenen Rat zu verstoßen.

Der Umfang an Regeln ist in beiden Systemen so groß, dass ich in dieser Einführung nicht alle einzeln erläutern kann. Ich vertraue für diese Einführung daher darauf, dass die Distributionen eine sinnvolle Konfiguration ausliefern.

Initialisiert wird die Datenbank je nach Distribution mit einem leicht abgewandelten Befehl.

Beispiel mit RHEL 9

$ sudo time aide --init
Start timestamp: 2023-09-18 20:50:06 +0200 (AIDE 0.16)
AIDE initialized database at /var/lib/aide/aide.db.new.gz

Number of entries:      54290

---------------------------------------------------
The attributes of the (uncompressed) database(s):
---------------------------------------------------

/var/lib/aide/aide.db.new.gz
  MD5      : xOf5Bs/Hb2Caa5i2K41fbg==
  SHA1     : KoCkqwfe+oZ2rlQTAU+AWQBrt2I=
  RMD160   : eM6IC68wq1VRhDbyHhRqy+63ldI=
  TIGER    : lQC+UTBqUm0iEDdKA0u7THqAPLNQxegH
  SHA256   : vdzjqIr/m7FgjXdZLQG+D1Pvf75WlF17
             WYiA6gU+4Pg=
  SHA512   : EdMB0I92j05zlfjXHcJFasZCAvkrK9br
             6zQEcDfD4IDM8D9c1Sz0r7A5tJTKGXVZ
             AFCOJR65j66ihKB0suFS6w==


End timestamp: 2023-09-18 20:50:19 +0200 (run time: 0m 13s)

Die erzeugte Datenbank wird umbenannt, indem das new aus dem Dateinamen entfernt wird.

$ sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

Die umbenannte Datei stellt die Referenzdatenbank dar, gegen die mit dem Befehl aide --check geprüft werden kann, ob es Änderungen im Dateisystem gab.

In diesem Artikel gebe ich mich damit zufrieden, dass die Datenbank auf dem zu überwachenden Host liegt und damit dem Risiko unterliegt, von einem Angreifer manipuliert zu werden (siehe zu den Schwächen oben). Ich gehe in einem Folgeartikel darauf ein.

Beispiel mit Debian 12

Unter Debian wird die AIDE-Datenbank mit dem Wrapper-Script aideinit (siehe aideinit(8)) initialisiert. Das README unter /usr/share/doc/aide-common/README.Debian.gz warnt bereits davor, dass Debian mit zu restriktiven Einstellungen daherkommt:

Configuring AIDE the Debian way
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AIDE’s Debian default configuration takes a very paranoid stance and
is likely to report more changes than you will need to focus your
attention on.

/usr/share/doc/aide-common/README.Debian.gz

Lassen wir uns überraschen…

$ sudo time aideinit
Running aide --init...
7044.57user 54.97system 2:00:40elapsed 98%CPU (0avgtext+0avgdata 132408maxresident)k
231120192inputs+88320outputs (12major+66397minor)pagefaults 0swaps

Das hat deutlich länger gedauert und endete mit einer deutlich kürzeren Ausgabe. Die erzeugte Datenbank ist jedoch wie bei RHEL im Verzeichnis /var/lib/aide/ zu finden.

:~# ls -l /var/lib/aide/
total 43536
-rw------- 1 root  root  22286930 Sep 19 15:13 aide.db
-rw------- 1 _aide _aide 22286930 Sep 19 15:13 aide.db.new
:~# qm start 102
:~# file /var/lib/aide/aide.db.new 
/var/lib/aide/aide.db.new: gzip compressed data, max compression, from Unix, original size modulo 2^32 44239215
:~# file /var/lib/aide/aide.db
/var/lib/aide/aide.db: gzip compressed data, max compression, from Unix, original size modulo 2^32 44239215

Warum die Erstellung so viel länger gedauert hat, weiß ich nicht. Ich habe keine Idee dazu. Auch Debian erzeugt eine gzip-komprimierte Datenbank, auch wenn hier keine Dateiendung darauf hinweist. Ich finde das etwas seltsam, behalte die Standardeinstellung für diese Einführung jedoch bei. Dafür muss die Datei nicht manuell umbenannt werden, da direkt eine Kopie erstellt wird, die als Referenzdatenbank genutzt werden kann.

Im Gegensatz zu RHEL wird unter Debian auch ein Timer namens dailyaidecheck.timer installiert, welcher täglich einen automatischen Check auf Veränderungen durchführt. Allerdings ist es für einen Angreifer ein Leichtes, diese Timer-Unit zu deaktivieren.

Auf Änderungen prüfen

Unter Debian und RHEL werden die in der Referenzdatenbank enthaltenen Elemente mit folgendem Befehl auf Änderungen überprüft:

:~# aide --check                                    # unter RHEL
:~# aide --check --config /etc/aide/aide.conf       # unter Debian

Ich habe meine Testsysteme ein paar Tage laufen lassen und einen AIDE-Integritätscheck durchgeführt. Hier das Ergebnis für ein RHEL 9 System:

$ sudo aide --check
Start timestamp: 2023-09-26 19:54:59 +0200 (AIDE 0.16)                          
AIDE found differences between database and filesystem!!                        
                                                                                
Summary:                                                                        
  Total number of entries:      54290   
  Added entries:                0                                               
  Removed entries:              0                                               
  Changed entries:              3                                               
                                                                                
---------------------------------------------------                             
Changed entries:                                                                
---------------------------------------------------               
                                                                                
f = ...    . ..S : /var/log/insights-client/insights-client.log.3               
f < ...    . ... : /var/log/rhsm/rhsmcertd.log                                  
f < ...    . ... : /var/log/squid/cache.log                                     
                                                                                
---------------------------------------------------              
Detailed information about changes:
---------------------------------------------------                             
                                                                                
File: /var/log/insights-client/insights-client.log.3                            
  SELinux  : system_u:object_r:insights_clien | unconfined_u:object_r:insights_c
             t_var_log_t:s0                   | lient_var_log_t:s0
                                                                                
File: /var/log/rhsm/rhsmcertd.log                                               
  Size     : 1426                             | 1343                            
                                                                                
File: /var/log/squid/cache.log                                                  
  Size     : 6230                             | 334              
                                                                                
                                                                                
---------------------------------------------------
The attributes of the (uncompressed) database(s):                               
---------------------------------------------------                             
                                                                                
/var/lib/aide/aide.db.gz                                                        
  MD5      : xOf5Bs/Hb2Caa5i2K41fbg==   
  SHA1     : KoCkqwfe+oZ2rlQTAU+AWQBrt2I=                                       
  RMD160   : eM6IC68wq1VRhDbyHhRqy+63ldI=                                       
  TIGER    : lQC+UTBqUm0iEDdKA0u7THqAPLNQxegH                                   
  SHA256   : vdzjqIr/m7FgjXdZLQG+D1Pvf75WlF17                                   
             WYiA6gU+4Pg=                                                       
  SHA512   : EdMB0I92j05zlfjXHcJFasZCAvkrK9br                                   
             6zQEcDfD4IDM8D9c1Sz0r7A5tJTKGXVZ                     
             AFCOJR65j66ihKB0suFS6w==                                           
                                                                                
                                                                                
End timestamp: 2023-09-26 19:55:12 +0200 (run time: 0m 13s)

Die Integritätsprüfung in obigen Code-Block führt Änderungen an drei Dateien auf:

  • Das SELinux-Label einer Log-Datei hat sich geändert
  • Die Größe von zwei weiteren Log-Dateien hat sich geändert
  • Die Änderungen werden in einer Zusammenfassung und im Detail ausgegeben
  • Eine Erläuterung zur Ausgabe unter „Changed entries“ findet sich im Absatz summarize_changes in aide.conf(5).
  • Man erhält Informationen darüber, was sich geändert hat, nicht warum sich diese Änderungen ergeben haben

Abbruch meiner Tests unter Debian 12 (Bookworm)

Unter Debian hat die Integritätsprüfung über Stunden einen CPU-Kern blockiert. Der Prozess ist in einem futex Syscall hängen geblieben.

Ob es an meinem System liegt oder AIDE unter Debian generell ein Problem hat, kann ich nicht sagen. Ich bin der Sache nicht weiter nachgegangen.

Falls jemand von euch AIDE unter Debian einsetzt und dies liest, freue ich mich, wenn ihr eure Erfahrungen mit mir teilt.

Die Referenzdatenbank aktualisieren

Mit dem Befehl aide --update wird die Datenbank-Integrität geprüft und eine neue Datenbank /var/lib/aide/aide.db.new.gz erzeugt. Die bestehende Referenzdatenbank /var/lib/aide/aide.db.gz wird dabei nicht überschrieben und bleibt zunächst erhalten. Möchte man diese länger aufbewahren, kann man sie umbenennen und bspw. einen Zeitstempel anhängen. Anschließend erzeugt man mit mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz eine neue Referenzdatenbank.

Der folgende Code-Block zeigt die Ausgabe von aide --update unter RHEL 9.

~]# aide --update                                            
Start timestamp: 2023-09-26 20:13:52 +0200 (AIDE 0.16)
AIDE found differences between database and filesystem!!
New AIDE database written to /var/lib/aide/aide.db.new.gz
                                                                                
Summary:                                
  Total number of entries:      54290
  Added entries:                0
  Removed entries:              0    
  Changed entries:              3                                               
                                                                                
---------------------------------------------------
Changed entries:                                                                
---------------------------------------------------
                                                                                
f = ...    . ..S : /var/log/insights-client/insights-client.log.3
f < ...    . ... : /var/log/rhsm/rhsmcertd.log
f < ...    . ... : /var/log/squid/cache.log

---------------------------------------------------        
Detailed information about changes:                                             
---------------------------------------------------

File: /var/log/insights-client/insights-client.log.3                     [0/100]
  SELinux  : system_u:object_r:insights_clien | unconfined_u:object_r:insights_c
             t_var_log_t:s0                   | lient_var_log_t:s0
                                                                                
File: /var/log/rhsm/rhsmcertd.log                                               
  Size     : 1426                             | 1343                            
                                                                                
File: /var/log/squid/cache.log                                                  
  Size     : 6230                             | 334                             
                                        
                                                                                
---------------------------------------------------                             
The attributes of the (uncompressed) database(s):
---------------------------------------------------         
                                        
/var/lib/aide/aide.db.gz       
  MD5      : xOf5Bs/Hb2Caa5i2K41fbg==                                           
  SHA1     : KoCkqwfe+oZ2rlQTAU+AWQBrt2I=                                       
  RMD160   : eM6IC68wq1VRhDbyHhRqy+63ldI=              
  TIGER    : lQC+UTBqUm0iEDdKA0u7THqAPLNQxegH                                   
  SHA256   : vdzjqIr/m7FgjXdZLQG+D1Pvf75WlF17         
             WYiA6gU+4Pg=                                                       
  SHA512   : EdMB0I92j05zlfjXHcJFasZCAvkrK9br            
             6zQEcDfD4IDM8D9c1Sz0r7A5tJTKGXVZ                                   
             AFCOJR65j66ihKB0suFS6w==   
                                        
/var/lib/aide/aide.db.new.gz     
  MD5      : Dgoc1/L5F1UfXPAQRvMdTg==
  SHA1     : 23RFwEBIh0kw/3TiiVAh39Fzx0Q=                                       
  RMD160   : 1szie2CW1dyLmaKFg01j48Fr+Us=                                       
  TIGER    : TgdG3zNAOSZH2D9jkyvBves8PtjC0lCR      
  SHA256   : hjn9vxFxg4KoVwT3YvgU347EhvTCg5ey                                   
             lfktpr/OrcA=                                                       
  SHA512   : x6E3YPa0eILD3nZqDt6N755KSmPRFOz8                                   
             lhKD9CimYScSpxyoVxJAVWiozR8KUwkt                    
             Ao7mgy3BgtUA0MZuNMv43w==                                           
                                                                                

End timestamp: 2023-09-26 20:14:03 +0200 (run time: 0m 11s)
~]# ls -l /var/lib/aide                                      
total 6184                                                                      
-rw-------. 1 root root 3163359 Sep 18 20:50 aide.db.gz                         
-rw-------. 1 root root 3163384 Sep 26 20:14 aide.db.new.gz

Ende

An dieser Stelle endet die Einführung in das Advanced Intrusion Detection Environment (AIDE). Kommt das Ende für euch abrupt? Ist es ein Ende mit Schrecken? Lasst es mich gern wissen.

In dieser Einführung habe ich beschrieben, was Intrusion-Detection-Systeme im Allgemeinen und AIDE im Speziellen sind. Ich bin auf deren Nutzen eingegangen und habe die Schwächen von AIDE als Host-basiertem IDS benannt. Installation, Konfiguration, Integritäts-Check und Aktualisierung der Datenbank wurden erklärt und mit Beispielen belegt.

Was ist nun von AIDE zu halten?

Nun, es ist besser als nichts. Man besitzt damit ein Werkzeug, mit dem sich Änderungen im Dateisystem erkennen lassen. Man muss sich jedoch der Schwächen Host-basierter IDS bewusst sein. Ein Angreifer mit lokalen root-Rechten kann dieses Werkzeug mit wenig Aufwand unschädlich machen bzw. die eigenen Änderungen verschleiern.

Sicher kann man einen Integritätscheck automatisiert alle 5 Minuten durchführen und für Änderungen eine E-Mail-Benachrichtigung einrichten. Doch wirkt dies etwas hemdsärmelig. Daher werde ich dieses Thema in einem späteren Artikel aufgreifen und zeigen, wie man AIDE in einen Automations- bzw. Konfigurations-Management-Prozess einbinden kann.