Bergamot Project: Mozilla und Europäische Union bringen maschinelle Übersetzungen ohne Cloud in Firefox

Im Rahmen des von der Europäischen Union geförderten Bergamot Projects arbeitet Mozilla daran, eine Übersetzungsfunktion für Websites in Firefox zu integrieren – und das vollständig ohne Online-Komponente wie Google Translate.

Bergamot Project: Website-Übersetzung im Browser

Warum sollte man eine Webseite an Google senden, um sie zu übersetzen, wenn doch der eigene Computer und Browser alles dafür hätten, die Übersetzung durchzuführen? Diese Frage hat Emma Humphries von Mozilla sinngemäß auf Twitter gestellt und in dem Tweet auf eine aktuelle Stellenausschreibung von Mozilla verwiesen. Darin sucht Mozilla nach einem Ingenieur für neuronale maschinelle Übersetzung.

Hintergrund des Ganzen ist das von der Europäischen Union geförderte Bergamot Project, in dessen Rahmen Mozilla Deutschland mit der University of Tartu (Estland), der University of Sheffield (England), der University of Edinburgh (Schottland) und der Charles University (Tschechien) kollaboriert, um eine vollständig clientseitige Funktion zur maschinellen Übersetzung von Websites für den Browser zu entwickeln.

Die clientseitige Durchführung der Übersetzung soll einerseits der Privatsphäre dienen, da kein Datenriese wie Google involviert ist, andererseits aber auch die Verbreitung von Sprachtechnologie in Europa fördern, und zwar in Bereichen, welche Vertraulichkeit erfordern und wo es dementsprechend keine Option ist, die Übersetzung in der Cloud durchzuführen.

Das Bergamot Project ist mit drei Millionen Euro durch die Europäische Union gefördert und auf drei Jahre ausgelegt. Damit das Projekt auch über die drei Jahre hinaus einen langfristigen Effekt hat, wird die Übersetzungsfunktion in Firefox integriert und alle Technologien, welche im Rahmen des Bergamot Projects entstehen, als Open Source veröffentlicht.

Für Mozilla hat das Ganze noch einen weiteren sehr großen Vorteil: Firefox hat bereits seit Jahren eine Übersetzungsfunktion integriert, konnte diese aber bisher nicht standardmäßig aktivieren. Hierfür muss der Nutzer sich einen API-Schlüssel bei Google, Microsoft oder Yandex besorgen und diesen via about:config hinterlegen. Der Grund dafür dürfte vermutlich simpel sein: Während die Nutzung eines cloudbasierten Übersetzungsdienstes zwar für den einzelnen Nutzer bei durchschnittlicher Nutzung kostenlos ist, entstehen ab einer gewissen Nutzung Kosten. Würde Mozilla dieses Feature nutzungsbereit ausliefern, wäre dies bei der Anzahl an Firefox-Nutzern für Mozilla mit extrem hohen Kosten verbunden. Entfällt diese Abhängigkeit, kann Mozilla ein Übersetzungs-Feature in Firefox anbieten, ohne dafür tief in die eigene Tasche greifen zu müssen.

Das Bergamot Project läuft bereits seit Januar dieses Jahres und der erste Integrations-Meilenstein wurde nun erreicht und der EU präsentiert. Das folgende Video zeigt eine automatisierte Übersetzung eines deutschsprachigen Artikels in das Englische. Optisch ist kein Unterschied zu der bereits in Firefox vorhandenen, aber versteckten Übersetzungsfunktion zu erkennen. Das Interessante ist das, was man nicht sieht: nämlich, dass in dieser Demo die Übersetzung vollständig im Browser stattfindet und weder die Schnittstellen von Google, Microsoft noch Yandex genutzt werden.

Common Voice, DeepSpeech, WebSpeech API, Firefox Voice

Das Bergamot Project ist nicht Mozillas einzige Aktivität im Bereich Sprache. Mit Common Voice stellt Mozilla eine Online-Plattform zur Verfügung, über welche durch die Nutzer der weltweit größte Sprach-Datensatz kostenlos erzeugt wird – als Alternative zu den großen kommerziellen Anbietern Google, Microsoft, Apple und Amazon.

Unter dem Namen DeepSpeech entwickelt Mozilla ein Open Source Sprachmodell, welches nach Angaben von Mozilla bereits in der Lage sein soll, „Sprache mit menschlicher Genauigkeit und in Echtzeit in Text zu konvertieren – und zwar noch während der Ton gestreamt wird.“ DeepSpeech wird bereits in den Assistenten von Mycroft und Leon sowie im Telefonvermittlungssystem FusionPBX verwendet. In Zukunft soll DeepSpeech auch in Smartphones und In-Car-Systemen zum Einsatz kommen.

Außerdem arbeitet Mozilla derzeit an der Unterstützung des Spracherkennung-Parts der WebSpeech API für Firefox, worüber Websites die Möglichkeit erhalten, per Sprache gesteuert zu werden. Und mit Firefox Voice arbeitet Mozilla an einem Experiment, um Firefox per Sprache zu steuern.

Der Beitrag Bergamot Project: Mozilla und Europäische Union bringen maschinelle Übersetzungen ohne Cloud in Firefox erschien zuerst auf soeren-hentzschel.at.






Lighttpd SSL Update

Wie einige wissen, habe ich eine Zeitlang mal lighttpd genutzt. Dazu habe ich hier eine Anleitung geschrieben. Da diese Anleitung über ein Jahr alt ist, hier mal ein SSL Update.

lighttpd SSL Konfiguration

Es muss die Datei /etc/lighttpd/conf-available/10-ssl.conf bearbeitet werden, und so aussehen:

$SERVER["socket"] == ":443" {
    protocol     = "https://"
    ssl.engine   = "enable"
    ssl.disable-client-renegotiation = "enable"

    # Environment flag for HTTPS enabled
    setenv.add-environment = (
        "HTTPS" => "on"
    )

    # modern configuration, tweak to your needs
    ssl.openssl.ssl-conf-cmd = ("Protocol" => "ALL, -SSLv2, -SSLv3, -TLSv1, -TLSv1.1, -TLSv1.2")
    ssl.cipher-list           = ""
    ssl.honor-cipher-order    = "disable"

    # HTTP Strict Transport Security (63072000 seconds
    setenv.add-response-header  = (
        "Strict-Transport-Security" => "max-age=63072000"
    )
    $HTTP["host"] =~ "(^|\.)example\.de$" {
     ssl.pemfile = "/etc/lighttpd/ssl/example.de.pem"
     ssl.ca-file = "/etc/lighttpd/ssl/fullchain.pem"
    }


    $HTTP["host"] =~ "(^|\.)example\.com$" {
     ssl.pemfile = "/etc/lighttpd/ssl/example.com.pem"
     ssl.ca-file = "/etc/lighttpd/ssl/fullchain.pem"
    }
}

Achtung: für diese Konfiguration muss der Server TLSv1.3 unterstützen, was mit OpenSSL Version 1.1.1 eingeführt wurde!






Lightbeam-Erweiterung für Firefox offiziell eingestellt

Lightbeam war eine Firefox-Erweiterung von Mozilla, welche Website-Tracking visualisierte. Mozilla hat die Erweiterung nun offiziell eingestellt.

Mit Mozillas Erweiterung Lightbeam konnten Nutzer von Firefox das durch Websites erfolgte Tracking besser nachvollziehen, indem die Beziehungen zwischen besuchten Websites und Tracking-Domains graphisch dargestellt worden sind.

Eine aktive Weiterentwicklung der Erweiterung fand allerdings schon lange nicht mehr statt. Im Herbst 2017 wurde Lightbeam zwar im Rahmen eines Outreachy-Projektes als WebExtension mit reduziertem Funktionsumfang neu geschrieben, aber auch danach passierte nicht mehr viel.

So kam es, wie es kommen musste, und Mozilla hat die Unterstützung für Lightbeam offiziell eingestellt. Das bedeutet nicht nur, dass nun endgültig keine weiteren Updates mehr zu erwarten sind, auch wurde Lightbeam vor wenigen Tagen von Mozillas Erweiterungs-Plattform addons.mozilla.org komplett entfernt.

Der Beitrag Lightbeam-Erweiterung für Firefox offiziell eingestellt erschien zuerst auf soeren-hentzschel.at.






Ubuntu 19.10

Die meist-diskutierte Neuerung in Ubuntu 19.10 »Eoan Ermine« besteht darin, dass während der Installation ein ZFS-Dateisystem eingerichtet werden kann. Dieses noch experimentelle Feature richtet sich eher an Linux-Freaks. Ansonsten ist Ubuntu 19.10 eine Distribution mit vielen Software-Updates, die vor allem dann interessant sind, wenn Ubuntu auf ein neues Notebook installiert werden soll. (Egal, ob Sie sich heute für das stabile Ubuntu 18.04 oder für die aktuelle Version 19.10 entscheiden — in einem halben Jahr ist so oder anders ein Update auf Version 20.04 fällig.)

Ubuntu 19.10

Neuerungen

Auf ZFS gehe ich unten ausführlich ein.

Änderungen gab es bezüglich der i386-Unterstützung: Ursprünglich wollte Canonical die Wartung von i386-Paketen ganz aufgeben. Das hat sich als äußerst unpopulär erwiesen: Vor allem das Wine-Projekt und die Spieleplattform Steam ist auf die Pakete angewiesen. Canonical ist daraufhin etwas zurückgerudert, wichtige i386-Pakete werden innerhalb der 64-Bit-Distribution weiter gepflegt.

Definitiv eingestellt wurde hingegen die 32-Bit-Variante von Ubuntu.

In der Beta-Phase gab es auch Pläne, Ubuntu (schon wieder) ein neues Theme zu verpassen (siehe OMG Ubuntu). Insbesondere hätten die dunklen Fensterrahmen hell werden sollen. Letztlich ist man, wohl primär aus Zeitmangel, vorerst beim aktuellen Theme geblieben. (Da die dunklen Fensterrahmen fast schon ein Markenzeichen von Ubuntu sind, hätte die Umstellung vermutlich wenig Begeisterung ausgelöst. Wenn Sie eine Vorschau auf das neue Thema ansehen möchten, installieren Sie das Paket gnome-tweaks und aktivieren dann im Dialogblatt Erscheinungsbild das Anwendungsthema Yaru light.)

Benutzerfreundlicher ist Ubuntu für NVIDIA-Nutzer geworden. Die proprietären NVIDIA-Treiber sind jetzt auf dem Installations-Image enthalten und werden bei Bedarf sofort installiert.

Der Webbrowser Chromium ist nur noch als Snap-Paket verfügbar. (Aus meiner Sicht ein Grund mehr, gleich das Original, also Google Chrome, zu installieren.)

Versionsnummern

Wie üblich wurden in Ubuntu 19.10 alle erdenklichen Programme auf den aktuellen Stand gebracht:

Basis             Desktop             Programmierung   Server
---------------   ------------------  --------------   --------------
Kernel      5.3   Gnome        3.34   bash       5.0   Apache     2.4
glibc      2.30   Firefox        69   gcc        9.2   CUPS       2.2
X-Server   1.20   Gimp         2.10   Java        11   MySQL      8.0
Wayland    1.17   LibreOffice   6.3   PHP        7.3   OpenSSH    8.0
Mesa       19.2   Thunderbird    68   Python     3.7   qemu/KVM   4.0
Systemd     242                                        Postfix    3.4
NetworkMan 1.20                                        Samba     4.10
GRUB       2.04 

Java steht in den Versionen 8, 11, 13 und 14 zur Auswahl, wobei aber nur Version 11 in der main-Paketquelle ist.

ZFS

Das ursprünglich von Sun entwickelte Dateisystem ZFS hat den Ruf, das beste Dateisystem für Unix zu sein. Oracle hat die Weiterentwicklung eingestellt, aber BSD sowie anderen Organisationen/Firmen haben ZFS in den vergangenen Jahren aktiv genutzt und auch um neue Features erweitert.

Eine Integration von ZFS in den Linux-Kernel ist aufgrund von Lizenz-Inkompatibilitäten unmöglich. Auch die von Canonical betriebene Verwendung von ZFS durch ein externes Modul ist lizenztechnisch ziemlich umstritten. Canonical hat sich ein Gutachten erstellen lassen, das zum Schluss kommt, die Nutzung sei OK.

ZFS in Ubuntu ist ein noch experimentelles Feature, das nicht für den Produktiv-Einsatz gedacht ist! Unklar ist die Motivation von Canonical, mit ZFS wieder einmal einen Sonderweg zu beschreiten. Einsteiger überfordern die Möglichkeiten von ZFS. Sollten Probleme auftreten, ist eine Hilfestellung viel schwieriger als bei einem normalen ext4-Dateisystem. Profis bzw. Server-Administratoren sind bei Dateisystemen auch eher konservativ. ext4 und XFS sind erprobt und robust — wozu also Experimente mit ZFS wagen?

Ähnlich wie SUSE bei btrfs zerlegt auch Ubuntu das ZFS in diverse voneinander getrennte Bereiche (datasets). Entsprechend unübersichtlich sieht die mount-Liste aus:

findmnt -t zfs

TARGET                       SOURCE                                           FSTYPE OPTIONS
/                            rpool/ROOT/ubuntu_to662f                         zfs    rw,relatime,xattr,posixacl
├─/boot                      bpool/BOOT/ubuntu_to662f                         zfs    rw,nodev,relatime,xattr,posixacl
├─/var/lib                   rpool/ROOT/ubuntu_to662f/var/lib                 zfs    rw,relatime,xattr,posixacl
│ ├─/var/lib/dpkg            rpool/ROOT/ubuntu_to662f/var/lib/dpkg            zfs    rw,relatime,xattr,posixacl
│ ├─/var/lib/apt             rpool/ROOT/ubuntu_to662f/var/lib/apt             zfs    rw,relatime,xattr,posixacl
│ ├─/var/lib/AccountServices rpool/ROOT/ubuntu_to662f/var/lib/AccountServices zfs    rw,relatime,xattr,posixacl
│ └─/var/lib/NetworkManager  rpool/ROOT/ubuntu_to662f/var/lib/NetworkManager  zfs    rw,relatime,xattr,posixacl
├─/root                      rpool/USERDATA/root_76pl3s                       zfs    rw,relatime,xattr,posixacl
├─/var/games                 rpool/ROOT/ubuntu_to662f/var/games               zfs    rw,relatime,xattr,posixacl
├─/var/mail                  rpool/ROOT/ubuntu_to662f/var/mail                zfs    rw,relatime,xattr,posixacl
├─/var/snap                  rpool/ROOT/ubuntu_to662f/var/snap                zfs    rw,relatime,xattr,posixacl
├─/home/kofler               rpool/USERDATA/kofler_76pl3s                     zfs    rw,relatime,xattr,posixacl
├─/srv                       rpool/ROOT/ubuntu_to662f/srv                     zfs    rw,relatime,xattr,posixacl
├─/var/spool                 rpool/ROOT/ubuntu_to662f/var/spool               zfs    rw,relatime,xattr,posixacl
├─/var/www                   rpool/ROOT/ubuntu_to662f/var/www                 zfs    rw,relatime,xattr,posixacl
├─/var/log                   rpool/ROOT/ubuntu_to662f/var/log                 zfs    rw,relatime,xattr,posixacl
└─/usr/local                 rpool/ROOT/ubuntu_to662f/usr/local               zfs    rw,relatime,xattr,posixacl

Bei einer Testinstallation von Ubuntu in einer virtuellen Maschine war auffällig, dass der Platzbedarf einer Standardinstallation mit ZFS kaum mehr als die Hälfte des Platzes einer ext4-Installation beanspruchte (2,5 versus 4,9 GB). Das liegt daran, dass ZFS eine eingebautet Kompressionsfunktion hat. Deren Funktionsweise kann mit zfs get compressratio kontrolliert werden:

zfs get compressratio

