Normale Ansicht

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

Raspberry Pi OS Bullseye -> Bookworm

28. April 2024 um 12:51

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 bearbeitest 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 gab. Durch das Upgrade wurden die Einstellungen des Dienstes zu meinem Turn-Server zurück gesetzt.

Wer also wie ich eine Nextcloud auf dem Raspberry Pi installiert hat und diese eventuell nach meinen Anleitungen installiert hat, 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!

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.

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!

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

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.

PHP-FPM – Eine Einführung in den FastCGI Process Manager für PHP

26. Dezember 2023 um 10:20

PHP-FPM (FastCGI Process Manager) ist eine leistungsstarke Erweiterung für den PHP-Interpreter, die die Ausführung von PHP-Skripten optimiert und verbessert. Entwickelt, um die Skalierbarkeit von PHP-basierten Webanwendungen zu erhöhen, spielt PHP-FPM eine entscheidende Rolle in modernen Webserver-Umgebungen.

Hintergrund

Traditionell wurde PHP als Modul für Webserver wie Apache bereitgestellt. Dieser Ansatz hatte jedoch seine Einschränkungen, insbesondere wenn es um die Verwaltung von Ressourcen und die Skalierung von Webanwendungen ging. PHP-FPM wurde als Lösung für diese Herausforderungen entwickelt, indem es die FastCGI-Protokollspezifikation implementiert und PHP-Skripte als separate Prozesse ausführt.

Vorteile von PHP-FPM

1. Ressourcenverwaltung:

PHP-FPM ermöglicht eine effiziente Verwaltung von Ressourcen, indem es separate Prozesse für jede Anforderung erstellt. Dadurch wird der Arbeitsspeicher besser genutzt und die Gesamtleistung der Webanwendung verbessert.

2. Skalierbarkeit:

Durch die Nutzung von PHP-FPM können Webentwickler ihre Anwendungen leichter skalieren, da sie die Anzahl der gleichzeitig ausgeführten PHP-Prozesse steuern können. Dies ist besonders wichtig in Umgebungen mit starkem Datenverkehr.

3. Isolierung von Anwendungen:

Jede PHP-Anwendung wird in ihrem eigenen Prozess isoliert, wodurch Konflikte zwischen verschiedenen Anwendungen vermieden werden. Dies trägt zur Stabilität des Gesamtsystems bei.

4. Anpassbare Konfiguration:

PHP-FPM bietet eine umfangreiche Konfiguration, die es Administratoren ermöglicht, Parameter wie Prozessprioritäten, Anzahl der Kinderprozesse und andere Einstellungen zu optimieren.

Konfiguration und Verwendung

Die Konfiguration von PHP-FPM erfolgt über die php-fpm.conf-Datei und optionale Pool-Konfigurationsdateien. Administratoren können Parameter anpassen, um die Leistung und Ressourcennutzung nach den Anforderungen ihrer Anwendung zu optimieren.

Die Integration von PHP-FPM in Webserver wie Nginx oder Apache erfolgt durch die Konfiguration von FastCGI-Servern. Dies ermöglicht eine reibungslose Kommunikation zwischen dem Webserver und PHP-FPM.

Fazit

PHP-FPM hat sich als wesentliches Werkzeug für die Verwaltung von PHP-Anwendungen in produktiven Umgebungen etabliert. Durch die Bereitstellung von effizienter Ressourcennutzung, Skalierbarkeit und Anwendungsisolierung spielt PHP-FPM eine Schlüsselrolle bei der Gewährleistung der Leistungsfähigkeit von PHP-Webanwendungen. Bei der Entwicklung und Verwaltung von Webanwendungen ist es wichtig, die Vorteile von PHP-FPM zu verstehen und richtig zu konfigurieren, um eine optimale Leistung zu gewährleisten.

SSD der Nextcloud ersetzen

08. Dezember 2023 um 17:01

Der Black Friday ist für den Einzelhandel ein willkommenes Datum, um Waren an den Mann bzw. die Frau zu bringen. In dieser Zeit wird Lagerware abverkauft, um Platz für Neues zu schaffen. Der Endverbraucher profitiert meist durch Rabatte und Nachlässe auf interessante Artikel.

Angelockt durch solch ein Angebot, habe ich mir eine externe 2TB-SSD zugelegt, um den Speicher meiner Nextcloud zu erweitern. Im Vorfeld hatte ich mir hierzu schon einige Gedanken gemacht, wie ich die alte 500GB SSD durch das neue und größere Speichermedium ersetze.

Nextcloud auf dem Raspberry Pi mit SanDisk SSD (2 TB)
Raspberry Pi mit SanDisk SSD

Die perfekte Lösung für mich war das Duplizieren der Quelle mit Clonezilla. Hierbei wurden beide Festplatten an den Rechner angeschlossen, Clonezilla gestartet und mit device-device ein Duplikat erstellt. Bei diesem musste dann nur noch die Partition vergrößert werden. Da der Zielfestplatte die selbe UUID vergeben wurde, waren im Anschluss keine weiteren Maßnahmen erforderlich.

Clonezilla Auswahl device-device
Clonezilla device-device

Nextcloud AntiVirus for Files

23. November 2023 um 19:08

Heute möchte ich zeigen, wie ich meine Nextcloud mit dem Virenscanner ClamAV ausgerüstet habe. Da eine Cloud ja ein guter Verteiler von Daten ist, kann es schnell vorkommen, dass man mit einer Synchronisation viele Endgeräte unbeabsichtigt mit einem Virus infiziert. Um dies zu verhindern, bietet Nextcloud die App Antivirus for files aus dem hauseigenen App store an. Zur Nutzung der App sind jedoch ein paar Vorbereitungen auf dem Server nötig.

Da ich im privaten Alltag ausschließlich mit Linux arbeite, mache ich mir i.d.R. kaum wirkliche Sorgen um Viren, Trojaner und Co. Trotzdem möchte ich meine Cloud im höchsten Maße absichern und das System weiter härten.

Diese Anleitung bezieht sich auf eine Nextcloud-Instanz, welche auf einem Raspberry Pi mit Rasberry Pi OS gehostet ist und zeigt einen guten Ansatz, um die Verteilung von Viren zu verhindern.

Installation

