staging.inyokaproject.org

12. März 2018

Heute bin ich in die Situation gekommen unter Ubuntu eine Schrift hinzufügen zu wollen. Erstaunt habe ich festgestellt das ich Ubuntu noch nie um eine Schrift erweitert habe, dachte mir aber…. das geht sicher leicht.

In der Systemsteuerung konnte ich zum Thema Schriften nichts finden. Und der erste Tipp im Internet “rechte Maustaste auf die Schriftdatei und dann installieren wählen” klappte nicht, da mir Unity leider kein Installieren angeboten hat. Nur ein Schriftbetrachter.

Die Lösung sieht wie folgt aus:
Ich habe unter

/home/andre/.local/share/fonts

das Verzeichnis “truetype” erstellt, da dieses noch nicht vorhanden war. Anschliessend habe ich die .ttf Datei hierher kopiert und
den “Fontcache” mit folgenden Befehl aktuallisiert:

sudo fc-cache

Anschliessend ist die Schriftart verfügbar.

11. März 2018

Bild: © Trueffelpix / Fotolia.com

Alle Linux-Distributionen haben mit eCryptFS und LUKS/dm-crypt sowohl dateibasierte, als auch containerbasierte Verschlüsselungslösungen in ihren Paketquellen (siehe: Verschlüsselung - Eine Übersicht). Keine der Lösungen gilt als gebrochen und sie sind inzwischen auch hinreichend leicht einzusetzen. Dennoch verwendet - vollkommen unverständlicherweise - keine größere Linux-Distribution Verschlüsselung als Standard.

Natürlich schränkt Verschlüsselung den Datenzugriff bei schwerwiegenden Fehlern ein. Leichter Datenzugriff steht immer in einem Spannungsfeld zu Datenverschlüsselung. Der stationäre PC-Tower gehört jedoch immer mehr der Vergangenheit an. Selbst Notebooks haben schon einen leicht veralteten Charme. Geräte sind mobil und mobile Geräte können abhanden kommen. Das Risiko des Datenverlusts durch Geräteverlust ist immens höher als vor ca. 15 Jahren. Mal abgesehen davon, dass bei Wohnungseinbrüchen auch der stationäre PC-Tower nicht sicher ist.

Genau aus diesem Grund sind die meisten Mobilbetriebssysteme wie Android oder iOS entweder per default verschlüsselt oder raten ihren Anwendern sehr explizit zu einer solchen Verschlüsselung. Die umstrittene Verschlüsselung mit biometrischen Merkmalen soll hier schließlich vor allem Hürden senken. Windows 10 beinhaltete die Microsoft-Lösung BitLocker nun bereits für Pro-Anwender und macOS hat FileVault integriert, seit High Sierra nun auch mit nativer Verschlüsselung auf Dateisystemebene in APFS. Nur Linux-Distributionen tun nichts. Die meisten Distributionen unterstützen nicht einmal die native Lösung in ext4.

Hier lässt man mittels Benutzername und Passwort die Anwender in gewohnter Windows-Manier in dem Glauben sich zu schützen. Das ist meiner Meinung nach schon fast Betrug am unbedarften Anwender.

Zumindest bei elementaryOS, einem inoffiziellen Ubuntu-Ableger, hat man nun beschlossen dies zu ändern. Im Rahmen einer neu entwickelten Installationsroutine - man trennt sich hier von der inzwischen ziemlich veralteten Lösung Ubiquity - sollen Systeme standardmäßig verschlüsselt werden.

Ausgerollt wird das ganze mit der kommenden Version Juno, die vermutlich mit einigem zeitlichen Abstand zu Ubuntu 18.04 folgen wird.

10. März 2018

Neun Monate sind seit dem letzten Update für die Firefox WebExtension Bookmarks Organizer vergangen. Nun steht mit dem Bookmarks Organizer 2.0 das große Update bereit, auf welches viele Nutzer so lange gewartet haben: signifikanten Verbesserungen der Architektur kombiniert mit dem kommenden Update auf Firefox 59 ist es zu verdanken, dass die Korrektheit der Ergebnisse um ein Vielfaches gesteigert werden konnte. Alle gemeldeten Probleme und noch mehr wurden aus der Welt geschafft. Außerdem ist der Bookmarks Organizer in mittlerweile 13 Sprachen übersetzt.

Download Bookmarks Organizer 2.0 für Mozilla Firefox

Der Bookmarks Organizer soll dabei helfen, wieder Ordnung in die Lesezeichen zu bringen, indem nicht mehr funktionierende sowie doppelte Lesezeichen gefunden und Weiterleitungen korrigiert werden. Ein ausführlicher Überblick über alle Funktionen kann hier gefunden werden. Bookmarks Organizer 2.0 erfordert mindestens Firefox 59. Mozilla wird Firefox 59 am kommenden Dienstag veröffentlichen.

Keine unendlich dauernden Überprüfungen mehr

Manche Nutzer meldeten das Problem, dass die Überprüfung auf defekte Lesezeichen praktisch nie zu einem Ende kam. Dies ist insbesondere deswegen schlecht, weil die Ergebnisse aus Performance-Gründen erst dann angezeigt werden, wenn die Überprüfung vollständig abgeschlossen ist. Für betroffene Nutzer war die Erweiterung damit nutzlos.

Der Grund hierfür war simpel und doch bislang nicht behebbar: zur Überprüfung der Lesezeichen sendet der Bookmarks Organizer eine Anfrage an die entsprechende URL. Reagiert der Server auf eine Anfrage nicht, erhält die Erweiterung dementsprechend auch keine Antwort zurück. Die Möglichkeit, eine Anfrage abzubrechen, bestand aus technischen Gründen bisher nicht. Mit Firefox 59 besitzt Firefox erstmals die Möglichkeit dazu, wovon der Bookmarks Organizer Gebrauch macht. Ein Mechanismus wurde implementiert, welche jede Anfrage nach einer bestimmten Dauer abbricht, wenn bis dahin keine Antwort erfolgt ist. Dies ist auch der Grund, wieso der Bookmarks Organizer 2.0 Firefox 59 oder höher erfordert.

Ein besonderer Dank geht an dieser Stelle auch an Mozilla. Durch die Entwicklung des Bookmarks Organizers bin ich auf eine Absturzursache von Firefox gestoßen, welche es nicht erlaubt hätte, diese Verbesserung auszuliefern. Die Ursache wurde innerhalb von nur zwei Tagen bestätigt und behoben und der Bugfix noch in der gleichen Woche rechtzeitig für Firefox 59 Beta 14 bereitgestellt.

Drei Maßnahmen für weniger falsche Resultate

Um Lesezeichen auf Korrektheit zu überprüfen, ist es notwendig, jede einzelne URL aufzurufen. Je mehr Lesezeichen man hat, desto größer ist das Risiko für falsche Ergebnisse, alleine schon weil es für den Browser schwierig sein kann, tausende Seiten praktisch gleichzeitig aufzurufen. Bookmarks Organizer 2.0 kommt mit gleich drei Verbesserungen, welche die Anzahl falscher Resultate drastisch reduzieren.

1. Drosselung von Anfragen

Ein Mechanismus wurde implementiert, welcher sicherstellt, dass zu keinem Zeitpunkt mehr als eine gewisse Zahl an Anfragen gleichzeitig stattfindet. Weitere Anfragen werden zurückgehalten, bis die nächste Position in der Warteschlange frei wird. Gerade bei vielen Lesezeichen dauert die Überprüfung dadurch etwas länger als bisher. Auf der anderen Seite hat diese Änderung einen großen Effekt für die Korrektheit der Ergebnisse – und nichts wäre ärgerlicher als vermeintlich defekte Lesezeichen zu löschen, die gar nicht defekt sind.

2. Umgehung des Schutzes vor Aktivitätenverfolgung

Der Bookmarks Organizer erkannte bislang einige Lesezeichen als vermeintlich defekt, obwohl sie tadellos funktionierten, wenn der Schutz vor Aktivitätenverfolgung in Firefox aktiviert war. Die neue Version des Bookmarks Organizers deaktiviert den Schutz vor Aktivitätenverfolgung für den Zeitraum der Überprüfung und stellt den Status anschließend automatisch wieder so ein, wie er vor der Überprüfung war. Diese Neuerung ist der Grund, wieso die Erweiterung ab dieser Version die Berechtigung anfragt, die Datenschutzeinstellungen von Firefox zu lesen und zu verändern und wieso in den Einstellungen angezeigt wird, dass der Bookmarks Organizer die Kontrolle über die entsprechende Einstellung übernommen hat. Diese Änderung ist ein weiterer Grund, wieso Firefox 52 nicht länger unterstützt werden kann.

Hinweis: es kann immer nur eine Erweiterung die Einstellungen zum Schutz vor Aktivitätenverfolgung kontrollieren. Wenn eine andere Erweiterung diese Einstellung kontrolliert, kann Bookmarks Organizer diese Verbesserung nicht nutzen.

3. Zweite Anfrage wird bei fehlerhaft erkannten Lesezeichen nun immer ausgeführt

Eine Neuerung des Bookmarks Organizers 1.3.0 war es, aus Performance-Gründen eine HEAD- statt einer GET-Anfrage an die Server zu senden. Nicht jede Webseite unterstützt HEAD-Anfragen, deswegen wurde bei als fehlerhaft erkannten Webseiten noch eine zweite GET-Anfrage hinterher geschickt.

Diese zweite Anfrage wurde unter gewissen Umständen nicht abgesendet, womit dann manches Lesezeichen als fehlerhaft angezeigt worden ist, obwohles das nicht war. Diese Ursache gehört der Vergangenheit an.

Einstiegspunkte in die Oberfläche

Der Bookmarks Organizer kann über ein Symbol in der Symbolleiste geöffnet werden, über die Eingabe des Kommandos „bookmarks organizer“ in die Adressleiste oder via Tastatur-Shortcut. Dieser wurde geändert, um einen Konflikt mit einem standardmäßig vorhandenen Kommando zu vermeiden. Der neue Tastatur-Befehl lautet Shift + F11.

Außerdem wurde ein Menü-Eintrag im Extras-Menü von Firefox hinzugefügt.

Bookmarks Organizer 2.0 im Extras-Menü

Suche nach Duplikaten wieder funktional

Ein gemeldetes Problem bestand darin, dass die Lade-Animation bei der Suche nach doppelten Lesezeichen nicht verschwunden ist und in der Folge dafür sorgte, dass die Duplikate auch nicht bearbeitet oder gelöscht werden konnten. Dieses Problem wurde aus der Welt geschafft.

Trennlinien werden nun ignoriert

Bei der Suche nach Duplikaten und ebenso bei der Suche nach Lesezeichen ohne Namen wurden Trennlinien als Lesezeichen, dazu mit nichtssagender URL, erkannt. Trennlinien werden ab sofort bei der Suche ignoriert und außerdem nicht mehr zur Anzahl der Lesezeichen im Header addiert.

Vier neue Übersetzungen – jetzt in 13 Sprachen

Nach Deutsch, Englisch, Französisch, Chinesisch, Niederländisch, Polnisch, Tschechisch, Obersorbisch und Niedersorbisch ist der Bookmarks Organizer ab sofort auch noch in die Sprachen Russisch, Spansich, Schwedisch sowie Ukrainisch übersetzt.

Noch ein paar Verbesserungen mehr

Wird ein Lesezeichen gelöscht, wird nicht länger nur automatisch die Anzahl der Lesezeichen insgesamt um eines reduziert, sondern auch die Anzahl der übeprüften Lesezeichen, so dass zu keinem Zeitpunkt mehr überprüfte als vorhandene Lesezeichen angezeigt werden.

Die Einstellung zum Deaktivieren der Bestätigungs-Dialoge hatte nicht im Modus zum Überprüfen auf Duplikate gegriffen, außerdem wurden die Checkboxen für Fehler und Warnungen nicht zurückgesetzt, falls eine weitere Überprüfung gestartet worden ist, ohne die Oberfläche neu zu laden.

Durch ein Refactoring und Vereinfachung des Codes konnte die Performance sowie Wartbarkeit mancher Teile des Codes verbessert werden. Die Dateigröße des Logos konnte reduziert werden und sämtliche Abhängigkeiten wurden auf einen aktuellen Stand gebracht.

Wofür werden all die Berechtigungen benötigt?

Nicht immer ist es für den Nutzer offensichtlich, wofür eine Erweiterung all die Berechtigungen benötigt. Wie schon bei New Tab Override gehe ich auch beim Bookmarks Organizer mit gutem Beispiel voran und liefere zu ausnahmslos jeder Berechtigung eine Erklärung, um für Transparenz zu sorgen. Die Übersicht ist auf der Beschreibungs-Seite der Erweiterung zu finden.

Hinweise und bekannte Probleme

Ebenfalls neu auf der Beschreibungs-Seite der Erweiterung ist ein Abschnitt, welcher Hinweise zur Nutzung und bekannte Probleme beinhaltet. Bekannte Probleme in Form von Fehlern in Bookmarks Organizer existieren derzeit keine, allerdings werden hier zwei Dinge aufgelistet, die wissenswert für die Benutzung des Bookmarks Organizers sind.

Gefällt? Unterstützung gerne gesehen!

Wer die Entwicklung des Add-ons unterstützen möchte, kann dies tun, indem er der Welt von Bookmarks Organizer erzählt und die Erweiterung auf addons.mozilla.org bewertet. Auch würde ich mich sehr über eine kleine Spende freuen, welche es mir ermöglicht, weitere Zeit in die Entwicklung des Add-on zu investieren, um zusätzliche Features zu implementieren.

Der Beitrag Firefox WebExtension Bookmarks Organizer 2.0 veröffentlicht erschien zuerst auf soeren-hentzschel.at.

Bild von johnyksslr via Pixabay / Lizenz: CC0 Creative Commons

Android und Sicherheit hat Potenzial für eine Endlosserie. Grundsätzliche Überlegungen hatte ich bereits vor einiger Zeit formuliert (siehe: Android - Keine sichere Alternative!), gefolgt von einer Meldung zur Ortung von Androidnutzern über vermeintlich abgeschaltete Bluetooth (und WLAN)-Funktionalität (siehe: Kommentar: Android - Keine sichere Alternative Teil II - Standortdaten über Bluetooth).

Dies wird nun gekrönt durch Meldungen z.B. auf heise.de über vorinstallierte Trojaner bei preiswerten Android-Smartphones.

Die Schadsoftware ist dabei tief im System verankert und kommt vermutlich über externe Softwareentwickler auf die Geräte. Die Liste umfasst zwar vorwiegend so genannte China-Modelle, d.h. preiswerte Smartphones, die nicht direkt in Deutschland angeboten werden. Diese preiswerten Smartphones aus China erfreuen sich aber zunehmender Beliebtheit in Deutschland. Weltweite Lieferungen sind schließlich kein Problem mehr und die chinesischen Modelle bieten meist vergleichsweise leistungsstarke Hardware zu günstigen Preisen. Ein nicht zu unterschätzender Faktor im Benchmark-fixierten Android-Universum.

Wer glaubt, dass das Problem sich auf Billig-Smartphones im chinesischen Markt beschränkt irrt zudem. Im vergangenen Herbst kam immerhin heraus, dass der in der Android-Szene beliebte Anbieter OnePlus mittels seiner Android-Variante OxygenOS die Nutzer trackt und die erhobenen Daten an OnePlus überträgt. Der folgende Aufschrei zeigte zwar Wirkung, ändert aber nichts ab grundlegenden Problem.

Beide Meldungen zeigen mal wieder, dass ein im Kern aus Open Source-Software bestehendes System keine Sicherheitsgarantie bringt. AOSP mag frei sein, die Firmware ist es oft nicht und die Stock-Roms der Hersteller sind vielfach modifiziert. Kombiniert mit dubiosen Hardwareherstellern, von denen viele inzwischen im preisfixierten Mainstream angekommen sind, ist das ein Sicherheitsalbtraum.

Android ist vergleichbar mit Windows. Das offene Distributionsmodell zersetzt ein eigentlich gar nicht so schlechtes System durch Crapware, proprietäre Herstellerapps, proprietäre Google-Dienste, kombiniert mit einem gescheiterten Updatesystem und ahnungslosen Anwendern.