NAME                                              PROPERTY       VALUE  SOURCE
bpool                                             compressratio  1.00x  -
bpool/BOOT                                        compressratio  1.00x  -
bpool/BOOT/ubuntu_to662f                          compressratio  1.00x  -
rpool                                             compressratio  1.74x  -
rpool/ROOT                                        compressratio  1.74x  -
rpool/ROOT/ubuntu_to662f                          compressratio  1.74x  -
rpool/ROOT/ubuntu_to662f/srv                      compressratio  1.00x  -
rpool/ROOT/ubuntu_to662f/usr                      compressratio  1.00x  -
rpool/ROOT/ubuntu_to662f/usr/local                compressratio  1.01x  -
rpool/ROOT/ubuntu_to662f/var                      compressratio  1.30x  -
rpool/ROOT/ubuntu_to662f/var/games                compressratio  1.00x  -
rpool/ROOT/ubuntu_to662f/var/lib                  compressratio  1.28x  -
rpool/ROOT/ubuntu_to662f/var/lib/AccountServices  compressratio  1.00x  -
rpool/ROOT/ubuntu_to662f/var/lib/NetworkManager   compressratio  1.01x  -
rpool/ROOT/ubuntu_to662f/var/lib/apt              compressratio  2.23x  -
rpool/ROOT/ubuntu_to662f/var/lib/dpkg             compressratio  2.37x  -
rpool/ROOT/ubuntu_to662f/var/log                  compressratio  6.87x  -
rpool/ROOT/ubuntu_to662f/var/mail                 compressratio  1.00x  -
rpool/ROOT/ubuntu_to662f/var/snap                 compressratio  1.00x  -
rpool/ROOT/ubuntu_to662f/var/spool                compressratio  1.03x  -
rpool/ROOT/ubuntu_to662f/var/www                  compressratio  1.00x  -
rpool/USERDATA                                    compressratio  4.31x  -
rpool/USERDATA/kofler_76pl3s                      compressratio  4.42x  -
rpool/USERDATA/root_76pl3s                        compressratio  1.00x  -

Die Benchmark-Website Phoronix hat natürlich auch schon erste Tests durchgeführt, ob ext4 oder ZFS schneller ist. Die Kurzfassung: ext4 ist zumeist (aber nicht immer) im Vorteil. In den Kommentaren zu diesen Tests wird allerdings zurecht kritisiert, dass Michael Larabel nicht weiter auf die unzähligen ZFS-Parameter Rücksicht nimmt, die durchaus Tuning-Möglichkeiten geben würden.

In der ubuntu-devel-Mailingliste gab es einen Vorwurf, das Feature-Set von ZFS unter Ubuntu wäre nicht kompatibel mit dem anderer Betriebssysteme mit ZFS. In einer sehr detaillierten Antwort erläutert der ZFS-Entwickler Richard Laager, warum das so ist und dass es Bestrebungen gibt, ZFS in Linux und ZFS in FreeBSD möglichst anzugleichen.

Probleme

Bei der Installation in virtuelle Maschinen ist mir aufgefallen, dass 2 GB RAM offensichtlich nicht mehr ausreichen. (Das war bisher mein Standardwert, wenn ich keine besonderen Ansprüche an die virtuelle Maschine stellte.)

Massive Probleme hatte ich auf einem relativ neuen Testrechner (CPU i3-8100 mit integrierter GPU), der allerdings über ein VGA-Kabel mit einem alten Monitor verbunden war. Nach dem Bootprozess wurde der Monitor schwarz und schaltete sich in den Energiesparmodus. Selbst ein Parallel-Betrieb HDMI/VGA zum Debugging scheiterte; erst als ich den PC nur noch mit einem HDMI-Monitor verband, funktionierte alles. Derartige Schwierigkeiten hatte ich noch nie, d.h. weder mit anderen Distributionen noch mit älteren Ubuntu-Versionen. Merkwürdig.

Im Zuge des Updates von Ubuntu 19.04 auf Ubuntu 19.10 gibt es einige kleinere Kollateralschäden:

Links/Quellen

ZFS






Python 3.8 veröffentlicht

Kurz notiert: nach knapp einem Jahr hat die Python Foundation wieder eine neuen Minor-Release (Version 3.8) der bekannten Programmiersprache Python veröffentlicht. Dieser Release ist der erste Minor-Release, der aus der Zeit nach van Rossum als BDFL (siehe Bericht) stammt und umfasst eben jene PEP 572, dessen Diskussion ihn zum Rückzug aus der Position veranlasst hatte.

Assignment expressions

Die PEP 572 führt die sog. Assignment expressions ein. Mit diesen Ausdrücken wird es möglich, Zuweisungen direkt in Ausdrücken vorzunehmen und ein C-ähnliches Verhalten wie bei while(line = buffer.read()) darzustellen. Konkret wird in der PEP 572 erwähnt, dass besonders regex-Ausdrücke wie

match = re.match(data)
group = match.group(1) if match else None

die von Programmierern gerne zu

group = re.match(data).group(1) if re.match(data) else None

zusammengekürzt werden, damit vereinfacht und beschelunigt werden sollen, da in letzterem Beispiel für den Oneliner doppelter Berechnungsauswand durch den zweifachen re.match()-Aufruf notwendig wird.

Mit den neuen Assignment expressions soll das dann so aussehen dürfen:

group = match.group(1) if (match := re.match(data)) else None

Positional-only arguments

Die weiteren Änderungen sind besonders aus API-Sicht interessant. Eventuell ist dem ein oder anderen schon aufgefallen, dass die built-in function pow() etwas komisch auf keyword-args reagiert. help(pow) zeigt zwar, dass es die required Parameter x und y gibt. Ruft man aber statt z.B. pow(2, 4) direkt per pow(x=2, x=4) auf, fliegt ein TypeError: pow() takes no keyword arguments. Dies geht u.a. darauf zurück, dass pow die dazugehörige C-Funktion direkt anspricht und dieser TypeError sicherstellt, dass die Argumentübergabe ordnungsgemäß funktioniert, da C keine keyword arguments kennt und Python somit nicht weiß, wie herum die Argumente nun gedreht werden sollen.

Diese Funktionalität steht nun allen Entwicklern zur Verfügung:

def f(a, b, /, c, d, *, e, f):
    print(a, b, c, d, e, f)

In diesem Beispiel müssen die Parameter a und b zwingend als positional arguments (d.h. in der Reihenfolge und ohne keyword-Angaben) übergeben werden. c und d können als positional oder keyword arguments übergeben werden und e und f müssen als keyword arguments übergeben werden. Letzteres ist bisher schon üblich, da z.B. mit dem Parameter *args alle restlichen positional arguments (d.h. ohne keywords) über als Liste mit dem Namen args der Funktion zur Verfügung stehen.

Python Initialization Configuration

Mit der PEP 587 wird eine neue C API eingeführt, die feiner granulierterere Möglichkeiten zur Einstellung des Initialisierungsprozessses und eine verbesserte Fehlerrückgabe ermöglichen. Einen guten Überblick über die konkreten Funktionen, die für C-Entwickler nun zur Verfügung stehen, ist in den Docs abrufbar.

Weitere Änderungen

Weiterhin steht nun die verbesserte Protokollversion 5 von pickle zur Verfügung. Darüberhinaus floss eine ganze Reihe von verschiedenen Verbesserungen oder Änderungen in den neuen Release ein. So dürfen continue Anweisungen nun in finally-Blöcken stehen oder dicts in Form des TypedDict mit Typen annotiert werden.

Das gesamte Changelog ist hier abrufbar, die neue Version kann ab sofort hier oder demnächst im Paketmanager des Distributors bezogen werden.

Weiterhin sei an dieser Stelle nochmals erwähnt, dass der Python 2-Support Ende des Jahres ausläuft. Auch diese neue Version ist ein Einreiz für einen Umstieg von Version 2 auf 3.






Firefox: OpenSearch-Unterstützung läuft aus

Der OpenSearch-Standard erlaubt das Hinzufügen von Suchmaschinen zu Firefox. Mozilla wird die OpenSearch-Unterstützung aus Firefox entfernen. Suchmaschinen müssen in Zukunft als WebExtension bereitgestellt werden.

Via OpenSearch-Definition in Form einer XML-Datei ist es Websites möglich, Suchmaschinen für Firefox und andere Browser bereitzustellen. Firefox-Nutzer können die Suchmaschine dann via Suchfeld respektive das Drei-Punkte-Menü in der Adressleiste zu Firefox hinzufügen.

Seit einiger Zeit unterstützt Firefox auch das Hinzufügen von Suchmaschinen als WebExtension, was den Nutzern eine bessere Kontrolle gibt. Aus diesem Grund stellt Mozilla die OpenSearch-Unterstützung in Firefox in naher Zukunft ein.

Am 5. Dezember wird Mozilla die OpenSearch-Erweiterungen von seiner Erweiterungs-Plattform addons.mozilla.org entfernen. Eine automatische Migration ist aus technischen Gründen nicht möglich. Entwickler von Suchmaschinen-Erweiterungen finden hier die entsprechende Dokumentation, um ihre Suchmaschine anzupassen.

Update 18.10.2019: Wie seitens eines Mozilla-Mitarbeiters klargestellt worden ist, handelt es sich bei der Zeitangabe ausschließlich um den Plan zur Entfernung von OpenSearch-Suchmaschinen von addons.mozilla.org. Firefox selbst ist von diesem Datum nicht betroffen, vorhandene Suchmaschinen werden also auch über den 5. Dezember hinaus funktionieren. Wann die OpenSearch-Unterstützung in Firefox eingestellt wird, ist derzeit nicht bekannt.

Der Beitrag Firefox: OpenSearch-Unterstützung läuft aus erschien zuerst auf soeren-hentzschel.at.






Zugriff auf Netzwerkverzeichnisse mit Nautilus

»Immer Ärger mit Nautilus« wäre eigentlich eine treffendere Überschrift. In diesem Text geht es darum, wie Sie mit dem Gnome-Dateimanager auf Windows- oder Samba-Netzwerkverzeichnisse zugreifen. Dieses Programm hieß ursprünglich Nautilus (der Paketname lautet weiterhin so), später bekam es den nichtssagenden Namen Dateien bzw. im Englischen Files. Ich bleibe hier bei Nautilus, wobei der Name ja noch das geringste Problem ist …

Wie es früher funktionierte

Vor langer Zeit führten Sie in Nautilus das Menükommando Orte / Netzwerk aus. Nautilus zeigte eine Liste aller Windows-Rechner bzw. Samba-Server im lokalen Netzwerk an. Per Doppelklick wählten Sie einen Rechner aus und bekamen eine Liste von Netzwerkverzeichnissen (shares) zu sehen. Ein weiterer Doppelklick öffnete das Verzeichnis. Wenn das Verzeichnis mit einem Passwort abgesichert wurde, mussten Sie sich entsprechend anmelden. Alles in allem ein unkomplizierter Prozess.

Mittlerweile ist die Sache schwieriger, und warum das so ist, bedarf einer etwas längeren Erklärung …

SMB-Grundlagen

Die Basis aller Windows- bzw. Samba-Netzwerkverzeichnisse ist das Protokoll Server Message Block, kurz SMB (Wikipedia). Dieses Protokoll gibt es in verschiedenen Versionen seit 1983 (!!). Die folgende Tabelle fasst überblicksmäßig einige wichtige SMB-Versionen zusammen — und ab welcher Windows- bzw. Samba-Version diese unterstützt werden. (Die Samba-Versionsnummer ist aber mit Vorsicht zu genießen, weil neue SMB-Funktionen oft erst Schritt für Schritt über mehrere Samba-Versionen implementiert wurden. Die Tabelle soll nur als Richtlinie dienen.)