Zuerst installiert man die Pakete clamav, clamav-freshclam und clamav-daemon mit folgendem Befehl.

sudo apt install clamav clamav-freshclam clamav-daemon -y

Im Anschluss muss der Dienst clamav-freshclam nochmals gestoppt werden, um die Virus-Datenbank aufzufrischen. Danach wird der Service erneut gestartet.

sudo service clamav-freshclam stop
sudo freshclam
sudo service clamav-freshclam start

Die Abfrage der Datenbank wird per Standard nun 12 Mal pro Tag automatisch ausgeführt.

Ein Check via

sudo service clamav-freshclam status

zeigt, ob der Dienst ordnungsgemäß läuft. Die Ausgabe sollte wie im Screenshot aussehen.

Terminalausgabe Service clamav-freshclam
Service clamav-freshclam

Ein weiterer Test gibt Aufschluss, ob der clamav-daemon ebenfalls korrekt arbeitet.

sudo service clamav-daemon status
Terminalausgabe Service clamav-daemon
Service clamav-daemon

Da dies bei mir nicht auf Anhieb funktionierte, musste ich diesen Service nochmals neu starten.

Dies erledigt man mit dem Befehl:

sudo service clamav-daemon restart

Natürlich sollte jetzt noch einmal der Status, wie zuvor erwähnt, abgefragt werden. Wenn beide Dienste fehlerfrei durchlaufen, kann man sich nun der Konfiguration der zuvor erwähnten App in der Nextcloud widmen.

Konfiguration

Nachdem beide Dienste korrekt arbeiten, installiert man die App Antivirus for files (Antivirus für Dateien). Unter Verwaltung -> Sicherheit wählt man folgende Einstellungen. Im Feld „Wenn infizierte Dateien während eines Hintergrund-Scans gefunden werden“ kann zwischen „Nur loggen“ oder „Datei löschen“ gewählt werden, wie mit einer infizierten Datei umgegangen werden soll.

Nextcloud Einstellungen Verwaltung Antivirus for files
Einstellungen – Antivirus for files

Das Abspeichern der Einstellungen sollte mit einem grünen „Gespeichert“ protokolliert werden. Wer das Ganze testen möchte, kann sich hierzu (Vorsicht: auf eigene Gefahr) einen Testvirus von eicar.org herunterladen und diesen in die Nextcloud hochladen.

Auf Windows-Systemen ist äußerste Vorsicht geboten, da man hier schnell vom eigenen Virenscanner in Quarantäne gesetzt wird. Diesen Test sollten nur Experten durchführen!

Nextcloud Auto Logout

16. November 2023 um 16:57

Heute möchte ich über ein sinnvolles und relativ schnell nachzurüstendes Feature zur Nextcloud berichten. Der zeitliche Aufwand beträgt nur wenige Minuten, ist aber zum Schutz der eigenen Daten eine gut investierte Zeit.

Ab und zu kam es vor, dass ich mich aus meiner Cloud nicht richtig abgemeldet, sondern nur den Browser geschlossen hatte. Beim nächsten Aufruf meiner Nextcloud stellte ich fest, dass ich plötzlich im Datenbereich bin, ohne mich vorher eingeloggt zu haben.

Mein Gedanke: Was würde passieren, wenn ein Unberechtigter so Zugriff auf alle in einer Cloud abgelegten Daten bekommt? Nicht auszudenken, der Schaden wäre wohl immens.

Damit dies nicht vorkommt, ist es sinnvoll ein Auto Logout einzurichten. Hierzu öffnet man als Erstes die config.php der Nextcloud

sudo nano /var/www/html/nextcloud/config/config.php

und trägt die folgenden Werte am Ende ein.

'remember_login_cookie_lifetime' => 1296000,
'session_lifetime' => 3600,
'session_keepalive' => false,
'auto_logout' => true,

Eine Session wird auf 30 Minuten sowie die Lebensdauer des Login-Cookies auf 15 Tage begrenzt. Diese Werte können natürlich den eigenen Wünschen und Gegebenheiten angepasst werden.

Dabei gilt zu beachten, dass die session.gc_maxlifetime in der php.ini >= der eingestellten session_lifetime sein muss. Dazu öffne ich die php.ini von PHP 8.1 FPM

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

und setze den Wert auf 3600.

session.gc_maxlifetime = 3600

Nun muss PHP bzw. der Webserver neu gestartet werden, um die Änderungen wirksam umzusetzen.

sudo service php8.1-fpm restart

Ein geschlossener Browser führt nun, wie gewünscht, zu einem Auto Logout.

Integration von OpenAI in Nextcloud

15. November 2023 um 17:43

Mit Hub 4 integriert Nextcloud die künstliche Intelligenz auf ethische Weise. So heißt es zumindest in der damaligen Vorstellung von Frank Karlitschek, CEO und Gründer der Nextcloud GmbH.

Nextcloud Hub 4 ist die erste Kollaborationsplattform, die intelligente Funktionen umfassend in ihre Anwendungen integriert und gleichzeitig die mit KI-Technologien einhergehenden Herausforderungen in Bezug auf Datenschutz und Kontrolle bewältigt.

Nextcloud Hub bietet fortschrittliche, KI-basierte Funktionen, von intelligenten Datei- oder Freigabe-Empfehlungen bis hin zur Erkennung verdächtiger Logins über neuronale Netzwerke und vieles mehr. Diese Version verbessert die bestehenden intelligenten Funktionen wie den intelligenten Posteingang in Mail und die Standortverwaltung mit Fotos und führt gleichzeitig die Dateiklassifizierung, die on-premises Übersetzung, die Umwandlung von Sprache in Text, Bilderstellung via Stable Diffusion und Dall-e, ChatGPT-basierte Texterzeugung, DeepL-Übersetzungen und mehr ein.

nextcloud.com

Diese intelligenten Funktionen findet man im Smart Picker. Hierüber wird es möglich, u.a. Links und Inhalte einzufügen. Weitere Optionen sind:

  • Aufgaben von Deck
  • Orte von Open Street Map
  • Wissensdatenbankeinträge von Collectives
  • Videos von YouTube und PeerTube
  • GIF-Dateien von Giphy
  • Vordefinierte Textausschnitte
  • Filme, Serien und Personen aus The Movie Database (TMDB)
  • Stable Diffusion (on-premises) oder Dall-E (online) generierte Bilder
  • ChatGPT generierter Text
  • Tabellen und mehr.