Es ist mir daher nach wie vor schleierhaft wie man als sicherheitsbewusster Anwender dieses System irgendwem empfehlen kann. Eigentlich muss man jedes gekaufte Gerät unverzüglich rooten, mit einer Custom Rom versehen, von Google-Diensten befreien und selbst dann hat man noch die geschlossene Firmware als Sicherheitsrisiko. Gegen diesen Zirkus ist die Installation und Distribution von Linux ja ein Kinderspiel.

Nein, wenn es etwas freies sein soll, muss man zu wirklich freien und funktionierenden Systemen wie SailfishOS greifen. Dieses wird durch einige Hersteller wie z.B. Sony ja inzwischen wenigstens semi-offiziell unterstützt. Ansonsten kann man auch zu Apples iPhone greifen. Das ist zwar hochgradig geschlossen aber auch nicht weniger vertrauenswürdig als das oben aufgezählte Sammelsurium. Immerhin interessiert sich da der Hersteller noch für den Kunden und das nicht nur bis zum Bezahlvorgang.

Ich bin mir nicht sicher, ob Android überhaupt noch zu retten ist oder die Probleme grundsätzlich struktureller Natur sind. Das Distributionsmodell ist einfach komplett gescheitert. Vermutlich bräuchte es da einen Neustart. Der wird aber nicht kommen, die Marktanteile sind hoch, die Geräte beliebt und Google-Dienste somit bei Milliarden von Anwendern vorinstalliert. Da besteht einfach kein Interesse an einem Neustart. Eine interessante Parallele zu Windows.

Bild von johnyksslr via Pixabay / Lizenz: CC0 Creative Commons

Android und Sicherheit hat Potenzial für eine Endlosserie. Grundsätzliche Überlegungen hatte ich bereits vor einiger Zeit formuliert (siehe: Android - Keine sichere Alternative!), gefolgt von einer Meldung zur Ortung von Androidnutzern über vermeintlich abgeschaltete Bluetooth (und WLAN)-Funktionalität (siehe: Kommentar: Android - Keine sichere Alternative Teil II - Standortdaten über Bluetooth).

Dies wird nun gekrönt durch Meldungen z.B. auf heise.de über vorinstallierte Trojaner bei preiswerten Android-Smartphones.

Die Schadsoftware ist dabei tief im System verankert und kommt vermutlich über externe Softwareentwickler auf die Geräte. Die Liste umfasst zwar vorwiegend so genannte China-Modelle, d.h. preiswerte Smartphones, die nicht direkt in Deutschland angeboten werden. Diese preiswerten Smartphones aus China erfreuen sich aber zunehmender Beliebtheit in Deutschland. Weltweite Lieferungen sind schließlich kein Problem mehr und die chinesischen Modelle bieten meist vergleichsweise leistungsstarke Hardware zu günstigen Preisen. Ein nicht zu unterschätzender Faktor im Benchmark-fixierten Android-Universum.

Wer glaubt, dass das Problem sich auf Billig-Smartphones im chinesischen Markt beschränkt irrt zudem. Im vergangenen Herbst kam immerhin heraus, dass der in der Android-Szene beliebte Anbieter OnePlus mittels seiner Android-Variante OxygenOS die Nutzer trackt und die erhobenen Daten an OnePlus überträgt. Der folgende Aufschrei zeigte zwar Wirkung, ändert aber nichts ab grundlegenden Problem.

Beide Meldungen zeigen mal wieder, dass ein im Kern aus Open Source-Software bestehendes System keine Sicherheitsgarantie bringt. AOSP mag frei sein, die Firmware ist es oft nicht und die Stock-Roms der Hersteller sind vielfach modifiziert. Kombiniert mit dubiosen Hardwareherstellern, von denen viele inzwischen im preisfixierten Mainstream angekommen sind, ist das ein Sicherheitsalbtraum.

Android ist vergleichbar mit Windows. Das offene Distributionsmodell zersetzt ein eigentlich gar nicht so schlechtes System durch Crapware, proprietäre Herstellerapps, proprietäre Google-Dienste, kombiniert mit einem gescheiterten Updatesystem und ahnungslosen Anwendern.

Es ist mir daher nach wie vor schleierhaft wie man als sicherheitsbewusster Anwender dieses System irgendwem empfehlen kann. Eigentlich muss man jedes gekaufte Gerät unverzüglich rooten, mit einer Custom Rom versehen, von Google-Diensten befreien und selbst dann hat man noch die geschlossene Firmware als Sicherheitsrisiko. Gegen diesen Zirkus ist die Installation und Distribution von Linux ja ein Kinderspiel.

Nein, wenn es etwas freies sein soll, muss man zu wirklich freien und funktionierenden Systemen wie SailfishOS greifen. Dieses wird durch einige Hersteller wie z.B. Sony ja inzwischen wenigstens semi-offiziell unterstützt. Ansonsten kann man auch zu Apples iPhone greifen. Das ist zwar hochgradig geschlossen aber auch nicht weniger vertrauenswürdig als das oben aufgezählte Sammelsurium. Immerhin interessiert sich da der Hersteller noch für den Kunden und das nicht nur bis zum Bezahlvorgang.

Ich bin mir nicht sicher, ob Android überhaupt noch zu retten ist oder die Probleme grundsätzlich struktureller Natur sind. Das Distributionsmodell ist einfach komplett gescheitert. Vermutlich bräuchte es da einen Neustart. Der wird aber nicht kommen, die Marktanteile sind hoch, die Geräte beliebt und Google-Dienste somit bei Milliarden von Anwendern vorinstalliert. Da besteht einfach kein Interesse an einem Neustart. Eine interessante Parallele zu Windows.

9. März 2018

Seit Firefox 56 wird der Mozilla-Browser mit einer eingebauten Screenshot-Funktion ausgeliefert. Ab Firefox 59 stehen serverseitig grundlegende Funktionen zur Bearbeitung der Bilder zur Verfügung.

Firefox Screenshots ist ein seit Firefox 56 in Firefox integriertes Werkzeug zur Aufnahme von Bildschirmfotos, welches erlaubt, entweder nur den sichtbaren Bereich einer Webseite, die komplette Webseite oder einen beliebigen Ausschnitt abzubilden. Die Screenshots können entweder auf dem Computer gespeichert oder auf einen Mozilla-Server hochgeladen werden, seit Firefox 58 gibt es die dritte Option, Bilder stattdessen in die Zwischenablage zu kopieren. Seit dem Start von Firefox Screenshots wurde der Mozilla-Dienst schon für mehr als 64 Millionen Screenshots verwendet.

Ab Firefox 59 stehen serverseitig neue Funktionen zur Verfügung, welche einer einfachen Bearbeitung der hochgeladenen Bilder dienen. So gibt es nun ein Werkzeug, um das Bild nachträglich zu beschneiden und mit einem neuen Zeichen- sowie Textmarker-Werkzeug kann in das Bild gemalt werden. Dafür stehen insgesamt neun fest definierte Farben zur Verfügung. Schließlich gibt es noch eine Schaltfläche, um die Änderungen rückgängig zu machen.

Firefox Screenshots in Firefox 59

Der Beitrag Firefox: Screenshot-Feature bekommt Bildbearbeitungs-Funktionen erschien zuerst auf soeren-hentzschel.at.

Bild von typographyimages via pixabay / Lizenz: CC0 Public Domain

In kaum einem Bereich ist Verschlüsselung so notwendig und wird so wenig genutzt wie bei der klassischen E-Mail. Innovationen und neue Verfahren werden so oft angekündigt, wie sie scheitern. Übrig bleibt letztlich immer die klassische Verschlüsselung mittels PGP oder S/MIME.

Die Artikelserie stammt noch von 2013 und wurde jetzt grundlegend überarbeitet und an die Veränderungen der letzten Jahre angepasst.

Siehe: E-Mail Kommunikation absichern

Die Basis bildet immer ein vertrauenswürdiger Mailanbieter. Vertrauenswürdig ist in mehrfacher Hinsicht wichtig. Der Anbieter sollte alle technischen (Sicherheits-)Standards unterstützen und sein Geld nicht mit Datenhandel verdienen. Beides ist keine Selbstverständlichkeit.

Zusätzliche inhaltliche Sicherheit kann man mit Verschlüsselung erreichen. Diese ersetzt aber zu keinem Zeitpunkt den vertrauenswürdigen Anbieter, da sich die Metadaten - wie so oft - nicht absichern lassen. Sowohl S/MIME, als auch OpenPGP sind geeignet um die Inhalte zu sichern. Welches Verfahren man wählt hängt ganz maßgeblich von der Verbreitung unter den Kommunikationspartnern ab. Persönlich empfehle ich trotz des etwas komplizierteren Schlüsselgenerierungsverfahren S/MIME, da dieses im Gegensatz zu PGP durch fast alle Programme von Haus aus unterstützt wird.

Im Bereich der E-Mail Programme hat sich leider recht wenig getan und dann auch noch zum schlechteren. Seit einem von Posteo finanzierten Audit wissen wir endgültig, dass Mozilla Thunderbird strukturell unsicher ist. Entweder man verzichtet gänzlich auf den Einsatz von Addons (außer Enigmail natürlich) oder man wechselt zu einem anderen Programm.

Neue Projekte wie beispielsweise Autocrypt (siehe: Letzte Hoffnung für die E-Mail Verschlüsselung: Autocrypt) sind vorerst nicht enthalten, da sich erst noch herausstellen muss, ob weiter Anbieter diese unterstützen werden oder ob sie wie so viele ihrer Vorgänger einen schnellen Tod sterben.

Koha, ein integriertes Bibliothekssystem, ist eines der besten Open Source Projekte, das ich kenne. Wir verwenden es in unserer Schul- und Lehrmittelbibliothek. Weltweit wird es von vielen Schulen, Universitäten und natürlich Bibliotheken verwendet. Es bringt sehr viele Features mit und man kann es sehr flexibel konfigurieren und anpassen. Jedoch hat es einen Nachteil: Wenn man bisher wenig mit dem Bibliothekswesen zu tun hatte, ist der Einstieg recht steil, weniger in Koha, sondern in das bibliografische Datenformat MARC 21. Deshalb möchte ich in dieser Artikelreihe zeigen, wie man Koha installiert und für Schulen einrichtet.

Dieser Artikel ist ein Teil einer Serie:

  1. Installation und Einrichtung einer ersten Bibliothek
  2. Das bibliografische Framework
  3. Grundeinstellungen
  4. Buchaufnahme
  5. Benutzerverwaltung und Ausleihkonditionen
  6. Mahnungen und Gebühren

Installation

Vorbereitungen

Koha ist eine Webanwendung für die wir einen Webserver brauchen.  Das kann ein eigener Rechner sein, eine virtuelle Maschine oder ein Linux-Container. Wir werden in diesem Beispiel ein LXD-Container mit Ubuntu 16.04 verwenden, es geht aber auch jeder andere Rechner mit Debian oder Ubuntu.

Zuerst fügen wir die Paketquellen und den zugehörigen Schlüssel für Koha hinzu:

$ echo deb http://debian.koha-community.org/koha stable main | sudo tee /etc/apt/sources.list.d/koha.list
$ wget -O- http://debian.koha-community.org/koha/gpg.asc | sudo apt-key add -

Danach müssen wir die Paketquellen einmal aktualisieren:

$ sudo apt update

Nun können wir Koha und den Datenbankserver installieren:

$ sudo apt install koha-common mariadb-server

Damit unser Datenbankserver sicherer wird, können wir mit folgendem Befehl einige Einstellungen ändern:

$ sudo mysql_secure_installation

Bis auf die erste Frage können alle Fragen können mit Ja („Y“) beantwortet werden. Es sollte unbedingt ein Root-Passwort festgelegt werden!

Bevor wir Koha einrichten, müssen wir ein paar grundlegende Einstellungen in der Datei /etc/koha/koha-sites.conf vornehmen. Es geht um die Festlegung der Domain unter welcher Koha und der OPAC (die Website für die Benutzer) später erreichbar ist. Sie setzt sich dabei wie folgt zusammen:

  • OPAC: bibliothek.domain.tld
  • Koha-Intranet: bibliothek-intra.domain.tld

Dazu öffnen wir die Datei und ändern folgende Parameter:

  • DOMAIN – hier tragen wir die Haupt-Domain ein, z.B. „.meine-schule.org“
  • INTRASUFFIX – standardmäßig „-intra“, z.B. bibliothek-intra.meine-schule.org

$ sudo nano /etc/koha/koha-sites.conf

Danach aktivieren wir noch einige Webserver-Module, damit Koha später erreichbar ist:

$ sudo a2enmod rewrite
$ sudo a2enmod cgi
$ sudo service apache2 restart

Deutsches Sprachpaket installieren

Das deutsche Sprachpaket können wir so installieren:

$ sudo koha-translate --install de-DE

Später ist sowohl der Webinstaller als auch Koha in Deutsch verfügbar.

Bibliotheksinstanz erstellen

Mit Koha können wir mehrere Bibliotheken erstellen und verwalten. Bisher existiert aber noch keine, deshalb müssen wir erst einmal eine erstellen.

$ sudo koha-create --create-db bibliothek

Soll Koha später unter bibliothek.meine-schule.org erreichbar sein, müssen wir bibliothek als Bibliotheksnamen verwenden.

Als nächsten aktivieren noch die neue Konfiguration für den Webserver und starten ihn neu:

$ sudo a2enmod deflate
$ sudo a2ensite bibliothek
$ sudo service apache2 restart

Damit wir den Webinstaller erreichen können müssen wir die IP und den Domainnamen entweder in unseren DNS-Server eintragen oder lokal in die hosts-Datei. In Ubuntu befindet sie sich unter /etc/hosts. Die IP findet man z.B. mit ifconfig heraus.

$ sudo nano /etc/hosts
...
10.97.127.207 bibliothek.meine-schule.org
10.97.127.207 bibliothek-intra.meine-schule.org
...

Koha einrichten

Grundinstallation

Unter http://bibliothek-intra.meine-schule.org erreichen wir den Webinstaller.

koha webinstaller step 1

Der Benutzer ist koha_bibliotheksname. Das Passwort erhalten wir mit folgendem Befehl (bibliotheksname anpassen!):

$ sudo xmlstarlet sel -t -v 'yazgfs/config/pass' /etc/koha/sites/bibliotheksname/koha-conf.xml;echo

Im nächsten Schritt können wir dann die Sprache auswählen:

koha sprache

In den nächsten Schritten werden Abhängigkeiten geprüft, z.B. ob alle Perl-Module vorhanden sind, die Datenbanktabellen eingerichtet und ein MARC-Format muss ausgewählt werden (MARC21 ist der Standard). Dann kommt eine längere Seite auf der wir die Datenbank mit verschiedenen Vorlagen und Beispieldaten befüllen können. Hier muss jeder für sich entscheiden, was er alles in der Datenbank haben möchte. Wir wählen zu den bereits markierten Punkte noch folgende hinzu:

  • Bibliographisches Standard-Framework für MARC21
  • „FA“, ein MARC21-Framework (Erfassungsmaske) für Schnellaufnahmen und Fernleihtitel
  • Beispiele für die Auswahllisten der verschiedenen normierten Werte (Verloren, Beschädigt, Sammlung, Standort etc.) …
  • Nützliche Benutzerattribute

Koha Grundeinstellungen

Damit ist die Grundinstallation abgeschlossen.

Bibliothek und erste Einstellungen einrichten

Nun werden wir gefragt, wie unsere Bibliothek heißen soll. Dazu legen wir ein Kürzel fest (kann später nicht geändert werden) und vergeben einen Namen. Wir nennen sie hier im Beispiel Schulbibliothek.

Koha Bibliothek anlegen

Als nächstes erstellen wir einen ersten Benutzertypen. Das Admin-Konto, welches wir gleich anlegen, verwendet diesen Benutzertyp. Wieder müssen wir ein Kürzel bzw. Code für die Kategorie vergeben („MA„) , eine Beschreibung und die Dauer der Mitgliedschaft. Letztere legt fest, wann ein Benutzerkonto in dieser Kategorie abläuft.

Koha Benutzertyp

Nachdem der Benutzertyp angelegt ist, erstellen wir den Administrator. Dieser Benutzer hat „Superlibraian„-Rechte. Alle Felder müssen ausgefüllt werden.

Koha Admin

