Nützliches zu Debian (Jessie)

2015-04-26 "Debian 8 "Jessie" released"

Die Ankündigungs-E-Mail [Link] verweist wie üblich auf Release Notes und Installations- und Upgrade-Dokumente (stehen in vielen Sprachen zur Verfügung).

1. Init-System
1.1. Systemd
2. DHCP-Server für IPv6
3. Gnome
3.1. Keine Steuerung für Hibernate
4. 3rd-Party-Software
4.1. Multiarch
4.2. Flashplayer
4.3. Sprachsynthese in Deutsch
5. Zertifikate managen / CAcert nicht mehr enthalten

Hinweis:
Der Inhalt bezieht sich auf Debian 8.0 (Jessie). Viele Tips mögen auf älteren Versionen funktionieren (und neueren, wenn sie kommen) - hier ist nur diese im Fokus, um verlässliche Informationen bieten zu können. Das sehr empfehlens- und unterstützenswerte "The Debian Administrator's Handbook" [Link] steht zu diesem Tag nicht aktualisiert zur Verfügung.

1. Init-System

Neu ist statt SysVinit nun Systemd zum Booten des Rechners.

Die Umstellung des traditionellen SysVinit im Rahmen eines Upgrades ist vermeidbar durch Abwählen des Pakets systemd-sysv.

Auch bei Neuinstallationen kann man im Nachhinein und - für Admin-Profis - sogar im Vorfeld die Pferde wechseln:

1.1. Systemd

Die gewohnten Netzwerkkonfigurationsmechanismen stehen weiter zu Verfügung. Intern haben sich die Daemon-Startmechanismen und die Log-Verarbeitung geändert. Die Scripts in /etc/init.d/ funktionieren weiterhin, auch in /var/log findet man nach wie vor elementare Logs.

Wer die Systemd-Kommandos verwenden möchte, findet hier einen Einstieg.

Liste der sog. "Units" (Daemons, aktive Schnittstellen etc.) bzw. gefiltert nach "print"
systemctl
systemctl list-units *print*
Unit starten / stoppen / neu starten mit Filter (Units exemplarisch ausgewählt)
systemctl start saned.service
systemctl stop saned.service
systemctl restart blue*serv*
Log anzeigen bzw. gefiltert nach units mit "net" im Namen
journalctl
journalctl -u *net*

Übersichtliche Debian-Dokumentation zum Thema ist rar, die Fedora-Konkurrenz macht eine bessere Figur (wo Systemd länger im Einsatz ist):

Die Benennung der Units ist etwas speziell. Da sich bei moderner Hot-Plug-Infrastruktur viel um Devices mit ihren Pfaden dreht, haben sich die Entwickler entschieden, in Unit-Bezeichnungen das Zeichen "/" in "-" zu wandeln. Für transparente Verwendung ist ein Escape-Mechanismus notwendig. Hierzu gibt es ein Hilfsprogramm, das z. B. ein virtuelles Netzwerkdevice "veth-vm1" in einen Unit-Namen übersetzt:

 systemd-escape --template=sys-subsystem-net-devices-@.device veth-vm1 

2. DHCP-Server für IPv6

Selbst für Fans der "stateless address autoconfiguration" im aktuellen Internetprotokoll IPv6 kann ein DHCP-Server benötigt werden, wenn es darum geht, Teilnetze zu delegieren, Clients mit mehr Infrastrukturinformationen als nur der DNS-Server-Adresse zu versorgen oder IP-Adressen - im Sinne der Rechenzentrumsordnung oder des Datenschutzs - gezielt zu vergeben. Der unter Debian gebräuchliche DHCP-Server (Paket isc-dhcp-server) kann neben IPv4 auch IPv6. Aber zu früh gefreut, denn die Manual Page zu Option "-6" besagt: "Run as a DHCPv6 server. This cannot be combined with -4."