Den Smart Picker wählt man in der entsprechenden Anwendung (z.B. Text) aus, indem man ein „/“ eintippt. Dort öffnet sich ein Kontextmenü und die Anwendung kann ausgewählt werden.

Um jedoch auch Funktionen von OpenAI, wie ChatGPT, speech-to-text oder AI image nutzen zu können, muss zusätzlich die App OpenAI and LocalAI integration installiert werden. Hierzu benötigt man eine API, welche einen OpenAI-Account voraussetzt.

Smart Picker – OpenAI in der Nextcloud

Viel Spaß!

Senden der Nachricht fehlgeschlagen

22. Oktober 2023 um 16:00

Seit 2016 verwende ich einen OpenPGP-Key, um bei Bedarf meine eMails zu verschlüsseln. Leider hat sich dieses Verfahren nicht so durchgesetzt, wie man es sich erhofft hat. Negativ wirkten sich auch u.a. auch die zahlreichen Attacken auf SKS-Keyserver und die dort hinterlegten öffentlichen Schlüssel aus. Durch die Verwendung des neuen Keyservers auf keys.openpgp.org kam jedoch etwas Ruhe in die ganze Sache. Zur Freude musste ich meinen Key nicht aufgeben, den ich tatsächlich hin und wieder einsetze.

Die eMails, welche ich von meinem Notebook versende, wurden bis letzte Woche mit diesem Key signiert. Das heißt, dass u.a. auch mein öffentlicher Schüssel an jede abgehende Nachricht angehängt wurde. Nun bemerkte ich aber, dass meine eMails, mit dem Hinweis „Senden der Nachricht fehlgeschlagen“, nicht mehr verschickt wurden. Schnell hatte ich herausgefunden, dass der Anhang Probleme machte. Also habe ich als Sofortmaßnahme die digitale Signatur mit OpenPGP abgeschaltet, was natürlich nur eine Übergangslösung darstellen sollte.

Heute konnte ich der Sache auf den Grund gehen und habe mir den Key in Thunderbird näher angesehen. Hier konnte ich jedoch nichts Außergewöhnliches feststellen.

Kein Backup, kein Mitleid

… so hört man es immer von den IT-Profis. Backups meines Schlüsselpaares existierten aber zum Glück. Bevor ich jedoch den Schlüssel in Thunderbird neu eingespielt habe, wurde meinerseits nochmals ein Backup des privaten Schlüssels über das Terminal mit

gpg --export-secret-keys -a user@domain.tld > secret.asc

angelegt. Dieses Backup packte ich nun zu den anderen. Hierbei fiel auf, dass der private Key nur 2,2kB groß war und das letzte Backup bei ca. 35kB lag. Eigentlich hätte doch der aktuelle Key größer sein müssen!?

Kurzerhand wurde also das letzte Backup des privaten Schlüssels in Thunderbird eingespielt und das Problem war tatsächlich gelöst. eMails können nun wieder mit digitaler Signatur versendet werden.

Ansicht Ende-zu-Ende-Verschlüsselung in Thunderbird privater OpenPGP-Schlüssel
Privater OpenPGP-Schlüssel in Thunderbird

Natürlich wurde gleich, mit dem oben erwähnten Befehl, ein aktuelles Backup erzeugt. Der neue private Key hat nun eine Größe von 36,8kB, was beruhigt.

Ende gut, alles gut!

QCAD im Straßenbau

22. Oktober 2023 um 04:00

Vor über 10 Jahren hatte ich im Artikel „QCad getestet“ darüber berichtet, ob die AutoCAD-Alternative QCAD (inzwischen mit vier großen Buchstaben geschrieben) im Baustellenalltag einer Straßenbaufirma einsetzbar wäre. Da man aber zu dieser Zeit keine Koordinaten punktgenau abgreifen konnte, habe ich das Projekt nicht weiter verfolgt.

Mit der aktuellen Version 3.28 sieht dies jedoch ganz anders aus. QCAD stellt nun tatsächlich eine Alternative zu anderen kommerziellen Programmen dar und ist durchaus für Bauleiter und Poliere geeignet, um Aufmaße zu erstellen bzw. kleinere Absteckungen vorzunehmen.

Installation

Es gibt zwei verschiedene Versionen von QCAD, zum einen QCAD Professional und zum anderen die freie und kostenlose QCAD Community Edition. Um die CAD-Software unter Ubuntu/Debian zu installieren, lädt man die aktuelle Version als „QCAD Demo“ herunter und führt das Installationsscript aus. Dazu wechselt man in das Download-Verzeichnis, wo die heruntergeladene Version liegt, macht das Script ausführbar

chmod +x qcad-*

und installiert mit

./qcad-*

die Software. Nun hat man 15 Minuten Zeit sich die Pro-Version genauer anzusehen. Ich persönlich finde die Zeit etwas kurz bemessen, um sich einen genauen Überblick über die Vollversion zu verschaffen. Nach Ablauf der erwähnten 15 Minuten wird über ein Widget angezeigt, dass die Testphase abgelaufen ist.

Pro vs. Community Edition

Nun kann man sich entscheiden die Pro-Version zu kaufen oder stattdessen auf die Community-Edition downzugraden. QCAD Professional verfügt über einen größeren Funktionsumfang, wie z.B. der Triangulation oder des DWG-Supports.

Umwandlung der Demo-Version in die Community Edition

Wie aus der Demo eine Community Edition wird, beschreibt der schweizer Entwickler folgendermaßen:

Wenn Sie die kostenlose Open Source QCAD Community Edition verwenden möchten, können Sie die Demoversion für Ihre Plattform herunterladen (siehe oben) und dann das QCAD Professional Add-On entfernen (klicken Sie im Widget „Testversion“ auf „Entfernen“ und folgen Sie den Anweisungen auf dem Bildschirm). Alternativ können Sie die QCAD Community Edition von den Quellen unten selbst kompilieren.

Quelle: https://qcad.org/de/download

Das Ganze lässt sich also relativ leicht realisieren. Hierzu sind einfach die Hinweise im Widget (nach Ablauf der Testphase) zu befolgen. Dies bedarf dem Löschen einiger Dateien im Installationspfad (siehe Grafik).