Nun legen wir einen ersten Medientyp fest. Das können Bücher, CDs, DVDs, Karten usw. sein. Wieder brauchen wir ein Code, der später nicht geändert werden kann, und einen Beschreibung:

Koha Medientyp

Zuletzt legen wir die Ausleihkonditionen für den eben erstellten Medientyp fest. Die Einstellungen sind sehr flexibel. Man kann die Leihfrist einstellen oder für welche Bibliothek oder Benutzertyp die Regel gelten soll. Wir können die Regeln später noch ändern.

Koha Ausleihkonditionen

Damit ist die Grundinstallation von Koha und unserer ersten Bibliothek abgeschlossen! Unter http://bibliothek-intra.meine-schule.org können wir uns nun mit unserem Admin-Konto anmelden und haben damit Zugriff auf die Administrationsseite von Koha. Dort nehmen wir alle weiteren Einstellungen vor, verleihen Bücher oder nehmen sie wieder zurück.

Fazit

Wir haben nun eine funktionieren Koha-Installation und eine erste Bibliothek. Trotzdem sind viele weitere Einstellungen nötig, bevor wir die ersten Medien in Koha aufnehmen können. Dies möchte ich in den kommenden Artikeln dieser Serie aufzeigen.

 

3 Kommentare

Der Beitrag Teil 1: Installation – Wie man Koha installiert und für Schulen einrichtet erschien zuerst auf .:zefanjas:..

8. März 2018

Bislang war es nicht möglich, die E-Mail-Adresse seines Firefox Accounts, der unter anderem für die Synchronisation von Firefox-Daten genutzt wird, zu ändern. Ab sofort besteht diese Möglichkeit.

Der sogenannte Firefox Account ist das Benutzerkonto, welches unter anderem dann verwendet wird, wenn man die Synchronisation von Firefox-Daten aktiviert. Die E-Mail-Adresse wird dabei für den Login benötigt – war man an seinem Gerät drei Tage lang nicht angemeldet, muss eine erneute Anmeldung per E-Mail bestätigt werden.

Es kommt vor, dass man auf manche E-Mail-Adressen nicht sein Leben lang Zugriff hat. Tritt dieser Fall ein, hat man unter Umständen auch keinen Zugriff mehr auf seine synchronisierten Daten. Zwar besteht die Möglichkeit, sich einen neuen Account zu registrieren und dann von einem der Geräte die Daten neu zu synchronisieren, dabei besteht aber immer die Gefahr, dass Daten verloren gehen, insbesondere wenn man von einem neueren Gerät synchronisiert, welches die alten Daten nicht oder nicht vollständig besitzt.

Bereits seit einigen Wochen ist es möglich, auf accounts.firefox.com eine zweite E-Mail-Adresse anzugeben, welche für den Versand von Sicherheitshinweisen und zur Login-Bestätigung genutzt wird. Diese zweite E-Mail-Adresse kann nun auch zur primären E-Mail-Adresse ernannt werden. Die bisherige primäre E-Mail-Adresse kann danach entfernt werden. So ist ein Wechsel der E-Mail-Adresse möglich, ohne dass ein neues Benutzerkonto angelegt werden muss.

Der Beitrag Firefox Account: Änderung der E-Mail-Adresse möglich erschien zuerst auf soeren-hentzschel.at.

5. März 2018

Mit dem Open Source Support-Programms („MOSS“) unterstützt Mozilla Open Source-Anwendungen finanziell. Im vergangenen Jahr hat Mozilla im Rahmen von MOSS insgesamt 1.650.000 Dollar in Projekte aus der Open Source-Welt investiert. In diesem Quartal wurden weitere Unterstützungen bekannt gegeben.

Mozilla hat die Initiative Mozilla Open Source Support, oder kurz: MOSS, Ende Oktober 2015 ins Leben gerufen und seit dem bereits mehrere Millionen Dollar an Open Source-Projekte ausgeschüttet. Die geförderten Projekte werden teilweise von Mozilla selbst eingesetzt, teilweise werden sie aber auch deswegen gefördert, weil sie mit der Mozilla-Mission konform gehen. Mittlerweile wurden weitere Investitionen bekannt gemacht. Über alle Ausschüttungen kann hier mehr in Erfahrung gebracht werden.

MOSS-Unterstützungen

Über den Python Package Index, kurz: PyPI, werden jede Woche über 100 Millionen Python-Packages heruntergeladen. Mit Warehouse entwickelt die Python-Community ein Nachfolge-Produkt. Zur Fertigstellung erhält das Projekt eine Unterstützung in Höhe von 170.000 Dollar.

Das Tor-Projekt hat von Mozilla in den letzten Jahren bereits mehrere Unterstützungen erhalten. Im Rahmen von MOSS gab es nun noch einmal 160.000 Dollar, speziell für Open Observatory of Network Interference, kurz: OONI, was die Zensur, Überwachung sowie Manipulation des Datenverkehrs im Internet erkennen soll.

Das Python-Framework Zappa erhält 65.000 Dollar zur Verbesserung der Skalierbarkeit und um ein Ökosystem um Microservices herum aufzubauen. Für die Text-Rendering-Engine Harfbuzz gibt es 60.000 Dollar zur Verbesserung der Dokumentation. Und Tatoeba, eine Plattform zum Übertragen und Speichern von Stimm-Daten bekommt 25.000 Dollar zur Integration mit Mozillas Common Voice-Projekt sowie für Lizenz-Angelegenheiten. Commento, ein einbettbares Diskussions-System für Webseiten und Privatsphäre-freundliche Alternative zu Disqus, erhält 19.000 Dollar.

SOS-Unterstützungen

Ein im Juni 2016 gestartetes Unterprojekt von MOSS ist Secure Open Source, oder kurz: SOS, mit dem Ziel, Open Source-Software sicherer zu machen. Dazu beauftragt Mozilla Sicherheits-Dienstleister, bekannte Open Source-Projekte hinsichtlich Sicherheits-Schwachstellen zu überprüfen. SOS wurde dahingehend erweitert, nun auch die Entwicklung von sicherem Code zu unterstützen.

Einige der Hauptentwickler der Medien-Bibliotek libav arbeiten an rust-av, einer ähnlichen Bibliothek, welche in der von Mozilla geförderten Programmiersprache Rust entwickelt ist. Mozilla unterstützt dieses Vorhaben mit über 70.000 Dollar.

Weitere Sicherheits-Audits gab es in der Zwischenzeit für das populäre PHP-Framework CakePHP, wo eine schwere, fünf mittlere sowie neun schwache Sicherheitslücken entdeckt worden sind. Im DNS-Server Knot DNS konnten vier mittlere sowie sieben schwache Sicherheitslücken gefunden werden.

Der Beitrag MOSS: Mozilla investiert in weitere Open Source-Projekte erschien zuerst auf soeren-hentzschel.at.

2. März 2018

Kurz notiert: Anfang des Jahres schrieb ich, dass Ende Februar 2018 die Wildcard-Zertifikate, also Zertifikate für z.B. *.v-gar.de, öffentlich für alle Let’s Encrypt-Nutzer zur Verfügung stehen sollten. General Availability sollte eigentlich am 27. Februar 2018. Heute haben wir den 02. März.

Ja, das ganze verspätet sich. ETA soll nun laut Homepage Q1 2018 sein. Im Forum gibt es bereits einen entsprechenden Thread. Ein wichtiger Grund für die Verspätung seien hiernach die jüngsten Probleme mit TLS-SNI (siehe Wochenrückblick KW 2).

Wir können gespannt bleiben. Vorfreude ist ja bekanntlich die schönste Freude. 😉 Trotzdem natürlich ärgerlich für alle, die mit dem ursprünglichen Datum bereits geplant haben.

Wir haben einige Klassenzimmer bei uns mit fest installierten Beamern ausgestattet und weitere werden folgen. Immer wieder wird der Wunsch geäußert, ob man nicht „einfach“ von seinem Smartphone oder privatem Laptop ein Bild / Video oder den ganzen Bildschirm kabellos übertragen kann. Für eigene Geräte haben wir bisher ein VGA / HDMI Kabel zur Verfügung gestellt. Das klappt in der Regel auch ganz gut, doch damit schließt man z.B. Smartphones aus. Deshalb beschäftigen und testen wir schon seit einiger Zeit, welche Lösungen es für die kabellose Bildübertragung zu einem Beamer und Bildschirm gibt und ob es wirklich besser und verlässlicher als eine kabelgebundene Lösung ist.

Anforderungen

Die Anforderungen bei uns sehen folgendermaßen aus:

  • Unterstützung aller gängigen Betriebssysteme (Windows, macOS, Linux, Android, iOS)
  • Möglichkeit den Bildschirm zu spiegeln
  • einfache Bedienbarkeit
  • zuverlässig im Schulalltag
  • „Hijacking“, d.h. Übernahme der Bildschirme / Beamer durch Dritte (z.B. Schüler) sollte nicht möglich sein

Es gibt viele HDMI-Wireless-Dongles, die eine kabellose Bildübertragung versprechen. Dazu kommen die vielen unterschiedlichen Standards: Googles Chromecast, Apples Airplay, Microsofts Wireless Display Adapter (Miracast). Wenn man nur ein Betriebssystem unterstützen müsste, wäre die Auswahl recht groß. Ich kenne Schulen, die ihre Klassenzimmer mit Apple TVs ausgestattet haben und jedem Kollegen ein iPad geben. Das klappt dann auch recht gut innerhalb dieses Ökosystems, aber dieses Budget haben wir nicht 🙂 Aus diesem Grund gibt es nur sehr wenige Optionen, wenn man v.a. auch Linux unterstützen möchte.

Chromecast

Der Chromecast ist HDMI Stick, der eine große Zahl an Geräten unterstützt, eigentlich alles, worauf ein Chrome / Chromium Browser läuft. Man kann damit einzelne Tabs, den ganzen Bildschirm oder Inhalte aus bestimmten Apps (z.B. Youtube App) recht einfach auf den Beamer oder einen Bildschirm bringen.

Vorteile

  • Preis (ca. 40€)
  • Unterstützung aller gängigen Betriebssysteme
  • Anbindung mit Ethernet-Adapter möglich

Nachteile

  • unterstützt nur WPA2 Personal, kein WPA Enterprise
  • keine Management-Plattform, um viele Chromecasts zu verwalten

Allgemein kann man sagen, dass der Chromecast für den Heimgebrauch konzipiert wurde und deshalb einige Features fehlen, die man in einem Schul- oder Universitätsnetzwerk gut gebrauchen könnte.

Airtame

Airtame ist ein weiterer HDMI-Dongle, der eine sehr einfache Handhabung verspricht und speziell für Schulen, Unternehmen und Universitäten entwickelt wurde. Auf dem Stick selbst läuft, soweit ich weiß, Fedora.

Vorteile

  • Unterstützung aller gängigen Betriebssysteme
  • Anbindung mit Ethernet-Adapter möglich
  • echtes Spiegeln des Bildschirms, kein „casten“, d.h. Youtube-Videos werden vom Rechner übertragen im Gegensatz zum Chromecast, der sie selbst aus dem Internet lädt
  • unterstützt alle WLAN Standards (auch WPA Enterprise)
  • zentrale Plattform, um viele Airtames zu verwalten
  • Möglichkeit per PIN verbinden zu lassen

Nachteile

  • Preis (ca. 300€)

Fazit

Chromecast und Airtame sind zwei Optionen für die kabellose Bildübertragung. Airtame ist eigentlich das Gerät, was man sich für eine Schule wünscht, aber es hat auch seinen Preis. Der Chromecast dagegen ist wesentlich günstiger, doch bietet einige Features nicht, die „nice-to-have“ wären. Wir testen aktuell den Chromecast und schauen, wie gut und verlässlich er im Schulalltag und „Mehrbenutzerbetrieb“ ist. Gerade die Einfachheit der Bedienung muss noch getestet werden, v.a. wie sich das auf den einzelnen Plattformen unterscheidet.

Welches Gerät nutzt du zur kabellosen Bildübertragung?

4 Kommentare

Der Beitrag Kabellose Bildübertragung – welche Möglichkeiten gibt es? erschien zuerst auf .:zefanjas:..

27. Februar 2018

Firefox besitzt eine Möglichkeit zur Synchronisation, womit es möglich ist, auf Chronik, Lesezeichen, Passwörter und mehr von verschiedenen Geräten aus zuzugreifen. Firefox 60 besitzt eine neue Option, um die den Zugang zu Sync komplett zu verbergen.

Die vorhandene Möglichkeit, Daten wie Chronik, Lesezeichen oder Passwörter zwischen verschiedenen Geräten zu synchronisieren, ist für einige Nutzer eine zwingende Anforderung, wieso sie sich für den einen und gegen einen anderen Browser entscheiden. Wie bei allem kann natürlich auch mit Firefox Sync nicht jeder Nutzer etwas anfangen. Wem es so geht und gerne die komplette Sync-Kategorie aus den Firefox-Einstellungen sowie die Integration in das Hauptmenü entfernt haben möchte, kann dies ab Firefox 60 ganz einfach tun: wird der Schalter identity.fxaccounts.enabled per Doppelklick auf false gesetzt, werden die Integrations-Punkte von Firefox Sync deaktiviert. Ein Neustart von Firefox ist notwendig, damit die Änderung komplett wirkt.

Der Beitrag Firefox 60: Neue Option zum Deaktivieren von Firefox Sync erschien zuerst auf soeren-hentzschel.at.

Wir messen an unserer Schule regelmäßig den Feinstaubgehalt in der Luft. Besonders zwischen Februar und Mai sind die Werte hier in Süd-Ost Asien sehr hoch, da es in dieser Zeit kaum regnet, es sehr trocken und heiß ist und viele Wiesen und Felder abgebrannt werden. Das alles wirkt sich negativ auf die Qualität der Luft aus. Heute möchte ich zeigen, wie man den Feinstaub mit einem Raspberry Pi messen kann. Doch vorher möchte ich kurz auf die Frage eingehen: Was ist Feinstaub überhaupt und was wollen wir messen?

Was ist Feinstaub?

Ganz grob kann man sagen, dass es sich bei Feinstaub um sehr kleine Partikel / Teilchen in der Luft handelt. Man unterscheidet dabei zwischen PM10 und PM2.5 (Particulate Matter, auch Feststoffteilchen). Bei PM10 handelt es sich dabei um alle Partikel in der Luft, die kleiner als 10µm sind, bei PM2.5 entsprechend alle Teilchen, die kleiner als 2.5µm sind. Je kleiner die Teilchen, also v.a. alles kleiner als 2.5µm, desto gefährlicher sind sie für die Gesundheit, da sie bis in die Lungenbläschen eindringen können.

Die WHO empfiehlt z.B. folgende Grenzwerte:

  1. Jahresmittel PM10 20 µg/m³
  2. Jahresmittel PM2,5 10 µg/m³
  3. Tagesmittel PM10 50 µg/m³ ohne zulässige Tage, an denen eine Überschreitung möglich ist.
  4. Tagesmittel PM2,5 25 µg/m³ ohne zulässige Tage, an denen eine Überschreitung möglich ist.

Diese Werte liegen unter den in den meisten Ländern festgelegten Grenzen. In EU ist ein Jahresmittel für PM10 von 40 µg/m³ zulässig.

Was ist der Air Quality Index (AQI)?

Ausgehend von dem Feinstaubgehalt in der Luft kann man den Air Quality Index berechnen. Er gibt an, wie „gut“ oder „schlecht“ die Luft gerade ist. Leider gibt es hier keinen einheitlichen Standard, da verschiedene Länder diesen jeweils anders berechnen oder andere Skalen haben. Der Wikipedia-Artikel zum Air Quality Index liefert dafür einen gute Übersicht. An unserer Schule richten wir uns nach der Einteilung wie sie von der EPA (United States Environmental Protection Agency) festgelegt wurde.

AQI

Soweit ein kurzer Abriss zum Thema Feinstaub und AQI.

Was brauchen wir für die Feinstaubmessung?

Eigentlich braucht es nur zwei Dinge:

  • einen Raspberry Pi (jedes Modell geht, am besten ein Modell mit WLAN)
  • Feinstaubsensor SDS011

SDS011