D. h. dass ein zusätzlicher Daemon-Prozess gestartet werden muss, wozu Debian bislang kein eigenes Script mitliefert (siehe [Bug#592539]). Ansonsten ist dhcpd dank Datentrennung operabel (separate "Lease"-Datei für die zugeteilten IPs).

Aus dem existierenden Init-Script /etc/init.d/isc-dhcp-server ist schnell das benötigte weitere Start-Script gebastelt (benötigt Root-Rechte):

1. Kopieren: cp /etc/init.d/isc-dhcp-server /etc/init.d/isc-dhcp6-server

2. In /etc/init.d/isc-dhcp6-server Anpassen der Dateinamen für Konfiguration und Nr. des laufenden Prozesses (PID) sowie Hinzufügen der IPv6-Option "-6" mittels automatisiertem Patchen:

3. Anlegen einer initialen "Lease"-Datei aus der IPv4-Vorlage:

4. Erstellen der Konfiguration als /etc/dhcp/dhcpd6.conf, z. B. Delegation von Subnets unter 2001:cdba:1234::

   subnet6 2001:cdba:1234::/48 {
     pool6 {
       prefix6 2001:cdba:1234:4000:: 2001:cdba:1234:4fff:: /64;
     }
   }

5. Testen der Konfiguration mit dem Kommando:

   dhcpd -6 -t -cf /etc/dhcp/dhcpd6.conf

6. Aktivieren für den Systemstart

3. Gnome

3.1. Keine Steuerung für Hibernate

Der Knopf zum Schlafenlegen mittels Speicherung auf Festplatte wurde im Gnome wegoptimiert. Womöglich kann man die Rechnertasten so zähmen, dass sie "Suspend to disk" statt "Suspend to RAM" ausführen (wer weiß wie?) - eine GUI-Steuerungsmöglichkeit finde ich sogar besser.

Besondere Gnome-Wünsche können mittels "Shell Extensions" realisiert werden. Für den vermissten Button gibt es eine ... also los:

  1. "Tweak Tool" (GUI) bzw. gnome-tweak-tool (Shell) starten
  2. Rubrik "Extension" (auf deutsch wohl "Erweiterungen") auswählen
  3. Am unteren Ende der Liste befindet sich der Punkt "Get more extensions"
  4. Mittels Webbrowser nach "Hibernate status button" suchen und dies installieren

Im Anschluss ist der Knopf neben dem Auschalt-Knopf verfügbar. Über das Tweak-Tool lässt sich diese Erweiterung (wie alle anderen) ein-/ausschalten. Im Dateisystem ist es übrigens unter ~/.local/share/gnome-shell/extensions/hibernate-status@dromi/ gelandet.

4. 3rd-Party-Software

4.1. Multiarch

Software, die nicht im Debian Repository verfügbar ist (Google Earth, Skype und Teamviewer), ist häufig nur für 32-Bit-Intel-Architektur verfügbar. Auf Rechnern mit 64-Bit-AMD-Architektur kann das laufen, wenn man es zusätzlich aktiviert mit

 dpkg --add-architecture i386

In der Folge bekommt man im Paketmanager (zumindest aptitude) alle Pakete auch für diese Architektur angeboten, die man ignorieren muss, außer sie würden automatisch als Abhängigkeit zu unserer 3rd-Party-Software installiert.

4.2. Flashplayer

Auf den sollte man heutzutage aus Sicherheitsgründen verzichten. Die in Debian enthaltene freie Version ist für viele Webseiten zu alt, die kommerzielle Fassung von Adobe ist regelmäßig Quell von Sicherheitslücken und wird nicht weiterentwickelt. Außer Facebook (Stand: Jessie-Release-Datum) können nahezu alle Webseiten auch ohne Flashplayer Videos abspielen.

Wer unbedingt will, findet Informationen im Debian-Wiki [Link]. Regelmäßige Updates nicht vergessen ;-) Hier kann man die Aktualität des Adobe-Players prüfen: [Link]

4.3. Sprachsynthese in Deutsch

Im nichtkommerziellen Bereich für Sprachsynthese wird es jenseits der Weltsprache Englisch schnell dünn. Für Deutsch bietet die Softwarekombination Espeak/MBrola eine akzeptable Qualität (wenn auch nicht mehr ganz Stand der Technik). MBrola ist zwar nicht Open Source, jedoch binär erhältlich und (mindestens für privaten Einsatz) freigegeben. So geht es:

1. Rechnerarchitektur prüfen:

dpkg --print-architecture

2. Folgende Pakete müssen vorhanden sein: prüfen und ggf. installieren:

3. Bei Verwendung von speech-dispatcher: Setzen von MBrola als Default für Deutsch

Hinweis: speech-dispatcher wird von Desktops Gnome/KDE eingebunden. Aus der Shell per Kommando spd-say.

In der Datei /etc/speech-dispatcher/speechd.conf

  1. Kommentarzeichen "#" entfernen in Zeile
    #AddModule "espeak-mbrola-generic" "sd_generic" "espeak-mbrola-generic.conf"
  2. Zeile einfügen in der Nähe von #LanguageDefaultModule "en" "espeak" (z. B. direkt darüber)
    LanguageDefaultModule "de" "espeak-mbrola-generic"
  3. Stop aller laufenden Prozesse, damit die Neukonfiguration beachtet wird - geht leider nicht sanfter als so:
    killall speech-dispatcher

Fertig. Dann viel Spaß mit einem dieser Kommandos (je nachdem was Du installiert hast):

5. Zertifikate managen / CAcert nicht mehr enthalten

Hinweis:
Zertifikate werden im Internet primär zur Verschlüsselung und Anbieteridentifizierung benutzt - also auch beim "surfen". Um Mißbrauch zu verhindern, werden diese über Zertifizierungsunternehmen signiert ("beglaubigt"), und der eigene Rechner vertraut nur Zertifikaten, die von vorbestimmten Zertifizierungsunternehmen (sog. Root Certificates bzw. Stammzertifikate) signiert und damit geprüft wurden. Mehr darüber bei [Wikipedia]. Dieses Verfahren besitzt einige Schwächen, jedoch gibt es im Moment nichts Praktikableres.

Debian war eine der wenigen Betriebssysteme, die Zertikate der "Community CA" CAcert [Homepage] ausgeliefert haben. Mit Jessie hat sich dies geändert, da das Debian Project sich entschieden hat, künftig keine eigenen Zertifikatsbewertungen vorzunehmen und sie von Mozilla zu übernehmen [Bug#718434].

Ein grundsätzliches Problem ist dies für Nutzer eigener Zertifikate wie Unternehmen oder Organisationen jedoch nicht. Im Grunde ist der Rechneradministrator (besonders für mobile Geräte oft identisch mit dem Nutzer) für sämtliche Zertifkate, die er als gültig/vertrauenswürdig einstuft, selbst verantwortlich. Daher sollte sich jeder Nutzer darin üben, Zertifikate zu installieren und zu sperren.

Zertifikate kommen über das Paket ca-certificates. Das zugehörige README in der Datei /usr/share/doc/ca-certificates/README.Debian erläutert vollständig aber in knappen Worten deren Handhabung (in Englisch). Die folgenden Anleitungen beruhen darauf, im Zweifel liest man besser das Original.

Debian-Zertifikate verwalten

  1. Dieses Kommando öffnet eine Oberfläche zur Vertrauenseinstellung (nur mit Root-Rechten):
    dpkg-reconfigure ca-certificates
  2. Ggf. kommt ein Dialog, in dem die Verfahrensweise für neu ankommende Zertifikate festgelegt wird. Man kann wählen zwischen immer vertrauen / nie vertrauen / Nachfrage.
  3. In der Liste der Zertikate können sie jeweils als vertrauenswürdig ausgewählt oder abgewählt werden.

Eigene Zertifikate verwalten

  1. Speichern der Zertikatsdatei im dafür vorgesehenen Verzeichnis /usr/local/share/ca-certificates .
  2. Aktualisieren der rechnerweiten Verwaltungsdaten - nach hinzufügen bzw. löschen:
    update-ca-certificates
    update-ca-certificates --fresh

Debian-Paket für eigene Zertifikate erstellen ...

... ist nicht schwer. Hier wurde es exemplarisch zur Analyse und Nachahmung für die bereits erwähnte CAcert durchgeführt:

  1. Installation wie üblich (Beispiel von oben): dpkg -i cacert-certificates_20140323_all.deb
  2. Bei unkontrollierter Herkunft ist ein Vergleich des "Fingerprint" mit der offiziellen Quelle des Urhebers erforderlich (Beispiel - tatsächliche Datei angeben!):
    openssl x509 -noout -fingerprint -sha1 -in /usr/local/share/ca-certificates/cacert.org_root.crt
    Nur wenn der angezeigte Wert mit dem Original übereinstimmt, sind Manipulationen ausgeschlossen.