Normale Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.
Ältere BeiträgeHaupt-Feeds

Raspberry Pi OS Bullseye -> Bookworm

30. April 2024 um 04:00

Da ich einiges an Zeit in meine auf dem Raspberry Pi 4 laufende Nextcloud investiert habe, wäre es schade, für das aktuelle Raspberry Pi OS 12, alles noch einmal aufsetzen und konfigurieren zu müssen. Obwohl die Entwickler des Betriebssystems von einem Upgrade generell abraten, habe ich mich auf die Suche nach einer guten und funktionierenden Anleitung gemacht und bin auf den vielversprechenden Artikel „Raspberry Pi OS – Update von Bullseye (11) auf Bookworm (12)“ von Sascha Syring gestoßen.

Um das Ganze ausgiebig zu testen, habe ich das Upgrade zuerst auf einem Raspberry Pi 4 durchgeführt, auf dem ein Mumble-Server läuft, den unsere Community produktiv zum Erfahrungsaustausch nutzt. Nachdem dies alles problemlos funktioniert hat, habe ich mich an meinen Nextcloud-RasPi gewagt. Was es weiter zu beachten gab, darauf gehe ich am Ende des Artikels noch ein.

Systemupgrade

Bevor es los geht muss das System auf den aktuellsten Stand unter Raspberry Pi OS 11 Bullseye gebracht werden. Hierzu führt man Folgendes aus:

sudo apt update && sudo apt upgrade && sudo apt dist-upgrade

Paketquellen

Danach werden die Paketquellen auf das neue System Bookworm angepasst. Hierzu öffnet man die /etc/apt/sources.list

sudo nano /etc/apt/sources.list

und kommentiert alle aktiven Quellen, indem man vor jede aktive Zeile eine Raute „#“ setzt. Danach fügt man die drei Zeilen

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware

am Anfang ein und speichert die Datei mit Ctr + o ab und verlässt dann den Editor mit Ctr + x.

Paketquellen
Paketquellen

Das Gleiche Spiel wiederholt man mit den zusätzlichen Paketquellen.

sudo nano /etc/apt/sources.list.d/raspi.list

Hier wird nun folgende Zeile an den Anfang gesetzt:

deb http://archive.raspberrypi.org/debian/ bookworm main

Die Datei wird mit Ctr + o gespeichert und der Editor mit Ctr + x verlassen. Ist dies geschehen, können die Paketquellen neu eingelesen werden.

Zusätzliche Paketquellen
Zusätzliche Paketquellen
sudo apt update

Bootpartition

Nun kommt der kniffligste Teil. Die Bootpartition muss an die neuen Gegebenheiten angepasst werden. Dazu wird die alte Boot-Partition ausgehängt.

sudo umount /boot

Dann wird das neue Verzeichnis /boot/firmware erstellt.

sudo mkdir /boot/firmware

Jetzt bearbeitet man die Partitionstabelle:

sudo nano /etc/fstab

Hier wird der Eintrag der Bootpartition entsprechend eingetragen. Bei mir sieht das so aus:

Datei zum Einbinden der Datenträger
Datei zum Einbinden der Datenträger

Die Datei wird wieder mit Ctr + o gespeichert und der Editor mit Ctr + x verlassen. Damit die Änderungen wirksam werden, wird systemd neu geladen

sudo systemctl daemon-reload

und die neue Boot-Partition gemountet.

sudo mount /boot/firmware

Bootloader und Kernel

Im Nachgang werden die aktuelle Firmware und der aktuelle Kernel für das Raspberry Pi OS 12 (Bookworm) installiert

sudo apt install raspi-firmware linux-image-rpi-v8

und der alte Bootloader und Linux-Kernel entfernt.

sudo apt remove raspberrypi-kernel raspberrypi-bootloader

Ist dies geschehen, müssen die Paketquellen nochmalig mit

sudo apt update

eingelesen werden.

Upgrade

Nun kann das eigentlich Upgrade durchgeführt werden. Hierbei stoppt der Vorgang bei den wichtigsten Konfigurationsdateien. Diese werden in der Regel alle beibehalten.

sudo apt full-upgrade

System aufräumen

Nun wird das System noch aufgeräumt.

sudo apt autoremove
sudo apt clean

Neustart

Nach dem Neustart

sudo reboot now

sollte nun das aktuelle Raspberry Pi OS 12 laufen. Das installierte Betriebssystem lässt man sich mit

cat /etc/os-release

anzeigen.

PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Mit

uname -a

kann man nun den aktuellen Kernel checken. Meine Ausgabe sieht wie folgt aus:

Linux nextcloud 6.6.20+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07) aarch64 GNU/Linux

(„nextcloud“ in dieser Zeile ist der Hostname)

Abschließend sei darauf hingewiesen, dass das Upgrade einige Gefahren in sich birgt. Bitte vorher unbedingt an ein Backup denken, was im Bedarfsfall wieder eingespielt werden kann!

Noch zu erwähnen

Eingangs des Artikels hatte ich erwähnt, dass es Weiteres zu beachten gibt. Durch das Upgrade wurden die Einstellungen des Dienstes zu meinem Turn-Server zurück gesetzt. Ein funktionierender Turn-Server ist wichtig, um reibungslosen Verlauf in Videokonferenzen zu ermöglichen.

Wer also wie ich eine Nextcloud auf dem Raspberry Pi installiert hat und bisher meinen Anleitungen gefolgt ist, muss den zeitverzögerten Start des Turnservers, wie im Artikel „coTurn zeitverzögert auf Raspberry Pi starten“ beschrieben, wieder neu konfigurieren. Dazu editiert man die Datei /lib/systemd/system/coturn.service:

sudo nano /lib/systemd/system/coturn.service

Nun fügt man den folgenden Eintrag unter [Service] ein und speichert die Änderung mit Ctlr + o.

ExecStartPre=/bin/sleep 30