Das war es schon 🙂 Wer sich für einen Raspberry Pi Zero W entscheidet, benötigt noch ein Adapterkabel auf einen Standard-USB Anschluss, da der Zero nur Micro-USB hat. Den Sensor bekommt man am besten bei Aliexpress. Dort kostet er um die 17-20$. Der Sensor hat eine USB-Adapter für die serielle Schnittstelle mit dabei.

Installation

Für unseren Raspberry Pi laden wir uns das entsprechende Raspbian Lite Image herunter und schreiben es auf die Micro-SD Karte. Dokumentiert ist das z.B. hier. Auf die Einrichtung der WLAN-Verbindung gehe ich an dieser Stelle nicht ein. Dazu gibt es viele Tutorials im Netz.

Wer nach dem Booten gleich SSH aktiviert haben möchte, muss in der boot-Partition einen leere Datei mit dem Namen ssh anlegen. Die IP des Raspberry Pis bekommt man am besten über den eigenen Router / DHCP Server heraus. Danach kann man sich per SSH anmelden (Standardpasswort ist raspberry):

$ ssh pi@192.168.1.5

Für unseren Sensor verwenden wir eine kleines Python-Modul, was uns einiges an Arbeit abnimmt. Dazu müssen wir noch einige Pakete installieren und das Repository auf den Pi klonen.

$ sudo apt install python-serial python-enum lighttpd

Alle benötigten Pakete sollten jetzt installiert sein und das Modul für unseren Sensor befindet sich in /home/pi/sds011. Unter /home/pi/sds011/Code/text.py gibt es ein Testprogramm, mit dem man den Sensor testen kann. Bevor wir das Programm aufrufen können, müssen wir noch wissen, an welchem seriellen Port der USB-Adapter steckt. dmesg hilft uns weiter:

$ dmesg
[ 5.559802] usbcore: registered new interface driver usbserial
[ 5.559930] usbcore: registered new interface driver usbserial_generic
[ 5.560049] usbserial: USB Serial support registered for generic
[ 5.569938] usbcore: registered new interface driver ch341
[ 5.570079] usbserial: USB Serial support registered for ch341-uart
[ 5.570217] ch341 1-1.4:1.0: ch341-uart converter detected
[ 5.575686] usb 1-1.4: ch341-uart converter now attached to ttyUSB0

In der letzten Zeile steht unsere Schnittstelle: ttyUSB0. Wir brauchen jetzt noch zwei Dinge: einmal ein kleines Python-Skript, welches die Daten ausliest und in eine JSON-Datei speichert und dann werden wir eine kleine HTML-Seite basteln, die diese Daten ausliest und darstellt.

Daten auf dem Raspberry Pi auslesen [Update]

Wir erstellen zuerst eine Instanz des Sensors und lesen dann alle 5 Minuten für 30 Sekunden den Sensor aus. Diese Werte können natürlich angepasst werden. Zwischen den Messintervallen versetzen wir den Sensor in einen Schlafmodus, um die Lebensdauer zu erhöhen (Lebensdauer beträgt laut Hersteller ca. 8000 Stunden).

[Update, 27.02.2018] Ich habe festgestellt, das meine Python3 Version des Skripts die serielle Schnittstellen nicht ansprechen konnte, z.B. nach einem Reboot. Erst nach mehrmaligem Starten des Skripts konnten dann die Daten gelesen werden. Woran das liegt, habe ich leider nicht herausgefunden, aber mit Python2.7 funktioniert es ohne Probleme. Deshalb hier eine neue Version des Skripts, welche auf Python2.7 basiert.

Im Homeverzeichnis legen wir eine Datei mit dem Namen aqi.py an und kopieren den folgenden Inhalt hinein:

#!/usr/bin/python
# coding=utf-8
# "DATASHEET": http://cl.ly/ekot
# https://gist.github.com/kadamski/92653913a53baf9dd1a8
from __future__ import print_function
import serial, struct, sys, time, json

DEBUG = 0
CMD_MODE = 2
CMD_QUERY_DATA = 4
CMD_DEVICE_ID = 5
CMD_SLEEP = 6
CMD_FIRMWARE = 7
CMD_WORKING_PERIOD = 8
MODE_ACTIVE = 0
MODE_QUERY = 1

ser = serial.Serial()
ser.port = "/dev/ttyUSB0"
ser.baudrate = 9600

ser.open()
ser.flushInput()

byte, data = 0, ""

def dump(d, prefix=''):
    print(prefix + ' '.join(x.encode('hex') for x in d))

def construct_command(cmd, data=[]):
    assert len(data) <= 12
    data += [0,]*(12-len(data))
    checksum = (sum(data)+cmd-2)%256
    ret = "\xaa\xb4" + chr(cmd)
    ret += ''.join(chr(x) for x in data)
    ret += "\xff\xff" + chr(checksum) + "\xab"

    if DEBUG:
        dump(ret, '> ')
    return ret

def process_data(d):
    r = struct.unpack('<HHxxBB', d[2:])
    pm25 = r[0]/10.0
    pm10 = r[1]/10.0
    checksum = sum(ord(v) for v in d[2:8])%256
    return [pm25, pm10]
    #print("PM 2.5: {} μg/m^3  PM 10: {} μg/m^3 CRC={}".format(pm25, pm10, "OK" if (checksum==r[2] and r[3]==0xab) else "NOK"))

def process_version(d):
    r = struct.unpack('<BBBHBB', d[3:])
    checksum = sum(ord(v) for v in d[2:8])%256
    print("Y: {}, M: {}, D: {}, ID: {}, CRC={}".format(r[0], r[1], r[2], hex(r[3]), "OK" if (checksum==r[4] and r[5]==0xab) else "NOK"))

def read_response():
    byte = 0
    while byte != "\xaa":
        byte = ser.read(size=1)

    d = ser.read(size=9)

    if DEBUG:
        dump(d, '< ')
    return byte + d

def cmd_set_mode(mode=MODE_QUERY):
    ser.write(construct_command(CMD_MODE, [0x1, mode]))
    read_response()

def cmd_query_data():
    ser.write(construct_command(CMD_QUERY_DATA))
    d = read_response()
    values = []
    if d[1] == "\xc0":
        values = process_data(d)
    return values

def cmd_set_sleep(sleep=1):
    mode = 0 if sleep else 1
    ser.write(construct_command(CMD_SLEEP, [0x1, mode]))
    read_response()

def cmd_set_working_period(period):
    ser.write(construct_command(CMD_WORKING_PERIOD, [0x1, period]))
    read_response()

def cmd_firmware_ver():
    ser.write(construct_command(CMD_FIRMWARE))
    d = read_response()
    process_version(d)

def cmd_set_id(id):
    id_h = (id>>8) % 256
    id_l = id % 256
    ser.write(construct_command(CMD_DEVICE_ID, [0]*10+[id_l, id_h]))
    read_response()

if __name__ == "__main__":
    while True:
        cmd_set_sleep(0)
        cmd_set_mode(1);
        for t in range(15):
            values = cmd_query_data();
            if values is not None:
                print("PM2.5: ", values[0], ", PM10: ", values[1])
                time.sleep(2)

        # open stored data
        with open('/var/www/html/aqi.json') as json_data:
            data = json.load(json_data)

        # check if length is more than 100 and delete first element
        if len(data) > 100:
            data.pop(0)

        # append new values
        data.append({'pm25': values[0], 'pm10': values[1], 'time': time.strftime("%d.%m.%Y %H:%M:%S")})

        # save it
        with open('/var/www/html/aqi.json', 'w') as outfile:
            json.dump(data, outfile)

        print("Going to sleep for 5min...")
        cmd_set_mode(0);
        cmd_set_sleep()
        time.sleep(300)

Schneller geht es mit:

$ wget -O /home/pi/aqi.py https://raw.githubusercontent.com/zefanja/aqi/master/python/aqi.py

Damit das Skript fehlerfrei durchläuft sind noch zwei kleine Dinge nötig:

$ sudo chown pi:pi /var/www/html/
$ echo [] > /var/www/html/aqi.json

Nun kann man das Skript starten:

$ chmod +x aqi.py
$ ./aqi.py
PM2.5: 55.3 , PM10: 47.5
PM2.5: 55.5 , PM10: 47.7
PM2.5: 55.7 , PM10: 47.8
PM2.5: 53.9 , PM10: 47.6
PM2.5: 53.6 , PM10: 47.4
PM2.5: 54.2 , PM10: 47.3
...

Skript automatisch starten lassen [Update]

Damit wir nicht jedes mal das Skript von Hand starten müssen, können wir es mit einem Cronjob z.B. bei jedem Neustart des Raspberry Pis mit starten lassen. Dazu öffnen wir die crontab-Datei

$ crontab -e

und ergänzen am Ende die nachfolgende Zeile:

@reboot cd /home/pi/ && ./aqi.py

Nun startet unser Skript automatisch bei jedem Neustart mit.

HTML-Seite für Anzeige der Messwerte und AQI

Weiter oben haben wir bereits einen leichtgewichtigen Webserver lighttpd installiert. Unsere HTML-, Javascript- und CSS-Datei müssen wir also im Verzeichnis /var/www/html/ speichern, damit wir von einen anderem Computer / Smartphone auf die Daten zugreifen können. Mit den nächsten drei Befehlen laden wir die entsprechenden Dateien einfach herunter:

$ wget -O /var/www/html/index.html https://raw.githubusercontent.com/zefanja/aqi/master/html/index.html
$ wget -O /var/www/html/aqi.js https://raw.githubusercontent.com/zefanja/aqi/master/html/aqi.js
$ wget -O /var/www/html/style.css https://raw.githubusercontent.com/zefanja/aqi/master/html/style.css

Die Hauptarbeit findet in der Javascript-Datei statt, die unsere JSON-Datei öffnet, den letzten Wert nimmt und anhand dieses Wertes den AQI berechnet. Dann werden noch die Hintergrundfarben anhand der Skala der EPA angepasst.

Nun man die Adresse des Raspberry Pis einfach im Browser aufrufen und die aktuellen Feinstaubwerte betrachten, z.B. http://192.168.1.5:

AQI Website

Die Seite ist sehr einfach gestaltet und kann noch erweitert werden, z.B. um eine Grafik, die den Verlauf der letzten Stunden anzeigt usw. Pull Requests sind willkommen 🙂 Der komplette Quellcode befindet sich auf Github.

Fazit

Für relativ wenig Geld können wir jetzt den Feinstaub mit einem Raspberry Pi messen. Ob draußen fest installiert oder als mobiles Messgerät – Einsatzmöglichkeiten gibt es viele. An unserer Schule haben wir beides im Einsatz. Einerseits einen Sensor der Tag und Nacht die Werte im Freien misst und einen mobilen Sensor, mit dem wir die Effektivität unserer Luftfilter in den Klassenzimmern überprüfen.

So sieht das ganze bei uns in der Schule aus:

AQI Sensor

Unter http://luftdaten.info gibt es noch eine andere Möglichkeit einen ähnlichen Sensor zu bauen. Da bekommt man die Software bereits fertig geliefert und das Messgerät ist noch mal kompakter, da kein Raspberry Pi verwendet wird. Tolles Projekt!

Ein Feinstaubsensor ist ein Projekt, was sich auch gut mit Schülern im Informatikunterricht oder einer Arbeitsgemeinschaft umsetzen lässt!

Wofür setzt du einen Raspberry Pi ein?

6 Kommentare

Der Beitrag Wie man Feinstaub mit einem Raspberry Pi messen kann [Update] erschien zuerst auf .:zefanjas:..

Bild von myrfa via pixabay / Lizenz: CC0 Creative Commons

Der Desktop ist beherrscht von Microsoft Windows. Die Gründe für dieses Quasi-Monopol sind vielfältig und bedingen sich vermutlich gegenseitig. Wir verwenden Windows in der Ausbildung, im Job und eben auch privat. Die Bedeutung dieses Monopols sinkt zwar seit Jahren durch den Bedeutungsgewinn von Smartphones und anderen mobile devices. Nichtsdestotrotz eignet sich das Thema noch für die mediale Berichterstattung und als Vorlage für die leicht erregbare Netzgemeinschaft.

Die ARD hat dazu kürzlich eine sehenswerte Dokumentation "Das Microsoft-Dilemma" veröffentlicht, in der es um die Abhängigkeit der (europäischen) öffentlichen Verwaltung von Microsoft, die zweifelhaften Ausschreibungspraktiken, sowie die Implikationen für Sicherheit und Datenschutz ging. Insgesamt ist die Dokumentation sehr sehenswert.

Vieles in der Dokumentation ist meiner Meinung nach zu plakativ dargestellt und die Open Source-Seite überwiegt, was aber auch daran liegen könnte, dass Microsoft sich zu keinem Gespräch bereit erklärt hat.

Für die Open Source-Gemeinschaft und insbesondere Linux auf dem Desktop wäre eine höhere Verbreitung in der Verwaltung die letzte Chance das Microsoft-Monopol zu brechen. Eine Verwaltung die Linux und andere Open Source Software einsetzt würde idealerweise nicht nur Verbesserungen nach dem Open Source-Gedanken an das Projekt zurückfließen lassen, sondern auch helfen freie Standards zu etablieren. Etwas simplifiziert ausgedrückt: Wenn der Staat nur noch freie OASIS-Dokumente, standardisierte PDF-Dateien und anderen Formate akzeptieren und ausliefern würde, käme Windows vermutlich unter Druck. Mal abgesehen von den Milliarden an Lizenzgebühren die Microsoft da fehlen würden. Möglicherweise ist das auch nur Wunschdenken der FOSS-Gemeinschaft, aber das kann man nicht absehen.

Dementsprechend hoch gejubelt werden Projekte, bei denen der Staat sich von Microsoft abwenden will. Beispiele für solche Pressemitteilungen gibt es zahlreiche:

Wenn man diese Meldungen über viele Jahren so folgt, dann müsste Microsoft inzwischen ein Nischenanbieter sein und ernsthafte wirtschaftliche Probleme haben. Dem ist aber nicht so. Viele der großspurig angekündigten Projekte werden nämlich genau so schnell wieder beerdigt. Mal breiter diskutiert, wie im Fall von LiMux, mal still und leise ohne größere öffentliche Aufmerksamkeit.

Man kann jetzt natürlich eine große Verschwörung des dominanten Weltkonzerns mit den Verwaltungen herbeireden. Bündelweise Bargeld in schicken Koffern, auf Autobahnraststätten übergeben, bezahlte Urlaube für Verwaltungsbeamte und Redmond. Der Fantasie der verschwörungstheorie-affinen Netzgemeinde sind da keine Grenzen gesetzt.

Oder man bleibt auf dem Boden der Tatsachen und stellt fest, dass eine Migration auf Open Source die öffentliche Verwaltung einfach überfordert. Es handelt sich hier immerhin um in Jahrzehnten gewachsene Systeme.

Nach Jahren der Stellenkürzungen, in Zeiten immer knapperer kommunaler Finanzen und schlecht ausgestatteter IT-Abteilungen, soll eine Abkehr von Microsoft meistens vor allem Geld sparen. Unabhängigkeit und Sicherheit sind dann eher zufällig mit dabei. Diese Fokussierung auf die Kosten sieht man in quasi jeder entsprechenden Berichterstattung. Die öffentliche Meinung findet ja sowieso, dass der Staat zu fett ist und zu viel Geld ausgibt. Eine Umstellung auf Open Source kostet aber erst einmal sehr viel Geld. Einsparungen sind höchstens mittel- bis langfristig drin - wenn überhaupt. Sobald das den Verantwortlichen klar wird sind die Migrationspläne schnell beerdigt.

Man darf die PR-Meldungen über den nächsten und übernächsten Umstieg auf Linux also nicht für zu wichtig nehmen. Meistens wird eh nichts draus und manchmal will die jeweilige Verwaltung vielleicht auch nur ihre Verhandlungsposition gegenüber Microsoft verbessern. Solche Projekte haben sowieso nur dann Erfolg, wenn es um Sicherheit, sowie Unabhängigkeit geht und die Kosten nachrangig sind. So lange Pressemitteilungen das nicht beinhalten kann man sie getrost ignorieren. Die Open Source-Medien täten gut daran, hier ein bisschen nachhaltiger zu berichten.

Foto: © Dieter Beck / Fotolia.com