Anzeige zum Löschen der erforderlichen Dateien zum Downgrade auf Community Edition
Downgrade auf Community Edition

Ich habe mich für diesen Test bewusst für die für mich ausreichende Community-Variante entschieden, da diese alle Features beinhaltet, die ich zum Arbeiten benötige.

Anzeige QCAD Community Edition
QCAD Community Edition

Beispiele

Hier möchte ich einige wichtige Funktionen zeigen, die mir für den produktiven Einsatz genügen. Zum einen geht es um das Abgreifen von Koordinaten. Im gezeigten Beispiel können Koordinaten an einen Rover übergeben werden, um eine Bordanlage exakt auf der Baustelle abzustecken.

Anzeige Koordinaten Absteckpunkt Bord auf dem Lageplan
Koordinaten Absteckpunkt Bord

Eine andere wichtige Anwendung ist das Messen von Entfernungen im Lageplan.

Anzeige Entfernung messen auf dem Lageplan
Entfernung messen

Ein weiteres Tool hilft dabei, Flächen in Plänen zu messen. Dies geht ganz einfach in der linke Symbolleiste über Informationswerkzeuge -> Polygon Fläche.

Anzeige Fläche Verkehrsinsel auf dem Lageplan
Fläche Verkehrsinsel

Fazit

QCAD ist ein wirklich gutes Anwendungsprogramm, welches sich durchaus für den Baustelleneinsatz eignet. Der Preis von 40€ für die Vollversion ist im Gegensatz zu Preisen, die Mitbewerber aufrufen, ein echtes Schnäppchen.

OB diese Anwendung in einem Ingenieurbüro allerdings mit den großen CAD-Programmen mithalten kann, kann ich nicht beurteilen. Jedoch lohnt es sich, einen Blick auf die Software der RibbonSoft GmbH zu werfen.

QCAD ist für Windows, macOS und Linux erhältlich.

Upgrade von Linux Mint 20 -> 21.2

18. Oktober 2023 um 17:25

Aus gegebenen Anlass möchte ich heute zeigen, wie es möglich ist, von Linux Mint 20 auf die momentan aktuelle Version Linux Mint 21.2 abzugraden. Hintergrund war die Frage eines Users in der Community, ob ein Upgrade grundsätzlich möglich sein. Hierbei soll vermieden werden, dass das System neu installiert werden muss.

Um dies nachvollziehbar zu testen, wurde ein Linux Mint 20 auf meinem Testrechner installiert und alle notwendigen Schritte bei der Aktualisierung festgehalten.

Mint 20 „Ulyana“ – Aktualisierungsverwaltung
Mint 20 „Ulyana“ – Aktualisierungsverwaltung und Systeminformationen

20 – > 20.3

Zu aller erst wird Linux Mint auf die Version 20.3 angehoben. Dies erledigt man nach der Aktualisierung des Systems über Aktualisierungsverwaltung -> Bearbeiten -> System aktualisieren auf „Linux Mint 20.3 Una“. Ist dies geschehen, muss der Rechner neu gestartet werden.

Mint 20 „Una“ – Systeminformationen

20.3 -> 21

Nach dem Reboot führt man nun folgende Befehle aus:

apt update
apt install mintupgrade
sudo mintupgrade
apt remove mintupgrade
sudo reboot

Während des Mintupgrade muss man zwingend ein Backup via Timeshift anlegen. Dies dient der Sicherheit als Fallback. Falls doch etwas schief geht, kann man so auf das zuvor erstellte Backup zurückgreifen.

Das Paket mintupgrade wird nach dem erfolgreichen Upgrade wieder entfernt und das System neu gebootet.

Upgrade auf Linux Mint 21 „Vanessa“
erfolgreiches Upgrade auf Linux Mint 21 „Vanessa“

21 -> 21.2

Nun geht es weiter über Aktualisierungsverwaltung -> Bearbeiten -> System aktualisieren auf „Linux Mint 21.2 Victoria“. Nach dem abschließenden Reboot sollte nun die aktuelle Version 21.2 fehlerfrei laufen.

Bootreihenfolge im GRUB ändern

07. Oktober 2023 um 14:04

Ab und zu installiere ich ein Betriebssystem parallel zum Hauptsystem meines Testrechners. Je nach dem was ich gerade vorhabe, verweilt das neue OS doch etwas länger auf dem Computer, bis es wieder gelöscht wird.

Im konkreten Fall wurde ein Linux Mint neben Ubuntu installiert. Nach dem erfolgreichen Setup, steht das neue OS an erster Stelle der Bootreihenfolge. Das ist nicht weiter schlimm, da man bei jedem Neustart das Betriebssystem, welches es zu booten gilt, per Hand auswählen kann. Hierzu hat man per Standard zehn Sekunden Zeit.

GRUB Startmenü

Da aber Ubuntu häufiger genutzt wird als Linux Mint, habe ich kurzerhand die Bootreihenfolge angepasst.

Bootreihenfolge festlegen

Hierzu starte ich das zuletzt installierte Linux Mint und editiere, wie in der Abbildung zu sehen, die Datei /etc/default/grub.

GRUB Konfiguration
sudo nano /etc/default/grub

Da in der Bootreihenfolge Ubuntu an 3. Stelle platziert ist und die Reihenfolge mit 0 beginnt, ändert man im speziellen Fall GRUB_DEFAULT von 0 auf 2.

GRUB_DEFAULT=2

Werte in GRUB speichern

Nach dem Abspeichern werden die Werte mit

sudo update-grub

in den Bootmanager geschrieben. Nach dem Neustart bootet nun automatisch Ubuntu.

Tipp

Über GRUB_TIMEOUT kann die Verweildauer beim Booten angepasst werden; i.d.R reichen hier 2 Sekunden.

GRUB_TIMEOUT=2

Verknüpfung unter Ubuntu erstellen

01. Oktober 2023 um 10:10

Was mit Windows selbstverständlich ist, sollte auch mit Linux möglich sein. Heute möchte ich auf die Erstellung von Verknüpfungen eingehen, im speziellen Fall auf das Setzen von Softlinks unter Ubuntu.

