Anwendungen
Portal
Forum
Wiki
Ikhaya
Planet
Mehr
Anmelden

19. Oktober 2014

Wochenrückblick 42/2014

Permalink deesaster.org

Der Wochenrückblick lässt das Geschehen der vergangenen Woche rund um Ubuntu, Linux und Open Source Revue passieren.

Rund um Ubuntu

Unity 8 als Standard in Ubuntu 16.04

Will Cooke, Chef des Ubuntu-Desktop-Teams, teilte mit, dass Unity 8 und der eigene Displayserver Mir, die beide bereits bei Ubuntu Touch für das Ubuntu Phone zum Einsatz kommen, frühestens in Ubuntu 16.04 LTS zum Standard werden würden. Nach wie vor soll interessierten Anwendern aber die Möglichkeit gegeben werden, bereits vorher Unity 8 und Mir aus den Paketquellen zu installieren.

Quelle: Golem

Neues rund um Linux

NVIDIA, Wayland und Mir

Die beiden Displayserver(-Protokolle) Wayland und Mir sollen früher oder später den X-Server ablösen und buhlen noch um die Gunst der Distributionen, wobei Canonicals Displayserver Mir aktuell nur von Ubuntu unterstützt wird. NVIDIA hat bekannt gegeben, dass ihre zukünftige Closed-Source-Treiber-Generation beide Protokolle unterstützen wird.

Quelle: Linux-Magazin

Dronecode vorgestellt

Die Linux Foundation hat das Projekt „Dronecode“ vorgestellt, bei der es darum geht, ein Embedded-Linux zu entwickeln, was speziell für den Einsatz von Drohnen gedacht ist. Die Drohnen sollen später bei Umweltforschung, humanitärer Hilfe oder bei Rettungseinsätzen zum Einsatz kommen.

Quellen: Linux-Magazin, Golem, heise open, Pro-Linux

LinuxTag im Umbruch

Der LinuxTag soll nächstes Jahr keine Konferenzmesse mehr sein, sondern anders gestaltet werden. Der Aufwand sei sehr hoch und die Kosten wachsen für einen Linux-Messe zu sehr. Wie genau sich der LinuxTag 2015 gestalten wird, ist noch nicht klar.

Quelle: heise open

Linux Foundation sucht Projekte

Die Linux Foundation ruft dazu auf, breitflächig eingesetzte Open-Source-Projekte vorzuschlagen, die externe Unterstützung brauchen (z.B. in Form von Entwicklern oder Code-Prüfungen). Die Linux Foundation will damit die Verlässlichkeit von Open-Source-Software stärken.

Quelle: heise open, Pro-Linux

PhysX-GPU-Berechung unter Linux

PhysX von NVIDIA ist für die Berechnung physikalischer Effekte in Computerspielen zuständig. Bisher unterstützte der Treiber nur Windows und MacOS X, wird in Zukunft aber auch Linux unterstützen, sodass physikalische Berechnungen direkt in der GPU anstatt der CPU stattfinden können.

Quelle: Pro-Linux

Spielen unter Linux

Humble Mozilla Bundle

Dank asm.js gibt es im aktuellen Humble Bundle zahlreiche gute Spiele, die im Firefox-Browser und Google Chrome laufen. Darunter unter anderem Super Hexagon, Osmos, Dustforce, Voxatron, Faster Than Light und Democracy 3.

Quelle: heise open

0 A.D. in neuer Version

Das beliebte Echtzeit-Strategiespiel 0 A.D. von Wildfire Games steht in Version Alpha 17 „Quercus“ zur Verfügung. Neben der Performance wurde auch das Gameplay verbessert und neue Features eingebaut.

Mehr Informationen gibt es im Ikhaya-Artikel.

Weitere Quellen: heise open

Raven's Cry für Linux geplant

Auch wenn sich das Piraten-Action-Adventure Raven's Cry von Topware um einen Monat auf Ende November verschiebt, hat Entwickler Topware bekannt gegeben, dass das Spiel auch für Linux und SteamOS zur Verfügung stehen wird.

Quelle: Pro-Linux

Humble Mozilla Bundle: Indie-Spiele direkt im Browser spielen

Permalink Sören Hentzschel

Humble Bundle hat zusammen mit Mozilla das Humble Mozilla Bundle zusammengestellt – eine Sammlung von Spielen, welche ohne Installation und DRM-frei im Browser laufen, dank asm.js-Technologie in Firefox schneller als in jedem anderen Browser.

Das Humble Mozilla Bundle ist eine Sammlung von Indie-Spielen, welche direkt im Browser laufen. Den Preis bestimmt der Nutzer selbst. Enthalten sind im Paket Super Hexagon, AaaaaAAaaaAAAaaAAAAaAAAAA!!! for the Awesome, Osmos, Zen Bound 2 und Dustforce DX. Wird mindestens der Durchschnittspreis investiert, dann gibt es oben drauf noch Voxatron, FTL: Faster Than Light Advanced Edition sowie noch ein weiteres Spiel, welches in den nächsten Tagen freigeschaltet werden wird. Zusätzlich gibt es noch das Spiel Democracy 3, wenn mindestens acht Dollar bezahlt werden. Mindestens ein Dollar muss investiert werden, damit die Spiele (mit Ausnahme von Voxatron) auch über Steam verfügbar sind. Inbegriffen sind auch einige Soundtracks zu den Spielen. Der Gesamtwert des Bundles beträgt 104 Dollar. Der Käufer kann außerdem entscheiden, wie viel vom Kaufpreis die Entwickler, Humble oder eine von drei Non-Profit-Organisationen, in diesem Fall zum Beispiel Mozilla, erhalten. Mit dem Kauf der Spiele kann Mozilla also direkt unterstützt werden. Alle Spiele können als Vorschauversion vor dem Kauf angespielt werden.

Gemeinsam ist allen Spielen, dass sie auf Mozillas asmj.js-Technologie setzen, was diese Spiele zwar auch spielbar in anderen Browsern macht (wobei nur für Firefox und Chrome Kompatibilität garantiert wird), sie aber in Firefox ganz besonders performant macht. Die Spiele funktionieren direkt im Browser, ohne Plugin, ohne Installation, ohne DRM. Das Bundle kann Stand jetzt noch neun Tage und wenige Stunden erworben werden.

Video auf YouTube ansehen

EDIMAX EW-7811UN Wireless USB Adapter unter Jessie

Permalink Intux

news-295

Möchte man einen EDIMAX EW-7811UN Wireless USB Adapter mit Debian Jessie in Betrieb nehmen ist man auf einen unfreien Treiber angewiesen.

Hierzu ist in der /etc/apt/sources.list

# nano /etc/apt/sources.list

folgender Eintrag notwendig.

# Debian jessie (testing)
deb http://http.debian.net/debian/ jessie main contrib non-free

Jetzt das Ganze mit Ctrl + o speichern, mit Enter, den Editor mit Ctrl + x verlassen und den Treiber installieren.

# apt-get update && apt-get install firmware-ralink

Viel Spaß!

Mozilla veröffentlicht Firefox 33 mit vielen Verbesserungen

Permalink Sören Hentzschel

Mozilla hat in dieser Woche neue Versionen von Firefox für Windows, OS X und Linux mit vielen Verbesserungen veröffentlicht.

Download Mozilla Firefox 33 für Windows, OS X und Linux

Mehr Sicherheit für Firefox-Nutzer

Am Dienstag ist Firefox 33 für Windows, OS X und Linux erschienen. Auch in dieser Version behebt Mozilla wieder neun Sicherheitslücken, von denen Mozilla drei als besonders kritisch einstuft.

Mit Firefox 33 hat Mozilla die Unterstützung einiger unsicherer TLS-Algorithmen deaktviert, RSA 1023 und schwächere Zertifikate werden aus Sicherheitsgründen ab sofort blockiert.

Verbesserte Adressleisten-Funktionalität

Mit Firefox 33 verbessert Mozilla die Funktionalität der Adressleiste. Konkret verbessert Mozilla die Suche nach Begriffen, die aus nur einem Wort bestehen, sowie nach arithmetischen Ausdrücken. Bislang hat Firefox den Suchbegriff zunächst versucht auf eine URL aufzulösen, im Falle von “1234-5678″ beispielsweise auf “http://1234-5678/” und danach erst eine Suche bei der eingestellten Suchmaschine nach “1234-5678″ durchgeführt. Die Suche nach einer Zahl wie “12345678” hat direkt eine Fehlermeldung produziert. Letzteres konnte bislang durch das Voranstellen eines Fragezeichens, also “?12345678″ umgangen werden.

In beiden Fällen verhält sich Firefox ab Version 33 anders und sendet die Anfrage direkt an die Suchmaschine der Wahl. Gleichzeitig führt Firefox im Hintergrund eine Suche nach lokalen Hosts durch und bietet im Falle eines Treffers die Option an, diesen Begriff als lokalen Host zu speichern, so dass eine Suche danach in Zukunft den lokalen Host anstelle der Suchmaschine aufruft. Wer das Verhalten diesbezüglich vorab über about:config konfigurieren möchte, kann dies durch Anlegen von Boolean-Schaltern nach dem Schema “browser.fixup.domainwhitelist.” plus Hostname machen, im Falle des Hosts “agenedia” zum Beispiel “browser.fixup.domainwhitelist.agenedia” mit dem Wert true”. Der Hostname “localhost” ist bereits automatisch konfiguriert.

Suchvorschläge auf der Startseite und in neuen Tabs

Bislang kann Firefox über die Suche im Suchfeld Suchvorschläge der jeweiligen Suchmaschine anzeigen, nicht aber auf der standardmäßig eingestellten Startseite about:home oder dem Suchfeld auf about:newtab, der Seite, welche standardmäßig beim Öffnen eines neuen leeren Tabs erscheint. In beiden Fällen zeigt Firefox ab sofort auch Suchvorschläge an, sofern die eingestellte Suchmaschine dies unterstützt.

Open Source H.264-Integration für WebRTC

Mit OpenH264 stellt Cisco eine Open Source-Implementierung des H.264-Codecs bereit. Mozilla integriert diese in Firefox 33, aus Lizenzgründen allerdings nicht direkt, stattdessen wird der Codec in Form eines Gecko Media Plugins nach dem Start von Firefox heruntergeladen. Wie die übrigen NPAPI-Plugins (Flash, Silverlight & Co.) kann auch dieses Plugin über den Add-on Manager deaktiviert werden. Click-to-Play steht hier nicht zur Auswahl, da dieser Codec lediglich für WebRTC genutzt werden kann, wofür Click-to-Play nicht relevant ist. Das Gecko Media Plugin läuft in einer Sandbox.

Unterstützung für Bildschirm- und Fenster-Sharing via WebRTC

Im Zusammenhang mit WebRTC nennenswert ist auch die Tatsache, dass Firefox ab Version 33 das Teilen des Bildschirm- beziehungsweise Fensterinhalts erlaubt. Relevanter Beispielcode wurde auf diesem Blog veröffentlicht, Talky wäre eine reale Anwendung, welche hiervon Gebrauch machen kann. Derzeit ist es noch so, dass Webseiten, denen diese erweiterte WebRTC-Funktionalität gestattet sein soll, per about:config eingetragen werden muss. Am Beispiel von Talky wird dies in einem gesonderten Artikel beschrieben.

In diesem Zusammenhang hat Mozilla auch den Indikator verändert, welcher anzeigt, dass eine Kommunikation über WebRTC stattfindet. Bislang hat Firefox ein zusätzliches Symbol in der Symbolleiste angezeigt, wenn die Kamera und/oder das Mikrofon aktiviert ist, und dem Nutzer darüber die Möglichkeit gegeben, die Freigabe zu beenden, auch wenn der entsprechende Tab gerade nicht im Vordergrund ist. Mit der Ergänzung um Bildschirm- und Fenster-Sharing war man allerdings besorgt darüber, ob dieser Indikator sichtbar genug ist und hat diesen ersetzt. Anstelle eines zusätzlichen Symbols in der Symbolleiste sehen Windows- und Linux-Nutzer nun am oberen Bildschirmrand fixierte Kontrollsymbole, welche auch sichtbar sind, wenn Firefox nicht sichtbar ist. Nutzer von Mac OS X sehen entsprechende Symbole in der globalen Menüleiste, auch wieder unabhängig davon, ob Firefox im Vordergrund ist oder nicht.

Verbesserte Sitzungswiederherstellung

Mozilla hat auch die Sitzungswiederherstellung von Firefox verbessert und die Wahrscheinlichkeit einer nicht erfolgreichen Wiederherstellerung der letzten Sitzung verringert. Diese Änderung wird auf diesem Blog in aller Ausführlichkeit beschrieben.

Firefox merkt sich kopierte Inhalte Privater Fenster

Hat man bislang in einem Privaten Fenster Text einer Webseite kopiert und das Private Fenster anschließend geschlossen, dann wurde der kopierte Inhalt von Firefox verworfen. Dabei handelte es sich um keinen Fehler, sondern um eine ganz bewusste Entscheidung. Für einige Firefox-Nutzer war dies eher störend, so dass Mozilla das Verhalten in Firefox 33 nun geändert hat und Firefox den Inhalt der Zwischenablage auch nach dem Schließen Privater Fenster nicht mehr verwirft. Gleiches gilt übrigens auch, wenn man Firefox keine Chronik anlegen lässt – bei dieser Einstellung befindet sich Firefox in einer Art permanentem Privaten Modus, welcher sich genauso verhalten hat und von dieser Änderung betroffen ist.