Den Editor verlässt man dann wieder mit Ctrl + x. Durch den Eintrag wird nun eine Verzögerung von 30 Sekunden erzwungen. Mit 

sudo service coturn restart

wird der Turnserver zeitverzögert neu gestartet. jetzt arbeitet coTURN nach dem nächsten Reboot des Raspberry Pi wie gewünscht.

Viel Erfolg!

Schleswig-Holstein setzt auf Open-Source statt Microsoft

Von: MK
09. April 2024 um 06:10

Immer mehr Länder und Behörden weltweit streben danach, die Abhängigkeit von einzelnen, proprietären Anbietern zu verringern und Open-Source-Software zu fördern. Dieser Trend zeigt sich auch in Deutschland, wo das Bundesland Schleswig-Holstein seine Bemühungen verstärkt von Microsoft-Produkten auf Open-Source umzusteigen. Die Landesregierung hat beschlossen, die PCs der rund 30.000 Landesbediensteten auf Open-Source-Lösungen umzustellen und hin zu...

Der Beitrag Schleswig-Holstein setzt auf Open-Source statt Microsoft erschien zuerst auf MichlFranken.

Was ist neu in Postfix 3.9

24. März 2024 um 09:29

Anfang März wurde eine neue Postfix Version 3.9 veröffentlicht. Nach fast einem Jahr Entwicklungszeit löst diese Version gleichzeitig den alten stabilen Zweig 3.5 ab, welcher aus dem Jahr 2020 stammt.

Postfix

Abschaltungen

Mit dieser neuen Major Version wurden alte Zöpfe abgeschnitten und alte, wirklich alte, MySQL Versionen < 4.0. MySQL werden nicht mehr unterstützt.

Auch Features wie "permit_naked_ip_address", "check_relay_domains" und "reject_maps_rbl" wurden entfernt. Die Funktionen "disable_dns_lookups" und "permit_mx_backup" wurden als überholt markiert und werden entfernt.

Änderungen

Daneben wurden die angekündigten Sicherheitsfeatures implementiert, um unter anderem gegen SMTP Smuggling vorzugehen.
So müssen SMTP Clients nun <CR><LF>.<CR><LF> senden, um das Ende eines Datenstroms zu signalisieren.
Die Funktion "smtpd_forbid_unauth_pipelining" trennt ab sofort SMTP-Clients, die gegen RFC 2920 (oder 5321) Befehlspipelining-Beschränkungen verstoßen.
Zusätzlich gab es Formatierungsänderungen im Mailheader. Postfix verwendet jetzt zweistellige Tagesformate. Heißt, einstelligen Nummern wird eine Null vorgestellt.

Neuerungen

Natürlich gab es auch einige Neuerungen in Postfix 3.9, die dich sicher interessieren werden.

  1. MongoDB: Postfix spricht MongoDB, was es dir erlaubt, Daten wie aliases oder canonical dort abzulegen
  2. ID Weiterleitung: IDs können nun via ENVID (Envelope ID) weitergeleitet werden
  3. MySQL and PostgreSQL Verbesserungen: Solltest du MySQL oder PSQL einsetzen, werden die Parameter "idle_interval" und "retry_interval" ab sofort unterstützt. Das erleichtert dir das Verbindungsmanagement
  4. Raw Public Key Support: Erlaubt dir die Verwendung eines selbst signierten Zertifikats anstatt eines x509.
  5. OpenSSL Konfiguration: Postfix unterstützt jetzt eigene OpenSSL Konfigurationsdateien "tls_config_file" und "tls_config_name"

Security

Auf Seiten der Sicherheit gab es ebenfalls Neuerungen.
Das weiter oben bereits erwähnte "smtpd_forbid_unauth_pipelining = yes" gegen Blind Angriffe (SSRF Angriffe) und das ebenfalls genannte Signaling zum Ende des Datenstroms (SMTP Smuggling) zählen hier mit rein. Letzteres hat mit "smtpd_forbid_bare_newline = normalize" eine weitere Sicherheitsfunktion erhalten. Gleiches gilt für das neue "cleanup_replace_stray_cr_lf = yes"
Als Maßnahme gegen Amplification Angriffe wurden die Abfragen des DNS Clients auf 100 reduziert, gewissermaßen ein Rate Limiter am oberen Ende.

Vollständige Release Notes

Besuch bei den Chemnitzer Linux-Tagen 2024

17. März 2024 um 14:43

Gestern, am 16.03.2024, habe ich die Chemnitzer Linux-Tage besucht. Für mich sind die CLT immer das Highlight des Jahres. Da ich meist nicht an beiden Tagen vor Ort sein kann, schaue ich mir das Programm im Vorfeld genau an und plane meinen Ausflug.

CLt - Einlassbändchen
Einlassbändchen

Themen wie Finanzen und Börse faszinieren mich, deshalb wollte ich natürlich einen der ersten Vorträge „Jeder Meter zählt – Linux @ Deutsche Börse“ nicht verpassen. Das Kurse und Handel über eine Linux-Infrastuktur ermittelt bzw. abgewickelt werden, war interessant zu hören. Erst Latenzen von < 1ms des Trading-Systems machen den sogenannten Hochfrequenzhandel der Börse möglich. Dieser Vortrag erlaubte einen Blick aus einer etwas anderen Perspektive auf den Handelsplatz Frankfurt der Deutschen Börse.

Vortrag - Jeder Meter zählt – Linux @ Deutsche Börse
Jeder Meter zählt – Linux @ Deutsche Börse

Ein weiterer spannender Vortrag war, „Wie funktioniert ChatGPT? Gibt es das auch als Open Source?„. Hier konnte man etwas über Ideen und Grundlagen des jetzigen Stands der Künstlichen Intelligenz hören, z.B. wie Algorithmen aufgebaut sind und Fragen von ChatGPT abgearbeitet werden. Auch ein kleiner Ausblick in die von Nvidia dominierte Hardware wurde gewagt.

Vortrag - Wie funktioniert ChatGPT? Gibt es das auch als Open Source?
Wie funktioniert ChatGPT? Gibt es das auch als Open Source?