Verknüpfungen haben den Vorteil, dass man auf eine bestehende Datei verlinken kann, ohne ein Duplikat dieser Datei anlegen zu müssen. Ein Beispiel hierfür wäre ein Verzeichnis, in dem alle Rechnungen liegen, man aber aus anderen Verzeichnissen genau auf diese zugreifen kann. Hier ist es sinnvoll mit Verknüpfungen wie unter Windows zu arbeiten. Diese Art von Verknüpfungen werden ganz einfach über sogenannte Softlinks realisiert.

Verknüpfung via Terminal

Im folgenden Beispiel zeige ich, wie man über das Terminal von der Datei /home/intux/Original/i.svg im Verzeichnis /home/intux/Verknüpfung/ einen Softlink auf das Original erzeugt. Hierzu öffnet man das Terminal und gibt folgenden Befehl (die Eingabe ist den entsprechenden Gegebenheiten anzupassen) ein:

ln -s /home/intux/Original/i.svg /home/intux/Verknüpfung/

Die Grafik zeigt die Verknüpfung auf i.svg.

Softlink

Verknüpfung über den Dateimanager

Das Ganze lässt sich natürlich auch grafisch lösen. Hierzu öffnet man Dateien und aktiviert unter „Optionale Aktionen im Kontextmenü“ den Schalter „Verknüpfungen erstellen“. Nun kann man im Originalverzeichnis mit einem Rechtsklick auf die entsprechende Datei eine Verknüpfung erstellen, die sich dann beliebig verschieben lässt.

Dateien – Einstellungen
Dateien – Einstellungen – Verknüpfung erstellen
Dateien – Einstellungen – Verknüpfung

Was ist ein eigentlich ein Raspberry Pi?

17. August 2023 um 16:56

Der Raspberry Pi ist ein kleiner und günstiger Computer, der viele spannende Möglichkeiten bietet, um zu lernen, zu basteln und zu programmieren. In diesem Artikel werde ich einige grundlegende Informationen über den Raspberry Pi geben, wie er entstanden ist, was er kann und wie du ihn nutzen kannst.

Der Raspberry Pi wurde von der Raspberry Pi Foundation entwickelt, einer gemeinnützigen Organisation aus Großbritannien, die sich zum Ziel gesetzt hat, die digitale Bildung weltweit zu fördern. Die Idee für den Raspberry Pi kam von Eben Upton, einem Informatiker und Dozenten an der Universität Cambridge, der feststellte, dass die Zahl der Studienanfänger in seinem Fach stark zurückgegangen war. Er vermutete, dass dies daran lag, dass die Schüler die Lust am Experimentieren mit Computern verloren hatten. Er wollte daher einen einfachen und billigen Computer schaffen, der die Neugier und Kreativität der jungen Generation wieder wecken sollte.

Der erste Raspberry Pi wurde im Jahr 2012 veröffentlicht und kostete nur 35 US-Dollar. Er bestand aus einer einzigen Platine mit einem Broadcom-Chip, der eine ARM-CPU, eine GPU, einen RAM-Speicher und verschiedene Anschlüsse hatte. Der Raspberry Pi hat kein Gehäuse, kein Netzteil, keine Tastatur, keine Maus und keinen Bildschirm. Diese Teile müssen separat gekauft werden. Der Raspberry Pi kann über den verbauten SD-Karten-Slot oder einen USB-Stick gestartet werden, auf dem ein Betriebssystem wie das Raspberry Pi OS installiert ist.

Der Raspberry Pi war ein großer Erfolg und wurde schnell von Hobbyisten, Lehrern, Schülern und sogar professionellen Entwicklern auf der ganzen Welt angenommen. Er wurde und wird für viele verschiedene Zwecke eingesetzt, wie zum Beispiel für Spiele, Musik, Kunst, Robotik, Wetterstationen, Heimautomation und vieles mehr. Die Raspberry Pi Foundation veröffentlicht regelmäßig neue Modelle und Versionen des Raspberry Pi, die leistungsfähiger sind als die vorherigen. Bis heute wurden mehr als 40 Millionen Raspberry Pi verkauft.

Der Raspberry Pi ist nicht nur ein Computer zum Spielen und Lernen, sondern auch eine Plattform zum Erstellen und Erfinden. Mit dem Raspberry Pi kannst du deine eigenen Projekte verwirklichen, indem du ihn mit Sensoren, Motoren, LEDs, Kameras oder anderen Geräten verbindest und ihn mit einer Programmiersprache wie Python steuerst. Du kannst auch die vielen Online-Ressourcen nutzen, die dir die Raspberry Pi Foundation oder die Raspberry Pi Community zur Verfügung stellen. Dort findest du Anleitungen, Beispiele, Tipps und Inspirationen für deine eigenen Ideen.

Spannende Projekte lassen sich so, dank der GPIO-Schnittstelle, problemlos umsetzen. GPIO steht für General Purpose Input Output und bezeichnet programmierbare Ein- und Ausgänge, die du für unterschiedliche Zwecke nutzen kannst. Der Raspberry Pi hat eine Reihe von GPIO-Pins entlang der oberen Kante der Platine. Diese Pins dienen als Schnittstelle zu anderen Systemen, Schaltungen oder Bauteilen, um diese über den Raspberry Pi zu steuern oder Daten auszutauschen.

GPIO-Schnittstelle Raspberry Pi 1

Mit den GPIO-Pins kannst du zum Beispiel LEDs, Taster, Sensoren, Motoren oder Displays anschließen und programmieren. Du kannst verschiedene Programmiersprachen wie Python, C oder Scratch verwenden, um mit den GPIO-Pins zu interagieren.