Optimierte String-Kodierung der JavaScript-Engine

Mozilla hat Verbesserungen an der JavaScript-Engine vorgenommen, welche Strings intern statt wie bisher in UTF16 nun als Latin1 speichert, die darum für die meisten Zeichen nur noch einen statt zwei Byte Platz benötigen. Da dies lediglich die interne String-Repräsentation betrifft, verändert sich am Verhalten von JavaScript durch diese Änderung nichts, es wird allerdings weniger Speicher benötigt, was auch zu einer Beschleunigung führen kann. Dies zeigt sich unter anderem im Sunspider-Benchmark für reguläre Ausdrücke, in welchem Firefox 33 um 36 Prozent besser abschneidet.

Off Main Thread Compositing für Windows-Nutzer

In Firefox 33 hat Mozilla das sogenannte Off Main Thread Compositing (OMTC) für Nutzer von Windows standardmäßig aktiviert. OS X-Nutzer haben OMTC bereits aktiviert, die Implementierung für Linux steht kurz vor der Fertigstellung. OMTC soll die Reaktionsfreudigkeit von Firefox verbessern, indem die Zusammenstellung verschiedener Layout-Ebenen aus dem Hauptthread ausgelagert wird. Schlecht geschriebener JavaScript-Code, welche lange zur Ausführung benötigt, wäre ein solcher Fall, der zu Verzögerungen in der Ausführung der Anwendung oder Pausierung von Videos führen kann, was durch OMTC verbessert werden soll.

Änderung von about:newtab

In Firefox 33 hat sich das Design von about:newtab ein wenig verändert und damit auch das Verhalten bei kleinen Fenstern. Bisher war es so, dass Firefox die Vorschaubilder bei Bedarf verkleinert und sich strikt an die beiden Einstellungen browser.newtabpage.columns sowie browser.newtabpage.rows zur Festlegung der Anzahl an Vorschaubildern gehalten hat. Ab einem gewissen Punkt musste auf dieser Seite gescrollt werden, um alle Vorschaubilder zu sehen. Firefox 33 sieht diese Werte nur noch als Maximalwerte, verkleinert die nun minimal größeren Vorschaubilder nicht mehr und zeigt weitere Vorschaubilder gar nicht erst an, wenn der Platz nicht ausreichend ist. Gescrollt muss auf dieser Seite durch diese Änderungen nun unter keinen Umständen mehr.

WebIDE kann getestet werden

Die WebIDE soll den App Manager ersetzen. Dies geschieht zwar noch nicht in Firefox 33, doch kann diese in Firefox 33 erstmals per about:config-Schalter (devtools.webide.enabled) aktiviert werden. Während sich der App Manager in einem Tab öffnet, ist die WebIDE ein eigenständiges Fenster, welches neben der bisherigen Funktionalität des App Managers auch das Erstellen neuer Apps erlaubt, hierfür werden sogar bereits Vorlagen mitgeliefert. Über den Options-Schalter devtools.webide.templatesURL kann die URL konfiguriert werden, von welcher die Vorlagen bezogen werden sollen. Auf diese Weise ist es möglich, ganz eigene App-Vorlagen zu benutzen und anderen bereitzustellen. Der dazugehörige Editor bietet Syntax Highlighting, Code-Vervollständigung und Inline-Dokumentation, womit dieses Feature dem Begriff IDE gerecht wird. Auch das App-Manifest wird direkt in der WebIDE validiert.

Weitere Verbesserungen für Webentwickler

Auch sonst haben die Entwickler-Werkzeuge natürlich wieder einige Neuerungen erhalten. Erwähnt sei hier ein “ev”-Schriftzug in der HTML-Ansicht des Inspektors, wenn ein Event Listener mit diesem DOM-Element verknüpft ist. Per Kontextmenü kann bei den CSS-Regeln im Inspektor ein neuer Regelblock für das ausgewählte Element hinzugefügt werden, was besonders dann praktisch ist, wenn dieses Element noch keine CSS-Regeln besitzt und darum bislang noch kein Selektor angezeigt wird, welcher dieses Element anspricht. Ebenfalls bearbeitet können hier nun auch @keyframes-Regeln werden. Auch die Selektoren selbst können nun in der Regeln-Ansicht bearbeitet werden, sofern der neue Selektor ein gültiger Selektor für das ausgwählte Element ist, andernfalls wird die Änderung verworfen. Per Rechtsklick auf eine Farb-Eigenschaft können jetzt Farbwerte kopiert werden. Ein Cubic Bezier Editor erlaubt das Bearbeiten von CSS-Animationen. CSS Transformationen werden nun beim Herüberfahren mit der Maus über das Element so dargestellt, dass neben dem transformierten Element auch die originale Position eingezeichnet und beides über Linien verbunden wird.

Die Entwickler-Einstellung zum Deaktivieren des Caches merkt sich Firefox nun auch, wenn die Entwickler-Werkzeuge zwischenzeitlich geschlossen waren. Die Entwickler-Toolbar (Shift + F2) hat neue Kommandos erhalten: inject erlaubt das Einbinden von Bibliotheken (z.B. inject jQuery), highlight erlaubt das Hervorheben aller Elemente mit einem bestimmten Selektor, folder erlaubt das Öffnen eines Ordners auf dem Dateisystem; folder openprofile öffnet das Profilverzeichnis von Firefox. Die Einstellungen der Entwickler-Werkzeuge bieten nun außerdem eine Reihe von Editor-bezogenen Einstellungen wie die Tabulator-Größe, ob Klammern automatisch geschlossen werden sollen oder welche Tastaturkommandos gelten sollen (Firefox Standard, Vim, Emac, Sublime).

Neu ist auch die Ergänzung der Farbe Rebeccapurple. Im Debugger werden JavaScript-Dateien, welche auf .min.js enden, nun automatisch stummgeschaltet, was sich per Einstellungsmenü allerdings deaktivieren lässt. Im Responsive Design Modus kann jetzt außerdem eine beliebige Größe direkt eingegeben werden. Die Webkonsole hebt Zeilen beim Herüberfahren mit der Maus nun hervor.

Verbesserte Unterstützung von Web-Standards

Zu den nennenswertesten Neuerungen an der Front der Webstandards gehören in Firefox 33 die Implementierung der CSS3 Counter Styles Spezifikation sowie des DOMMatrix-Interfaces. Mit Draft 13 wird ein neuerer Entwurf des kommenden HTTP/2.0-Standards unterstützt (standardmäßig noch deaktiviert; network.http.spdy.enabled.http2draft). Firefox unterstützt nun  <a rel=”noreferrer”>, allerdings funktioniert dies noch nicht für Links, welche via Kontextmenü geöffnet werden. Experimentell unterstützt wird das neue <picture>-Element (dom.image.picture.enabled). Die alte Nicht-Standard-Implementierung der Content Security Policy (CSP) wurde aus Firefox entfernt (Firefox unterstützt natürlich weiterhin den offiziellen Standard), ebenso entfernt wurden nicht standardisierte window.crypto-Funktionen und -Eigenschaften. Deren Funktionalität soll mittelfristig durch die Web Crypto API ersetzt werden, an deren Implementierung Mozilla derzeit noch arbeitet. Die Media Source Extensions unterstützen MP4, wenn neben aktiviertem media.mediasource.enabled auch noch der Boolean-Schalter media.mediasource.ignore_codecs mit Wert true angelegt wird. Im Mozilla Developer Network finden sich Informationen zu weiteren nicht länger unterstützten Nicht-Standards sowie unterstützten Standards ab Firefox 33.

Sonstige Neuerungen von Firefox 33

Firefox 33 erkennt nun fehlerhaft übertragene HTTP 1.1-Dateiübertragungen, was den Fehler behebt, dass unvollständige Downloads unter Umständen als vollständig angezeigt werden konnten, was auch das Fortsetzen betroffener Downloads verhinderte. Wie in jeder neuen Firefox-Version hat auch der integrierte PDF-Betrachter Verbesserungen erhalten, wobei in Firefox 33 vor allem erwähnt sei, dass dieser nun spürbar weniger Arbeitsspeicher bei der Anzeige von PDF-Dateien benötigen soll.

Der Abschnitt “Sicherheitsinformationen für diese Website” wurde aus dem Reiter “Allgemein” des Seiteninfo-Dialogs entfernt, da es einen ganz eigenen Sicherheits-Reiter gibt und dieser Abschnitt damit redundant ist. Beim Kopieren von Inhalten, die mit “javascript:” beginnen, in die Adressleiste entfernt Firefox automatisch das “javascript:”. Das Kontextmenü der Tab-Auflistung am rechten Ende der Tableiste bei vielen geöffneten Tabs besitzt einen neuen Eintrag, um das Schließen eines Tabs rückgängig zu machen. Die Seite about:support zeigt jetzt auch gesperrte Einstellungen an. Der Button mit der Aufschrift “Standard wiederherstellen” in der Ansicht zum Anpassen der Browseroberfläche platziert Buttons von Add-ons bei den nicht in der Oberfläche platzierten Buttons. Neu ist auch die Unterstützung der Verbindung zu HTTP-Proxies über HTTPS.

17. Oktober 2014

[openhab] Items mit Hilfe von Gruppen sortieren

Permalink itbasic

Wenn man in openhab mehrere Items anlegt zum Beispiel mehrere Lichtschalter fürs Wohnzimmer oder für die Weihnachtsbeleuchtung, empfiehlt es sich wegen der Übersichtlichkeit auf Gruppen zurückzugreifen.

Bevor die Gruppe genutzt werden kann, muss Sie über Group Gruppenname definiert werden. In der Item Konfiguration wird die Gruppe in runden Klammern angegeben.

Item Konfiguration:
Group flur
Switch Treppe "Im Fenster" (flur) {exec="OFF:/home/openhab/bin/flur.py 2 0,ON:/home/openhab/bin/flur.py 2 1"}
Switch Telefon "Telefon" (flur) {exec="OFF:/home/openhab/bin/flur.py 1 0,ON:/home/openhab/bin/flur.py 1 1"}

default.sitemap:
sitemap default label="Main Menu"
{
Frame label="Weihnachten"{
Group label="Weihnachten" icon="house" item=weihnachten
}
Frame label="Flur"{
Group label="Flur" icon="house" item=flur
}
Frame label="Wohnzimmer"{
Group label="Wohnzimmer" icon="house" item=wohnzimmer
}
}

Es ist auch möglich mehrere Gruppen Komma separiert anzugeben, somit kann ein Item in verschiedenen Frames aufgeführt werden.

16. Oktober 2014

POODLE: Der Pudel – und wie man ihn los wird

Permalink /var/pub/chris_blog

Download PDF

Seit einigen Tagen kursiert unter dem Namen POODLE eine weitere Sicherheitslücke im Internet, die vor allem Linux-Systeme betrifft. Wesentlich ungefährlicher als Heartbleed betrifft sie vor allem Web-Server, die die altertümlichen SSL-Generationen 2 und 3 zulassen. Aufgrund gravierender Sicherheitslücken dieser Protokolle ist es möglich den Datenverkehr zu entschlüsseln. Bei vielen Linux-Distributionen ist dies in der Standard-Konfiguration derzeit noch der Fall, weswegen Administratoren ihre Webserver absichern sollten. POODLE hat mittlerweile das CVE 2014-3566 erhalten, entdeckt wurde die Sicherheitslücke durch Google.
Um einen Webserver abzusichern genügt es die älteren Protokoll-Generationen zu deaktivieren. Bei Apache ist dies in der entsprechenden Konfiurationsdatei recht einfach zu bewerkstelligen:

#SSLProtocol All
SSLProtocol All -SSLv2 -SSLv3

Diese Direktive aktiviert alle SSL-Protokollversionen unter Ausschluss der 2. und 3.Generation.

Poodle Protector

Wenn man jedoch eine große Anzahl an Systemen verwaltet, bedeutet die manuelle Konfiguration der einzelnen Systeme unnötigen Mehraufwand, den man auch geschickt automatisieren kann. Da ich ein fauler Mensch bin, habe ich mir ein Skript programmiert, was automatisiert Apache-Konfigurationsdateien analysiert und anpasst, sofern der Indianer anfällig für die POODLE-Attacke ist. Das Skript (poodle_protector) ist auf GitHub zu finden: [klick mich!]

Das Skript kann auf Wunsch sogar den entsprechenden Dienst neustarten, was den Einsatz über ein zentrales Configuration Management (wie z.B. Red Hat Satellite, Spacewalk oder SUSE Manager) besonders komfortabel gestaltet.

Der folgende Aufruf analysiert das System und simuliert, welche Änderungen vorgenommen werden würden (dry-run):

# ./poodle_protector.py -l
I'd like to create a backup of '/etc/apache2/mods-available/ssl.conf as '/etc/apache2/mods-available/ssl.conf.20141016-1303' ...
I'd like to insert 'SSLProtocol All -SSLv2 -SSLv3' into /etc/apache2/mods-available/ssl.conf using the following command: sed -i '/SSLProtocol/ c\SSLProtocol All -SSLv2 -SSLv3' /etc/apache2/mods-available/ssl.conf ...
I'd also like to restart the service using: ['service httpd restart', 'service apache2 restart']