LibreOffice 6 bringt einige Neuerungen mit sich. Besonders interessant hinsichtlich der Sicherheit ist die Möglichkeit Dateien mit GnuPG zu signieren und zu verschlüsseln. Grundsätzlich lassen sich Dateien in LibreOffice bereits sehr lange absichern aber nun greift man auf ein bewährtes und sicheres Verfahren zurück, was immer begrüßenswert ist.

LibreOffice verfügt dabei über keine eigene GnuPG Implementierung, sondern greift auf die die entsprechenden Systemkomponenten zurück. Die meisten Linux-Distributionen liefern von Haus aus gnupg2 aus, weshalb dies unproblematisch ist. MacOS-Anwender müssen die GPG-Tools installieren, Windows-Nutzer auf gpg4win zurückgreifen.

Die Bedienung ist sehr intuitiv gehalten. Der Dialog zum speichern von Dateien enthält nun eine Option um diese mit einem GPG-Schlüssel zu verschlüsseln.

Anschließend wählt man den gewünschten Schlüssel aus.

Bei einem erneuten öffnen der Datei erfolgt die Abfrage der Schlüssel-Passphrase.

Die Funktion erleichtert den verschlüsselten Austausch von Dokumenten, obwohl dieser natürlich vorher auch nicht unmöglich war, schließlich kann man mittels GnuPG jede beliebige Datei verschlüsseln und signieren. Der Rückgriff auf GnuPG zeigt aber auch die Grenzen dieses Verfahrens: Windows und macOS-Anwender müssen sich zusätzlich zu LibreOffice noch weitere Software installieren um die Verschlüsselung nutzen zu können.

Daher handelt es sich hierbei eher um einen Komfortgewinn für Leute, die bereits Dokumente verschlüsseln, wird aber kaum zu einem sprunghaften Anstieg im Bereich des verschlüsselten Dokumentenaustauschs sorgen.

24. Februar 2018

Am 10. und 11. März 2018 finden fanden die Chemnitzer Linux-Tage (#clt2018) statt. Das Motto lautet in diesem Jahr lautete: „Jeder fängt mal an.“


Auch an dieser Stelle nocheinmal vielen Dank an die Veranstalter der #CLT2018 und die Hörer meines Vortrags „Webseiten mit HTTPS bereitstellen und mit HSTS sichern“. Die Folien zum Vortrag findet ihr auf der Seite Artikel und Vorträge sowie hinter diesem Direktlink.

Zum Ende meines Vortrags habe ich auf weitere Maßnahmen hingewiesen, mit denen sich die Angriffsfläche auf HTTPS verkleinern lässt. Weitere Informationen dazu findet ihr auf dieser Seite im Artikel „Über Pinning (HPKP), CAA und Certificate Transparency“.


Die Besucher erwartet in diesem Jahr erneut ein prall gefülltes Vortragsprogramm mit bis zu sieben parallel laufenden Tracks. War ich im vergangenen Jahr als Besucher zu Gast, steuere ich in diesem Jahr den Vortrag „Webseiten mit HTTPS bereitstellen und mit HSTS sichern“ bei. In diesem führe ich in das Thema HTTPS und die Internet-PKI ein und weise auf einige Stolpersteine hin, die auf dem Weg lauern.

Neben vielen interessanten Vorträgen werden an beiden Tagen jeweils sechs Workshops zum Lernen und Mitmachen angeboten. Für die Teilnahme ist eine Anmeldung erforderlich und es sind 5 Euro Teilnahmegebühr zu entrichten. Beeilt euch bei Interesse mit der Anmeldung, denn die Plätze sind begrenzt.

Darüber hinaus erwarten euch auf den CLT2018:

Die Praxis Dr. Tux bietet in ihrer Sprechstunde bei allen Problemen Hilfestellung, die der Anwender nicht alleine lösen kann.

Im Business Forum stellen sich bis zu 15 Open-Source-Firmen kurz vor. Hört entspannt zu, was diese Firmen genau tun, stellt Fragen und beteiligt euch an der Diskussion.

Auf der PGP-Party könnt ihr eure öffentlichen Schlüssel-Dateien signieren lassen. Weitere Informationen zur Vorbereitung und Durchführung findet ihr unter vorstehendem Link.

Retro Gaming wird während der Chemnitzer Linux-Nacht geboten. Ab 19:30 Uhr könnt ihr auf der Atari 2600 zeigen, aus welchem Holz ihr geschnitzt seid!

In der Projektküche präsentieren 15 Personen in jeweils fünf Minuten ihre Open-Source-Projekte. Möchtet ihr selbst euer Projekt vorstellen? Dann Beeilung, Anmeldeschluss ist der 1. März 2018.

Es wird also wieder viel geboten. Und neben den spannenden und interessanten Vorträgen freue ich mich natürlich auch, bekannte Gesichter wiederzusehen und abends über alte Zeiten zu plaudern. Bis neulich.

23. Februar 2018

Seit Firefox 57 besitzt Firefox eine neue, in der Programmiersprache Rust geschriebene, CSS-Engine. Diese wird bislang nur für Webseiten eingesetzt. Ab Firefox 60 wird die neue CSS-Engine auch für die Firefox-Oberfläche selbst benutzt.

Mit der Veröffentlichung von Firefox 57 im November 2017 hat Mozilla vieles erneuert und vor allem die Leistung enorm verbessert. Ein Teil dieser Modernisierung war Quantum CSS, auch bekannt unter dem Namen Stylo, was die bisherige CSS-Engine von Firefox ersetzt hat.

Wir haben einen regelrecht bahnbrechenden Ansatz entwickelt, um Webseiten zu gestalten – eine superschnelle CSS-Engine, die in Rust geschrieben ist (eine Systemprogrammiersprache, die von Mozilla unterstützt wird). Diese neue, in Firefox integrierte CSS-Engine arbeitet besonders schnell und unter Zuhilfenahme mehrerer Prozessorkerne zugleich. Das kann derzeit kein anderer Browser. – Mozilla

Bislang kommt Stylo ausschließlich für die Darstellung von Webseiten zum Einsatz. Was nicht jeder weiß: auch die Oberfläche von Firefox selbst ist mit CSS gestaltet. Die Umsetzung hiervon erfolgt derzeit noch über die alte CSS-Engine. Ab Firefox 60 wird auch das CSS der Firefox-Oberfläche von Stylo übernommen. Damit kann im nächsten Schritt die alte CSS-Engine komplett aus Firefox entfernt werden. Aktuell wird Firefox noch mit zwei CSS-Engines ausgeliefert. Auch Firefox für Android unterstützt mittlerweile die neue CSS-Engine.

Der Beitrag Firefox 60: Neue CSS-Engine wird für Firefox-Oberfläche genutzt erschien zuerst auf soeren-hentzschel.at.

 – Der Colordaemon war da! – 

colordaemon

Heute geht es mal wieder um Linux. Und nur am Rande um den Colordaemon, ein Daemon, also ein Hintergrundprozess, der sich, wie meist, durch ein kleines D am Namensende verrät. Wobei es auch ein, zwei Dämonen gibt, sich nicht so verraten, und natürlich gibt es Programme, die zufällig auf ‚d‘ enden, ohne dass sie damit signalisieren wollen, dass sie Dämonen sind. Also ein Fall, wie geschaffen, um den Unterschied zwischen starken Indizien von Beweisen zu erläutern, wüssten nicht mehr Leute, was Indizien und Beweise sind, als was Dämonen unter unixoiden Systemen sind.

Andere, mehr oder weniger bekannte Dämonen, sind der Druckerdaemon cupsd des common unix printing service, sowie dbus-daemon, avahi-daemon, die auf andere Weise ihre Dämonenhaftigkeit äußern, aber ich verrate jetzt nicht wie, usb-storage und cron sind wohl auch Dämonen, und haben kein D am Ende. Cron spielt noch eine Rolle am Rande. Dagegen wären sed und thunderbird Programme, die trotz D-Endung keine sind.

Wen’s interessiert, ps ax -o cmd gibt die Namen aller laufenden Prozesse aus.

Das eigentliche Thema hier sind aber weder Dämonen, noch der colord im Besonderen, sondern das syslog, Scheduler und Orage. Ein Scheduler ist ein Zeitplaner und Orage ist der Zeitplaner, um den es hier geht.

Motivation:

Oft wollen Leute, dass das System sie regelmäßig über Dinge informiert, und sie wollen es auf dem Desktop sehen. Dabei treffen sie auf Linuxexperten, die oft beruflich oder ehrenamtlich Sysadmin sind, und für solche Aufgaben die seit den 60ern bewährten Programme cron/anachron benutzen (anacron ist ein anachronististischer cron, habe ich mir sagen lassen), aber diese arbeiten befehlszeilenorientiert und werden über superschlanke, jedoch leicht kryptische Tabellen, die crontabs, konfiguriert – das ist schon nicht jedermanns Sache.

Außerdem laufen sie vom Systemstart weg, noch bevor die grafische Umgebung, X11 und der ganze Desktopkrempel geladen ist und nicht mit den Rechten des Users. Auf Servern läuft meist gar keine Desktopumgebung und folglich sind sie nicht sonderlich dafür ausgelegt, dem User, der womöglich gar nicht angemeldet ist, der auch kein DE (Desktop-Environment) geladen hat, eine Popupnachricht zu senden.

Es gibt dafür Lösungen, und zwar muss man die Xauthority bemühen und 0:0 an das Programm melden, welches um 17:15 aufpoppen soll – da man das so selten macht, hat man die Syntax nicht im Kopf und ist verstimmt. Im Ubuntuusers.de-Wiki ist, unter Fenster öffnet sich nicht, vermerkt wie es geht (noch etwas nach unten scrollen).

Auch ich habe schon oft darauf verwiesen, aber jetzt, bei meiner oberflächlichen Beschäftigung mit Orage eine einfache Alternative gefunden. Und darum geht es hier. :)

Also, wenn man ein Programm, dass die grafische Oberfläche braucht, starten will, dann geht man zu Orage. Hat man oben rechts in der Systemleiste eine Uhr laufen, dann bringt ein Doppelklick darauf wahrscheinlich Orage im Kalendermodus in den Vordergrund.

orage-monat

Was wir jetzt noch brauchen ist aber ein praktisches Beispiel, und deswegen kommen wir einfach nicht auf den Punkt, sondern holen nochmal auf einem zweiten Pfad aus.

Man hat ja unter /var/log/ jede Menge Logdateien liegen, die man nie anschaut, weil man sie nicht versteht. Geht was schief mit dem System wird man dann von naseweisen Linuxgurus gefragt, was das Syslog sagt. Der 0-8-15 User weiß nicht mal, dass es sowas gibt. Also ls -l /var/log/syslog eingeben:

> ls -l /var/log/syslog
-rw-r----- 1 syslog adm 71855 Feb 23 01:07 /var/log/syslog

Mit 70kb ein ganz schön fettes Ding.

Mit less /var/log/syslog (less is more) kann man sich den Inhalt ansehen. Wenn etwas schiefläuft, dann oft richtig, und die gleiche Nachricht taucht 100fach im Logfile auf. Mit einer Länge von 3 Zeilen a 150 Zeichen kommt man leicht auf 45.000 Zeichen. Die Nachrichten zu entziffern ist schon eine Wissenschaft für sich, aber wenn man regelmäßig reinschaut kann man ja einzelnen Nachrichten nach und nach auf den Grund gehen. Und man bemerkt vielleicht, wenn das Logfile plötzlich ganz anders ausschaut.

Früher hatte ich ewig, über unterschiedlichste Distributionen und Versionen hinweg Meldungen im Syslog, dass 3 Systemfonts nicht gefunden werden konnten. Im laufenden Betrieb hat sich aber nie ein Fehler geäußert. Einmal wollte ich sie loswerden und habe das Netz durchsucht, aber weder fand ich einen Ort, um die Fonts endlich runterzuladen, noch einen Trick die Meldungen loszuwerden.

Überflüssige Fehlermeldungen sind nämlich ein Problem: Sie erhöhen das Rauschen, den Heuhaufen, in dem man dann die Nadel nicht findet.

Ein anderer Unbill war eine fehlerhafte Druckerdatei, bei hoch gesetztem Loglevel des Druckerdaemons. Der hat dann gleich 100 Zeilen Fehlerprotokoll ins Log geschrieben, und das minutenweise. Das wurde rasch zu einem Dateigrößenproblem.

Jetzt gibt es auch den wunderbaren Daemon logrotate. Der rotiert das Logsystem, und zwar insofern, als die Logdatei von gestern zu xy.0.log umbenannt wird, die von gestern, die xy.0.log hieß wird xy.1.log genannt – sinnvollerweise in umgekehrter Reihenfolge, und so weiter, und die älteste wird gelöscht. Und was älter als gestern ist wird gezippt, und da diese Logdateien oft hochgradig redundant sind, sind die gezippten Dateien oft wesentlich kleiner, als die frischen, ungezippten. Weil sysadmins so oft in diese Dateien schauen müssen, gibt es extra das Programm zless, dass ein less auf gezippte Texte ausführt.

Wir beenden den Exkurs zu den Logdateien und kommen zurück zum Thema. Als auf Stackexchange jemand fragte, wie ein grafisches Programm zeitgesteuert startet – er wollte etwas ähnliches wie Logdateien ansehen, dachte ich nach, wie ich das lösen würde, aber konnte ihm nicht konkret helfen, weil er eine Lösung für MacOS sucht. Aber so kam ich auf die Idee, 1x täglich könnte ich mir die Syslogdatei vorlegen, und wollte sehen, ob sich das nicht mit Orage lösen lässt, wo ich bemerkt hatte, dass man zur Benachrichtigung ein Programm starten kann.

Dieses Programm kann man leicht selbst schreiben, und von Orage starten lassen. Die Idee ist dabei, die oft ellenlange Ausgabe der Logdatei zu kürzen, so dass ähnliche Meldungen nur noch einmal auftauchen. Meine Logdatei zeigt etwa sowas an:

Feb 22 07:35:02 tux201t colord[1154]: (colord:1154): Cd-WARNING **: failed to get session [pid 9723]: Kein passendes Gerät bzw. keine passende Adresse gefunden
Feb 22 07:35:02 tux201t colord[1154]: message repeated 5 times: [ (colord:1154): Cd-WARNING **: failed to get session [pid 9723]: Kein passendes Gerät bzw. keine passende Adresse gefunden]
Feb 22 07:35:10 tux201t anacron[9507]: Job `cron.daily' terminated
Feb 22 07:35:10 tux201t anacron[9507]: Normal exit (1 job run)
Feb 22 07:39:33 tux201t kernel: [1253876.380868] sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
Feb 22 07:39:33 tux201t kernel: [1253876.380875] sd 6:0:0:0: [sdb] tag#0 Sense Key : Hardware Error [current] [descriptor]
Feb 22 07:39:33 tux201t kernel: [1253876.380877] sd 6:0:0:0: [sdb] tag#0 Add. Sense: No additional sense information
Feb 22 07:39:33 tux201t kernel: [1253876.380882] sd 6:0:0:0: [sdb] tag#0 CDB: ATA command pass through(16) 85 06 20 00 00 00 00 00 00 00 00 00 00 00 e5 00
Feb 22 07:49:01 tux201t CRON[10242]: (stefan) CMD (date >> $HOME/foo.dat)
Feb 22 07:49:33 tux201t kernel: [1254476.385144] sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
Feb 22 07:49:33 tux201t kernel: [1254476.385154] sd 6:0:0:0: [sdb] tag#0 Sense Key : Hardware Error [current] [descriptor]
Feb 22 07:49:33 tux201t kernel: [1254476.385160] sd 6:0:0:0: [sdb] tag#0 Add. Sense: No additional sense information
Feb 22 07:49:33 tux201t kernel: [1254476.385167] sd 6:0:0:0: [sdb] tag#0 CDB: ATA command pass through(16) 85 06 20 00 00 00 00 00 00 00 00 00 00 00 e5 00
Feb 22 07:59:33 tux201t kernel: [1255076.377070] sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
Feb 22 07:59:33 tux201t kernel: [1255076.377081] sd 6:0:0:0: [sdb] tag#0 Sense Key : Hardware Error [current] [descriptor]
Feb 22 07:59:33 tux201t kernel: [1255076.377086] sd 6:0:0:0: [sdb] tag#0 Add. Sense: No additional sense information
Feb 22 07:59:33 tux201t kernel: [1255076.377093] sd 6:0:0:0: [sdb] tag#0 CDB: ATA command pass through(16) 85 06 20 00 00 00 00 00 00 00 00 00 00 00 e5 00
Feb 22 08:00:01 tux201t CRON[10538]: (stefan) CMD (/home/stefan/bin/blogcounter.sh -w >> /home/stefan/.bloglog)
Feb 22 08:09:33 tux201t kernel: [1255676.380279] sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
Feb 22 08:09:33 tux201t kernel: [1255676.380286] sd 6:0:0:0: [sdb] tag#0 Sense Key : Hardware Error [current] [descriptor]
Feb 22 08:09:33 tux201t kernel: [1255676.380289] sd 6:0:0:0: [sdb] tag#0 Add. Sense: No additional sense information
Feb 22 08:09:33 tux201t kernel: [1255676.380293] sd 6:0:0:0: [sdb] tag#0 CDB: ATA command pass through(16) 85 06 20 00 00 00 00 00 00 00 00 00 00 00 e5 00
Feb 22 08:17:01 tux201t CRON[11053]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Feb 22 08:17:01 tux201t cron[926]: Please install an MTA on this system if you want to use sendmail!
Feb 22 08:17:01 tux201t CRON[11052]: (root) MAIL (mailed 107 bytes of output but got status 0x00ff from MTA#012)

Bis auf die Uhrzeit wiederholt sich vieles, und bis auf die magischen Zahlen in Backsteinklammern.

Das kann man mit sed, dem StreamEDitor, rausfiltern. Außerdem brauche ich die Angabe ‚tux21t‘, meinen Rechnernamen nicht – da ist nur der eine.

​​​​​​​sed -r 's/.* tux201t//;s/kernel: .[0-9.]+. /kernel: /;s/CRON.[0-9]+./CRON/' /var/log/syslog

colord[1154]: (colord:1154): Cd-WARNING **: failed to get session [pid 9723]: Kein passendes Gerät bzw. keine passende Adresse gefunden
colord[1154]: message repeated 5 times: [ (colord:1154): Cd-WARNING **: failed to get session [pid 9723]: Kein passendes Gerät bzw. keine passende Adresse gefunden]
anacron[9507]: Job `cron.daily' terminated
anacron[9507]: Normal exit (1 job run)
kernel: sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
kernel: sd 6:0:0:0: [sdb] tag#0 Sense Key : Hardware Error [current] [descriptor]
kernel: sd 6:0:0:0: [sdb] tag#0 Add. Sense: No additional sense information
kernel: sd 6:0:0:0: [sdb] tag#0 CDB: ATA command pass through(16) 85 06 20 00 00 00 00 00 00 00 00 00 00 00 e5 00
CRON: (stefan) CMD (date >> $HOME/foo.dat)
kernel: sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
kernel: sd 6:0:0:0: [sdb] tag#0 Sense Key : Hardware Error [current] [descriptor]
kernel: sd 6:0:0:0: [sdb] tag#0 Add. Sense: No additional sense information
kernel: sd 6:0:0:0: [sdb] tag#0 CDB: ATA command pass through(16) 85 06 20 00 00 00 00 00 00 00 00 00 00 00 e5 00

Das ist kürzer, und jetzt sind viele Zeilen identisch. Mit | sort | uniq -c | sort -r -n kann man die Ausgabe sortieren, mit uniq die wiederholten Zeilen löschen, uniq -c zählt dabei die gelöschten Duplikate, ein weiteres sort -r -n sortiert dann numerisch und reverse, das heißt hier absteigend.

110 kernel: sd 6:0:0:0: [sdb] tag#0 Sense Key : Hardware Error [current] [descriptor]
110 kernel: sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
110 kernel: sd 6:0:0:0: [sdb] tag#0 Add. Sense: No additional sense information
109 kernel: sd 6:0:0:0: [sdb] tag#0 CDB: ATA command pass through(16) 85 06 20 00 00 00 00 00 00 00 00 00 00 00 e5 00
18 CRON: (stefan) CMD (/home/stefan/bin/blogcounter.sh -w >> /home/stefan/.bloglog)
18 CRON: (stefan) CMD (date >> $HOME/foo.dat)
18 CRON: (root) MAIL (mailed 107 bytes of output but got status 0x00ff from MTA#012)
18 CRON: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
18 cron[926]: Please install an MTA on this system if you want to use sendmail!
8 dbus[986]: [system] Activating via systemd: service name='org.bluez' unit='dbus-org.bluez.service'
7 org.freedesktop.Notifications[1801]: /home/stefan/.cache/xfce4-notifyd-theme.rc:1: error: scanner: unterminated string constant

Jetzt wollen wir noch die Ausgabe an ein simples Grafikprogramm weitergeben. Hier bietet sich Zenity an, welches bei Xubuntu dabei ist – eine Alternative wäre xdialog – das wir mit der Größe 1400×600 starten, und für das wir ein paar Label festlegen.

​​​​​zenity --list --text="Syslog messages" --column="logmsg" --width=1400 --height=600

Zenity war hier schon Thema und soll nicht näher besprochen werden. man zenity oder zenity --help verraten das wichtigste in Kürze. Auch im Ubuntuusers.de führt in den Umgang ein.

Komplett sieht unser Programm also jetzt so aus:

#!/bin/bash
#

condense syslog ((c) GPLv3)

#
sed -r 's/.* tux201t//;s/kernel: .[0-9.]+. /kernel: /;s/CRON.[0-9]+./CRON/' /var/log/syslog \
| egrep -v "Starting Hostname Service.|Started Hostname Service" | sort | uniq -c | sort -nr | \
zenity --list --text="Syslog messages" --column="logmsg" --width=1400 --height=600

Aufmerksame Leser haben bemerkt, dass sich hier noch ein Kommando eingeschlichen, hat, und zwar egrep -v "A|B" . Mit egrep -v kann man unerwünschte Zeilen ausfiltern, die ein Schlüsselwort enthalten. Diese zwei, durch ein Pipesymbol getrennte Namen A|B sind als A oder B zu lesen, und sind nach Bedarf zu erweitern, A|B|C|D … – so kann man Meldungen, die nur Erfolg verkünden, ausblenden. Wir wollen ja die unangenehmen Heinis identifizieren. Mit der Zeit wächst das sicherlich an, wenn man diszipliniert nach und nach allen Meldungen auf den Grund geht.

Weil die Befehlskette so lang ist, habe ich sie umgebrochen. Dazu benutzt man den Backslash, dem sofort ein Zeilenumbruch folgen muss, dann in der nächsten Zeile fortgesetzt.

Ich nenne sie syslog-view.sh, speichere sie in meinem bin-Dir ~/bin, welches im Pfad ist, und markiere sie mit chmod a+x ~/bin/syslog-view.sh als ausführbar.

Mit syslog-view.sh kann man sie jetzt aufrufen und sollte das auch testen. Bei Fehlern testet man sinnvollerweise erst die Filterung mit sed, dann die sort-Kette in Verbindung, schließlich ob man Zenity mit einer anderen Eingabe so aufrufen kann, und dann die Kombination.

Jetzt kommen wir zum eigentlichen Punkt, den Aufruf durch Orage. Hier sind jetzt die GUI-Freunde in ihrem Element. Wir klicken einen einzelnen Tag an, und kommen zum Tagesfenster. Da wählen wir Ereignis oder Aufgabe – der Unterschied hat sich mir noch nicht erschlossen, und dann, links unter Datei, das Symbol für Neu, das Blatt mit dem Plus.

orage-tagesfenster

Wenn wir schwach sind im Entscheiden, dann können wir hier wieder von Ereignis zu Aufgabe wechseln oder zurück. Ich war für Ereignis. Da vergeben wir einen Titel. Ort hat wenig Sinn, aber ich bin kein Orage-Crack, womöglich entgeht mir da was. Und eine Uhrzeit legen wir fest – 18:05 halte ich für eine excellente Entscheidung. Oft bin ich da schon wach.

orage-ereignis-neu1

Rubriken sind wohl interessant, wenn man viel mit Orage verwaltet. Priorität habe ich so gelassen und alles. Dauer 30 Minuten steht auch nur so da.

Nächster Reiter, Erinnerung, es wird spannend! orage-erinnerung1

Mit 0:0:0 als Erinnerungszeitpunkt verraten wir Orage, dass die Anwendung selbst die Aufgabe ist. Wenn wir ins Konzert wollen, und eine Stunde früher los müssen, dann würden wir da wohl 1 Stunde eintragen. Wir sind von der Sorte hier-und-jetzt. Anwendung wollen wir benutzen, und tragen den Pfad zum Programm und Programmnamen ein. Ob Shellkürzel wie $HOME oder ~/ funktionieren würden habe ich nicht getestet.

Nächster Reiter, Wiederholung:

orage-wiederholung1

Alle Stunde ist wohl etwas oft. Das hatte ich zum Testen eingestellt. Täglich, wöchentlich, monatlich und jährlich stehen noch zur Auswahl, und man könnte auch 2-wöchentlich oder sowas festlegen. Komplexität bitte selbst erforschen.

Tja, und jetzt poppt täglich mein Logmelder auf, und ich darf mich fragen, was der Colordämon wohl ist, und was er macht. Das Ziel ist es, nach und nach den Meldungen auf den Grund zu gehen, diejenigen zu beseitigen, die ich beseitigen kann, und diejenige auszufiltern, die harmlose Statusmeldungen sind. So dass das Logfile leerer wird, und neue Fehler dann auch auffallen.

Achso – wie sieht es in Zenity aus?

zenity-logview

Die Überschrift, man solle was auswählen, kommt vom Listenmodus zenitys. Womöglich kann man sie durch was eigenes ersetzen. Ob man OK oder Abbrechen drückt hat den gleichen Effekt – das Fenster schließt sich. Man könnte bei OK die Ausgabe auffangen und damit was anstellen (automatisierte Googlesuche, etwa, oder Frage eröffnen bei Ubuntuusers.de, oder Email an den persönlichen Linuxguru schicken.)

Ich hatte mal einen Nullmailer installiert; das wozu ist eine andere Geschichte, die hier nicht erzählt werden soll. Dann klappte es nicht mehr, wurde aber auch nicht mehr gebraucht. Daher jedenfalls stammt dieser Eintrag mit 18 Meldungen, ich solle einen MTA (Mail transport agent) installieren. Zenity kann man, meine ich, mitteilen, ob man die Zeilen edieren darf. Ja, das werde ich noch einstellen, wenn Hinweise in den Kommentaren nicht schneller sind, denn so, wie es jetzt ist, kann man schlecht den Text kopieren, um ihn selbst ins Google-Suchfeld einzugeben.

 

 – Der Colordaemon war da! – 

colordaemon

Heute geht es mal wieder um Linux. Und nur am Rande um den Colordaemon, ein Daemon, also ein Hintergrundprozess, der sich, wie meist, durch ein kleines D am Namensende verrät. Wobei es auch ein, zwei Dämonen gibt, sich nicht so verraten, und natürlich gibt es Programme, die zufällig auf ‚d‘ enden, ohne dass sie damit signalisieren wollen, dass sie Dämonen sind. Also ein Fall, wie geschaffen, um den Unterschied zwischen starken Indizien von Beweisen zu erläutern, wüssten nicht mehr Leute, was Indizien und Beweise sind, als was Dämonen unter unixoiden Systemen sind.

Andere, mehr oder weniger bekannte Dämonen, sind der Druckerdaemon cupsd des common unix printing service, sowie dbus-daemon, avahi-daemon, die auf andere Weise ihre Dämonenhaftigkeit äußern, aber ich verrate jetzt nicht wie, usb-storage und cron sind wohl auch Dämonen, und haben kein D am Ende. Cron spielt noch eine Rolle am Rande. Dagegen wären sed und thunderbird Programme, die trotz D-Endung keine sind.

Wen’s interessiert, ps ax -o cmd gibt die Namen aller laufenden Prozesse aus.

Das eigentliche Thema hier sind aber weder Dämonen, noch der colord im Besonderen, sondern das syslog, Scheduler und Orage. Ein Scheduler ist ein Zeitplaner und Orage ist der Zeitplaner, um den es hier geht.

Motivation:

Oft wollen Leute, dass das System sie regelmäßig über Dinge informiert, und sie wollen es auf dem Desktop sehen. Dabei treffen sie auf Linuxexperten, die oft beruflich oder ehrenamtlich Sysadmin sind, und für solche Aufgaben die seit den 60ern bewährten Programme cron/anachron benutzen (anacron ist ein anachronististischer cron, habe ich mir sagen lassen), aber diese arbeiten befehlszeilenorientiert und werden über superschlanke, jedoch leicht kryptische Tabellen, die crontabs, konfiguriert – das ist schon nicht jedermanns Sache.

Außerdem laufen sie vom Systemstart weg, noch bevor die grafische Umgebung, X11 und der ganze Desktopkrempel geladen ist und nicht mit den Rechten des Users. Auf Servern läuft meist gar keine Desktopumgebung und folglich sind sie nicht sonderlich dafür ausgelegt, dem User, der womöglich gar nicht angemeldet ist, der auch kein DE (Desktop-Environment) geladen hat, eine Popupnachricht zu senden.

Es gibt dafür Lösungen, und zwar muss man die Xauthority bemühen und 0:0 an das Programm melden, welches um 17:15 aufpoppen soll – da man das so selten macht, hat man die Syntax nicht im Kopf und ist verstimmt. Im Ubuntuusers.de-Wiki ist, unter Fenster öffnet sich nicht, vermerkt wie es geht (noch etwas nach unten scrollen).

Auch ich habe schon oft darauf verwiesen, aber jetzt, bei meiner oberflächlichen Beschäftigung mit Orage eine einfache Alternative gefunden. Und darum geht es hier. :)

Also, wenn man ein Programm, dass die grafische Oberfläche braucht, starten will, dann geht man zu Orage. Hat man oben rechts in der Systemleiste eine Uhr laufen, dann bringt ein Doppelklick darauf wahrscheinlich Orage im Kalendermodus in den Vordergrund.

orage-monat

Was wir jetzt noch brauchen ist aber ein praktisches Beispiel, und deswegen kommen wir einfach nicht auf den Punkt, sondern holen nochmal auf einem zweiten Pfad aus.

Man hat ja unter /var/log/ jede Menge Logdateien liegen, die man nie anschaut, weil man sie nicht versteht. Geht was schief mit dem System wird man dann von naseweisen Linuxgurus gefragt, was das Syslog sagt. Der 0-8-15 User weiß nicht mal, dass es sowas gibt. Also ls -l /var/log/syslog eingeben:

> ls -l /var/log/syslog
-rw-r----- 1 syslog adm 71855 Feb 23 01:07 /var/log/syslog

Mit 70kb ein ganz schön fettes Ding.

Mit less /var/log/syslog (less is more) kann man sich den Inhalt ansehen. Wenn etwas schiefläuft, dann oft richtig, und die gleiche Nachricht taucht 100fach im Logfile auf. Mit einer Länge von 3 Zeilen a 150 Zeichen kommt man leicht auf 45.000 Zeichen. Die Nachrichten zu entziffern ist schon eine Wissenschaft für sich, aber wenn man regelmäßig reinschaut kann man ja einzelnen Nachrichten nach und nach auf den Grund gehen. Und man bemerkt vielleicht, wenn das Logfile plötzlich ganz anders ausschaut.

Früher hatte ich ewig, über unterschiedlichste Distributionen und Versionen hinweg Meldungen im Syslog, dass 3 Systemfonts nicht gefunden werden konnten. Im laufenden Betrieb hat sich aber nie ein Fehler geäußert. Einmal wollte ich sie loswerden und habe das Netz durchsucht, aber weder fand ich einen Ort, um die Fonts endlich runterzuladen, noch einen Trick die Meldungen loszuwerden.

Überflüssige Fehlermeldungen sind nämlich ein Problem: Sie erhöhen das Rauschen, den Heuhaufen, in dem man dann die Nadel nicht findet.

Ein anderer Unbill war eine fehlerhafte Druckerdatei, bei hoch gesetztem Loglevel des Druckerdaemons. Der hat dann gleich 100 Zeilen Fehlerprotokoll ins Log geschrieben, und das minutenweise. Das wurde rasch zu einem Dateigrößenproblem.