Es gibt viele spannende Projekte, die du mit dem Raspberry Pi verwirklichen kannst. Der Raspberry Pi ist ein kleiner und günstiger Computer, der sich für viele verschiedene Zwecke eignet. Hier sind einige Beispiele für Projekte, die du mit dem Raspberry Pi umsetzen kannst:

  • Webserver: Du kannst den Raspberry Pi als Webserver nutzen, um deine eigene Website zu hosten oder Daten zu speichern.
  • Videokonferenz-Station: Du kannst den Raspberry Pi mit einem Monitor, einer Kamera und einem Mikrofon ausstatten, um eine Videokonferenz-Station für Zoom, Skype und Co. zu erstellen.
  • Luftqualitätsmonitor: Du kannst den Raspberry Pi mit einem Sensor verbinden, um die Luftqualität in deiner Umgebung zu messen und anzuzeigen.
  • 3D-Drucker: Du kannst den Raspberry Pi mit einem 3D-Drucker verbinden, um ihn fernzusteuern, zu überwachen und zu optimieren.
  • Retro-Spielekonsole: Du kannst den Raspberry Pi mit einem Gehäuse, einem Controller und einer Software ausstatten, um eine Retro-Spielekonsole zu bauen, die viele klassische Spiele emulieren kann.
  • Smart Home: Du kannst den Raspberry Pi mit verschiedenen Sensoren, Aktoren und Geräten verbinden, um dein Zuhause smarter zu machen. Zum Beispiel kannst du Lichter, Heizung, Sicherheit oder Musik steuern.

VirtualBox 7 auf Ubuntu 22.04

28. Mai 2023 um 11:19

Da die in den Repositories von Ubuntu 22.04 enthaltene VirtualBox 6.1 schon ein wenig eingestaubt ist, möchte ich heute zeigen, wie man die aktuelle Version 7.0 installiert.

VirtualBox 7.0

Paketquelle hinzufügen

Dazu fügt man zuallererst den Schlüssel zur Paketquelle hinzu.

wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --dearmor --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg

Diese wird dann in die Datei /etc/apt/sources.list.d/virtualbox.list eingetragen.

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] http://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list

Installation

Nun werden die Paketquellen aktualisiert und mögliche Upgrades ausgeführt.

sudo apt update && sudo apt upgrade -y

Über den Befehl

sudo apt install virtualbox-7.0

lässt sich nun problemlos VirtualBox 7.0 installieren.

Ein letzter Check nach dem Neustart des Systems zeigt über die Abfrage des Module Service Status der VirtualBox, ob das System korrekt läuft (siehe Grafik).

sudo systemctl status vboxdrv

 

Virtual Linux kernel module

Viel Spaß!

VNC-Verbindung mit SSH-Tunnel

08. April 2023 um 18:00

Im Artikel „Remote-Desktop Ubuntu 22.04“ hatte ich erklärt, wie es möglich ist, sich mit einem Ubuntu-Desktop über VNC mit einem anderen Ubuntu-Rechner zu verbinden. Natürlich darf man auch hier die Sicherheit nicht aus dem Auge verlieren, obwohl das Thema Verschlüsselung im heimischen lokalen Netzwerk eher eine untergeordnete Rolle spielen dürfte.

Wenn man allerdings über das Internet auf einen entfernten PC oder ein Notebook zugreifen möchte, sieht das schon anders aus. Das Wiki von ubuntuusers.de schreibt zur Nutzung von VNC über Remmina Folgendes:

Remmina ist eine Fernwartungssoftware, die die Protokolle VNC, NX, RDP, XDMCP, SPICE, HTTP/HTTPS, SSH sowie SFTP unterstützt. Es ist möglich, eine Verbindung durch einen SSH-Tunnel zu leiten, was besonders sinnvoll ist, wenn man normalerweise unverschlüsselte Protokolle wie VNC über das Internet einsetzen möchte.

Was kann man nun tun?

Inspiriert durch einen entsprechenden Hinweis in einem Kommentar, im zuvor erwähnten Beitrag, möchte ich nun eine sicherere Vorgehensweise aufzeigen, um von einem Rechner auf einen anderen über VNC zuzugreifen. Es handelt sich dabei um die Verbindung vom Client zum Server mit einem SSH-Tunnel.

Einstellung am Host

Da der Server über das Internet erreichbar sein soll, muss zuerst die Voraussetzung hierzu über ein Portforwarding im Router geschaffen werden. In diesem Fall ist es der Port 5900 (siehe Beispiel).

VNC Portforwarding – 5900 am Host

Einstellung am Client

Genau wie im Artikel „Remote-Desktop Ubuntu 22.04“ gezeigt, wird am Client in Remmina die IP des Host eingetragen. Da dieser sich nicht im lokalen Netzwerk befindet, tippt man hier nun die öffentliche IP-Adresse in den Tab Grundlegend ein.

grundlegende Einstellungen von Remmina

Im Anschluss wechselt man in den Reiter SSH-Tunnel, aktiviert diesen und trägt die öffentliche IP des Client ein. Damit das alles funktioniert, ist auch am Router des Client ein Portforwarding auf SSH nötig. I.d.R. ist das der Port 22. Wenn dieser jedoch dauerhaft geöffnet bleiben soll, empfehle ich diesen wie hier beschrieben zu ändern, da der bekannte SSH-Port 22 sehr oft für Angriffe aus dem Internet genutzt wird.

Verwendung des SSH-Tunnels in Remmina

Sind alle Einstellungen korrekt, kann man sicher via SSH-Tunneling auf den entfernten Rechner zugreifen.

Bildschirmübernahme am Host

Die richtige IP im Netzwerk finden

03. April 2023 um 16:00

Serveranwendungen sind oft Thema in meinen Vorträgen und Workshops. I.d.R werden diese Anwendungen für den Zugriff aus dem Internet aufgebaut und konfiguriert. Steht die Hardware später an einem anderen Ort, wird diese dann über eine DynDNS-Adresse angesprochen.

Da die erwähnte Software oft keine großen Anforderungen an die Hardware stellt, auf der diese installiert wird, arbeite ich gern mit Mini-PCs oder Einplatinencomputern, wie dem Raspberry Pi.

Auf diese Geräte wird zuerst das Betriebssystem installiert. Geschieht das jedoch in einem fremden Netzwerk, so ist die lokale IP-Adresse dieses Rechners meist unbekannt. Den Zugriff auf den Router verweigert der Admin und an den Server ist i.d.R. auch kein Monitor angeschlossen.

Wie man aber trotzdem die IP-Adresse der im Netzwerk befindlichen Geräte identifizieren kann, beschreibt dieser Beitrag.

arp-scan verrät IP der WordPress-Installation

Ich nutze in solchen Fällen das Netzwerk-Scanning-Tool arp-scan.

Installation

arp-scan ist eine reine CLI-Anwendung (Command Line Interface). Diese kann unter Ubuntu oder Debian recht leicht über das Terminal installiert werden.