SMB 1.0     Windows 2000       ???
SMB 2.0     Windows Vista      ab Samba 3.6
SMB 2.1     Windows 7          ab Samba 3.6
SMB 3       Windows 8          ab Samba 4.1
SMB 3.1     Windows 10         ab Samba 4.3

Aus Gründen der Abwärtskompatibilität unterstützen Windows und Samba alle Versionen parallel. Client und Server kommunizieren also miteinander, stellen fest, welche Version die Gegenseite unterstützt, und einigen sich auf die bestmögliche Lösung.

In den letzten Jahren haben sich allerdings gravierende Sicherheitsprobleme in SMB 1 herausgestellt, die unter anderem von der Schadsoftware WannaCry ausgenutzt wurde. Microsoft empfiehlt schon seit 2016, SMB 1 explizit zu deaktivieren. In aktuellen Windows-Versionen ist dies standardmäßig der Fall. Auch in aktuellen Samba-Versionen ist SMB 1 mittlerweile standardmäßig deaktiviert; es kann aber bei geeigneter Konfiguration weiterhin aktiviert werden.

Längerfristig werden also immer weniger Netzwerkverzeichnisse SMB 1 unterstützen, ganz egal ob diese von Windows-Rechner, NAS-Geräten oder Linux-Servern angeboten werden. Und in ein paar Jahren ist SMB 1 hoffentlich (endlich) ausgestorben. Wer also auf Windows- oder Samba-Netzwerkverzeichnisse zugreifen will, muss zumindest SMB 2 verstehen.

Browsing

Woher weiß ein Windows- oder Linux-Rechner, welche Netzwerkverzeichnisse im lokalen Netzwerk verfügbar sind? Bis SMB 1 hieß die Antwort Browsing. Das Protokoll SMB enthielt also spezielle Funktionen, um anderen Rechnern mitzuteilen, welche SMB-Server sich im Netzwerk befinden, welche Verzeichnisse (shares) sie anbieten usw.

Diese Funktionen wurden allerdings mit SMB 2 entfernt. Als Ersatz kommt unter Windows das Protokoll WS-Discovery (WSD) zum Einsatz. Linux kann mit Avahi zumindest andere Server/Geräte im lokalen Netz erkennen, allerdings nicht feststellen, welche Netzwerkverzeichnisse diese anbieten. Umgekehrt sehen auch Windows-Rechner nicht, welche Ressourcen ein Samba-Server anbietet. Die bessere Integration von WSD-Diensten unter Linux/Samba ist seit mehr als einem Jahrzehnt eine offene Baustelle.

Vorsicht, Firewall

Unter Debian und Ubuntu gibt es standardmäßig keine Firewall, die den Zugriff auf Windows-Verzeichnisse blockiert. Unter CentOS, Fedora, (open)SUSE und RHEL ist dies hingegen der Fall. Losgelöst von allen SMB-Protokollproblemen wird der Zugriff auf Netzwerkverzeichnisse nie funktionieren, wenn eine Firewall die entsprechenden Ports blockiert. Sie müssen also SMB explizit erlauben. Die Firewall-Konfigurationsprogramme aller genannten Distributionen bieten diese Möglichkeit.

Ärger mit Nautilus

Nach diesem langen Exkurs zurück zu Nautilus. Dieses Programm verwendet für den Zugriff auf SMB-Shares die Bibliothek gvfs-smb. (Die betreffenden Dateien sind je nach Distribution im Paket gvfs-backends versteckt.) Leider funktioniert der Umgang mit Netzwerkverzeichnissen seit Jahren erbärmlich, und daran sind nicht nur die (zugegebenermaßen komplizierten) technische Gegebenheiten schuld. Nautilus stürzt sang- und klanglos ab, zeigt unsinnige bzw. nicht zielführende Fehlermeldungen an und lässt seine Nutzer dumm sterben, um es etwas drastisch zu formulieren.

Dank Avahi erkennt Nautilus in der Regel die meisten im Netzwerk befindlichen anderen Geräte/Rechner/Server/Arbeitsgruppen. Der Versuch, per Doppelklick eine Verbindung zu einem Rechner mit Windows-Netzwerkverzeichnissen herzustellen, scheitert aber zumeist mit einer Fehlermeldung (siehe die Abbildungen am Beginn des Blog-Beitrags). Was nun?

Unter »Andere Orte« zeigt Nautilus Rechner bzw. Geräte im lokalen Netzwerk

Im Internet werden Sie auf diverse Anleitungen stoßen, Client- oder Server-seitig das Protokoll SMB 1 zu erzwingen. Das ist aber selten eine gute Idee. Die Anweisung client max protocol = NT1 in /etc/samba/smb.conf auf dem lokalen Rechner nützt nichts, wenn der Server (der Windows-Rechner, das NAS-Gerät) zumindest SMB 2 voraussetzt; das ist, wie oben erläutert, zunehmend der Regelfall. Und bei eigenen Samba-Servern handeln Sie sich mit server max protocol = NT1 alle erdenklichen Sicherheitsprobleme ein.

Eine deutlich bessere Lösung gibt es, wenn Sie wissen, wie der Name des Netzwerkverzeichnisses lautet: Dann drücken Sie in Nautilus zuerst Strg+L und geben dann smb://hostname/sharename ein, wobei Sie hostname durch den Namen des Rechners/Geräts ersetzen und sharename durch den Namen des Netzwerkverzeichnisses (in der folgenden Abbildung also users/ms/pictures). Anschließend gelangen Sie in einen Login-Dialog, in dem Sie den Benutzernamen für das Netzwerkverzeichnis und das dazugehörende Passwort angeben.