Jetzt gibt es auch den wunderbaren Daemon logrotate. Der rotiert das Logsystem, und zwar insofern, als die Logdatei von gestern zu xy.0.log umbenannt wird, die von gestern, die xy.0.log hieß wird xy.1.log genannt – sinnvollerweise in umgekehrter Reihenfolge, und so weiter, und die älteste wird gelöscht. Und was älter als gestern ist wird gezippt, und da diese Logdateien oft hochgradig redundant sind, sind die gezippten Dateien oft wesentlich kleiner, als die frischen, ungezippten. Weil sysadmins so oft in diese Dateien schauen müssen, gibt es extra das Programm zless, dass ein less auf gezippte Texte ausführt.

Wir beenden den Exkurs zu den Logdateien und kommen zurück zum Thema. Als auf Stackexchange jemand fragte, wie ein grafisches Programm zeitgesteuert startet – er wollte etwas ähnliches wie Logdateien ansehen, dachte ich nach, wie ich das lösen würde, aber konnte ihm nicht konkret helfen, weil er eine Lösung für MacOS sucht. Aber so kam ich auf die Idee, 1x täglich könnte ich mir die Syslogdatei vorlegen, und wollte sehen, ob sich das nicht mit Orage lösen lässt, wo ich bemerkt hatte, dass man zur Benachrichtigung ein Programm starten kann.

Dieses Programm kann man leicht selbst schreiben, und von Orage starten lassen. Die Idee ist dabei, die oft ellenlange Ausgabe der Logdatei zu kürzen, so dass ähnliche Meldungen nur noch einmal auftauchen. Meine Logdatei zeigt etwa sowas an:

Feb 22 07:35:02 tux201t colord[1154]: (colord:1154): Cd-WARNING **: failed to get session [pid 9723]: Kein passendes Gerät bzw. keine passende Adresse gefunden
Feb 22 07:35:02 tux201t colord[1154]: message repeated 5 times: [ (colord:1154): Cd-WARNING **: failed to get session [pid 9723]: Kein passendes Gerät bzw. keine passende Adresse gefunden]
Feb 22 07:35:10 tux201t anacron[9507]: Job `cron.daily' terminated
Feb 22 07:35:10 tux201t anacron[9507]: Normal exit (1 job run)
Feb 22 07:39:33 tux201t kernel: [1253876.380868] sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
Feb 22 07:39:33 tux201t kernel: [1253876.380875] sd 6:0:0:0: [sdb] tag#0 Sense Key : Hardware Error [current] [descriptor]
Feb 22 07:39:33 tux201t kernel: [1253876.380877] sd 6:0:0:0: [sdb] tag#0 Add. Sense: No additional sense information
Feb 22 07:39:33 tux201t kernel: [1253876.380882] sd 6:0:0:0: [sdb] tag#0 CDB: ATA command pass through(16) 85 06 20 00 00 00 00 00 00 00 00 00 00 00 e5 00
Feb 22 07:49:01 tux201t CRON[10242]: (stefan) CMD (date >> $HOME/foo.dat)
Feb 22 07:49:33 tux201t kernel: [1254476.385144] sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
Feb 22 07:49:33 tux201t kernel: [1254476.385154] sd 6:0:0:0: [sdb] tag#0 Sense Key : Hardware Error [current] [descriptor]
Feb 22 07:49:33 tux201t kernel: [1254476.385160] sd 6:0:0:0: [sdb] tag#0 Add. Sense: No additional sense information
Feb 22 07:49:33 tux201t kernel: [1254476.385167] sd 6:0:0:0: [sdb] tag#0 CDB: ATA command pass through(16) 85 06 20 00 00 00 00 00 00 00 00 00 00 00 e5 00
Feb 22 07:59:33 tux201t kernel: [1255076.377070] sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
Feb 22 07:59:33 tux201t kernel: [1255076.377081] sd 6:0:0:0: [sdb] tag#0 Sense Key : Hardware Error [current] [descriptor]
Feb 22 07:59:33 tux201t kernel: [1255076.377086] sd 6:0:0:0: [sdb] tag#0 Add. Sense: No additional sense information
Feb 22 07:59:33 tux201t kernel: [1255076.377093] sd 6:0:0:0: [sdb] tag#0 CDB: ATA command pass through(16) 85 06 20 00 00 00 00 00 00 00 00 00 00 00 e5 00
Feb 22 08:00:01 tux201t CRON[10538]: (stefan) CMD (/home/stefan/bin/blogcounter.sh -w >> /home/stefan/.bloglog)
Feb 22 08:09:33 tux201t kernel: [1255676.380279] sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
Feb 22 08:09:33 tux201t kernel: [1255676.380286] sd 6:0:0:0: [sdb] tag#0 Sense Key : Hardware Error [current] [descriptor]
Feb 22 08:09:33 tux201t kernel: [1255676.380289] sd 6:0:0:0: [sdb] tag#0 Add. Sense: No additional sense information
Feb 22 08:09:33 tux201t kernel: [1255676.380293] sd 6:0:0:0: [sdb] tag#0 CDB: ATA command pass through(16) 85 06 20 00 00 00 00 00 00 00 00 00 00 00 e5 00
Feb 22 08:17:01 tux201t CRON[11053]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Feb 22 08:17:01 tux201t cron[926]: Please install an MTA on this system if you want to use sendmail!
Feb 22 08:17:01 tux201t CRON[11052]: (root) MAIL (mailed 107 bytes of output but got status 0x00ff from MTA#012)

Bis auf die Uhrzeit wiederholt sich vieles, und bis auf die magischen Zahlen in Backsteinklammern.

Das kann man mit sed, dem StreamEDitor, rausfiltern. Außerdem brauche ich die Angabe ‚tux21t‘, meinen Rechnernamen nicht – da ist nur der eine.

​​​​​​​sed -r 's/.* tux201t//;s/kernel: .[0-9.]+. /kernel: /;s/CRON.[0-9]+./CRON/' /var/log/syslog

colord[1154]: (colord:1154): Cd-WARNING **: failed to get session [pid 9723]: Kein passendes Gerät bzw. keine passende Adresse gefunden
colord[1154]: message repeated 5 times: [ (colord:1154): Cd-WARNING **: failed to get session [pid 9723]: Kein passendes Gerät bzw. keine passende Adresse gefunden]
anacron[9507]: Job `cron.daily' terminated
anacron[9507]: Normal exit (1 job run)
kernel: sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
kernel: sd 6:0:0:0: [sdb] tag#0 Sense Key : Hardware Error [current] [descriptor]
kernel: sd 6:0:0:0: [sdb] tag#0 Add. Sense: No additional sense information
kernel: sd 6:0:0:0: [sdb] tag#0 CDB: ATA command pass through(16) 85 06 20 00 00 00 00 00 00 00 00 00 00 00 e5 00
CRON: (stefan) CMD (date >> $HOME/foo.dat)
kernel: sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
kernel: sd 6:0:0:0: [sdb] tag#0 Sense Key : Hardware Error [current] [descriptor]
kernel: sd 6:0:0:0: [sdb] tag#0 Add. Sense: No additional sense information
kernel: sd 6:0:0:0: [sdb] tag#0 CDB: ATA command pass through(16) 85 06 20 00 00 00 00 00 00 00 00 00 00 00 e5 00

Das ist kürzer, und jetzt sind viele Zeilen identisch. Mit | sort | uniq -c | sort -r -n kann man die Ausgabe sortieren, mit uniq die wiederholten Zeilen löschen, uniq -c zählt dabei die gelöschten Duplikate, ein weiteres sort -r -n sortiert dann numerisch und reverse, das heißt hier absteigend.