sudo apt install arp-scan

Anwendung

Das Netzwerk wird mit dem Befehl

sudo arp-scan -l

gescannt. Die im Netzwerk für arp-scan sichtbaren Geräte werden im Anschluss (siehe Grafik) aufgelistet.

Dieses kleine Tool erleichtert mir die Arbeit ungemein, wenn ich z.B. in einem fremden lokalen Netzwerk etwas über das Content Management System WordPress oder Nextcloud zeigen möchte.

Remote-Desktop Ubuntu 22.04

28. März 2023 um 19:29

Wer via Remote auf den Bildschirm eines anderen PC zugreifen möchte, hat mit Ubuntu bereits ein mächtiges Hilfsmittel dieses Betriebssystems an Bord. Die Rede ist hierbei von Remmina. Remmina ist ein Remote Desktop Client, welcher u.a die wichtigsten Protokolle, wie VNC und RDP beherrscht. Diese Fernwartungssoftware kann, anders als X2Go, den GNOME 3 Bildschirm übertragen. Hierzu muss kein weiterer Desktop auf dem Rechner installiert werden, mit dem sich der Client verbinden soll. Aus diesem Grund ist Remmina das beste Tool, um Verbindungen von Ubuntu zu Ubuntu via VNC zu realisieren. Im folgenden Beispiel zeige ich die Einrichtung anhand einer virtuellen Maschine.

Installation

Auf die Installation von weiteren Paketen kann client- und serverseitig verzichtet werden. Alle nötigen Voraussetzungen erfüllen beide Ubuntu-Rechner schon mit der Grundinstallation des Betriebssystems.

Konfiguration

Zuerst sollte man am Host die IP-Adresse des Rechners ermitteln. Nur über diese lässt sich später eine Verbindung aufbauen. Dazu geht man über Einstellungen -> Netzwerk -> Kabelgebunden -> Einstellungen (siehe Grafik).

Identifizierung der IP am Host

Ist die Adresse bekannt, erteilt man am Host bzw. Server die Freigabe zum Teilen. Dies geht über Einstellungen -> Freigabe.

Freigabe am Host

Nun kann man sich entscheiden, ob nur der Desktop zum Beobachten oder dieser auch zum Bedienen frei gegeben werden soll. Im konkreten Fall soll der Client komplett am Host arbeiten können. Deshalb werden beide Schalter (Remote Desktop und Remote Control) aktiviert.

Freigabe am Host

Weiterhin wird das VNC-Protokoll angewählt. In den erweiterten Einstellungen kann man nun auswählen, wie sich der Client auf das System zuschalten darf. Ich bevorzuge hier die Variante zur Berechtigung über Benutzername und Passwort. Alternativ kann der User am Host den Remote-Zugriff manuell gewähren.

Freigabe über Passwortabfrage am Host

Damit sind am Host alle nötigen Einstellungen gesetzt. Möchte man allerdings den Desktop aus der Ferne über das Internet erreichbar machen, so muss im Router ein Portforwarding des Host auf den Port 5900 gesetzt werden. Hierbei wird am Client die öffentliche und nicht die interne IP-Adresse des Host verwendet.

Am Client startet man nun die Anwendung Remmina und erstellt ein neues Profil (siehe Grafik).

Erstellung Profil in Remmina (Client)

Dazu wird das Protokoll Remmina-VNC-Plugin gewählt.

Auswahl des Übertragungsprotokolls in Remmina (Client)

Nun gibt man unter Server die IP des Host (im lokalen Netzwerk die interne IP-Adresse) ein. Benutzername und Passwort werden aus den Voreinstellungen des zu übernehmenden Computers gewählt.

Über speichern und verbinden stellt man dann die erste Verbindung her.

Verwendung von VNC in Remmina (Client)

Die Verbindung sollte nun stehen und am Host kann gearbeitet werden.

Desktop des entfernten Computers auf dem Client

Am entfernten Rechner wird im Tray angezeigt, dass auf diesen aus der Ferne zugegriffen wird.

Bildschirmübernahme am Host

Mumble auf dem Raspberry Pi

24. März 2023 um 18:53

In den Zeiten der Pandemie hatte fast jeder den Drang danach, Kontakte weiter aufrecht zu erhalten und zu pflegen. Die meisten traf das Kontaktverbot völlig unvorbereitet. Das man Videokonferenzen abhalten konnte, war bekannt, aber wer nutzte so etwas schon im Alltag. Viele von uns suchten plötzlich nach Möglichkeiten sich irgendwo online zu treffen. Große Softwarekonzerne ermöglichten einem plötzlich diese Funktionen kostenlos zu nutzen, mit dem Hintergrund spätere Kunden zu gewinnen. Zwar war die Nutzung dieser Dienste kostenlos, jedoch nicht umsonst. Nutzer bezahlten für diese Art der Nothilfe mit ihren Daten.

Da ich schon lange zuvor Open-Source-Lösungen dieser Art wie Nextcloud Talk nutzte, brauchte ich nur die Leute mit denen ich mich nicht treffen konnte, dort hin einzuladen. Für kleine Gesprächsrunden eignete sich meine Nextcloud durchaus. Für eine größere Anzahl von Nutzern war dies jedoch problematisch. Deshalb suchte ich nach einer anderen Lösung.

Perfekt für reine Audio-Treffen war Mumble, welches die ganze Pandemie-Zeit auf einem meiner Server lief. Die Nutzung meines Mumble-Servers verhielt sich aber umgekehrt proportional zur Aufhebung der Kontaktbeschränkung. Reale Treffen waren wieder möglich und man traf sich weniger online. Da ich aber die Technik doch hin und wieder nutzen möchte, habe ich den Versuch gewagt, einen Mumble-Server auf einem Raspberry Pi aufzusetzen. Wie das ganze geht, zeige ich in diesem Artikel.

Installation

Als Server dient ein Raspberry Pi 4 mit 4 GB RAM. Auf diesem wurde ein Raspberry Pi OS mit 64-Bit installiert. Der Mumble-Server wird wie folgt aufgesetzt:

sudo apt install mumble-server