Den interessantesten Vortrag hielt wie immer Prof. Klaus Knopper mit „Ransomware-Angriffe abwehren mit Linux und Open Source„. Dieses Mal wurde nicht das neue Knoppix vorgestellt, sondern es wurde ein aktuelles Thema, wie die erfolgreiche Ransomeware-Attacke auf die Universität Heidelberg, aufgegriffen. Interessant war die Herangehensweise einer Datenrettung nach solch einem Vorfall.

Vortrag - Ransomware-Angriffe abwehren mit Linux und Open Source
Ransomware-Angriffe abwehren mit Linux und Open Source

Ein weiterer sehr informativer Vortrag „Sichere Datenhaltung und Backup in der Cloud“ bestärkte mich in meinem Handeln im Umgang mit meinen eigenen Daten, auf dem richtigen Weg zu sein.

Vortrag - Sichere Datenhaltung und Backup in der Cloud
Sichere Datenhaltung und Backup in der Cloud

Der für mich letzte Vortrag des Tages hatte den Titel „Static Website am Beispiel Hugo„. Hier bekam ich einen kleinen Eindruck in die freie Software Hugo zur Erzeugung statischer Webseiten. Ich muss ganz ehrlich zugeben, dass ich mir Hugo an dieser stelle sehr viel einfacher vorgestellt hatte. Jedoch bin ich der Meinung, dass sich viele Sachen ganz selbstverständlich erschließen, sobald ich das System tatsächlich einmal produktiv einsetzen würde. Diesen Selbstversuch werde ich sicher demnächst einmal wagen.

Vortrag - Static Website am Beispiel Hugo
Static Website am Beispiel Hugo

Am Ende des Tages gab noch einen Tux und dann ging es nach Hause.

Lego-Tux
Tux

In ein paar Themen konnte ich heute via Stream noch hinein hören bzw. schauen. Ein Großteil der Vorträge wird demnächst über die Webseite chemnitzer.linux-tage.de verfügbar sein.

Eine Arduino Uhr

28. Februar 2024 um 18:00

Um auch einmal in die Welt des Arduino einzutauchen, habe ich mir ein paar Bauteile bestellt und etwas experimentiert. Da ich ein großer Uhren-Fan bin, hatte ich auch gleich eine adäquate Idee. Bei meiner Suche bin ich auf den Artikel „MAKING AN ARDUINO I2C-DIGITALUHR“ gestoßen. So war die Idee geboren, diese Uhr nachzubauen.

Nachdem alle Bauteile inkl. des Arduino Uno Rev. 3 bei mir eingetroffen waren, hieß es ein wenig löten. Die 7-Segmentanzeige HT16K33 sowie das Real Time Clock Modul DS1307 mussten mit Pins für das Steckboard versehen werden. Als das geschafft war, kämpfte ich damit den Code auf den Arduino zu übertragen.

Alte Arduino IDE Version

Hier begannen nun meine Probleme. Ich stellte mir das Vorhaben recht einfach vor. Ich musste doch einfach nur alle Bauteile verbinden, die benötigten Bibliotheken einbinden, den Code in die Software Arduino IDE hinein kopieren und diesen dann in den Arduino hochladen.

Leider funktionierte das aber nicht wie erwartet und ich als Arduino-Neuling war recht ratlos. Mein erster Gedanke war, dass vielleicht beim Löten etwas kaputtgegangen oder der Fehler bei der Verdrahtung zu suchen war. Meine Fehlersuche lief jedoch ins Leere. Da ich absoluter Neuling in der Programmierung dieses Mikrocontrollers war, musste ich mich zunächst einlesen, Videos anschauen, Arduino-Experten befragen und natürlich selbst ausprobieren und experimentieren.

Als ich mir den oben erwähnten Artikel nochmals etwas näher ansah, stellte ich fest, dass dieser Beitrag schon fast 12 Jahre alt ist. Also verwarf ich den Gedanken der Uhr erst und begann mit den Grundlagen.

Die von mir installierte Version von Arduino IDE war die 1.8.19. Hier gibt es etliche Beispiele etwas aus dem Gerät herauszuholen. Im Internet fand ich eine ähnliche Grafik, wie die hier abgebildete (Arduino Uno mit LED). Hier hat ein mutiger User eine LED in Pin 13 und GND gesteckt (hierfür sollte aber ein Vorwiderstand ca. 220 Ohm in Reihe geschaltet werden). Das schnörkellose Beispiel gefiel mir und ich konnte über „Blink“ dem Arduino das erste Lebenszeichen entlocken.

Arduino Uno mit angeschlossener LED an Pin 13
Arduino Uno mit LED

Da ich nun eigentlich das HT16K33 Display ansteuern wollte, suchte ich auch hierfür nach einem Beispiel. Ich fand so die gleichnamige Bibliothek und konnte auch hier einige Tests durchlaufen lassen. Das Display war also in Ordnung.

Einen selbigen Test führte ich mit der Real Time Clock DS1307 und der Bibliothek „RTClib“ durch. Hierbei bekam ich die Zeit im Monitor von Arduino IDE ausgegeben. Also war auch dieses Modul funktionstüchtig.

Nun war die Zuversicht sehr groß, dass ich nur noch alles zusammen stecken muss und ich die Uhr endlich zum Laufen bekomme. Leider klappte das aber nicht. Die in Arduino IDE 1.8.19 ausgegebene Fehlermeldung half mir an dieser Stelle nicht weiter.

Neue Arduino IDE Version

Obwohl ich der Meinung war, dass die verwendete Version mein Vorhaben realisieren kann, lud ich mir die aktuelle Version 2.3.2 herunter und entpackte diese im Downloads-Verzeichnis. Das Öffnen des Programms mit Rechtsklick auf Arduino-IDE -> Ausführen fand ich auf Dauer nicht so praktikabel, also baute ich mir ein Startup Icon mit folgendem Inhalt:

[Desktop Entry]
 Name=Arduino
 Comment=Arduino IDE
 Exec=/home/intux/Downloads/arduino-ide_2.3.2_Linux_64bit/arduino-ide
 Path=/home/intux/Downloads/arduino-ide_2.3.2_Linux_64bit/
 Icon=/home/intux/Downloads/arduino-ide_2.3.2_Linux_64bit/resources/app/resources/icons/512x512.png
 Terminal=false
 Type=Application
 Categories=Utility;Application;Development;

Dieses bekam den Namen Arduino und wurde erst einmal auf dem Desktop abgelegt. Dieser Starter wurde mit Rechtsklick -> Start erlauben aktiviert und danach in das Verzeichnis /usr/share/applications verschoben. So habe ich die aktuelle Version in mein System (Ubuntu 20.04 LTS) eingebunden.

Die Version 2.3.2 verriet mir nun beim Versuch den Code an den Arduino zu übertragen, wo der letzte und entscheidende Fehler lag. Es fehlte die Bibliothek „Adafruit_BusIO“.

Verdrahtung auf dem Steckboard Arduino Uno, DS1307 und HT16K33
Verdrahtung auf dem Steckboard

Nachdem diese nun eingebunden war, ließ sich der Code übertragen und das Herz der Uhr begann zu schlagen.

#include <Wire.h>
#include "Adafruit_LEDBackpack.h"
#include "Adafruit_GFX.h"
#include "RTClib.h"

RTC_DS1307 RTC;
Adafruit_7segment disp = Adafruit_7segment();