Der nächste Aufruf nimmt Änderungen an der Konfiguration vor (es werden vorher Sicherungen angelegt) und startet den Apache-Dienst neu:

# ./poodle_protector.py -r
httpd: unrecognized service
Restarting web server: apache2 ... waiting .

In diesem Beispiel wurde ein Debian-System verwendet, weswegen der httpd-Dienst nicht gefunden werden kann.

Download PDF

Synology DSM 5 -&gt; ownCloud 7.0.2 Installation

Permalink Linuxvoodoo – Thorstens Technikkruscht

Ein Kollege hat mich auf die Idee gebracht mir mal ownCloud anzuschauen.

In meinem Keller steht eine kleine Synology welche dafür wunderbar geeignet ist – dachte ich.

Also habe ich eine Synology Paketquelle hinzugefügt um das Synology Communitypaket für Synology herunter zu laden. Leider stellte sich heraus das das Communitypaket weder aktuell die Version 7 (7.0.2) installiert, noch das es einwandfrei “out-of-the-box” arbeitet. Scheinbar wird ein Pfad benutzt welcher nicht durch den Webdienst beschrieben werden darf, das ist sicher leicht änderbar, dann bleibt aber noch das “Problem” mit der veralteten Version die gerade mal mit ownCloud 5.0.11 daherkommt.

synology_owncloud

synology_owncloud_fehler

Nach etwas rumsuchen bin ich über einen Beitrag bei www.kussaw.de gestolpert der einen interessanten Ansatz für die ownCloud Installation wählt. Er schlägt vor die ownCloud Installation über den Webinstaller von ownCloud durch zu führen da ownCloud ja auch einen eigenen Updatemechanismus beinhaltet. Für mich eine sehr gute Alternative, also wurde das mal ausprobiert.

Ich beschreibe also in diesem Post die Installation von ownCloud 7.0.2 auf einer Synology mit DSM 5.0-4493 Update 5.

Ich gebe aber keine Garantie darauf das nach einer Aktualisierung der DSM Version die ownCloud OOB wie vorher funktioniert! -> Darauf bin ich selbst gespannt…

Natürlich gibts von mir auch keine Garantie wenn ihr euch eure DSM auf der Kommandozeile zerschießt!

Unsere Diskstation benötigt:

  • Paketzentrum -> phpmyadmin Paket (für ownCloud Installation mit mysql)

phpmyadmin

  • Systemsteuerung -> Webdienst -> Web Station aktivieren
  • Systemsteuerung -> Webdienst -> Https-Verbindung für Webdienste aktivierenhttps
  • (optional) Systemsteuerung -> Sicherheit -> Zertifikat -> Zertifikat erstellen
    zertifikatOptional kann man sich auch ein neues eigenes Zertifikat erstellen. Was ich hier auch durchgeführt habe.
  • Falls noch nicht geschehen braucht man noch einen SSH Zugang (oder FTP falls einem das lieber ist) zu seiner Diskstation. Ich arbeite hier per SSH.
    ssh synology

Einloggen per SSH auf der Synology:

ssh root@synologyname

Als root Passwort wird euer Administratorpasswort akzeptiert.

Ich lege mir im http-Verzeichnis der Synology einen neuen Ordner an und lade den ownCloud Webinstaller in das Verzeichnis:

$> mkdir -p /volume1/web/owncloud
$> cd /volume1/web/owncloud
$> wget https://download.owncloud.com/download/community/setup-owncloud.php

Das aktuelle Paket zur ownCloud bekommt ihr immer unter http://owncloud.org/install/ -> “Archive File”

Anschließend mit dem Browser das Installationspaket aufrufen -> “https://<synologyname>/owncloud/setup-owncloud.php”

ownCloud_setup

Die Installation ist nun recht selbsterklärend mit dem Wizard durchzuführen. Da ich ja bereits einen Unterordner manuell erstellt hatte lege ich keinen neuen mehr an sondern bestätige das aktuelle Verzeichnis mit “.” wie vorgeschlagen.

Im ownCloud Setup wird anschließend der Administrative Zugang angelegt sowie das Verzeichnis indem die Daten anschließend gespeichert werden die in unsere “Cloud” übertragen werden.
Die Datenkbank für ownCloud wird in diesem Schritt ebenfalls angelegt. Das erledigt man mit dem MySQL root User dem wir über phpmyadmin im Vorfeld ein PW vergeben haben:

ownCloud mysql

Anschließend wird die Installation beendet. Bei mir kam es hier zu einem http Error. Nachdem ich aber im Browser einmal zurück bin konnte ich mich das erste Mal bei ownCloud anmelden.

Beim ersten Mal anmelden an ownCloud muss man noch das https Zertifikat bestätigen und in die ownCloud Liste für akzeptierte Zertifikate aufnehmen! Der Schritt ist aber eigentlich selbsterklärend.

Zwei Hürden haben mich dann noch beschäftigt.

1. Schreibberechtigung für http

Damit man Dateien hochladen kann muss man dem http Benutzer der Synology noch schreibeberechtigungen auf das Verzeichnis geben. (Damit wären wir eigentlich wieder bei dem ersten Problem mit dem Synology Community Paket ;-) )

$> chmod 775 /volume1/web/owncloud
$> chown root:http /volume1/web/owncloud

Ich regel das über die Gruppenrechte.

2. PDF Dateien können nicht dargestellt oder heruntergeladen werden

Bei .pdf Dateien gibt es direkt nach der Installation der ownCloud beim öffnen oder herunterladen folgende Fehlermeldung:

ownCloud pdf

Eine Lösung dazu fand ich hier im ownCloud Forum. Wobei das nicht wirklich intuitiv ist. In die folgende Konfigurationsdatei unseres httpd komme eine Zeile hinzu. Ich erkläre die Schritt. Auf der Synology per SSH:

$> vi /etc/httpd/conf/extra/mod_xsendfile.conf-user

Hinzufügen der Zeile “XSendFilePath /volume1″ mit dem Editor vi.

Meine Datei mod_xsendfile.conf-user sieht nach dem editieren folgendermaßen aus:

LoadModule xsendfile_module modules/mod_xsendfile.so
    XSendFile on
    XSendFilePath /var/services/web /var/services/homes
    SetEnv MOD_X_SENDFILE_ENABLED yes
    XSendFilePath /volume1

Anschließend muss der http Dienst noch durchgestartet werden:

$> httpd -k restart

Nach der Aktion kann man PDF Dateien sowohl öffnen als auch herunterladen.

Viel Spass mit eurer ownCloud!

Aus Ubuntu hat sich auch der Zugriff über WebDav als sehr praktisch erwiesen. Ich habe mir dazu einfach eine Favorite in Nautilus gebaut:

davs://username@Hostname/owncloud/remote.php/webdav

Mit den richtigen Vorbereitungen funktioniert das auch wunderbar von extern. (dyndns, fritz, myds Dienst usw. vorausgesetzt bzw. https Port Weiterleitung auf die Synology)

Fast doch (m)ein Desktop: Der Gnome-Shell eine Chance

Permalink Pinguinzubehör

Die Gnome-Shell ist mit dem Ziel angetreten, den Nutzern so viel Arbeit wie möglich abzunehmen, es dem Linuxanwender so einfach wie möglich zu machen, den PC zu bedienen. Paradoxerweise führt gerade diese Politik dazu, dass die Bedienung komplizierter wird und mehr Arbeit verursacht. Dabei hat die Shell viel Potential, ist für die Benutzer, die schon mal etwas anderes als Gnome kennengelernt haben, ohne Erweiterungen jedoch kaum erträglich. Die Fortsetzung unseres kleinen Gnome-Schwerpunkts mit einer Gegenüberstellung der Vor- und Nachteile der Gnome-Shell, die Shell im Alltagseinsatz unter die Lupe genommen.

Extended Desktop

Gnome hat die ehemals breite Nutzerbasis seinem neuen Konzept geopfert. Ob die alten Fans zurückkehren, ist fraglich, ob genügend neue zu Gnome finden, auch. Bei manchen Distributionen wird die Gnome-Shell gerade mal so häufig nachgefragt wie die Exoten Fluxbox oder Enlightenment und rangiert weit abgeschlagen hinter KDE und Cinnamon. Doch Gnome hält Kurs und zieht das eigene Konzept durch, was mutig und anerkennenswert ist, denn es besetzt damit immerhin eine Nische, denn einen derartigen Ansatz verfolgt sonst kein anderer Linux-Desktop.

Zum Massendesktop wird Gnome damit nicht mehr werden, es spricht mit der Shell nun kurioserweise eher die Fenstermanager-Fans, die Liebhaber des Minimalismus an. Die großen, auf den Desktop-Einsatz zielenden Distributionen verwenden keine Gnome-Shell mehr als Standard. Opensuse und Mageia favorisieren KDE, Ubuntu Unity und Linux Mint Cinnamon. Sogar das Unternehmens-Linux der Fedora-Mutter Red Hat spricht sich gegen die reguläre Shell aus. Allein Fedora und Debian halten die Gnome-Shell-Fahne noch hoch, wobei auch Letzteres fast fahnenflüchtig zu werden drohte.

Die gerade erscheinende Version 3.14 bringt weitere Verbesserungen, aber vor allem in der Optik. Bedientechnisch hat sich an der Shell nichts Wesentliches verändert, am Grundkonzept bleibt alles, wie es ursprünglich gedacht war. Die Shell will dem Nutzer die Arbeit abnehmen, setzt auf intuitive Bedienung – und macht es fortgeschrittenen Usern mit speziellen Wünschen damit umso schwerer. Die Shell wirkt so, als würde sie so sein wollen, wie man sich früher die Computer von morgen vorgestellt hat. Sie macht genau das, was der Nutzer will, ohne dass dieser noch großartig Befehle formulieren muss. Das allerdings geht dann schief, wenn der Nutzer etwas anderes möchte, als die Entwickler vorhergesehen haben, denn das Zukunfts-Gnome kann eben letztlich doch keine Gedanken lesen.

Die Standard-Gnome-Shell erfordert zunächst viel Umgewöhnung. So viel, dass man schnell geneigt ist, aufzugeben, wenn die typischen Handgriffe nicht mehr funktionieren. Doch das Konzept ist durchdacht. Nichtsdestoweniger passt es nicht auf jeden Workflow. Dann hat man mehrere Möglichkeiten. Entweder man nimmt gleich eine andere Oberfläche, man nutzt den Classic-Modus der Shell, der etwas näher an der traditionellen Bedienung ist – oder man ergänzt sich die Shell ganz individuell mit Erweiterungen. Das kann sich lohnen, denn neben aller Kritik bietet die Gnome-Shell ein durchaus innovatives Konzept und hat einige Vorzüge.

Glückliches GnomeWas gefällt:

• Die Optik. Mit Adwaita, das ab Version 3.14 auch das alte Raleigh-Notfall-Aussehen in Gestalt des Windows-Classic-Looks ersetzt, ist Gnome wieder ein Glanzlicht gelungen. Frisch, aber dabei ergonomisch bleibend, keine Experimente wagend wie etwa Ubuntu mit fast nicht mehr sichtbaren Scrollbalken, die nur bei Bedarf breiter werden. Die Gnome-Designer scheinen elegantes Design stets abonniert zu haben.

• Dezente Effekte. Der dezente Einsatz von Animationen und Schatten bringt genau die richtige Portion an optischen Effekten, so dass diese die Bedienung unterstützen und nicht stören.

• Automatische Arbeitsflächenverwaltung. Die Gnome-Shell ist die erste Linuxoberfläche, die die Verwaltung der Arbeitsflächen standardmäßig automatisiert ablaufen lässt. Es ist immer ein Desktop frei, wenn man einen neuen brauchen sollte, wenn der aktuelle schon wieder vollgefenstert ist.

• Konsequente Übernahme des Dockkonzepts. Linus Torvalds hat sich zwar fürchterlich aufgeregt, es entspricht jedoch absolut dem Vorbild aus Mac OS X bzw. Nextstep – ein Klick auf das Programmsymbol erzeugt kein neues Fenster derselben Anwendung, sondern bringt alle zum spezifischen Programm gehörenden Fenster in den Vordergrund, wenn die Anwendung bereits läuft.

• Einzigartigkeit. Nicht zuletzt ist die Gnome-Shell mal etwas typisch Eigenes für Linux, nicht der zwanzigste Abklatsch von Windows- oder Mac-Oberflächen. Die Gnome-Entwickler zeigen hier Mut, auch innovativen Konzepten nicht nur eine Chance zu geben, sondern sie auch gegen alle Widerstände durchzusetzen.

Was nicht gefällt:

• Schwächen im Dockkonzept. Ein Mittelklick führt zwar zum gewünschten neuen Fenster, öffnet es aber auf einem neuen Desktop. Nur mit Strg und Klick bekommt man das zweite neue Fenster auf die aktuelle Arbeitsfläche, braucht also stets Tastatur und Maus, um ein neues Fenster auf den sichtbaren Schirm zu bekommen.

Unglückliches Gnome

• Desktop-Icons. Es gibt im Shell-Konzept standardmäßig keine Desktop-Icons auf der Arbeitsfläche. Der viele Monitorplatz wird verschwendet. Dateisymbole lassen sich in den erweiterten Einstellungen allerdings ganz fix wieder einschalten.