Während der Installation wird abgefragt, ob der Server automatisch starten soll. Diese Frage beantwortet man mit „Ja“. Danach wird abgefragt, ob der Mumble-Server mit einer höheren Priorität zu nutzen ist. Diese Frage habe ich in meinem speziellen Fall mit „Nein“ beantwortet. Danach vergibt man noch ein SuperUser-Passwort und widmet sich dann der erweiterten Konfiguration.

Konfiguration

In der Konfigurationsdatei können nun gewünschte Anpassungen vorgenommen werden, wie z.B. Begrüßungstext, Port etc. Hier habe ich aber nur ein Passwort für die Nutzung meines Server vergeben, um die Kontrolle über den Server zu behalten. Weiterhin kann hier die maximale Anzahl der Besucher festgelegt werden.

sudo nano /etc/mumble-server.ini

Damit der Server jedoch aus dem Internet erreichbar ist, muss der Raspberry Pi mit einer DynDNS verbunden sein. Hier ein Beispiel für den Hoster all-inkl.com. Weiterhin muss der Port im heimischen Router freigegeben werden. Ich nutze den voreingestellten Standard-Port „64738“. Für das Forwarding muss TCP und UDP aktiviert werden.

Portforwarding – 64738

Sind diese Voraussetzungen erfüllt, kann der Mumble-Server gestartet werden.

sudo service mumble-server start

Client

Als Client auf dem PC und Notebook verwende ich Mumble.

Besuch bei den Chemnitzer Linux-Tagen 2023

11. März 2023 um 20:25

Am 11. und 12 März 2023 finden nach dreijähriger Zwangspause endlich wieder die Chemnitzer Linux-Tage an der TU Chemnitz statt. Unter dem Motto „Bewusst sein“ treffen sich zahlreiche Aussteller, Vortragende und Besucher zum Thema Linux und freie Software auf dem Uni-Campus.

TU Chemnitz
Chemnitzer Linux-Tage
Halbleiter von Chemnitz

Ich freute mich riesig dieses Event nach 2019 wieder besuchen zu können, um interessante Leute zu treffen und Gedanken auszutauschen. Am ersten Tag verabredete ich mich mit meinem Mitstreiter Andi alias Waldstepper aus Berlin, um gemeinsam einige Vorträge zu besuchen.

Das Highlight war einmal mehr der lebendige Beitrag „Nachhaltiges Computing mit KNOPPIX“ von Prof. Dipl.-Ing. Klaus Knopper. Überlegungen zu CO2-Fußabdrücken des von Knopper entwickelten Betriebssystems sowie Einblicke in das Innenleben dieser Live-Distribution stießen auf reges Interesse.

Vortrag Nachhaltiges Computing mit KNOPPIX

Natürlich konnte ich noch weiteren interessanten Vorträgen lauschen, wie VPN via WireGuard, Programmierung mit Scratch und Ausführungen zur komplexen Thematik Linux-Desktop, wo darüber philosophiert wurde, warum sich das OS bis heute noch nicht im Desktopbereich durchsetzen konnte und was nötig wäre, um ein solches Projekt zu realisieren. Hier gab es natürlich interessante und praxisnahe Ansätze, die zum Nachdenken anregten.

Einige gute Gespräche konnte ich auch an den Ständen von den Ubuntuusers, der FSFE, TUXEDO, Linuxnews, LibreOffice und den CMS Gardeners führen.

Besuch bei den Ubuntuusers
FSFE-Stand

Alles in allem war es heute ein interessanter und informativer Tag an der TU, der morgen seine Fortsetzung findet.

Internetgeschwindigkeit mit dem Raspberry Pi messen

08. März 2023 um 19:15

Über mein Smartphone führe ich hin und wieder einen Speedtest durch, um die Geschwindigkeit meines Internetanschlusses zu ermitteln. Wie das Ganze aber via Terminal unter Linux auf dem Raspberr Pi geht, erkläre ich im folgenden kurzen Artikel.

Speedtest via command-line interface

Ein Test über den RasPi macht bei mir zu Hause Sinn, da dieser fest über ein LAN-Kabel mit dem Router verbunden ist. Derartige Messungen über eine Direktverbindung sind genauer als Messungen über WiFi. Drahlose Prüfungen mit einem mobilen Endgerät wie Smartphone oder Tablet sind hingegen immer verlustbehaftet.

Die Internetgeschwindigkeit lässt sich mit einem Raspberry Pi relativ einfach über die Konsole ermitteln. Große Programmpakete werden hierfür nicht benötigt.

Installation

Zuerst wird das Paket speedtest-cli installiert.

sudo apt install speedtest-cli

Speedtest durchführen

Wenn das Package eingespielt ist, reicht die Eingabe des folgenden Befehls:

speedtest-cli

Hierbei wird der Test über den nächsten Server ausgeführt. Ist man mit dem Resultat nicht zufrieden, kann ein anderer Server angesteuert werden. Dazu lässt man sich die 10 nächsten Standorte anzeigen.

speedtest-cli --list

Retrieving speedtest.net configuration...
53128) WOBCOM GmbH (Wolfsburg, Germany) [132.61 km]
49459) FNOH-DSL (Uetze, Germany) [163.37 km]
47786) WebseitenDesigner.com (Hannover, Germany) [183.20 km]
45664) WEMACOM Telekommunikation GmbH (Schwerin, Germany) [242.14 km]
 8827) Marco Bungalski GmbH (Verden, Germany) [246.12 km]
45822) WEMACOM Telekommunikation GmbH (Hamburg, Germany) [266.29 km]
53256) LWLcom GmbH (Hamburg, Germany) [267.38 km]
 5733) LWLcom GmbH (Bremen, Germany) [279.95 km]
16596) Bremen Briteline GmbH (Bremen, Germany) [279.95 km]
 4556) TNG Stadtnetz GmbH (Kiel, Germany) [339.23 km]

Der Test über einen anderen Server wird dann mit dem Befehl

speedtest-cli --server 49459

angestoßen. In diesem Fall habe ich mich für den Server FNOH-DSL (Uetze, Germany) entschieden.

Grafische Ausgabe

Möchte man noch eine grafische Ausgabe des Ergebnis, setzt man einfach den entsprechenden Schalter (share) und bekommt am Ende der Ausgabe den Link zum Ergebnis (PNG-Datei).

speedtest-cli --share

Speedtest über OOKLA

❌
❌