110 kernel: sd 6:0:0:0: [sdb] tag#0 Sense Key : Hardware Error [current] [descriptor]
110 kernel: sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
110 kernel: sd 6:0:0:0: [sdb] tag#0 Add. Sense: No additional sense information
109 kernel: sd 6:0:0:0: [sdb] tag#0 CDB: ATA command pass through(16) 85 06 20 00 00 00 00 00 00 00 00 00 00 00 e5 00
18 CRON: (stefan) CMD (/home/stefan/bin/blogcounter.sh -w >> /home/stefan/.bloglog)
18 CRON: (stefan) CMD (date >> $HOME/foo.dat)
18 CRON: (root) MAIL (mailed 107 bytes of output but got status 0x00ff from MTA#012)
18 CRON: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
18 cron[926]: Please install an MTA on this system if you want to use sendmail!
8 dbus[986]: [system] Activating via systemd: service name='org.bluez' unit='dbus-org.bluez.service'
7 org.freedesktop.Notifications[1801]: /home/stefan/.cache/xfce4-notifyd-theme.rc:1: error: scanner: unterminated string constant

Jetzt wollen wir noch die Ausgabe an ein simples Grafikprogramm weitergeben. Hier bietet sich Zenity an, welches bei Xubuntu dabei ist – eine Alternative wäre xdialog – das wir mit der Größe 1400×600 starten, und für das wir ein paar Label festlegen.

​​​​​zenity --list --text="Syslog messages" --column="logmsg" --width=1400 --height=600

Zenity war hier schon Thema und soll nicht näher besprochen werden. man zenity oder zenity --help verraten das wichtigste in Kürze. Auch im Ubuntuusers.de führt in den Umgang ein.

Komplett sieht unser Programm also jetzt so aus:

#!/bin/bash
#

condense syslog ((c) GPLv3)

#
sed -r 's/.* tux201t//;s/kernel: .[0-9.]+. /kernel: /;s/CRON.[0-9]+./CRON/' /var/log/syslog \
| egrep -v "Starting Hostname Service.|Started Hostname Service" | sort | uniq -c | sort -nr | \
zenity --list --text="Syslog messages" --column="logmsg" --width=1400 --height=600

Aufmerksame Leser haben bemerkt, dass sich hier noch ein Kommando eingeschlichen, hat, und zwar egrep -v "A|B" . Mit egrep -v kann man unerwünschte Zeilen ausfiltern, die ein Schlüsselwort enthalten. Diese zwei, durch ein Pipesymbol getrennte Namen A|B sind als A oder B zu lesen, und sind nach Bedarf zu erweitern, A|B|C|D … – so kann man Meldungen, die nur Erfolg verkünden, ausblenden. Wir wollen ja die unangenehmen Heinis identifizieren. Mit der Zeit wächst das sicherlich an, wenn man diszipliniert nach und nach allen Meldungen auf den Grund geht.

Weil die Befehlskette so lang ist, habe ich sie umgebrochen. Dazu benutzt man den Backslash, dem sofort ein Zeilenumbruch folgen muss, dann in der nächsten Zeile fortgesetzt.

Ich nenne sie syslog-view.sh, speichere sie in meinem bin-Dir ~/bin, welches im Pfad ist, und markiere sie mit chmod a+x ~/bin/syslog-view.sh als ausführbar.

Mit syslog-view.sh kann man sie jetzt aufrufen und sollte das auch testen. Bei Fehlern testet man sinnvollerweise erst die Filterung mit sed, dann die sort-Kette in Verbindung, schließlich ob man Zenity mit einer anderen Eingabe so aufrufen kann, und dann die Kombination.

Jetzt kommen wir zum eigentlichen Punkt, den Aufruf durch Orage. Hier sind jetzt die GUI-Freunde in ihrem Element. Wir klicken einen einzelnen Tag an, und kommen zum Tagesfenster. Da wählen wir Ereignis oder Aufgabe – der Unterschied hat sich mir noch nicht erschlossen, und dann, links unter Datei, das Symbol für Neu, das Blatt mit dem Plus.

orage-tagesfenster

Wenn wir schwach sind im Entscheiden, dann können wir hier wieder von Ereignis zu Aufgabe wechseln oder zurück. Ich war für Ereignis. Da vergeben wir einen Titel. Ort hat wenig Sinn, aber ich bin kein Orage-Crack, womöglich entgeht mir da was. Und eine Uhrzeit legen wir fest – 18:05 halte ich für eine excellente Entscheidung. Oft bin ich da schon wach.

orage-ereignis-neu1

Rubriken sind wohl interessant, wenn man viel mit Orage verwaltet. Priorität habe ich so gelassen und alles. Dauer 30 Minuten steht auch nur so da.

Nächster Reiter, Erinnerung, es wird spannend! orage-erinnerung1

Mit 0:0:0 als Erinnerungszeitpunkt verraten wir Orage, dass die Anwendung selbst die Aufgabe ist. Wenn wir ins Konzert wollen, und eine Stunde früher los müssen, dann würden wir da wohl 1 Stunde eintragen. Wir sind von der Sorte hier-und-jetzt. Anwendung wollen wir benutzen, und tragen den Pfad zum Programm und Programmnamen ein. Ob Shellkürzel wie $HOME oder ~/ funktionieren würden habe ich nicht getestet.

Nächster Reiter, Wiederholung:

orage-wiederholung1

Alle Stunde ist wohl etwas oft. Das hatte ich zum Testen eingestellt. Täglich, wöchentlich, monatlich und jährlich stehen noch zur Auswahl, und man könnte auch 2-wöchentlich oder sowas festlegen. Komplexität bitte selbst erforschen.

Tja, und jetzt poppt täglich mein Logmelder auf, und ich darf mich fragen, was der Colordämon wohl ist, und was er macht. Das Ziel ist es, nach und nach den Meldungen auf den Grund zu gehen, diejenigen zu beseitigen, die ich beseitigen kann, und diejenige auszufiltern, die harmlose Statusmeldungen sind. So dass das Logfile leerer wird, und neue Fehler dann auch auffallen.

Achso – wie sieht es in Zenity aus?

zenity-logview

Die Überschrift, man solle was auswählen, kommt vom Listenmodus zenitys. Womöglich kann man sie durch was eigenes ersetzen. Ob man OK oder Abbrechen drückt hat den gleichen Effekt – das Fenster schließt sich. Man könnte bei OK die Ausgabe auffangen und damit was anstellen (automatisierte Googlesuche, etwa, oder Frage eröffnen bei Ubuntuusers.de, oder Email an den persönlichen Linuxguru schicken.)

Ich hatte mal einen Nullmailer installiert; das wozu ist eine andere Geschichte, die hier nicht erzählt werden soll. Dann klappte es nicht mehr, wurde aber auch nicht mehr gebraucht. Daher jedenfalls stammt dieser Eintrag mit 18 Meldungen, ich solle einen MTA (Mail transport agent) installieren. Zenity kann man, meine ich, mitteilen, ob man die Zeilen edieren darf. Ja, das werde ich noch einstellen, wenn Hinweise in den Kommentaren nicht schneller sind, denn so, wie es jetzt ist, kann man schlecht den Text kopieren, um ihn selbst ins Google-Suchfeld einzugeben.

 

22. Februar 2018

Mozilla hat eine Neuerung in Firefox 60 implementiert, welche sogenannten Mixed Passive Content eliminiert, also über HTTP eingebundene Bilder und andere Ressourcen auf Webseiten, die ansonsten über HTTPS übertragen werden. Solche Ressourcen erhalten damit automatisch ein Upgrade auf HTTPS und werden verschlüsselt übertragen. Damit heißt es: Grünes Schloss statt Gelbes Warndreieck in der Adressleiste.

Viele Änderungen in Bezug auf HTTP ab Firefox 60

Die unverschlüsselte Übertragung von Daten soll aus Sicherheits- und Privatsphäre-Gründen bald der Vergangenheit angehören, wenn es nach den großen Browserherstellern geht. Was Firefox betrifft, gab es diesbezüglich im vergangenen Monat einige Meldungen: in privaten Fenstern werden ab Firefox 60 Webseiten, die nur über HTTP übertragen werden, als unsicher markiert, Optionen für eine deutlichere Warnung bei HTTP anstelle von HTTPS können ab Firefox 60 aktiviert werden, ebenfalls ab Firefox 60 kann die Unterstützung für das unverschlüsselte FTP-Protokoll deaktiviert werden und ab Firefox 62 funktionieren zwei bestehende Web-Features, die bislang auch über HTTP nutzbar waren, nur noch über HTTPS. Ebenfalls wurde angekündigt, kommende Web-Features nur noch über HTTPS verfügbar zu machen.

Nun hat Mozilla die nächste Neuerung für Firefox 60 implementiert. Eine neue Einstellung sorgt dafür, dass sogenannter Mixed Passive Content ein automatisches Upgrade auf HTTPS erhält. Um das zu verstehen, müssen wir einen Schritt zurückgehen und erklären, was Mixed Content ist, wieso das schlecht für die Sicherheit ist  und wo der Unterschied zwischen aktivem und passiven Mixed Content liegt.

Was ist Mixed Content?

Der Vorteil von Verbindungen über HTTPS gegenüber HTTP ist, dass die Daten hierbei abhörsicher übertragen werden, was den Anwender vor Man-in-the-Middle-Attacken schützt. Allerdings bedeutet der Aufruf einer Webseite über HTTPS nicht automatisch, dass alle Ressourcen einer Webseite verschlüsselt übertragen werden. So können Bilder, Stylesheets, JavaScripts oder Frames auch auf einer über HTTPS aufgerufenen Webseite über HTTP angefragt und für Angriffe ausgenutzt werden. In einem solchen Fall spricht man von Mixed Content.

Mixed Passive Content

Bei Mixed Passive Content handelt es sich um HTTP-Content auf einer HTTPS-Webseite, welcher nicht das Document Object Model (DOM) einer Webseite verändern kann, das können beispielsweise Bilder, Videos oder Audio sein. Ein Angreifer könnte diese austauschen, das hätte allerdings keinen größeren Einfluss auf den Rest der Webseite.

Nichtsdestominder kann auch Mixed Passive Content ein ernsthaftes Problem sein, da sich Rückschlüsse über die Aktivitäten eines Nutzers ziehen lassen könnten, indem zum Beispiel geschaut wird, welche Bilder an einen Nutzer geliefert werden. Da gewisse Bilder nur auf einer bestimmten Webseite erscheinen, könnte ein Angreifer so erfahren, welche Webseite ein Nutzer besucht. Darüber hinaus könnte der Angreifer die HTTP-Header, welche mit dem Bild gesendet werden, beobachten, inklusive User-Agent und sämtlichen Cookies, welche mit der Domain in Verbindung stehen, von welcher das Bild bezogen wird. Handelt es sich dabei um dieselbe Domain wie die eigentliche Webseite, ist so der ganze Schutz durch HTTPS nutzlos, weil der Angreifer die Cookies des Benutzers aus den Headern der unverschlüsselt übertragenen Bilder auslesen kann.

Mixed Active Content

Mixed Active Content hat im Gegensatz dazu die Möglichkeit, das Verhalten einer HTTPS-Webseite zu verändern, und damit das Potential, sensible Nutzerdaten zu stehlen. Beispiele für Mixed Active Content sind über HTTP ausgelieferte Stylesheets, JavaScripts, Objekte, XHR-Requests, Fonts sowie iFrames. Bei letzterem gibt es Uneinigkeit zwischen den Browserherstellern, ob es sich dabei um Mixed Active Content oder Mixed Passive Content handelt, Mozilla geht hierbei im Gegensatz zu Google, welche dies als Mixed Passive Content einstufen, mit Microsoft mit und sieht dies als Mixed Active Content.

Ein Angreifer könnte die HTTP-Anfragen abfangen, die Antwort umschreiben und dabei schadhaften Code einschleusen. Dieser Code könnte dann sensible Nutzerdaten stehlen oder dazu genutzt werden, um Malware auf dem System des Nutzers zu installieren, indem man sich unsichere Plugins auf dem System des Nutzers zum Vorteil macht.

Wie geht Firefox bislang mit Mixed Content um?

Mixed Active Content wie ein HTTP-iFrame auf einer HTTPS-Webseite wird von Firefox komplett blockiert und überhaupt nicht angezeigt. Das Schloss in der Adressleiste bleibt grün, da zwar Inhalt fehlt, aber keine Einschränkung der Sicherheit vorliegt. Mixed Passive Content hingegen wird von Firefox angezeigt, macht aus dem grünen Schloss in der Adressleiste allerdings ein graues Schloss mit gelben Warndreieck, um den Nutzer zu warnen, dass die Verbindung zwar über HTTPS erfolgt, aber nicht sicher ist. In beiden Fällen loggt Firefox eine entsprechende Meldung in der Webkonsole, welche auch die URL der entweder blockierten oder Warnung verursachenden Ressource beinhaltet.

Mixed Content in Firefox

Was macht die neue Einstellung in Firefox 60?

Die neue Einstellung in Firefox 60 kann über about:config aktiviert werden, indem der Schalter security.mixed_content.upgrade_display_content per Doppelklick auf true gesetzt wird. Was passiert dann?

Für Mixed Active Content ändert sich nichts, dieser wird weiterhin blockiert. Eine Änderung ergibt sich für Mixed Passive Content, also beispielsweise HTTP-Bilder auf HTTPS-Webseiten.

Häufig sind Ressourcen nur über HTTP eingebunden, obwohl sie auch über HTTPS erreicht werden könnten. Firefox lädt mit dieser Option entsprechende Ressourcen über HTTPS und damit verschlüsselt statt unverschlüsselt. Doch Achtung: Kann eine Ressouce nicht über HTTPS geladen werden, wird diese überhaupt nicht angezeigt.

Gemäß der Mixed Content-Spezifikation erfolgt kein HTTPS-Upgrade für Ressourcen im srcset-Attribut eines Bildes oder für das picture-Element, da diese nicht als Mixed Passive Content gewertet werden.

Für den HTTPS-Status in der Adressleiste bedeutet dies, dass Mixed Content nie wieder ein graues Schloss mit gelben Warndreieck verursacht, da Mixed Active Content noch nie ein Auslöser dafür war und Mixed Passive Content nun entweder verschlüsselt oder gar nicht angezeigt wird, also ebenfalls zu keiner reduzierten Sicherheit mehr führt. In der Webkonsole wird für jedes HTTPS-Upgrade eine entsprechende Meldung geloggt.

Mixed Content in Firefox

Was ist die Standard-Einstellung?

Die neue Einstellung wurde heute in der Nightly-Version von Firefox 60 standardmäßig aktiviert. Der Plan ist es, diese Einstellung zunächst für den Zeitraum von zwei Wochen aktiviert zu lassen, um die Auswirkungen auf realen Webseiten zu beobachten. Mögliche Probleme können hier gemeldet werden. Die Option wird in der finalen Version von Firefox 60 vorhanden, aber standardmäßig nicht aktiviert sein.

Der Beitrag Firefox 60: Automatisches HTTPS-Upgrade für HTTP-Ressourcen erschien zuerst auf soeren-hentzschel.at.

21. Februar 2018

Neue Dokumentation

Seit einigen Tagen gibt es eine ausführliche Anleitung zur Installation von linuxmuster.net auf einem KVM-Virtualisierungshost in der offiziellen Dokumentation des Projekts. Wenn man dieser Anleitung folgt, hat man nach wenigen Stunden den KVM-Host, den linuxmuster.net Schulserver, die Firewall und einen Administrations-PC fertig eingerichtet.

Ergänzt wird das Ganze durch Bilder und Videos, welche die einzelnen Schritte noch mal visualisieren. In zwei weiteren Kapiteln stellt der Autor verschiedene Backup-Strategien vor und beschreibt die Einrichtung von VLANs auf dem Server.

Neben dieser neuen Dokumentation gibt es auch Leitfäden für die manuelle Installation sowie die Installation mit einem XenServer.

Neuigkeiten zu Version 7

Die Entwickler arbeiten weiter fleißig an der neuen Version 7 von linuxmuster.net. Aber auch die aktuelle Version 6.2 hat im vergangenen Monat einige Sicherheitsupdates sowie neue Features erhalten (v.a. Linbo).

Noch gibt es keine Beta-Version von linuxmuster.net v7, aber wer sich ein Testsystem installieren will, findet im Github-Wiki eine Installationsanleitung inkl. fertiger Virtualbox-Images. Insgesamt wird es wohl noch einige Monate dauern, bis es ein Release geben wird.

Kommentar hinzufügen

Der Beitrag linuxmuster und KVM – neue Dokumentation erschien zuerst auf .:zefanjas:..

20. Februar 2018

In den letzten Wochen gab es bereits einige Meldungen, welche die unverschlüsselte Übertragung von Daten betreffen. Ganz im Zeichen dieser Meldungen werden zwei Web-Features, welche schon länger Bestandteil der Web-Plattform sind, in Beta-Versionen von Firefox 60 und schließlich ab der finalen Version von Firefox 62 nur noch über HTTPS und nicht länger über HTTP funktionieren.

Zum Schutz der Sicherheits und Privatsphäre der Nutzer sind alle großen Browserhersteller bemüht, die Verschlüsselung von Daten im Web voranzutreiben. Mozilla stellt hierbei keine Ausnahme dar und wird vor allem ab Firefox 60 einige Änderungen bereitstellen, welche die unverschlüsselte Übertragung von Daten betreffen. So wird Firefox ab Version 60 im privaten Modus alle über HTTP aufgerufenen Webseiten als unsicher markieren und außerdem zwei neue Einstellungen zur Verfügung stellen, um die Warnungen bei HTTP noch deutlicher zu machen. Auch zur Deaktivierung des unverschlüsselten FTP-Protokolls wird es ab Firefox 60 eine Einstellung geben. Anfang des Monats hatte Mozilla angekündigt, neue Web-Features nur noch über HTTPS verfügbar zu machen.

Zunächst einmal werden aber zwei Web-Features nur noch über HTTPS verfügbar sein, die nicht neu, sondern schon länger Bestandteil von Firefox sind. Dies betrifft zum einen den AppCache, ein Standard, der bereits seit Firefox 44 deprecated ist und mittelfristig aus Firefox entfernt werden soll. Die modernere und bessere Alternative hierzu sind Service Workers, die seit dem ersten Tag nur über HTTPS verfügbar sind. Das andere Web-Feature ist registerProtocolHandler(), was von Webseiten benutzt werden kann, um einen eigenen Protokoll-Handler zu implementieren, beispielsweise um mailto:-Links in einem Webmailer zu öffnen. Die Nutzung dieses Features liegt laut Telemetrie-Daten von Google für Chrome bei gerade einmal 0,002836 Prozent aller HTTP-Anfragen.

Beide Web-Features werden in jeweils der ersten Hälfte der Beta-Phase von Firefox 60 und Firefox 61 nur noch über HTTPS und nicht länger über HTTP funktionieren. Läuft alles nach Plan, erreicht diese Änderung mit Firefox 62 die finale Version des Mozilla-Browsers.

Dies ist nicht das erste Mal, dass ein bestehendes Web-Feature nachträglich nur noch über HTTPS zugänglich gemacht wird. Seit Firefox 55 kann die Geolocation-API nicht mehr über HTTP genutzt werden.

Basierend auf den Telemetrie-Daten von Firefox erfolgen mittlerweile beinahe 70 Prozent aller Webseiten-Aufrufe über HTTPS. In Deutschland sind es sogar fast 75 Prozent, in den USA über 78 Prozent.

Der Beitrag Firefox 60/62: Zwei bestehende Web-Features nur noch über HTTPS erschien zuerst auf soeren-hentzschel.at.

19. Februar 2018

Die Verschlüsselung von Daten spielt eine wichtige Rolle für die Sicherheit. Dies betrifft nicht nur die Verwendung von HTTPS anstelle von HTTP. Auch über das FTP-Protokoll können Daten unverschlüsselt übertragen werden. Firefox 60 besitzt eine neue Einstellung, um das FTP-Protokoll vollständig in Firefox zu deaktivieren.

Die Browserhersteller machen Ernst bei ihrem Vorhaben, Verschlüsselung voranzutreiben. Ob Chrome, Firefox oder Safari – die Verwendung von HTTP anstelle von HTTPS erzeugt unter immer mehr Voraussetzungen Warnungen im Browser. Vor Kurzem hat Mozilla angekündigt, neue Web-Features nur noch über HTTPS verfügbar zu machen, Firefox 60 markiert im privaten Modus alle über HTTP aufgerufenen Webseiten als unsicher und Firefox 60 kommt ebenfalls mit neuen Einstellungen, um die Warnungen noch deutlicher zu machen.

Basierend auf den Telemetrie-Daten von Firefox erfolgen mittlerweile beinahe 70 Prozent aller Webseiten-Aufrufe über HTTPS. In Deutschland sind es sogar fast 75 Prozent, in den USA über 78 Prozent.

Doch nicht nur über das HTTP-Protokoll können Daten unverschlüsselt übertragen werden, sondern auch über das FTP-Protokoll, welches mittelfristig nicht mehr vom Browser unterstützt werden wird. Mozilla akzeptiert bereits seit über zwei Jahren nur noch Sicherheits-Fixes für die FTP-Unterstützung in Firefox.

In Firefox 60 hat Mozilla nun eine neue Einstellung implementiert, welche die Unterstützung des FTP-Protokolls komplett deaktiviert. Standardmäßig ist die Einstellung noch deaktiviert, das FTP-Protokoll also weiterhin unterstützt. Wer die Unterstützung deaktivieren möchte, kann über about:config den Schalter network.ftp.enabled per Doppelklick auf false setzen. Wird dann eine FTP-URL, zum Beispiel ftp://ftp.de.debian.org, aufgerufen, dann zeigt Firefox nicht länger eine Datei-Auflistung an, sondern behandelt die Eingabe als Suchbegriff und öffnet die Ergebnis-Seite der eingestellten Standard-Suchmaschine, da es sich dann um kein gültiges Protokoll mehr handelt.

Der Beitrag Firefox 60: Neue Einstellung zum Deaktivieren des FTP-Protokolls erschien zuerst auf soeren-hentzschel.at.

Manchmal möchte man ein Playbook bzw. Plays nur auf Hosts laufen lassen, welche gewissen Kriterien entsprechen. In diesem Beitrag möchte ich zwei Beispiele geben, wie sich dies umsetzen lässt.

Playbook nur auf Hosts mit Red Hat Betriebssystem ausführen

Das Modul group_by [1] wird genutzt, um während des Laufs eines Playbooks dynamisch Gruppen von Hosts zu erstellen, auf welche man später weitere Plays anwendet.

---
- hosts: all

  tasks:
    - name: Group by OS

      group_by: key=os_{{ ansible_distribution }}
      changed_when: False

- hosts: os_RedHat
  roles:
    - common

Zu Beginn eines Playbook-Laufs wird das Modul setup [2] ausgeführt, um Variablen mit nützlichen Informationen über die Nodes zu belegen. Die Variable ansible_distribution enthält dabei ein Schlüsselwort für eine bestimmte Distribution.

In obigen Beispiel wird dabei die Gruppe os_RedHat erstellt. Im Folgenden werden dann alle Nodes dieser Gruppe der Rolle common zugeordnet.

Dieses Verfahren lässt sich natürlich auch für weitere Variablen anwenden. Möchte man sehen, welche Variablen belegt werden und genutzt werden können, kann sich die Rückgabe von setup in der Standardausgabe ansehen, wenn man das Modul manuell auf einigen Nodes ausführt.

Plays nur auf bestimmten Nodes ausführen

Ein weiteres Beispiel habe ich auf ITrig [4] gefunden:

---
- name: install open-vm-tools
  hosts: vmwareclients
  gather_facts: True
  become: true
  become_user: root
  tasks:
- name: debian install open-vm-tools
  apt: name=open-vm-tools state=present
  when: ansible_os_family == "Debian" and ansible_virtualization_type == "VMware"

- name: centos install open-vm-tools
  yum: name=open-vm-tools state=present
  when: ansible_os_family == "RedHat" or ansible_distribution == 'CentOS' and ansible_virtualization_type == "VMware"

Hier werden Ansible Conditionals [3] verwendet, um zu bestimmen, auf welchen Nodes ein Play ausgeführt wird. Auch hier werden wieder Variablen ausgewertet, welche durch das Modul setup [2] belegt wurden.

In obigen Beispiel wird dies genutzt, um die open-vm-tools mit einem Playbook sowohl auf Debian und RedHat/CentOS Systemen zu installieren.

Quellen

  1. group_by – Create Ansible groups based on facts {en}
  2. setup – Gathers facts about remote hosts {en}
  3. Conditionals {en}
  4. Ansible Playbooks auf Servern mit SSH Key Authentifizierung verwenden {de}