void setup() 
{
  Wire.begin();
  RTC.begin();
  if (! RTC.isrunning()) 
  {
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
  disp.begin(0x70);
}

void loop() 
{
  disp.print(getDecimalTime());
  disp.drawColon(true);
  disp.writeDisplay();
  delay(500);
  disp.drawColon(false);
  disp.writeDisplay();
  delay(500);
}

int getDecimalTime()
{
  DateTime now = RTC.now();
  int decimalTime = now.hour() * 100 + now.minute();
  return decimalTime;
}

Hier eine Auflistung der für dieses Experiment verwendeten Bibliotheken:

Vielleicht möchte ja der ein oder andere Leser diese Erfahrung auch machen? Ich wünsche also viel Spaß beim Nachbauen der Arduino-Clock!

Was ist Ubuntu Pro und wie schalte ich es ab?

26. Februar 2024 um 09:19

Ubuntu Pro ist eine Updateerweiterung für bestimmte Pakete der bekannten Distribution.
Ubuntu LTS soll so 10 Jahre Abdeckung für über 25.000 Pakete erhalten. Zusätzlich erhältst du Kernel Livepatching, Telefonsupport und Pakete fürs Hardening (NIST-certified FIPS crypto-modules, USG hardening mit CIS and DISA-STIG Profilen und Common Criteria EAL2).

Leider wird für dieses kostenpflichtige Produkt Werbung gemacht, auf dem Terminal und im Ubuntu Update Manager.
Sollte dich das stören, kannst du diese Meldungen mit wenigen Befehlen abschalten.
Alternativ kannst du dich auch einfach für Ubuntu Pro anmelden, denn der Zugang ist für Privatanwender für bis zu fünf Installationen umsonst.

Ubuntu Pro Nachrichten abschalten

sudo pro config set apt_news=false 

Das Abschalten der APT News reicht nicht ganz aus, um dir die Werbeeinblendung zu ersparen.
Du musst zusätzlich eine Datei editieren und deren Inhalt auskommentieren

nano /etc/apt/apt.conf.d/20apt-esm-hook.conf

ubuntu-pro-werbung-abschalten

Ubuntu Advantage deaktivieren oder deinstallieren

Optional kannst du das Ubuntu Advantage Paket entfernen, bzw. die Expanded SecurityMaintenance (ESM) abschalten, wenn du magst.
Ubuntu Advantage war der Vorgänger von Ubuntu Pro
Dieses beinhaltet wie die Pro-Variante Kernel Livepatching, Unterstützung für Landscape oder Zugriff auf eine Wissensdatenbank. Alles Dinge, die für Privatanwender nur bedingt interessant sind.

sudo systemctl disable ubuntu-advantage
#oder
sudo apt remove ubuntu-advantage-tools
# esm hook deaktivieren
sudo mv /etc/apt/apt.conf.d/20apt-esm-hook.conf /etc/apt/apt.conf.d/20apt-esm-hook.conf.disabled

Unterschied Ubuntu Advantage und Ubuntu Pro

Solltest du nun maximal verwirrt sein, was zu welchem Supportmodell gehört und wie es unterstützt wird, hier ein Vergleich von endoflifedate. Ubuntu Pro (Infra-Only) steht in der Tabelle für das alte Ubuntu Advantage.

ubuntu-lts-vs-ubuntu-pro

 

Neues Theme in WordPress neue Darkmode CSS

23. Februar 2024 um 11:09

Im Frontend ändert sich mein Blog nur noch marginal. Jedoch musste ich mich aufgrund von Änderungen im Sourcecode von WordPress für ein anderes Theme entscheiden. Zuvor hatte ich ein Theme von einem deutschen bekannten Entwicklerpaar gekauft, aber leider endet hier der Support doch recht schnell. Auch Bugfixes, welche ich einmal auf Github eingereicht hatte, wurden ... Weiterlesen

Der Beitrag Neues Theme in WordPress neue Darkmode CSS erschien zuerst auf Got tty.

Entfernen des gist-Plugins und YouTube aus WordPress

20. Februar 2024 um 12:16

Ich habe nun das nächste Plugin aus WordPress entfernt. Auch habe ich mir nochmals Gedanken über dieses Plugin gemacht und es ist definitiv nicht Datenschutz konform, wenn ich Daten aus Github nachgeladen habe. Ich hatte zwar somit immer die neueste Version des Codes eingebunden, aber es war eigentlich eine Faulheit auf Kosten der Lesenden. Im ... Weiterlesen

Der Beitrag Entfernen des gist-Plugins und YouTube aus WordPress erschien zuerst auf Got tty.

Umzug der Nextcloud von 32-Bit auf 64-Bit

16. Februar 2024 um 05:30

Nachdem unsere Community-Cloud das vorab letzte Software-Upgrade und eine neue SSD erhalten hatte, wurde es nun Zeit auch die Hardware auf eine neue Stufe zu heben. Da wir der Meinung waren, dass hierzu ein Raspberry P4 4 Modell B mit 8GB völlig ausreicht, haben wir uns bewusst für dieses Gerät entschieden. Eingepackt in ein passiv gekühltes Metallgehäuse wird uns diese Kombination, so hoffe ich, die nächste Zeit zuverlässig begleiten.

Da ein Upgrade der installierten Software vom Raspberry Pi 3 auf den Raspberry Pi 4 wenig sinnvoll und auch fast unmöglich umzusetzen ist, war die Idee, die Datenbank und das Datenverzeichnis der Nextcloud in eine Neuinstallation (64-Bit) einzubinden.

Für den Wechsel auf 64-Bit hätte eigentlich parallel zum bestehenden System eine Neuinstallation auf dem erwähnten Raspberry Pi durchgeführt werden müssen. Hier konnte ich mir die Arbeit aber ein wenig erleichtern, indem ich die MicroSD meiner eigenen Cloud klonen konnte. Auf dem geklonten System waren so nur einige Anpassungen vorzunehmen, bevor das neue Gerät an Stelle des 32-Bit-Systems in Betrieb genommen werden konnte.

Aufnahme mit Wärmebildkamera (passiv gekühltes Gehäuse für Raspberry Pi 4)
Aufnahme mit Wärmebildkamera (Raspberry Pi 4 – passive Kühlung)

Die aus dem Raspberry Pi 3 gesicherte Datenbank wurde in den Raspberry Pi 4 eingelesen und die Daten-SSD in die /etc/fstab eingebunden. Danach wurde der ddclient mit der DynDNS neu konfiguriert. Ein neues Zertifikat wurde erstellt und die automatische Upgrade-Routine hierzu angepasst. Zum Schluss mussten nur noch die Ports im Speedport-Router für die neue Hardware freigegeben werden.

Fazit

Der Aufwand hat sich in dem Sinne gelohnt, da dieses nun mittlerweile über fünfeinhalb Jahre existierende Projekt, zukunftssicher weiterbetrieben werden kann.

Bruteforce-Einträge in Nextcloud-Datenbank löschen

13. Februar 2024 um 05:00

Nachdem nun unsere Community-Cloud endlich wieder lief, habe ich versucht innerhalb der Gemeinschaft unseren Cloud-Speicher etwas zu bewerben. Bei einigen Nutzern war dieser inzwischen etwas in Vergessenheit geraten, samt den nötigen Passwörtern.

Es kommt natürlich immer wieder vor, dass Zugangsdaten nicht richtig verwahrt werden oder gar ganze Passwörter nicht mehr auffindbar sind. Mehrfache fehlerhafte Eingaben können jedoch, wie im Fall der Nextcloud, dazu führen, dass Nutzer-IPs ausgesperrt bzw. blockiert werden. Diesen Schutz nennt man Bruteforce-Schutz.

Bruteforce-Schutz

Nextcloud bietet einen eingebauten Schutzmechanismus gegen Bruteforce-Angriffe, der dazu dient, das System vor potenziellen Angreifern zu sichern, die wiederholt verschiedene Passwörter ausprobieren. Diese Sicherheitsvorkehrung ist standardmäßig in Nextcloud aktiviert und trägt dazu bei, die Integrität der Daten zu wahren und unautorisierten Zugriff auf das System zu verhindern.

Wie es funktioniert

Die Funktionsweise des Bruteforce-Schutzes wird besonders deutlich, wenn man versucht, sich auf der Anmeldeseite mit einem ungültigen Benutzernamen und/oder Passwort anzumelden. Bei den ersten Versuchen mag es unauffällig erscheinen, doch nach mehreren wiederholten Fehlversuchen wird man feststellen, dass die Überprüfung des Logins mit zunehmender Häufigkeit länger dauert. An dieser Stelle tritt der Bruteforce-Schutz in Kraft, der eine maximale Verzögerung von 25 Sekunden für jeden Anmeldeversuch einführt. Nach erfolgreicher Anmeldung werden sämtliche fehlgeschlagenen Versuche automatisch gelöscht. Wichtig zu erwähnen ist, dass ein ordnungsgemäß authentifizierter Benutzer von dieser Verzögerung nicht mehr beeinträchtigt wird, was die Sicherheit des Systems und die Benutzerfreundlichkeit gleichermaßen gewährleistet.

Bruteforce-Schutz kurzzeitig aushebeln

Hat nun einmal die Falle zugeschnappt und ein Anwender wurde aus der Nextcloud ausgesperrt, so kann sich das Problem über die Zeit von selbst lösen. Es gibt aber auch die Möglichkeit die Datenbank entsprechend zurückzusetzen.

Zuerst wechselt man in das Nextcloud-Verzeichnis. Danach werden über den folgenden OCC-Befehl die Bruteforce-Einträge der Datenbank resetet.

cd /var/www/html/nextcloud/
sudo -u www-data php occ security:bruteforce:reset 0.0.0.0

Neue Bruteforce-Attacken werden natürlich danach wieder geloggt und verdächtige IPs ausgesperrt.

Viel Erfolg!

PCEngines gegen HUNSN RJ03 getauscht

11. Februar 2024 um 12:44

Des Öfteren erinnere ich Kollegen daran, doch bitte bei Upgrades in einer Remoteshell mit einem terminal mutliplexer zu arbeiten. Falls doch einmal die Verbindung abbricht, nicht ein halb installiertes, oder konfiguriertes Paket vorliegt. Das kann viel und sehr unangenehme Arbeit auslösen. Man glaubt es kaum, den Fakt habe ich bei meiner Firewall in meinem Homeoffice ... Weiterlesen

Der Beitrag PCEngines gegen HUNSN RJ03 getauscht erschien zuerst auf Got tty.

Plugin WP-Appbox für WordPress deaktiviert

09. Februar 2024 um 21:51

WP-Appbox ist ein wunderbares Plugin, welches vielfältige Darstellungsmöglichkeiten für die Verlinkung verschiedener Apps bietet. Das Plugin war bei mir seit 2013 in Benutzung. Ich habe es erstmals bei dem Blogbeitrag Ownstagram ein eigenes Instagram verwendet. Das Plugin bindet verschiedene Stores anhand eines Shortcodes ein und zieht sich hier die gewünschten Daten aus dem Shop. Ein ... Weiterlesen

Der Beitrag Plugin WP-Appbox für WordPress deaktiviert erschien zuerst auf Got tty.

Cookieless WordPress seit heute

09. Februar 2024 um 18:27

Ich habe nun meine Bannermeldung nach dem Telekommunikation-Telemedien-Datenschutz-Gesetz (TTDSG) abgeschaltet. Siehe hierzu auch das Urteil des Bundesgerichtshofs vom 28. Mai 2020, Aktenzeichen I ZR 7/16.Ich betrieb meine Installation von Matomo schon so, dass seitens Matomo keine Cookies gesetzt wurden. Durch das Abschalten der Kommentarefunktion in WordPress konnten auch hier auf Cookies verzichtet werden. Den letzten Teil ... Weiterlesen

Der Beitrag Cookieless WordPress seit heute erschien zuerst auf Got tty.

Auf ein Minimum in WordPress

09. Februar 2024 um 12:51

Nach über 14 Jahren Gebrauch ist WordPress eine Art von Hassliebe. Es ist nicht so, dass ich nicht andere Plattform für das Schreiben im Netz ausprobiert hatte. Ich startete mit WordPress, besuchte Drupal,Octopress und Serendpity, um am Ende doch wieder bei WordPress zu landen. Somit sitze ich im Moment vor meinem, doch in die Jahre ... Weiterlesen

Der Beitrag Auf ein Minimum in WordPress erschien zuerst auf Got tty.

Fork: Grafischer Git-Client für macOS

08. Februar 2024 um 16:47

Ich habe mich nach einer kleinen Testphase gegen GitKraken und für Fork als grafischen Client für Git unter macOS entschieden.Gitkraken mag ein hervorragendes Werkzeug sein, aber das Abomodell hat mich abgeschreckt. Ich möchte noch erwähnen, dass GitKraken ein Studenten- und Universitätspaket anbietet. Ich werde vielleicht GitKraken Kollegen:innen an meinem Arbeitsplatz für einen Test vorschlagen. Dann ... Weiterlesen

Der Beitrag Fork: Grafischer Git-Client für macOS erschien zuerst auf Got tty.

Neue Sicherheitslücken bei glibc: syslog und qsort

31. Januar 2024 um 21:40

Es gibt wieder neue Sicherheitslücken in glibc. Dabei betrifft eine die syslog()-Funktion, die andere qsort(). Letztere Lücke existiert dabei seit glibc 1.04 und somit seit 1992. Entdeckt und beschrieben wurden die Lücken von der Threat Research Unit bei Qualys.

Die syslog-Lücke ist ab Version 2.37 seit 2022 enthalten und betrifft somit die eher die neuen Versionen von Linux-Distributionen wie Debian ab Version 12 oder Fedora ab Version 37. Hierbei handelt es sich um einen "heap-based buffer overflow" in Verbindung mit argv[0]. Somit ist zwar der Anwendungsvektor schwieriger auszunutzen, weil in wenigen Szenarien dieses Argument (der Programmname) dem Nutzer direkt überlassen wird, die Auswirkungen sind jedoch umso schwerwiegender. Mit der Lücke wird eine lokale Privilegienausweitung möglich. Die Lücke wird unter den CVE-Nummern 2023-6246, 2023-6779 und 2023-6780 geführt.

Bei der qsort-Lücke ist eine Memory Corruption möglich, da Speichergrenzen an einer Stelle nicht überprüft werden. Hierfür sind allerdings bestimmte Voraussetzungen nötig: die Anwendung muss qsort() mit einer nicht-transitiven Vergleichsfunktion nutzen (die allerdings auch nicht POSIX- und ISO-C-konform wären) und über eine große Menge an zu sortierenden Elementen verfügen, die vom Angreifer bestimmt werden. Dabei kann ein malloc-Aufruf gestört werden, der dann zu weiteren Angriffen führen kann. Das Besondere an dieser Lücke ist ihr Alter, da sie bereits im September 1992 ihren Weg in eine der ersten glibc-Versionen fand.

Bei der GNU C-Bibliothek (glibc) handelt es sich um eine freie Implementierung der C-Standard-Bibliothek. Sie wird seit 1987 entwickelt und ist aktuell in Version 2.38 verfügbar. Morgen, am 1. Februar, erscheint Version 2.39.

Raspberry Pi OS Buster -> Bullseye

27. Januar 2024 um 09:40

Heute möchte ich noch einmal ein Thema aus der Mottenkiste holen, welches ja eigentlich schon abgehakt sein sollte. Es geht um das Upgrade von Raspbian 10 auf das Raspberry Pi OS 11.

Anlass des Ganzen ist unsere Community-Cloud mit über 25 Nutzern. Diese Cloud wurde vor über fünfeinhalb Jahren zum Zwecke des Datenteilens ins Leben gerufen. Durch einen bedingten öfteren Standortwechsel verblieb das System auf einem Softwarestand von vor über zwei Jahren. Jetzt im neuen Zuhause stand dadurch ein gründlicher Tapetenwechsel an. D.h., dass im ersten Schritt das Betriebssystem auf Raspberry Pi OS 11 Bullsleye angehoben werden musste, bevor die Nextcloud von Version 22 auf 27 aktualisiert wurde. Weiterhin musste parallel PHP 7.3 auf Version 8.1 gezogen werden, um wieder in sicheres Fahrwasser zu gelangen. Bei der Hardware handelt es sich um einen Raspberry Pi 3 Model B. Auch dieses Gerät soll im laufe des Jahres noch ein Refresh erhalten.

Nun zum Upgrade auf das erwähnte Raspberry Pi OS 11.

Installation

Hilfreich bei der Installation war die Anleitung von linuxnews.de, die ich abschließend noch um zwei Punkte ergänzen musste. Hierbei konnte ich mich noch an mein erstes Upgrade dieser Art erinnern, dass es zu Unverträglichkeiten mit dem Desktop kam. Dieses Problem wird ganz am Ende des Artikels behandelt.

Zuerst wurde ein vollständiges Upgrade auf die aktuellste Version Raspbian 10 durchgeführt.

sudo apt update
sudo apt full-upgrade
sudo rpi-update

Danach wurden die Quellen auf Bullseye angepasst.

sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list
sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list.d/raspi.list

Im Anschluss folgte ein Update der Quellen und die erforderliche Installation von gcc-8.

sudo apt update && sudo apt install libgcc-8-dev gcc-8-base
sudo apt full-upgrade 
sudo apt -f install

Danach wurden unnötige Pakete und verbliebene heruntergeladene Pakete entfernt.

sudo apt autoremove
sudo apt clean

Nun mussten noch die Kernelbased Mode-Setting (KMS) in der /boot/config.txt angepasst werden. Hierzu wurden folgende zwei Befehle ausgeführt:

sudo sed -i 's/dtoverlay=vc4-fkms-v3d/#dtoverlay=vc4-fkms-v3d/g' /boot/config.txt
sudo sed -i 's/\[all\]/\[all\]\ndtoverlay=vc4-kms-v3d/' /boot/config.txt

Desktop aufräumen

Nach dem Reboot mit angeschlossenem Monitor fiel auf, dass sich das Programm Parcellite in der Menüleiste verewigt hatte. Parcellite war vor dem Systemupgrade auf Raspberry Pi OS 11 Bullseye nicht an Bord. Aus diesem Grund konnte es auch ohne Bedenken gelöscht werden.

sudo apt remove parcellite

Weiterhin fiel auf, dass die ganze Menüleiste des Desktops etwas vermurkst aussah. Diese wurde auf die Grundeinstellungen mit

cd ~/
sudo rm -rf .cache

zurückgesetzt.

Nach einem erneuten Reboot läuft Raspberry Pi OS 11 wie gewünscht.

sudo reboot
Nextcloud 27 - Raspberry Pi Modell B Rev 1.2
Nextcloud 27 – Raspberry Pi Modell B Rev 1.2
Nextcloud 27 - PHP 8.1
Nextcloud 27 – PHP 8.1

Fazit

Um unsere Community-Cloud wieder sicher zu machen, war ein wenig Wochenendarbeit nötig. Die so investierte Zeit hat sich aber durchaus gelohnt. Im nächsten Schritt erfolgt dann der Tausch des Raspberry Pi und ein Wechsel der Daten-SSD gegen ein größeres Modell.

Brave Leo – KI-Browserassistent nun mit Mixtral per Standard

Von: jdo
26. Januar 2024 um 09:09

Die Desktop-Version von Brave wurde auf Version 1.62 aktualisiert. Ab sofort benutzt der Browser Mixtral 8x7B als Standard-Language Model (LLM) im eigenen KI-Browserassistenten Leo. Mixtral 8x7B ist ein Open-Source-LLM, das von Mistral AI im vergangenen Dezember veröffentlicht wurde. Es ist schnell und dank der hohen Leistung hat es sich schnell verbreitet. Ferner haben die Entwickler die Benutzerfreundlichkeit von Leo verbessert, indem sie das Onboarding, die Kontextsteuerung, die Formatierung von Eingaben und Antworten und die allgemeine Benutzeroberfläche verbessert haben. Mixtral ab […]

Der Beitrag Brave Leo – KI-Browserassistent nun mit Mixtral per Standard ist von bitblokes.de.

Chemnitzer Linux-Tage 2024

09. Januar 2024 um 17:41

Unter dem Motto „Zeichen setzen“ finden am 16. und 17. März 2024 wieder die Chemnitzer Linux-Tage statt. Die Veranstalter hoffen wieder auf einen großen Zuspruch im Hörsaalgebäude der TU Chemnitz an der Reichenhainer Straße.

Eintrittskarten zur Veranstaltung wird es im Vorverkauf geben. Da die Anzahl der Tickets aber begrenzt ist, wird es an der Tageskasse nur Restkarten geben.

Auch 2024 haben sich die Chemnitzer Linux-Tage einen Platz an einem März-Wochenende gesucht. Also Kalender gezückt und den 16. und 17. März 2024 dick einkreisen! Es lohnt sich bestimmt.

Eintrittskarten sind an der Tageskasse erhältlich.

Wir freuen uns sehr, euch im März vor Ort in Chemnitz in gewohnter Umgebung wiederzusehen. Über unsere Pressemitteilungen, Social Media könnt ihr euch diesbezüglich auf dem Laufenden halten.

Quelle: chemnitzer.linux-tage.de

PHP Code entfernt Kommentarfunktion in WordPress

08. Januar 2024 um 19:33

Ich habe mich entschlossen, die Kommentare in meinem Blog abzuschalten. Ursprung war wie immer der Frühjahrsputz in dem Blog. Hierzu habe ich eine Funktion genutzt, welche neben den Kommentaren auch die Trackbacks und Pings entfernt.Ein sehr großer Vorteil ist, dass ich die alten Kommentare hierdurch noch behalte. Früher übernahm das Plugin My Custom Functions von ... Weiterlesen

Der Beitrag PHP Code entfernt Kommentarfunktion in WordPress erschien zuerst auf Got tty.

PHP8.2-fpm für Nextcloud 28

27. Dezember 2023 um 14:00

Dieser Beitrag baut auf dem Artikel „PHP7.4-fpm auf PHP8.1-fpm für Nextcloud“ auf.

Im Januar 2023 hatte ich erklärt, wie ich mein Raspberry Pi OS 11 (basierend auf Debian 11 Bullseye), durch Einbinden einer Fremdquelle, von PHP7.4-fpm auf PHP8.1-fpm aktualisiert habe. Warum ich zu diesem Zeitpunkt die Version 8.1 installiert habe, ist recht einfach zu beantworten. Die aktuelle Version Nextcloud 25 war noch nicht kompatibel zu PHP 8.2. Erst mit Nextcloud 26 war ein Upgrade möglich.

Nun habe ich mich nach der Aktualisierung auf Nextcloud 28 entschieden auf PHP 8.2 zu wechseln. Da ich den FastCGI-Prozessmanager FPM bevorzuge, unterscheidet sich das Upgrade etwas von einer herkömmlichen PHP-Installation.

Unterstützungszeiträume der aktuellen PHP-Versionen
Quelle: https://www.php.net/supported-versions.php

Installation

Zuerst wird das System auf den aktuellen Stand gebracht.

sudo apt update && sudo apt upgrade -y

Ein Check zeigt, welche PHP-Version momentan aktiv ist.

php -v

Hier die Ausgabe:

PHP 8.1.27 (cli) (built: Dec 21 2023 20:17:59) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.27, Copyright (c) Zend Technologies
with Zend OPcache v8.1.27, Copyright (c), by Zend Technologies

Jetzt werden alle benötigten Pakete nachinstalliert (auch das von Nextcloud 28 verlangte bz2 und der von mir eingesetzte Redis-Server).

sudo apt install php8.2 php8.2-mbstring php8.2-gd php8.2-curl php8.2-imagick php8.2-intl php8.2-bcmath php8.2-gmp php8.2-mysql php8.2-zip php8.2-xml php8.2-apcu libapache2-mod-php8.2 php8.2-bz2 php8.2-redis

Nun wird via CLI die PHP-Version von 8.1 auf 8.2 mit

sudo update-alternatives --config php

umgestellt.

sudo update-alternatives --config php
Es gibt 5 Auswahlmöglichkeiten für die Alternative php (welche /usr/bin/php bereitstellen).

  Auswahl      Pfad                  Priorität Status
------------------------------------------------------------
  0            /usr/bin/php.default   100       automatischer Modus
  1            /usr/bin/php.default   100       manueller Modus
  2            /usr/bin/php7.4        74        manueller Modus
* 3            /usr/bin/php8.1        81        manueller Modus
  4            /usr/bin/php8.2        82        manueller Modus
  5            /usr/bin/php8.3        83        manueller Modus
sudo update-alternatives --config php
Es gibt 5 Auswahlmöglichkeiten für die Alternative php (welche /usr/bin/php bereitstellen).

  Auswahl      Pfad                  Priorität Status
------------------------------------------------------------
  0            /usr/bin/php.default   100       automatischer Modus
  1            /usr/bin/php.default   100       manueller Modus
  2            /usr/bin/php7.4        74        manueller Modus
  3            /usr/bin/php8.1        81        manueller Modus
* 4            /usr/bin/php8.2        82        manueller Modus
  5            /usr/bin/php8.3        83        manueller Modus

Ein abschließender Check zeigt die aktuelle Version.

php -v
PHP 8.2.14 (cli) (built: Dec 21 2023 20:18:00) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.14, Copyright (c) Zend Technologies
with Zend OPcache v8.2.14, Copyright (c), by Zend Technologies

Ist die Ausgabe korrekt, kann PHP8.1-fpm deaktiviert, PHP8.2-fpm installiert und aktiviert werden.

sudo a2disconf php8.1-fpm
sudo apt install php8.2-fpm
sudo a2enconf php8.2-fpm

Der Restart des Webservers führt nun die Änderungen aus.

sudo service apache2 restart

Nextcloud-Konfiguration

Da in der Nextcloud nun wieder die bekannten Fehlermeldungen auftauchen, heißt es, diese schrittweise abzuarbeiten. Dazu wird die neue php.ini geöffnet

sudo nano /etc/php/8.2/fpm/php.ini

und die Werte für memory_limit sowie session_lifetime wie empfohlen angepasst.

memory_limit = 512M
session.gc_maxlifetime = 3600

Der Block

opcache.enable=1
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=10000
opcache.memory_consumption=256
opcache.save_comments=1
opcache.revalidate_freq=1

für den Zwischenspeicher OPchache wird ans Ende der php.ini gesetzt.

Zur Optimierung von PHP8.2-fpm werden speziell für das Modell Raspberry Pi 4 mit 4GB RAM in der Datei www.conf mit

sudo nano /etc/php/8.2/fpm/pool.d/www.conf

folgende Werte von

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

auf

pm = dynamic
pm.max_children = 120
pm.start_servers = 12
pm.min_spare_servers = 6
pm.max_spare_servers = 18

angepasst und der Dienst neu gestartet.

sudo service php8.2-fpm restart

Danach muss in der apcu.ini das Command Line Interface des PHP Cache noch aktiviert werden, indem

sudo nano /etc/php/8.2/mods-available/apcu.ini

folgende Zeile am Ende eingetragen wird.

apc.enable_cli=1

Ist dies geschehen, wird der Webserver ein letztes Mal neu gestartet.

sudo service apache2 restart

Fazit

Die Umstellung bringt zwar im Moment keine erkennbaren Vorteile, jedoch verschafft es wieder ein wenig Zeit und senkt den Druck das eigentliche Raspberry Pi OS 11 Bullseye durch die aktuelle Version 12 Bookworm zu ersetzen.

❌
❌