• Verschwundene minimierte Fenster. Minimierte Fenster tauchen im Übersichtsmodus nicht mehr auf; um ein minimiertes Fenster wiederzufinden, muss man es über das Dock suchen. Das hat auch damit zu tun, dass Minimieren im Konzept der Shell eigentlich gar nicht mehr vorgesehen ist, manche Distributionen wie Fedora es aber standardmäßig wieder in den Fensterknöpfen aktiviert hatten. Eine arbeitsflächenübergreifende Fensterliste fehlt. Umso ärgerlicher, weil die Gnome-Shell zum ausgiebigen Verteilen der Programme auf neue Arbeitsflächen verführt. Ein Workaround besteht z.B. in der Installation des Minimized-Window-Reminders.

• Fehlendes permanentes Dock. Ungewöhnlich ist auch, dass das Dock nicht standardmäßig sichtbar oder zumindest in der Hauptebene erreichbar ist, ohne den Übersichtsmodus aufrufen zu müssen. Erst die Windows-Taste drücken zu müssen oder die linke obere Ecke anzusteuern, um dann das Dock wieder nach unten abfahren zu müssen, sorgt für nervende Mauswege. Mit der passenden Erweiterung lässt sich das Dock in die oberste Ebene holen – bringt allerdings neue Probleme mit sich, wenn gleichzeitig Icons auf dem Desktop liegen – diese sind dann nicht mehr erreichbar.

• Keine Favoritenleiste im Panel. Es fehlt ein schneller Zugriff auf die Dateimanager-Lesezeichen, ohne erst ein Dateimanager-Fenster aufrufen zu müssen. Mit der Erweiterung Places Status Indicator lässt sich ein Lesezeichenmenü in die Standardleiste integrieren.

• Kein Schnellzugriff auf Dateien. Das schnelle Erreichen eigener, oft genutzter Dateien fehlt ebenso wie ein Verlauf. Die Funktion einer History lässt sich mit einer Erweiterung nachrüsten, auch für Standarddateien gibt es eine solche.

• Fehlender Desktopindikator. Man sieht außer im Übersichtsmodus nicht, auf welcher Arbeitsfläche man sich gerade befindet. Die Erweiterung Workspace Indicator schafft Abhilfe. Damit wird dann zugleich auch der schnelle Desktopwechsel mit der Maus möglich, für den man sonst ebenfalls erst in den Übersichtsmodus schalten muss.

• Die Leiste. Die schwarze Leiste am oberen Rand, das Panel, das eigentlich keins mehr sein soll und nur durch Erweiterungen zu einem solchen wird, ist relativ nutzlos, und wird im Betrieb eigentlich für nichts weiter gebraucht, als die Uhrzeit anzuzeigen. Das hätte man auch platzsparender hinbekommen. Um sie auszublenden, braucht man ebenfalls eine Erweiterung.

• Nicht intuitiver Übersichtsmodus. Die Exposé-Ansicht im Übersichtsmodus skaliert zu starr, denn vorhandene Fenster werden im Übersichtsmodus alle auf dieselbe Höhe skaliert. Kleinere Fenster wirken dadurch größer und Vollbildfenster wirken im Verhältnis viel kleiner. Das erschwert das intuitive Erfassen und Wiederfinden eines Fensters. Sind viele Fenster offen, sehen sie außerdem irgendwann alle fast gleich aus – und dann muss man die Titelzeilen bewusst lesen, um ein Fenster zu identifizieren.

• Zusätzliche Schikanen beim Dateilöschen. Dateien können nicht mit der Entfernen-Taste in den Mülleimer gelegt werden, es braucht zwingend die Tastenkombination Strg+Entf. Wer regelmäßig zwischen verschiedenen Systemen wechselt, verzweifelt.

• Der Weißraum. Was optisch super ist, hat leider funktionale Nachteile. Für die Touchbedienung sicher nützlich, doch mit der Maus macht es keinen Spaß mehr. Im Dateimanager muss mehr gescrollt werden, Menüs werden länger, und damit auch die Mauswege. Wo eigentlich ein kleiner Schubser reichen sollte, um einen Menüeintrag anklicken zu können, muss stattdessen über den halben Bildschirm gefahren werden. Auf kleinen Bildschirmen wirkt alles übertrieben klobig und zwingt auf Notebooks praktisch fast schon zum permanenten Arbeiten im Vollbildmodus.

• Alt+Tab-Verhalten. Das Tastenkürzel Alt-Tab zum Wechseln zwischen offenen Fenstern wurde aufgeteilt auf verschiedene Tastenkombinationen, standardmäßig wechselt man nun zwischen Programmen, nicht mehr zwischen Fenstern. Das ist durchdacht und innovativ, aber unpraktisch, weil man in der Regel nicht darüber nachdenkt, ob man zwischen Fenstern oder Anwendungen wechseln möchte, sondern oft einfach intuitiv zum vorherigen Fenster zurückkehren will. Auch springt Alt+Tab ggf. zwischen Anwendungen auf verschiedenen Arbeitsflächen hin und her, was die Sache noch verwirrender macht. Mit einer Erweiterung ist das alte Verhalten zwar wiederherstellbar, doch es gibt weiterhin keine Möglichkeit, das Wechseln auf eine virtuelle Arbeitsfläche zu beschränken, man springt dann munter zwischen allen virtuellen Desktops hin und her.

• Nichtzulassung eigener Startbefehle. Die Zuweisung der Standardanwendungen funktioniert nicht optimal; wenn Programme nicht in der Vorauswahl auftauchen, gibt es keine Möglichkeit, sie mit einem individuellen Befehl aufzurufen, es muss notfalls erst ein entsprechender Starter gebastelt werden.

• Schüchternes Nautilus. Über Tastenkürzel direkt aufgerufene Verzeichnisse öffnen sich in Nautilus nicht im Vordergrund, sondern stets hinter anderen vorhandenen Fenstern. Stattdessen taucht die Meldung „Dateien ist bereit“ auf.

• Arbeitsflächenverwaltung nicht konfigurierbar. Das automatische Hinzufügen von neuen Arbeitsflächen lässt sich entweder aktivieren oder ganz abschalten. Nutzt man z.B. zusätzliche Programme wie Devilspie, um Fenster automatisch auf verschiedene Arbeitsflächen zu verteilen, funktioniert das nicht richtig, wenn man noch gar keine Fenster geöffnet hat – und daher nur ein Desktop bereitsteht: Ruft man ein Programm auf, das eigentlich auf Desktop 2 landen sollte, öffnet es sich auf Arbeitsfläche Nr. 1. Andersherum, wenn wiederum alle Anwendungen auf Desktop 1 geschlossen werden, rutschen die auf Desktop 2 geparkten Fenster automatisch auf den ersten Desktop. Das erinnert in der Handhabung ein wenig an die kafkaesken Menüs, die zu Windows98-Zeiten der große Renner bei Microsoft waren, aber aus gutem Grund recht schnell wieder beerdigt wurden (in den Menüs waren nur häufig benutzte Einträge sichtbar, die seltener benötigten wurden nach und nach ausgeblendet, im Ergebnis befanden sich die Einträge immer an unterschiedlichen Positionen, intuitives Ansteuern wurde unmöglich). Bei der Gnome-Shell sind es nun die Fenster, die nie da sind, wo man sie eigentlich erwartet. Die Idee ist gut, beim Knappwerden von Arbeitsfläche neue Desktops anzulegen, aber Fenster automatisch dorthin zu verschieben oder Arbeitsflächen ohne Rückfrage wieder zu entfernen, wenn das letzte Fenster geschlossen wurde, nervt unendlich und müsste konfigurierbar sein.


Idee und Montage: „orc“

• Funktionsreduzierung bei Programmen. Das Terminal verlor die Transparenz, Nautilus die geteilte Ansicht, die Embleme und die Baumnavigation in der Seitenleiste. Die Autostarteinstellungen werden entfernt.

• Tastenkürzel funktionieren nicht im Übersichtsmodus. Wenn man feststellt, dass das gesuchte Programm nicht bereits ausgeführt wird, muss man den Modus erst wieder verlassen, um das Programm per Kürzel starten zu können. Ein Workaround ist nicht bekannt.

Es gibt für alles eine Lösung

Die Auflistung der Negativpunkte ist überraschend lang, zeigt aber auch, dass sich die bemängelten Punkte durch Erweiterungen fast vollständig beheben lassen. Mit einem Sack voller Ergänzungen und der Anpassung der Grundeinstellungen kann man sich die Shell so zurechtbiegen, dass sogar traditionelle Desktoparbeit damit wieder möglich wird oder dass sie sich fast so verhält wie andere Oberflächen oder eben das alte Gnome (was die Gnome-Leute auch selbst mit der Gnome-Classic-Sitzung anbieten, indem einige der hier genannten Erweiterungen standardmäßig integriert und aktiviert werden).

Doch dann kann man auch gleich einen anderen Desktop nehmen und spart sich die Nachrüstung und Inkonsistenzen, die zwangsläufig entstehen, wenn versucht wird, ein originäres Konzept wieder in ein anderes zurückzuverwandeln. Dieser Aufwand steht kaum im Verhältnis zum Ergebnis, der Wechsel zu einer alternativen Umgebung wie KDE, XFCE, Mate oder Cinnamon drängt sich dann geradezu auf. Denn auch wenn sich viel mit Erweiterungen nachrüsten lässt, entstehen doch gerade dadurch gleich zwei neue Nachteile:

• Verteilte Einstellungen. Die Installation auch simpler Erweiterungen führen das Konzept der unnötigen Konfiguration vollends ad absurdum. Bereits in einem erweiterungslosen Gnome muss man ggf. Einstellungen an vier (!) verschiedenen Orten vornehmen: in den normalen Einstellungen, in den erweiterten Einstellungen (Tweak Tool), im Konfigurationseditor und in allgemeinen Systemkonfigurationsdateien. Dazu kommen dann noch weitere Einstellungen für die Erweiterungen, die von den Erweiterungen selbst an allen möglichen Orten des Systems verteilt werden, im Tweak Tool, in Leisten oder sonstwo. Das Auffinden wird zum Suchspiel.


Diese Erweiterung baut die Einstellungen in das Abmeldemenü ein.

• Fehlende Updatesicherheit. Sofern man auf Erweiterungen setzt, kommt hinzu, dass nicht alle Erweiterungen auch stets für alle Versionen der Shell im Angebot sind. Erweiterungen verwaisen und die Funktionalität geht verloren, wenn sich niemand findet, der die Wartung übernimmt. Die Gnome-Erweiterungsseiten sind voll von Hilferufen der Nutzer, bestimmte Erweiterungen doch auch für aktuellere Gnome-Shell-Versionen lauffähig zu machen. Es wächst ein Ökosystem innerhalb der Gnome-Shell heran, das äußerst zerbrechlich ist. Nur wenige Erweiterungen wurden direkt in die Shell integriert. Und dass Gnome-Shell-Anwender Erweiterungen brauchen, scheint eher die Regel als die Ausnahme zu sein.

Jetzt aber Schluss mit dem Gnome-Bashing

Auch wenn dieser Eindruck entstehen mag: Nicht alles muss man bei der Gnome-Shell nachrüsten, manche Konventionen findet man auch in der Shell weiterhin. So funktioniert Alt+F2 zum Aufrufen eines Befehl-ausführen-Dialoges, der Mittelklick auf einen Fenstertitel oder in den Bereich des neuen Globalmenüs bringt das Fenster in den Hintergrund. Die Shell leistet sich sogar Redundanz, z.B. bräuchte es den Übersichtsmodus mit verkleinerten Fenstern gar nicht, wenn man doch schon das Dock auf der linken Seite hat. Sogar das Anlegen eigener Tastenkürzel ist ohne Zuhilfenahme von Drittsoftware möglich. Aber wie lange noch? Die Unsicherheit über den Funktionsumfang wird zum bestimmenden Faktor bei der Gnome-Shell-Entwicklung.

Manches lässt sich jedoch selbst mit Erweiterungen nicht beheben. Die Mauswege sind generell zu lang, die Shell unübersehbar auf Tastaturbedienung hin getrimmt und dahingehend wenig flexibel. Das große Grundkonzept der unbedingten Reduzierung macht alles irgendwie umständlich, und die vielen kleinen Merkwürdigkeiten die Shell in der Summe aufwändig. Der Funktionsausbau lässt die Shell für so manchen Anwender sogar indiskutabel werden, da hilft dann auch kein Classic-Modus weiter, der prinzipiell einige der Kritikpunkte aufzufangen vermag. Durch den forcierten Minimalismus wird alles komplizierter – komplizierter, als eine von vornherein weniger spartanische Shell je sein könnte.


Dieser Artikel ist Bestandteil der „Not my Desktop“-Reihe.
Bereits erschienen:

Wird GNOME wieder zum Zwerg?
Eine Woche Gnome 3: Der uniformierte Desktop
Strategien zur GNOME-3-Vermeidung
Gnome-Shell – es wird immer unübersichtlicher
Endlich: Gnome rudert zurück
Die Gnome-Shell macht auf alt
Die Tragik der Gnome-Shell
Der Gnome-Shell eine Chance

15. Oktober 2014

Zentrale rsnapshot Backups ohne SSH root Login

Permalink Finns Blog