Mit Strg+L können Sie den Host- und Share-Namen per Tastatur eingeben
Passwortdialog

Nicht immer ist offensichtlich, welchen Share-Namen ein Netzwerkverzeichnis hat. Wenn das Verzeichnis von einem Windows-Rechner angeboten ist, klicken Sie es dort im Dateimanager mit der rechten Maustaste an und führen das Kontextmenükommando Eigenschaften / Bilder aus.

Unter Windows den Namen des Netzwerkverzeichnisses herausfinden

In den meisten Fällen werden Sie wie oben beschrieben zum Ziel kommen. Dann empfiehlt es sich, das Netzwerkverzeichnis gleich als Lesezeichen zu speichern, damit Sie sich den Ärger beim nächsten Mal ersparen: Klicken Sie in der Seitenleiste von Nautilus auf das Netzwerkverzeichnis und führen den Kontextmenüeintrag Lesezeichen hinzufügen aus!

Letzter Ausweg: Terminal

Ich hatte allerdings auch schon Fälle, wo Strg+L samt der Angabe der korrekten Share-Bezeichnung nicht funktionierte, zuletzt unter Ubuntu 19.04. Dann gilt die alte Linux-Regel, dass es im Terminal immer eine Lösung gibt. Erzeugen Sie also ein lokales Verzeichnis, in dem Sie das Netzwerkverzeichnis einbinden möchten, und führen Sie danach mount -cifs wie im folgenden Beispiel aus:

sudo mkdir /media/nas
sudo mount -t cifs -o user=myname,uid=1000 //myhostname/mysharename /media/nas
Password for myname@//myhostname/mysharename:  ******

Dabei geben Sie mit user=myname den Login-Namen für das Netzwerkverzeichnis an. myhostname ersetzen Sie durch den Namen des Windows-Rechners oder NAS-Geräts, mysharename durch den Namen des Netzwerkverzeichnisses. Dank uid=1000 hat der Standardbenutzer Ihres Linux-Rechners Zugriff auf das Netzwerkverzeichnis. Wenn es auf Ihrem Linux-Rechner mehrere Benutzer gibt, ermitteln Sie die richtige UID-Nummer des aktuellen Accounts mit dem Kommando id. In Nautilus können Sie nun das Verzeichnis /media/nas öffnen.

Wenn Sie fertig sind, lösen Sie mit umount das Netzwerkverzeichnis wieder.

sudo umount /media/nas

Quellen






Firefox: Enterprise Policy Generator 5.0 veröffentlicht

Der Enterprise Policy Generator richtet sich an Administratoren von Unternehmen und Organisationen, welche Firefox konfigurieren wollen. Mit dem Enterprise Policy Generator 5.0 ist nun ein großes Update erschienen, welches zahlreiche neue Konfigurationsmöglichkeiten bringt. Außerdem: Ein erster Ausblick auf das große Highlight des nächsten Major-Releases Enterprise Policy Generator 6.0.

Enterprise Policy Generator

Download Enterprise Policy Generator für Firefox

Mit Firefox 60 und Firefox ESR 60 hat Mozilla die sogenannte Enterprise Policy Engine eingeführt. Die Enterprise Policy Engine erlaubt es Administratoren, Firefox über eine Konfigurationsdatei zu konfigurieren. Der Vorteil dieser Konfigurationsdatei gegenüber Group Policy Objects (GPO) ist, dass diese Methode nicht nur auf Windows, sondern plattformübergreifend auf Windows, Apple macOS sowie Linux funktioniert.

Der Enterprise Policy Generator hilft bei der Zusammenstellung der sogenannten Enterprise Policies, so dass kein tiefergehendes Studium der Dokumentation und aller möglichen Optionen notwendig ist und sich Administratoren die gewünschten Enterprise Policies einfach zusammenklicken können.

Neuerungen Enterprise Policy Generator 5.0.0

Der Enterprise Policy Generator 5.0 ist ein umfassendes Update, welches Unterstützung für mehr als 30 neue Konfigurationsmöglichkeiten und weitere Verbesserungen bringt.

Passend zum Ende der Lebenszeit von Firefox ESR 60 ist beginnend mit Enterprise Policy Generator 5.0 Firefox 68 respektive Firefox ESR 68 oder höher erforderlich.

Eine Funktion des Enterprise Policy Generators ist die Anzeige der Firefox-Version, ab welcher eine bestimmte Option funktioniert. Da Firefox 68 die neue Basis für Firefox ESR darstellt, erfolgt diese Anzeige ab sofort für alle Optionen, welche erst ab Firefox 69+ oder Firefox ESR 68.1+ unterstützt werden. Für alle Optionen, welche bereits früher unterstützt werden, entfällt diese Anzeige, um die Oberfläche nicht mit obsoleten Versionsangaben zu überfrachten.

Die größte Arbeit in dieser Version steckt unter der Haube, um verschiedene Typen neuer Enterprise Policies zu unterstützen, welche Firefox seit Version 68 unterstützt. Neben der Unterstützung sämtlicher neuer Enterprise Policies von Firefox 68 / Firefox ESR 68 und Firefox 69 / Firefox ESR 68.1 gab es auch Überarbeitungen mancher bereits bestehender Richtlinien.

Mit Enterprise Policy Generator 5.0 können bestimmte Optionen als veraltet markiert werden, wenn es neuere Enterprise Policies gibt, welche die alten Optionen ersetzen. Die Validierung von URL-Feldern erlaubt jetzt auch file://-URIs und, falls von der Richtlinie unterstützt, data:image-URIs. Dazu kommen weitere minimale Verbesserungen an Validierung, Design und Übersetzungsdateien.