Ich habe ja bereits erwähnt, dass ich rsnapshot für den Großteil meiner Backups verwende. Die Vorteile sehe ich in der effizienten Dateiübertragung mit rsync und in der Möglichkeit, auch ältere Backups bzw. Snapshots aufzuheben, die dann nach und nach rotiert werden. Durch die Verwendung von Hardlinks ist der Platzbedarf für ältere Snapshots meist nur sehr gering. Möchte man rsnapshot allerdings an einer zentralen Stelle ausführen, ergibt sich ein Problem.

Da man in der Regel nicht nur Dateien eines einzelnen Benutzers sichern möchte, lässt man meist den root Benutzer die Backups durchführen. Genau hier liegt das Problem, falls man per SSH sichern möchte, denn das würde SSH Zugriff für den Root-Benutzer erfordern. Bisher habe ich eine Alternativlösung verwendet:
Ich habe eine Freigabe des entfernten Backup-Servers in das lokale Dateisystem gemounted und das 

snapshot_root
  Verzeichnis entsprechend konfiguriert, so dass die Snapshots dort gesichert werden.

Es ist zwar bei kleinen Umgebungen nicht dramatisch schlimm, aber diese Methode erfordert eine rsnapshot-Installation pro Server, den man sichern möchte. Im Prinzip lässt sich ein entferntes Verzeichnis mit rsnapshot per SSH mit folgender Zeile in der Konfiguration einfach bewerkstelligen:

backup    root@mein-server.local:/home/    mein-server.local/

Kürzlich bin ich nun über eine Lösung gestolpert, einen anderen Benutzer als root für das SSH Login zu verwenden und trotzdem keine Berechtigungen oder Gruppenzugehörigkeiten anpassen zu müssen. Die Lösung ist tatsächlich sehr simpel, nämlich:

sudo
.

Voraussetzung ist ein üblicher Benutzer, mit dem man sich per Schlüsselverfahren anmelden kann. Ich habe dazu auf meinem Server einen Benutzer backup angelegt und den SSH Public Key meines root Benutzers in die 

/home/backup/.ssh/authorized_keys
  eingefügt. Nach einem Test der eigentlichen Verbindung wird visudo aufgerufen, um zwei Zeilen zu ergänzen:
Defaults:backup    !requiretty
backup ALL=NOPASSWD: /usr/bin/rsync

Hiermit darf der Benutzer backup rsync mit root-Rechten per sudo aufrufen, was an sich auch nicht völlig harmlos, mir aber trotzdem lieber als ein SSH-Root-Login ist. Der Trick besteht nun darin, rsync remote mit sudo aufzurufen, damit der backup-Benutzer ausreichende Rechte hat, alle Dateien zu sichern. Hierzu erstellt man auf dem zu sicherenden Server im Home-Verzeichnis des Backup Benutzers die Datei rsync-wrapper.sh mit dem Inhalt und macht diese anschließend ausführbar (

chmod +x rsync-wrapper.sh
 ):
#!/bin/bash
/usr/bin/sudo /usr/bin/rsync "$@";

In der rsnapshot-Konfiguration ergänzt man nun folgende Zeile:

rsync_long_args -ev --rsync-path=/home/backup/rsync-wrapper.sh

Eine Backup-Zeile für ein zu sicherndes Verzeichnis sieht aus wie das oben genannte Beispiel, nur anstelle des root-Benutzers wird nun der backup-Benutzer verwendet:

backup    backup@mein-server.local:/home/    mein-server.local/

Falls jemand überlesen hat, woher ich diese Idee habe, der schaut bite hier nach.

Red Hat Enterprise Linux 6.6 veröffentlicht

Permalink /var/pub/chris_blog

Download PDF

Gestern hat Red Hat mit der Version 6.6 ein weiteres Update des Major-Releases 6 von Red Hat Enterprise Linux veröffentlicht. Wie bei bisherigen Minor-Updates wurden hier zahlreiche Verbesserungen und einige „Technical Previews“ implementiert.

Die Änderungen wurden ausführlich in den Release- und Technical Notes dokumentiert:

Neben den üblichen Kernel Treiber-Updates wurden einige weitere interessante Anpassungen vorgenommen, auf welche ich eingehen möchte (eine Auswahl):

  • Installation als Hyper-V Generation 2 VM – z.B. unter Windows Server 2012 R2 (*), beinhaltet auch neue Hyper-V Daemons: Hyper-V KVP (Hyper-V Key Value Pair) Hyper-V VSS (Hyper-V Volume Shadow Copy Service)
  • Verbesserte Unterstützung zusätzlicher SCSI-Signale zur besseren Reaktion auf Hardware-Veränderungen durch udev (z.B. Größenveränderung, Thin-Provisioning-Status, Hinzufügen neuer LUNs,…)
  • Einführung eines Open vSwitch Moduls für zusätzliche Red Hat-Produkte, Support wird ausschließlich in Zusammenhang mit weiteren Red Hat-Produkten geleistet
  • Für Device Mapper wurde ein Caching-Modul (dm-cache) eingeführt (*), mithilfe dieses Moduls können schnellere Laufwerke (z.B. SSDs) als Cache für langsamere Speichermedien dienen – Details sind in der lvmcache Manpage zu finden
  • Die Software-Pakete keepalived und haproxy werden nun vollständig vom Support abgedeckt
  • OpenJDK 8 Java Runtime Environment optional installierbar (*)
  • Windows 8-zertifizierte Touchscreens werden nun durch hid-multitouch unterstützt
  • Red Hat Enterprise Linux 6.6 ist nun nach NSS FIPS-140 Level-1 zertifiziert
  • System Security Services Daemon (SSSD) wurde für bessere Authentifizierung mit Microsoft Active Directory optimiert
  • gdisk – neues Tool zur GPT-Partitionierung, „Look and feel“ sind stark an fdisk angelehnt
  • rsyslog7 – neue, überarbeitete rsyslog-Version mit verbesserter Verschlüsselung und externen Datenbank-Support (MySQL, PostgreSQL,…). Es wird empfohlen, eine Migration auf diese Version vorzunehmen

(*) = technische Vorschau

Red Hat Enterprise Linux 6.6 steht ab sofort jedem Red Hat-Kunden mit gültiger Subscription zur Verfügung.

Download PDF

SSLv3 - Dank POODLE Geschichte?

Permalink coa.cx

Was ist POODLE?

Poodle steht für Padding Oracle On Downgraded Legacy Encryption. Entdeckt und veröffentlicht wurde das Problem vom Google Security Team.
Eine gelungene Zusammenfassung finden man bei Golem:
Das Problem ist wie schon bei vielen früheren Sicherheitslücken im SSL-Protokoll die Verschlüsselung im CBC-Modus und das dazugehörige Padding. Das Padding in der alten SSL-Version hat allerdings eine Besonderheit: Es kann beliebigen Inhalt haben, was sich mit einigen Tricks für den Poodle-Angriff ausnutzen lässt. Mit Hilfe von Javascript-Code, der in eine beliebige HTTP-Verbindung eingefügt wird, kann ein Angreifer eine Man-in-the-Middle-Attacke durchführen. Damit kann der Angreifer an geheime Informationen gelangen, die über mehrere Verbindungen vorhanden sind, beispielsweise HTTP-Session-Cookies, die nur verschlüsselt übertragen werden.

Wie schütze ich mich dagegen?

Sehr einfach. Im folgenden habe ich Ratschläge aufgelistet die man derzeit beachten sollte, bevor alle Browser gefixt sind.

Hier kann man seinen Browser auf Anfälligkeit testen: Poodle Test

Chromium
grep Exec /usr/share/applications/chromium-browser.desktop 

Exec=chromium-browser %U
Exec=chromium-browser
Exec=chromium-browser --incognito
Exec=chromium-browser --temp-profile
Alle Zeilen darin müssen mit `--ssl-version-min=tls1` erweitert werden.
Exec=chromium-browser --ssl-version-min=tls1 %U
Exec=chromium-browser --ssl-version-min=tls1
Exec=chromium-browser --incognito --ssl-version-min=tls1
Exec=chromium-browser --temp-profile --ssl-version-min=tls1
Chrome
Das Vorgehen ist identisch mit dem von Chromium, mit dem Unterschied das der Pfad der Datei `/usr/share/applications/google-chrome.desktop` lautet.
Firefox
Sollte dieser beim test durchfallen, muss man in die erweiterte Konfiguration:
about:config
security.tls.version.min;1
Man sucht also nach security.tls.version.min und setzt den Wert auf `1`.
NginX
Im Server Abschnitt wird folgendes festgelegt:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Danach selbstverständlich neu starten.
Apache
Global wird SSL in `/etc/apache2/mods-available/ssl.conf` konfiguriert. Hier wird SSLv3 wie folgt deaktiviert:
SSLProtocol All -SSLv2 -SSLv3
Auch hiernach genügt ein Neustart und man hat historische Versionen hinter sich gelassen.

14. Oktober 2014

Raspberry Pi mit Windows PC direkt verbinden – Gastbeitrag

Permalink Intux

Manchmal ist es nicht möglich den Raspberry Pi über ein Netzwerk mit einem PC über das Netzwerk zu verbinden. Will man aber trotzdem auf den Raspberry zu greifen, um z. B. ein Skript auszuführen, dann hat man nicht allzu viele Möglichkeiten.

Im Internet findet man nicht wirklich viel zu dieser Thematik. Es gibt hierbei jedoch einige Lösungsansätze den Mini-Computer über ein Cross-Over Kabel direkt mit dem PC zu verbinden. Die Verwendung eines Cross-Over Kabels ist bei dem Raspberry Pi Modell B jedoch nicht zwingend erforderlich, da dieses Modell Auto-MDI-X beherrscht, wobei die Anschlüsse elektronisch vertauscht werden.

Um das Ganze zu realisieren bedarf es aber einer gewissen Vorbereitung, um den RasPi später mit einem Windows-PC direkt zu verbinden.

Zuerst muss man jedoch den Pi über ein vorhandenes Netzwerk mit dem Computer (in diesem Fall ein Windows-PC) verbinden.

Über den PC greift man auf das Raspberry Pi Terminal zu.

Nun trifft man folgende Einstellungen am Raspberry und gibt als erstes nach dem Login:

sudo nano /etc/network/interfaces

ein. Danach landet man im Nano-Editor und gibt folgendes ein bzw. ändert man folgende Angaben:

iface eth0 inet static
address 192.168.XXX.XXX //am besten die IP-Adresse die der Pi schon hat
netmask 255.255.255.0
gateway 192.168.XXX.XXX //GATEWAY VOM ROUTER (gleiche Gateway wie beim PC eintragen)

Wenn man das erledigt hat, dann den Editor mit Ctrl + x schliessen und mit “j” bzw. “Y” abspeichern und Raspberry mit

sudo reboot

neu starten.

Am PC trifft man folgende Einstellungen:

Zuerst geht man unter Windows in die Systemsteuerung, dann Netzwerk und Internet->Netzwerk- und Freigabecenter und dann in der linken Spalte steht dann Adaptereinstellungen ändern.

  1. Den zuständigen Adapter für LAN mit einem Rechtsklick auswählen und auf Eigenschaften klicken
  2. Das Internetprotokoll Version 4! auswählen und einen Linksklick auf Eigenschaften machen
  3. Den Punkt “IP-Adresse automatisch beziehen” zu “Folgende IP-Adresse verwenden” ändern
  4. Dann die gewünschte IP-Adresse eintragen (am Anfang meistens 192.168.XXX.XXX)
  5. Danach die Subnetzmaske, die meistens 255.255.255.0 beträgt, eintragen
  6. und zu guter Letzt den Gateway vom Router (zu finden unter Router Einstellungen oder einfach mal bei einem verbundenen Netzwerkgerät nach schauen)
  7. PC neustarten!!!

Sobald der PC wieder hoch gefahren ist, trennt man den Raspi vom Netzwerk und steckt das eine Ende des LAN-Kabels in den Raspberry und das andere in den Computer.

Jetzt sollte alles funktionieren.

Testen kann man dies via Putty, via Webbrowser (sobald man einen Webserver auf dem Rasperry Pi installiert hat) oder via WinSCP. Dazu gibt man ganz normal die jeweiligen IP’s und Anmeldedaten ein.

Linux Software-RAID Metadaten

Permalink [ENC]BladeXP's Blog

Linux Software-RAID ist eine gerne verwendete Lösung, um auf die schnelle ein RAID System an dem einen oder anderem Server zu realisieren. In den meisten Fällen funktioniert dies auch einfach so, doch lästige moderne Systeme haben durch zunehmend dynamischere Hardware (USB, SATA, …) und stetige Verbesserungen am Init Prozess (z.B. Upstart, systemd) ein großartiges Potential sich bei der beliebten Kombination RAID und LVM in den Fuß zu schießen.

Doch auch andere Kombinationen sind möglich, genau genommen jede Option, bei welcher eine Anwendung oder ein Systembestandteil pauschal alle Block Devices nach einem bestimmten Header durchsucht. Auf einem RAID System können genau diese Header, in exakt gleicher Form, nämlich auf mehreren Block Devices zur gleichen Zeit vorhanden sein. Problematisch ist dies vor allem bei RAID1, aber ich gehe davon aus das auch andere RAID-Level hier Probleme bereiten könnten.

Um das Problem zu verstehen, muss man dessen Ursache kennen, daher ein kleiner Überblick über die gängigen RAID Metadatenversionen:

0.90
Dabei handelt es sich um das nach wie vor oft verwendete, aber inoffiziell als PITA bezeichnete Metadatenversion. Limitierungen sind u.a. maximal 2TB bei einem RAID-Level größer oder gleich 1 und zusätzlich die Limitierung auf maximal 28 Geräte im Verbund, welche weniger problematisch sein sollte. Dummerweise ist bei dieser Metadatenversion je nach Partitionierung auch nicht definiert ob sich ein RAID Verbund über die gesamte Platte oder nur einen Teil davon (Partition) erstreckt.
1.0
Das neue Metadatenformat, hier liegt der RAID Header genauso wie beim 0.90er Format am Ende der Partition/Platte. Die Bugs aus 0.90 wurden hierbei gefixt und es gibt auch einen Satz neue Features welche in der Manpage erläutert werden.
1.1
Wie 1.0, jedoch liegt der RAID Header hier nicht am Ende, sondern am Anfang einer Partition/Platte.
1.2
Wie 1.0, jedoch liegt der RAID Header hier nicht am Ende der Platte/Partition, sondern 4KB nach dem Startsektor derselben.

Das PITA (0.90) Format möchten wir wirklich nicht mehr einsetzen, aber die anderen Versionen klingen doch sehr verlockend. Aufpassen muss man hier aber bei der Wahl der Version, den einzig 1.1 sorgt dafür das am Anfang der Partition der RAID Header ist. Dadurch erkennen die meisten Tools welche ihre Header ebenfalls am Start der Partition/Platte erwarten dort keinen eigenen Header mehr und kommen nicht auf die blöde Idee diesen zu verwenden.

Durch eine ungünstige Situation (z.B. eine Race Condition) kann es z.B. beim Startvorgang vorkommen das so /dev/sda1 in eine LVM Volume Group aufgenommen wird obwohl nur wenig später das richtige Block Device, nämlich /dev/md0 zu Verfügung stehen würde. Der Schutz durch das RAID besteht so ggf. nicht, im schlimmsten Fall überschreiben sich das Software-RAID und LVM gegenseitig die Daten, ein großartiges Szenario.

Beobachten konnte ich das recht theoretische Problem bisher 2-3x auf meinem Homeserver, durch viele Schutzmaßnahmen ist aber nichts passiert, mal davon abgesehen das die gängige LVM Befehle auf einmal jammerten, dass keine PVs verfügbar wären, obwohl das System schon seit Wochen stabil läuft. Beobachten konnte ich ebenfalls das dieses Problem nur auftritt wenn der lvmetad verwendet wird, dies ist z.B. bei Arch Linux der Fall. Ich gehe auch davon aus das dieses LVM spezifische Problem eher dort zu suchen ist, unabhängig davon gibt es neben LVM noch einige andere Dinge die gerne mal Metadaten am Anfang der Partition/Platte suchen, durch die Wahl der richtigen Metadatenversion können hier schon beim erstellen des RAIDs potentielle Probleme vermieden werden.

13. Oktober 2014

rtorrent monit- und Init-Skript

Permalink Falk Husemanns Blog

Wer rtorrent regelmäßig und dauerhaft einsetzt, wünscht sich eine elegantere Lösung, als das händische Starten und Stoppen einer screen-Sitzung. Ohne viele weitere Ausschweifungen folgt meine Lösung für diesen Wunsch: Ein Init-Skript und eine Konfigurationsdatei für monit. Monit ist eine Prozessüberwachungs-Software.

Im Gegensatz zu den anderen kursierenden Skripten kann mit dem hier vorgestellten sowohl die niceness (CPU-Priorität) als auch die I/O-Klasse eingestellt werden, sodass rtorrent nicht mehr alle Prozessoren und jede Eingabe-/Ausgabe-Operation für sich beanspruchen kann. Dazu absolut zu empfehlen ist die manpage von ionice und nice. Wer noch nicht reingesehen hat, verpasst was.

rtorrent Init-Skript

Das Init-Skript wird im Verzeichnis /etc/init.d/ unter dem Namen rtorrent-beispielUser abgelegt. Mit dem Befehl update-rc.d rtorrent-beispielUser defaults kann es in den Startprozess eingebunden werden.

#!/bin/bash
### BEGIN INIT INFO
# Provides:          rtorrent-beispielUser
# Required-Start:    $syslog $local_fs
# Required-Stop:     $syslog $local_fs
# Should-Start:      $remote_fs
# Should-Stop:       $remote_fs
# X-Start-Before:    xdm kdm gdm ldm sdm
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: rtorrent
# Description:       Load up rtorrent in a screen session
### END INIT INFO

###############
#
# TO INSTALL RUN
# sudo /usr/sbin/update-rc.d rtorrent defaults
#
##################


. /lib/lsb/init-functions

# EDIT THIS VARIABLE TO THE USER THAT YOU WANT RTORRENT TO RUN AS
USER=beispielUser
# Where to store the pidfile
PIDFILE="/var/run/rtorrent-${USER}.pid"
# Path to screen
SCREEN="/usr/bin/screen"
# Name of screen (visible via screen -ls)
SCREEN_NAME="rtorrent-${USER}"
RTORRENT="/usr/local/bin/rtorrent"
# Default (0), lowest=7, highest=0
IOPRIO="7"
# Default (0), lowest=19, highest=-19
NICE="5"

case "$1" in
  start)
    log_daemon_msg "Starting rtorrent"
    start-stop-daemon --start --background --oknodo \
    --pidfile "$PIDFILE" --make-pidfile \
    --chuid $USER --iosched best-effort:$IOPRIO --nicelevel $NICE \
    --exec $SCREEN -- -DmUS $SCREEN_NAME $RTORRENT
    if [ $? -gt 0 ]; then
        log_failure_msg "FAILED."
        log_end_msg 1
        exit 0
    else
        log_end_msg 0

    fi
    ;;
  stop)
    log_daemon_msg "Stopping rtorrent"
    start-stop-daemon --stop --oknodo --pidfile "$PIDFILE"
    if [ $? -gt 0 ]; then
      log_failure_msg "FAILED."
      log_end_msg 1
    else
      log_end_msg 0 
    fi
    ;;
  restart)
    $0 stop
    sleep 1
    $0 start
    ;;
  *)
    echo "usage: $0 {start|stop|restart}"
esac
exit 0

rtorrent Monit-Konfigurationsdatei

Die Monit-Konfigurationsdatei wird im Verzeichnis /etc/monit/conf.d/ unter dem Namen rtorrent-beispielUser abgelegt. Nach einem Neustart kann der Status von rtorrent abgerufen werden.

check process rtorrent-beispielUser with pidfile /var/run/rtorrent-beispielUser.pid
	start program = "/etc/init.d/rtorrent-beispielUser start"
	stop program = "/etc/init.d/rtorrent-beispielUser stop"
        # Nur bei aktiviertem scgi_port 127.0.0.1:5001 wirksam, sonst auskommentieren
        if failed host 127.0.0.1 port 5001 type tcp then restart
        if 5 restart within 5 cycles then timeout

Apache Module aufräumen

Permalink Finns Blog

Auf der Suche nach Leistungsengpässen habe ich in meinem letzten Beitrag festgestellt, dass der Apache Webserver selbst bei scheinbar geringer Anzahl an Anfragen teilweise an seine Grenzen stößt und viel Last erzeugt. Der Einsatz eines Cache-Speichers kommt nicht in Frage, da es sich bei den Anfragen nur selten um herkömmliche Webseiten handelt. Auch möchte ich keinen anderen Webserver wie z.B. nginx einsetzen, da ich mit dem Apache sehr vertraut bin. Der erste Ansatz ist nun, die Apache Module ein wenig aufzuräumen.

Der Apache Webserver erhält viele seiner bekannten Funktion erst durch den Einsatz verschiedener Module. Je mehr Module Apache mit sich herumtragen muss, desto höher ist der Speicherverbrauch. Unbenutzte Module sind also nicht nur überflüssig, sondern verbrauchen unnötig Arbeitsspeicher und können unter Umständen die Beantwortung der Anfragen verlangsamen. Es ist also eine gute Idee, unbenötigt Module zu deaktivieren, man darf hiervon aber keine Performance-Wunder erwarten, weshalb ich mir auch Vorher/Nachher Benchmarks erspare.

Da ich nicht jedes Apache Modul auswendig kenne, ist ein Blick in die Dokumentation hilfreich. Ich verwende Apache 2.2, der Link zur Dokumentation lautet:
http://httpd.apache.org/docs/2.2/mod/
Nutzer der Version 2.4 verwenden entsprechend diesen Link:
http://httpd.apache.org/docs/2.4/mod/

Nachdem man nun weiß, wo man Informationen zu den Modulen selbst findet, möchte man herausfinden, welche Module im Moment geladen sind. Das geschieht mit dem Befehl

apachectl -M
 . Nun stellt sich die Frage, wo die gewünschten Module deaktivieren kann, dies ist auch noch schnell und einfach erledigt. In der Regel werden die meisten Module (zumindest bei einem CentOS System) in der Datei 
/etc/httpd/conf/httpd.conf
  geladen. Um herauszufinden, wo welche Module geladen werden, kann man mit grep danach suchen:

grep -ir LoadModule /etc/httpd/conf/* /etc/httpd/conf.d/* /etc/httpd/vhosts/*

Hinweis: Die Pfade sind höchstwahrscheinlich unterschiedlich, da meine Konfiguration auf 3 Verzeichnisse verteilt ist.

Die größte Frage lautet jedoch: Welche Module mann man deaktivieren?
Da jeder Webserver andere Funktionen bewältigen muss, gibt es keine pauschale Antwort. Es gibt aber zwei Lösungsansätze:

  1. Man schaut nach, welche Anforderungen die auf dem Webserver eingesetze Software hat.
  2. Man guckt in die Dokumentation und überlegt, ob dieses oder jenes Modul überhaupt verwendet wird. Hierbei kann ein greppen der Konfigurationsdateien hilfreich sein.

Kleiner Tipp: Die Module sollten am besten durch auskommentieren deaktivieren, so kann man sie bei Fehlern oder falls man sie später doch benötigen sollte, schnell wieder aktivieren.

Die Datei 

/etc/httpd/conf/httpd.conf
  zeigt nun also beispielsweise einige aktivierte proxy Module. Falls man sich nicht sicher ist, ob diese wirklich benötigt werden, sollte man seine Konfiguration durchsuchen:

grep -ir proxy /etc/httpd/conf/* /etc/httpd/conf.d/* /etc/httpd/vhosts/*

Werden hier keine (nicht auskommentierte) Zeilen angezeigt, wird das Proxy Modul höchstwahrscheinlich nicht verwendet. Nun kann man die entsprechenden Zeilen in der 

httpd.conf
  auskommentieren und nach erfolgreichem Config-Test den Webserver sanft neustarten:
service httpd configtest
service httpd graceful

Sollte der Config-Test fehlschlagen, muss das kürzlich deaktivierte Modul natürlich wieder aktiviert werden. Auch wenn die Verwendung der Module sich auf den meisten Systemen unterscheidet, hier für diejenigen, die es interessiert, meine Liste der nun deaktiverten Module:

#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule info_module modules/mod_info.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule userdir_module modules/mod_userdir.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule proxy_balancer_module/mod_proxy_balancer.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule cgi_module modules/mod_cgi.so
#LoadModule version_module modules/mod_version.so

Der Nutzen dieses Vorhabens ist zwar nicht gigantisch und ein wenig aufwändig, aber auch Kleinvieh macht schließlich Mist.

Probleme mit der Netzwerkbrücke

Permalink Invictus deus ex machina

Für einen Server hatte ich vor einigen Tagen unter Ubuntu 14.04 LTS eine Netzwerkbrücke eingerichtet. Die /etc/network/interfaces Datei sah danach in etwa so aus:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto br0
iface br0 inet dhcp
bridge_ports eth0

Nach einem Neustart gab es dann allerdings ein Problem. Der Server war nicht mehr erreichbar. Der Grund dafür war simpel — es fehlte das Paket bridge-utils — nach der Installation desselben mittels:

apt-get install bridge-utils

funktionierte die Netzwerkbrücke wieder ohne Probleme.

12. Oktober 2014

Definition Freier Inhalte

Permalink deesaster.org

Frei oder offen? Die Freie-Software-Welt streitet sich schon länger über diese Begrifflichkeiten und immer wieder sorgen die unterschiedlichen Interpretationen für Missverständnisse in der Kommunikation. Die Open Definition will nun zumindest für Freie Inhalte klären, was offen ist. Soweit verständlich?

Open Definition 2.0

Die Open Definition wurde letzte Woche in der neuen Version 2.0 (nach 1.1) veröffentlicht und soll klar definieren, was man unter dem Begriff „offen“ versteht, den man im Deutschen eher mit „frei“ übersetzen würde – und dann wieder in die Bredouille gerät, zwischen Freiheit (etwas zu tun) und Freibier (kostenlos) unterscheiden zu müssen.

Dieser letzte Unterschied, der bei Freien Lizenzen wichtig ist, stellt sich aber bei Freien Inhalten gemäß der Open Definition aber nicht. Denn allgemeiner ausgeweitet auf den Begriff Wissen heißt es (Zitat):

„Knowledge is open if anyone is free to access, use, modify, and share it — subject, at most, to measures that preserve provenance and openness.“

Zu Deutsch: „Wissen ist frei, wenn jeder ohne Beschränkung darauf zugreifen, es benutzen, verändern und teilen kann – mit der maximalen Einschränkung, diese Freiheit und die Urheber beizubehalten.“

Die Open Definition lehnt sich damit sehr stark an der Definition für „Free Cultural Works“ an.

Genaue Definition

Damit ein Inhalt/ein Werk offen – oder frei – sein kann, muss es drei Bedingungen genügen:

  1. Es muss unter einer Freien Lizenz veröffentlicht werden. Die Definition für eine Freie Lizenz leitet sich dabei von der Open Source Definition ab und enthält die vier wichtigen Grundsätze, dass jeder ohne Einschränkung das Programm ausführen, untersuchen, verändern und verbreiten darf.
  2. Das Werk muss als Ganzes ohne besondere Kosten (ausgenommen sind einmalige Herstellungskosten, z.B. für das Brennen einer CD) zur Verfügung gestellt werden. Lizenzangaben müssen dem Werk beiliegen.
  3. Das Werk muss in einem offenen Format vorliegen, dass keinen Patenten oder besondere Lizenzen unterliegt. Dabei ist die Definition eines offenes Formates aber so weit abgeschwächt, dass es ausreicht, wenn ein FLOSS-Programm den Inhalt verarbeiten kann.

Vor allem der zweite Punkt unterscheidet Freie Inhalte von Freier Software, da letztere auch explizit gegen Entgelt vertrieben werden kann. Dabei hat der Käufer aber dann die oben aufgeführten Rechte, den Quellcode einsehen und bearbeiten zu können. Die Open Definition will dagegen explizit sicherstellen, dass das Wissen der Freien Inhalten sich ohne Zugangsbeschränkung (und dazu zählen auch monetäre Mittel) verbreiten kann.

Erlaubte Einschränkungen

Die Nutzung einer Freien Lizenz erlaubt dabei gewisse Einschränkungen. So ist es erlaubt, dass der Urheber immer mit angegeben werden muss. Zusätzlich darf die Lizenz auch ein Copyleft haben, sodass abgeleitete Inhalte unter einer gleichen Lizenz veröffentlicht werden müssen. Es gibt noch mehr Einschränkungen, doch dies sind die zwei wichtigsten.

Damit kann man per Definition die (meisten) Creative-Commons-Lizenzen für Freie Inhalte benutzen und erfüllt damit die Open Definition. Das Copyleft wird beispielsweise durch die Share-Alike-Klausel sichergestellt.

Wichtig: Die beiden Creative-Commons-Lizenztypen Non-Derivative (keine Ableitung erlaubt) und Non-Commercial (kommerzielle Nutzung nicht erlaubt) fallen dabei nicht unter die Open Definition, wie auch der CC-Lizenzseite mit dem Hinweis „Dies ist keine Free-Culture-Lizenz.“ entnommen werden kann. Dies bezieht sich dabei auf die Definition für „Free Cultural Works“ von oben, auf der die Open Definiton basiert.

Nachtrag: Eine Liste der Freien Lizenzen, die die Bedingungen oben erfüllen, findet man auf der Webseite.

Wochenrückblick 41/2014

Permalink deesaster.org

Der Wochenrückblick lässt das Geschehen der vergangenen Woche rund um Ubuntu, Linux und Open Source Revue passieren.

Neues rund um Linux

Netflix für Linux verfügbar

Netflix hat seine Browserweiche inzwischen entfernt, die Linux-Nutzern den Zutritt zum Streaming-Dienst verboten hat. So ist es nun möglich, auf einem System mit aktuellen NSS-Bibliotheken und Google Chrome für die DRM-Unterstützung von EME auf Netflix Filme udn Serie auch unter Linux anzuschauen.

Quellen: Ubuntu Insights, heise open, Golem

AMD-Treiber nutzt Open-Source-Basis

AMD hat bestätigt, dass zukünftige der proprietäre Linux-Treiber und der Open-Source-Treiber einen gemeinsamen Unterbau haben werden. Dieser trägt den Namen amdgpu und über eine Dockingschnittstelle können die konkreten Implementierung sich mit dem Basistreiber verbinden.

Quellen: Linux-Magazin, heise open, Pro-Linux

Shellshock überstanden, oder nicht?

Zahlreiche News-Portale meldeten in der letzten Woche eine Übersicht über den aktuellen Zustand der Shellshock-Sicherheitslücke. So sind die aktuellen Bash-Versionen alle gepatcht und keine bisher gefundene Lücke offen. Durch den Exploit-Code von Shellshock war es Angreifern dann aber auch nach dem Fixen noch möglich, in einige Server von Yahoo, Lycos und Winzip einzudringen. Die Server wurden inzwischen vom Netz genommen.

Quellen: Golem 1, Golem 2, heise open, Pro-Linux

Adobes E-Book-Reader spioniert

Was man nicht alles als Feature verkaufen kann. Adobes E-Book-Reader, Digital Editions 4, sammelt Nutzerinformationen wie z.B. welche E-Books installiert sind, welche Seiten gelesen wurden und woher die E-Books kommen. Die Daten werden dann unverschlüsselt an die Server von Adobe übertragen. Laut Adobe sei diese Nutzerüberwachung aber von der Privacy Policy und den AGB gedeckt.

Quelle: Linux-Magazin

Was ist offen/frei?

Diese in Linux-Kreisen eher philosophisch behandelte Frage hat die Open Definition 2.0 geklärt. So muss ein freies Werk sowohl frei gemäß einer freien Lizenz sein, das Format, in dem das Werk vorliegt, muss offen sein und vor allem muss der Zugriff kostenlos (oder zumindest nur gegen einen Unkostenbeitrag) möglich sein.

Quelle: Linux-Magazin, Pro-Linux, heise open

ARD vielleicht mit mehr CC-Inhalten

Eine Arbeitsgruppe der ARD hat den Online-Redakteuren des Senders eine verstärkte Nutzung von Creative-Commons-Lizenzen nahe gelegt. Damit soll der Zugang zu Bildungsinhalten und Angeboten zur Meinungsbildung erleichtert werden. Der Sender will dies entsprechend prüfen, sieht aber vor allem Probleme bei Fremdmaterial wie Aufnahmen von Bildagenturen und Musik, die der GEMA unterliegt.

Quelle: heise open

Spielen unter Linux

Stronghold 3 für Linux

Das Strategiespiel Stronghold 3 ist nach Windows und MacOS X auch für Linux erhältlich. Bei Steam kann der siebte Teil der Reihe gekauft werden. Die gepatchte Gold-Version bessert dabei auch gleich zahlreiche Fehler und Bugs der ersten Version aus.

Quelle: Pro-Linux

Leistungsengpässe unter Linux aufspüren

Permalink Finns Blog

So langsam muss ich feststellen, dass mein Root-Server in einigen Bereichen an seine Grenzen stößt. Ohne Zahlen nennen zu wollen, spüre ich deutlich, dass Datei-, Datenbank und Webserverzugriffe zeitweise nur sehr langsam stattfinden. Für dieses Problem gibt es keine Universallösung, denn die Gründe können vielfältig sein. Bevor ich also über ein Hardware-Upgrade nachdenke, suche ich erst nach Hinweisen, die vielleicht auf ein konkretes Problem mit einer Software oder einem Teil der Hardware hindeuten.

Mit top einen Überblick verschaffen

Das meist verwendete und auf sehr vielen Distributionen standardmäßig vorhandene Tool 

top
gehört zu den Standardanwendungen eines Linux-Administrators. Es zeigt Details zu laufenden Prozesse, der CPU- und Arbeitsspeicher-Auslastung.

top

Die oberen Zeilen zeigen ein paar allgemeine Systeminformationen an und der untere Bereich stellt die laufenden Prozesse dar, standardmäßig sortiert nach der CPU Auslastung. Die Last liegt mit etwa 1.5 im Moment über meinem Durchschnitt von 0.5, bedrohlich ist dieser Wert in einem 4-Kern System aber noch nicht. Arbeitsspeicher ist ebenfalls noch frei und man erkennt schnell, dass ein Großteil der CPU Last zu Kosten von 

httpd
und 
php
verbraucht wird. Die 3. Zeile verrät etwas genauer, was die CPU macht: Die CPU Zeit wird zu 34,2 % für User-Prozesse verbraucht, viel interessanter sind aber die 4,7 % für das Warten auf Festplatten-IO. Das ganze stelle ich mit meinem Monitoring Plugin check_cpu auch grafisch dar, um langfristig einen Überblick darüber haben:

check_cpu

Hier sieht man die CPU Auslastung über einen Zeitraum von 4 Stunden. Da ich die Ausgabe von 

top
heute ein wenig beobachtet habe, kann ich sagen, dass wieder 
httpd
und 
php
diejenigen Prozesse waren, die diese Last erzeugt haben. Besonders unschön finde ich den dunkelroten Bereich, der den IO-Wait Anteil darstellt. Eine Festplatte ist in vielen Systemen häufig der Flaschenhals und die etwa 8,9 ms Zugriffszeit einer gewöhnlichen Festplatte entsprechen aus Sicht der CPU einer Ewigkeit.

Mit iotop herausfinden, wer die Festplatte beansprucht

Nun möchte ich etwas mehr über die Festplattenzugriffe wissen, dazu eignet sich iotop recht gut. Es stellt sowohl die gesamten Lese- und Schreibraten dar als auch die Raten einzelner Prozesse. 

iotop -o
  ist recht praktisch, da es nur IO-aktive Prozesse anzeigt:

iotop

Große Überraschungen habe ich nicht beobachten können, die üblichen Prozesse erzeugen eben ein wenig IO, vor allem Datenbanken lesen und schreiben schließlich viel. An dieser Stelle sei angemerkt, dass mein ownCloud Client im Moment ein wenig mit der Synchronisierung beschäftigt ist. In der Vergangenheit lief dies aber deutlich schneller ab und hat nur eine kaum feststellbare Systemlast erzeugt.

Auch sehr praktisch: iostat

Ohne Parameter aufgerufen zeigt iostat die Anzahl der seit Systemstart gelesenen und geschriebenen Blöcke an. Um aktuelle Werte zu erhalten, kann man z.B. 

iostat 1
  aufrufen:

iostat

Im Mittel verhalten die Platten sich eigentlich recht ruhig, aber hin und wieder schlägt ein Prozess richtig zu und schreibt ca. 20.000 Blöcke (ca. 10 MB bei 512k Blockgröße).

Für das genauere Betrachten der CPU Aktivitäten gibt es noch andere Tools wie 

vmstat
  oder
sar
, das hilft mir an dieser Stelle aber nicht wirklich weiter.

Netzwerkauslastung mit iftop darstellen

Zwar kann ich dieses Problem aufgrund der geringen Schreib- und Leseraten ausschließen, aber vielleicht gibt es ja ungewöhnlichen hohen Netzwerkverkehr. Das kann man mit 

iftop
  oder 
iptraf-ng
  schnell darstellen, wobei ich auf die schnelle lieber iftop verwende:

iftop

Die Netzwerkauslastung ist im Moment verschwindend gering. Der mit 100 MBit/s angebundene Server verwendet im Moment nicht einmal 1Mbit/s, Probleme in diesem Bereich kann ich also ausschließen.

Offene Dateien mit lsof anzeigen

Zuletzt möchte ich noch lsof erwähnen, welches offene Dateien anzeigt. Ohne Parameter wird man von einer Informationsflut erschlagen, aber da ich früher httpd als einen der Verursacher der hohen Last ermitteln konnte, möchte ich jetzt wissen, welche Dateien vom Webserver momentan geöffnet sind, dazu verwende ich 

lsof -u apache -c httpd
  (User apache / Prozess httpd). Nun weiß ich, dass ca. 4000 Dateien vom Apache Webserver geöffnet sind, darunter viele Module und Log-Dateien.

lsof

Ich denke, dass ich im Bereich Apache weiter suchen sollte. Außerdem weiß ich nicht, wie sehr sich das schreiben der Log-Dateien auf die IO-Operationen auswirkt, eventuell kann ich mit einer RAM-Disk für die Log-Dateien die IO-Last ein wenig reduzieren.

Shuttle-Service auf der Ubucon

Permalink Ubucon

Für den Transport zwischen Bahnhof Katlenburg und dem Veranstaltungsort, der Burgbergschule Katlenburg, bzw. zwischen Veranstaltungsort und den Social Events am Freitag und Samstag steht ein Shuttle-Service zur Verfügung.

Dieser kann über die Rufnummer

0151 - 65790940

erreicht werden und ist auch am Bahnhof Katlenburg ausgeschrieben.

Reverse Proxy mit Nginx in Docker Container

Permalink debinux

Das Szenario

– Nginx als SSL Reverse Proxy innerhalb eines Docker Containers
– Externe Domäne www.domain.tld
– Lokaler Webserver auf Port 8080/TCP/HTTP > http://localhost:8080
– Alle Anfragen auf Port 80/TCP/HTTP nach 443/TCP/HTTPS innerhalb des Containers.

Alle Befehle werde ich als Benutzer root ausführen.

Bitte betrachtet den Artikel als Hilfestellung.
Haltet euch immer vorrangig an die offiziellen Dokumentation Nginx’ und Dockers’. :-)

Installation Dockers

Debian Wheezy

Installation des Kernels aus dem Backport Repository mit anschließendem Neustart.
Dies ist notwendig, da erst ein Kernel ab Version 3.10 empfohlen wird.

1
2
3
4
echo deb http://ftp.us.debian.org/debian wheezy-backports main > /etc/apt/sources.list.d/wheezy-backports.list
apt-get update -y
apt-get -t wheezy-backports install linux-image-amd64 -y # Für ein amd64-basierendes System
reboot
OVH VMware vServer Besitzer sollten die Datei “/etc/grub.d/06_OVHkernel” vor dem Neustart löschen und “update-grub2″ ausführen, damit der neue Kernel aktiv wird.
Der OVH Kernel ist leider etwas beschnitten und bietet unter anderem keine cgroups.

Nun Docker installieren (lassen). Vorab “curl” installieren:

1
2
apt-get install curl
curl -sSL https://get.docker.io/ | bash

Ubuntu 14.04

Ich empfehle den Docker Installer zu verwenden. Es wird das offizielle Repository installiert. Auch hier im Vorfeld “curl” installieren:

1
2
apt-get install curl
curl -sSL https://get.docker.io/ubuntu/ | bash

Konfiguration

Ab hier erst einmal einige Informationen zur Auffrischung der Docker-Kenntnisse:

  • Docker Images werden in der Regel aus dem Repository Dockers’ gezogen (“pull”).
  • Images (Ubuntu, Debian, Centos etc., Debian + Apache, Centos + Nginx und viele mehr) können entweder direkt verwendet- oder durch Dockerfiles manipuliert werden.
  • Docker Images sind für Container immer read-only! Images werden bei Ausführung nie verändert!
  • Ein Container benutzt eine Kopie des Images als Basis. 5 Container mit selben Image, benutzen jeweils eigene Kopien des Images.

Als Grundlage des Reverse Proxys dient das aktuellste (> “latest”) Ubuntu Image “Phusion”, das dem offiziellen Ubuntu Image Dockers’ einige Optimierungen voraus hat.

Ein Dockerfile erweitert die Basis-Installation um einen Nginx Server aus dem Nginx Repository.

Ein Blick in diese Datei schadet nicht

  • Die Zeile “FROM dockerfile/ubuntu” ersetzt “sed” später durch das Phusion Image (“phusion/baseimage:latest). Dies ist die Basis.
  • Durch die “RUN” Befehle wird das Image um Nginx aus dem Nginx PPA erweitert, diesem die Daemon-Funktionalität entzogen (notwendig für Docker) und noch einige weitere Kleinigkeiten angepasst.
  • “VOLUME” Anweisungen erstellen “mount points”, auf die von außen zugegriffen werden kann.
  • “WORKDIR” beschreibt das “working directory” (no shit, Sherlock ;-) ). So werden etwa alle “RUN” Anweisungen in diesem Verzeichnis ausgeführt.
  • “CMD” hält die Anweisung bereit, Nginx zu starten.
  • “EXPOSE” beschreibt die Ports, die im Container während der Laufzeit aktiv sein können.

Alle Daten werde ich im Verzeichnis “/opt” ablegen. Der letzte Befehl “docker build” wird das Dockerfile abarbeiten und das veränderte Phusion Image mit der Bezeichnung “phusion/nginx” ablegen.

1
2
3
mkdir /opt/docker_nginx/ ; cd /opt/docker_nginx
wget -q -O - https://raw.githubusercontent.com/dockerfile/nginx/master/Dockerfile | sed "s/dockerfile\/ubuntu/phusion\/baseimage:latest/g" > Dockerfile
docker build -t="phusion/nginx" .

Hat alles geklappt, schließt die Einrichtung mit “Successfully built XYZ” ab. Wobei XYZ einer eindeutigen ID entspricht.
Nun besitzt der Host zwei Images, zu prüfen mit “docker images”:

1
2
3
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
phusion/nginx       latest              19c681f50628        36 minutes ago      309.1 MB
phusion/baseimage   latest              cf39b476aeec        8 days ago          289.4 MB

Das Phusion “baseimage” ist ebenso im lokalen Speicher vorhanden, da es als Basis für das um Nginx erweiterte Image diente.
Dieses könnte durch ein “docker rmi phusion/baseimage” gelöscht werden, ohne das Nginx Image zu zerstören.

Die Verzeichnisse “/etc/nginx/sites-enabled”, “/etc/nginx/certs” sowie “/var/logs/nginx”, möchte ich vom Host in den Container mounten, um die Verwaltung zu erleichtern.
Auf dem Host erstelle ich drei Ausgangspunkte für diese Verzeichnisse:

1
mkdir /opt/docker_nginx/{sites,logs,certs}

Eine einfache Site-Konfiguration für einen Reverse Proxy lege ich unter “sites” ab:

1
nano /opt/docker_nginx/sites/reverse_proxy

Inhalt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
server {
        listen 80;
        return 301 https://www.domain.tld/$request_uri;
}
server {
        listen 443;
        server_name www.domain.tld domain.tld;
        ssl on;
        ssl_certificate         /etc/nginx/certs/www.crt;
        ssl_certificate_key     /etc/nginx/certs/www.key;
        ssl_ciphers 'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA';
        ssl_prefer_server_ciphers on;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        add_header Strict-Transport-Security max-age=15768000;
 
        location / {
 
                proxy_set_header        Host $host;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Forwarded-Proto $scheme;
 
                proxy_pass      http://localhost:8080;
                proxy_redirect  off;
        }
}

Das Zertifikat und der zugehörige Schlüssel liegen im Verzeichnis “/opt/docker_nginx/certs”. Die Namen (www.*) müssen in der Site entsprechend angepasst werden. Der Pfad bleibt bestehen!

Nun darf der Container mit folgendem Parameter erstmalig gestartet werden:

1
docker run -p 443:443 -p 80:80 -d -v /opt/docker_nginx/sites:/etc/nginx/sites-enabled -v /opt/docker_nginx/certs:/etc/nginx/certs -v /opt/docker_nginx/logs:/var/log/nginx phusion/nginx

Durch diese Anweisung werden Port 80/TCP sowie 443/TCP vom Host in den Container weitergeleitet, die drei besagten Verzeichnisse eingebunden (“-v HOST_VERZ:CONTAINER_VERZ”) und der Container “detached” gestartet (> nicht-interaktiv, im Hintergrund).

Ein Zugriff auf www.domain.tld leitet ab diesem Punkt auf die lokale Installation auf Port 8080 weiter.

Zur Verwaltung des Containers:

1
2
3
4
5
6
docker ps # Listet gestartete Container
docker ps -a # Listet gestartete und gestoppte Container
docker images # Listet Images
docker stop CONTAINER_ID # Stop einen vorhandenen Container
docker start CONTAINER_ID # Startet einen vorhandenen, gestoppten Container
docker run XYZ # Erstellt (!) einen neuen Container. Nicht mit "start" zu verwechseln!

Wacom Bamboo Pen fixen

Permalink [ENC]BladeXP's Blog

Seit einiger Zeit verfüge ich ja über ein Grafiktablet vom Typ Wacom Bamboo Pen. Dieses hab eich schon etwas länger nicht mehr benutzt, und durch ein neuliches Update auf eine neuere Version des X-Servers wollte dies nur noch als Mausersatz, nicht aber als Grafiktablet funktionieren.

Durch die Meldungen im Journal bin ich darauf aufmerksam geworden das sich wohl evdev spontan dazu entschieden hat sich um mein Grafiktablet zu kümmern, eine Entscheidung, welche dieser Treiber ohne meine Zustimmung getroffen hat!

Der evdev Treiber bekommt hier unter Arch Linux seine Konfiguration über die Datei /etc/X11/xorg.conf.d/10-evdev.conf. Dort wird, für eine reihe typischer Eingabegeräte, ein sog. Catchall eingerichtet, also eine Regel, die für alle Geräte einer bestimmten Klasse greift. Nachfolgende Regeln müssen daher durch ein # am Anfang der Zeile deaktiviert werden:

Section "InputClass"
        Identifier "evdev tablet catchall"
        MatchIsTablet "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection
Hintergrund ist, dass so ein Wacom neben der Nutzung als Grafiktablet auch als Mausersatz taugen könnte, das wollen wir nicht, wir haben ja schließlich nicht umsonst den Wacom Treiber xf86-input-wacom installiert. Die Änderungen an dieser Datei greifen übrigens erst nach einem Neustart des X-Servers.

Netflix unter Ubuntu 12.04

Permalink deesaster.org

Eigentlich hatte ich mir gestern Abend vorgenommen einen Artikel zu Netflix zu schreiben, da der Media-Streaming-Dienst ja gerade sehr in ist und selbst Canonical Werbung dafür macht. Nachdem die NSS-Bibliotheken in Ubuntu vor ein paar Wochen aktualisiert wurden und Google Netflix seine Browserweiche in Chrome entfernt hat, die auch Linux nicht mehr aussperrt, sollte das ja kein Problem sein.

Und in der Tat, es war recht langweilig. Von der Chrome-Webseite lädt man das entsprechende Deb-Paket herunter und installiert es. Gemäß Wiki sollte man noch die Datei /etc/default/google-chrome anlegen, damit die Paketinstallation nicht in den Paketquellen herumpfuscht. Chrome ist dabei zwingend Voraussetzung, da es aktuell der einzige Browser auf dem Markt ist, der die DRM-Technik EME unterstützt.

Und nach dem Browserstart einfach bei Netflix zum kostenlosen Probemonat anmelden und fertig. Es gab keinerlei Probleme, Hänger, Tonstörungen oder Ähnliches.

Wieso im übrigen Netflix, wo DRM doch Teufelszeug ist? Zum einen kaufe ich immer weniger DVDs und suche schon länger einen Streaming-Dienst, wo ich auch mal einen Film oder eine Serie anschauen kann. Da das ganze legal sein soll und unter Linux laufen muss, gab es bisher aber kaum gute Möglichkeiten. Vor allem die „deutschen“ Dienste bieten Ihr Material oft nicht in hoher Auflösung und/oder nicht in Originalsprache an. Bei Netflix habe ich beides. Ob ich es nach dem Probemonat noch weiter nutze, wird sich zeigen.

11. Oktober 2014

Kurztipp: Festplatten-Standby mit systemd konfigurieren

Permalink /var/pub/chris_blog

Download PDF

Festplatten lassen sich automatisch mit hdparm in den Ruhezustand versetzen. Während sich der entsprechende Befehl (hdparm -B intervall device) früher einfach in die Datei /etc/rc.local, die bei sysvinit-basierenden Linux-Distributionen nach erfolgtem Boot ausgeführt wurde, geschrieben werden konnte, sieht das bei systemd-basierenden Pinguinen anders aus. Hier empfiehlt sich die Erstellung eines Services.

Es muss zuerst ein systemweiter Dienst erstellt und anschließend aktiviert und gestartet werden:

# vi /usr/lib/systemd/system/sda-spindown.service
[Unit]
Description=Set HDD spindown

[Service]
Type=oneshot
ExecStart=/sbin/hdparm -B 241 /dev/sdb
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

ESC ZZ
# systemctl daemon-reload
# systemctl enable sda-spindown.service
# systemctl start sda-spindown.service

Das erfolgreiche Übernehmen der Werte lässt sich ebenfalls über die Dienstverwaltung überprüfen:

# systemctl status sda-spindown.service
sda-spindown.service - Fix excessive HDD parking frequency
   Loaded: loaded (/usr/lib/systemd/system/sdd-spindown.service; enabled)
   Active: active (exited) since Sa 2014-10-11 14:27:16 CEST; 3min 32s ago
   Process: 4336 ExecStart=/sbin/hdparm -B 241 /dev/sda (code=exited, status=0/SUCCESS)
...

Vielen Dank an dieser Stelle an den folgenden Blog, der mir den entsprechen Tipp gab: [klick mich!]

:)

Download PDF

10. Oktober 2014

Syncthing Webinterface nicht erreichbar

Permalink thomas-leister.de

Syncthing

Syncthing

Heute wollte ich einmal wieder die Synchronisationssoftware Syncthing ausprobieren. Als Frontend wird eine Weboberfläche genutzt, die über localhost:8080 im Webbrowser aufrufbar ist. Obwohl der Syncthing Service gestartet war, konnte die Oberfläche aber nicht geladen werden, weil auf Port 8080 keine Antwort kam.

Beim manuellen Aufruf von „syncthing” in der Kommandozeile wurde folgendes angezeigt:

[monitor] 14:57:50 INFO: Starting syncthing
[MACPC] 14:57:50 INFO: syncthing v0.10.0 (go1.3.3 linux-amd64 default) nobody@var-lib-archbuild-extra-x86_64-flexiondotorg 2014-10-08 11:58:41 UTC
[MACPC] 14:57:50 INFO: My ID: MACXXXX-4QHMPIU-XXXXXXX-XXXXXXX-VD7WFNV-XXXXXXX-3NGHCFX-XXXXXXX
[MACPC] 14:57:50 FATAL: Cannot open database: leveldb: manifest missing comparer name - Is another copy of Syncthing already running?
[monitor] 14:57:50 INFO: Syncthing exited: exit status 1

Offenbar war die Datenbank korrupt, was dazu führte dass Syncthing nicht starten konnte.

Durch das Löschen des „index” Verzeichnisses im User Home und einen anschließenden Syncthing Neustart konnte ich den Fehler beheben:

rm -r ~/.config/syncthing/index

 

Quelle: https://github.com/syncthing/syncthing/issues/535