Enterprise Policy Generator wurde mit web-ext 3.2.0 kompiliert (vorher: 3.0.0).

Neue Enterprise Policies

Veränderte & Ersetzte Enterprise Policies

Screenshots der neuen Version

Enterprise Policy Generator 5.0

Enterprise Policy Generator 5.0

Wie geht es weiter? Thunderbird-Unterstützung!

Noch vor Veröffentlichung von Firefox 70 und Firefox ESR 68.2 am 22. Oktober wird Enterprise Policy Generator 5.1 erscheinen und damit weitere neue Konfigurationsmöglichkeiten unterstützen. Dies sind Stand jetzt erneut 16 komplett neue Optionen.

Danach werden auch schon die Arbeiten am Enterprise Policy Generator 6.0 beginnen. Großes Highlight dieser Version: Die erstmalige Unterstützung von Enterprise Policies für den E-Mail-Client Mozilla Thunderbird, welcher seit Version 68 ebenfalls dieses Feature unterstützt.

Entwicklung unterstützen

Wer die Entwicklung des Add-ons unterstützen möchte, kann dies tun, indem er der Welt vom Enterprise Policy Generator 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: Enterprise Policy Generator 5.0 veröffentlicht erschien zuerst auf soeren-hentzschel.at.






Mozilla veröffentlicht Firefox 69.0.3

Mozilla hat mit Firefox 69.0.3 ein Update für Firefox 69 veröffentlicht und behebt damit mehrere Probleme der Vorgängerversion.

Download Mozilla Firefox 69.0.3

Mit dem letzte Woche veröffentlichten Update auf Firefox 69.0.2 hat Mozilla die Erkennung von Kindersicherungs-Software auf Windows 10 verbessert. Dabei hat sich ein Fehler eingeschlichen, der dafür sorgte, dass Nutzer mit entrsprechender Software Dateien nicht mehr herunterladen konnten. Dieser Fehler wurde in Firefox 69.0.3 behoben.

Außerdem wurde ein Problem für Nutzer von Yahoo Mail behoben. Dort wurde Nutzern der Download von Dateien angeboten, wenn auf E-Mails geklickt worden ist, um diese zu öffnen.

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






Thunderbird integriert OpenPGP - Operation gelungen, Patient tot

In der für Herbst 2020 geplanten Version 78 beabsichtigt Thunderbird OpenPGP zu integrieren und neben S/MIME direkt zu unterstützen. Das bisher obligatorische Addon Enigmail soll damit überflüssig werden. Wie genau die Implementierung aussehen wird ist noch nicht ganz klar, aber es soll sich optisch von Enigmail unterscheiden.

Bei der Nachricht muss ich erstmal einen Blick auf das aktuelle Datum werfen, aber tatsächlich, im Jahr 2019 kommt man endlich auf die Idee PGP direkt zu unterstützen. Der Hintergrund liegt in den technischen Veränderungen von Thunderbird, das sich demnächst - ähnlich wie Firefox vor einiger Zeit - von den alten Addon-Strukturen verabschieden wird. Damit ist das klassische Enigmail nicht länger kompatibel und müsste komplett neu geschrieben werden. Die erforderlichen Kapazitäten kann der bisherige Entwickler nicht aufbringen. So viel übrigens zum Prinzip freier Software und der Idee jeder könne sich beteiligen. Der Bus-Faktor vieler - auch sehr verbreiteter - Projekte ist erschreckend gering. Wie viel Code da wirklich durch mehr als 2-4 Augen geht, ist doch sehr fraglich.

Diese Gelegenheit nutzen die Entwickler um PGP direkt in Thunderbird zu integrieren. Wegen Lizenz-Inkompatibilitäten wird jedoch nicht GnuPG Verwendung finden, sondern eine neue Implementierung auf Grundlage des OpenPGP Standards Verwendung finden. Bei dieser Gelegenheit stellte sich mir mal wieder die Frage, ob die restriktive GPL-Lizenzierung mittel- oder langfristig zur Belastung werden können (siehe andere Überlegungen unter: Wenn Lizenzen zur Hürde werden - macOS und die GPL & Apple und die GPL - Ein absehbares Ende).

Natürlich ist die direkte Implementierung von PGP in Thunderbird erstmal schön und positiv zu bewerten. Sie kommt nur reichlich spät. Sichere E-Mail ist als Konzept so gut wie tot (siehe: Die E-Mail wird niemals sicher sein! & Reale E-Mail Verschlüsselung - Eine Persiflage) und PGP schwer angeschlagen (siehe: Kommentar: OpenPGP Keyserver - Letzte Zuckungen). Die direkte Implementierung mag ein paar verbliebene Nutzer erfreuen, aber kein erneutes Erblühen der Technologie bringen. Zumal die Implementierung anders sein und erneutes Umlernen bei den Anwendern erfordern wird. Ganz zu schweigen von der Frage, ob ambitionierte Projekte wie p=p auf diese Weise noch verbreitet werden können. Eine direkte Implementierung birgt immer auch die Gefahr von behäbigen Entwicklungszyklen.

Die direkte Unterstützung durch Thunderbird und andere Clients hätte es vor 10 Jahren gebraucht und nicht jetzt, wo die Kommunikationskanäle sich vervielfältigen und Videochat und Messenger große Teile der Kommunikation übernehmen. Mit zahllosen Anbietern, von denen viele sicherer sind als es die E-Mail jemals war und sein wird.


Bilder:

Einleitungs- und Beitragsbild von ribkhan via pixaybay

"