Sony Xperia unbedienbar, Display schwarz

Mein Sony Xperia begab sich heute unbemerkt in einen völlig unbedienbaren Zustand. Display war schwarz, keine Reaktion auf irgendwas.

Wie sich rausstellte, ist das durchaus ein bekanntes Absturzphänomen, ein „Black Screen Of Death“.

In meinem Fall hat sich das wie folgt beheben lassen:

  1. Lautstärke hoch und Power Taste gemeinsam drücken und halten für etwa 10 Sekunden
  2. So lange halten bis man drei Vibrationen spürt. Das Handy ist dann abgeschaltet
  3. Gerät eine Minute liegen lassen
  4. Wieder normal einschalten durch mehrsekündiges Drücken der Power Taste.

Sofern keine anderen Schäden vorliegen, sollte das Telefon dann wieder einsatzbereit sein.

Danke an criticecho.com

restic – ein Stern am Backup Himmel

Habe mich länger nicht zu Wort gemeldet, wahrscheinlich weil es zuletzt sehr viel „Business as usual“ bei mir gab und wenig richtig Neues, Inspirierendes.

Nun durfte ich restic entdecken. Ein Backup Tool, bei dem derzeit meine Begeisterung kaum ein Ende hat.

Was macht restic für mich so besonders?

  • restic besteht aus einer einzigen Datei, es gibt binaries für beinahe alle Plattformen. Mittels „–self-update“ besitzt es sogar einen eigenen Update Mechanismus.
  • restic erstellt verschlüsselte, inkrementielle Backups, inklusive Deduplizierung, und es ist enorm schnell dabei.
  • restic beherrscht als Backup Ziel zum Beispiel (natürlich neben lokal eingebundenen) sftp sowie S3 kompatible Storages (bzw. Buckets). Via rclone lassen sich noch viele weitere Ziele verwenden.
  • Gute Dokumentation und ein sehr informatives und hilfsbereites Forum.
  • Es kann mittels Pipes (stdin/stdout) sichern und wiederherstellen. Zum Beispiel um mal so eben das sql File aus der Sicherung von gesten an mysql zu pipen.

Quickstart mit restic

Nachfolgendes versteht sich nicht als fixfertiges Tutorial. Es soll neugierig machen und ein bisschen eine Einführung bieten. Ich empfehle die Doku zu lesen, nach ein paar Minuten lassen sich selbst komplexe Backup Strategien sehr schnell umsetzen.

Das restic Binary kann man hier herunterladen. restic ist natürlich auch in vielen Paketverwaltungen diverser Distributionen enthalten. Da es aber so herrlich einfach geht, hab ich es bisher immer herungergeladen, entpackt und nach /usr/local/bin/restic kopiert.

restic speichert Backups in einem Repository. Dieses befindet sich zum Beispiel auf einer USB Platte, einem Cloud Anbieter, einem Server mit sftp Zugriff etc.
Es muss zuerst initialisiert werden mittels

restic -r /repo/ziel init

Anschließend wählt mein ein Kennwort für das Repo. Danach ist die Initialisierung abgeschlossen. Die Schreibweise für andere Backupziele ist hier sehr gut erklärt. Nun kann man ein Backup erstellen zum Beispiel mit

restic -r /repo/ziel backup /home

Damit erzeugen wir den ersten Snapshot. Alle abgelegten Snapshots eines Repos lassen sich mit

restic -r /repo/ziel snapshots

auflisten. Ein restore ist mehr als einfach, ein Beispiel

restic -r /repo/ziel restore latest --target /tmp/restore-work

Bei allem was es tut ist restic so unglaublich schnell, dass ich am Anfang Zweifel hatte, ob das alles korrekt funktioniert. Daher habe ich recht bald ein paar Test Restores, teilweise von kompletten Systemen, gemacht. Es hat alles bestens geklappt.

Als Storage für restic Backups kann ich wasabi empfehlen. Es ist 100% kompatibel mit Amazon S3 – dabei aber wesentlich günstiger.

E-Mail Sicherheit: Spam- und Virenschutz

Im Jahr 2003 habe ich begonnen, mich intensiv mit Tools wie MailScanner, amavis, SpamAssassin und clamav auseinanderzusetzen. Ich habe dann begonnen, diese mit Hilfe von diversen Tutorials entsprechend zu kombinieren, um dann ein solides Antispam Gateway für mein Unternehmen und unsere Kunden zur Verfügung zu haben.

Das hat soweit auch gut funktioniert und wurde über die Jahre von mir gepflegt und weiterentwickelt. Irgendwann musste ich es dann aber einsehen: Der Aufwand wird zu hoch.

Mit stetig steigender Anzahl von Bedrohungen zum Beispiel durch Cryptotrojaner (eingebettet in plausibel aussehende Mails bzw. PDF Attachments), immer geschickter aufgemachten Phishing Mails und einem stetig steigenden Volumen an „klassischem“ Spam kam ich nicht mehr hinterher. Zudem führten meine Versuche, die Erkennungsraten zu verbessern, auch zu einer erhöhten Anzahl an False-positives (also „gute“ Mails, die dennoch gefiltert wurden).

Die Idee, das ganze Thema zu outsourcen, wuchs langsam in mir. Ich habe dann einige Anbieter getestet. Geworden ist es schließlich  EuropeanMX. Hier gibt es nicht nur sehr umfangreiche Möglichkeiten der Konfiguration (ohne dass es dabei unübersichtlich wird), sondern auch guten Support und einen sehr unbürokratischen Umgang. Zudem gibt es auch die Möglichkeit, deren Mailserver für outbound Mails zu nutzen. Ich kann es daher definitiv empfehlen.

Ordner auf einer QNAP Freigabe auf Apple Macs nicht mehr sichtbar

In unserem heterogenen Windows/Mac Netzwerk fungiert eine QNAP NAS als Fileserver. Eines Tages war hier auf einmal ein Ordner auf den Macs nicht mehr sichtbar. Auf Windows Rechnern kein Problem, auch nicht mit den selben Benutzer Accounts. Es machte auch keinen Unterschied ob sich die Macs via SMB oder AFP Protokoll verbunden haben.

Nachdem ich Rat bei einem recht Mac erfahrenen Kollegen gesucht habe, hat sich relativ schnell rausgestellt, dass der Ordner für die Macs auf unsichtbar (hidden) gestellt war. Dies hat sich feststellen lassen in dem die Anzeige versteckter Dateien und Ordner aktiviert wurde, mittels (Terminal)

defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder

(Analog dazu kann das mittels FALSE wieder deaktiviert werden.) Danach wurde der Ordner in leicht hellerer Farbe angezeigt.

Warum die Macs diesen Ordner als versteckt erlebten ist mir bis heute nicht klar. Am NAS waren keine erweiterten Attribute oder dergleichen aktiviert, hier war er bestimmt nicht versteckt. Der erste Versuch war also den Ordner am Mac wieder sichtbar zu machen mittels

chflags nohidden /Volumes/Freigabename/Ordnername

im Terminal des Macs. Das hat fürs erste funktioniert. Allerdings nur bis zum nächsten Reboot. Danach war der Ordner wieder versteckt.

Die endgültige Lösung brachte hier erst das entfernen aller Attribute im Terminal eines Macs mittels

xattr -c /Volumes/Freigabename/Ordnername

Dieser Befehl kann je nach Situation auch noch um -r für rekursive Abarbeitung ergänzt werden. Dies war bei mir nicht nötig, da die Unterordner nicht versteckt markiert waren. Danach war der Ordner dauerhaft wieder sichtbar, auch auf allen anderen Macs.

Eine vollständige Erklärung dafür habe ich nicht. Es scheint für mich so als würden die Macs dieses hidden Attribut irgendwo in eine der vielen Meta Dateien (.DS_Store, ._Dateiname, etc.) pflegen. Das ist für mich die einzige Erklärung warum nach dem Ausführen von xattr -c die Sichtbarkeit auch auf allen anderen Macs wieder gegeben war. Wie es aber überhaupt dazu kam dass dieser Ordner für Macs unsichtbar markiert war, ist mir völlig unklar.

Mit dem Luftschiff in die Wolke (Gastbeitrag von Christopher Supnig)

Als wir im Jahr 2015 mit der Entwicklung von appointmed der Praxissoftware für Physiotherapeuten begonnen hatten haben wir im Backend auf Java-basierte Microservices gesetzt. Wir hatten 3 Server im Rechenzentrum eines Bekannten angemietet, die wir selbst warten konnten. Das funktionierte anfangs sehr gut. Wir hatten gleich von Beginn an drei gutgesinnte Testkunden, die das Programm begleitet haben. Auf einem der Server lief unser Produktivsystem, auf einem unser Testsystem und auf dem letzten unser Entwicklungssystem und ein Buildserver, der es uns ermöglichte neue Versionen direkt auf die einzelnen Umgebungen auszuliefern.

Das hört sich doch eigentlich sehr gut an, nicht?
Dieses Luftschiff wollte jedoch nicht so recht abheben. Wie man sich schon denken kann, erzeugen drei Kunden nicht gerade eine übermäßige Last auf dem System und als wir mehrere Kunden dazu bekamen und die Requests mehr wurden, hatten wir immer mal wieder Probleme mit Systemupdates und einzelne Services, die in manchen Situationen nicht genügend Speicher bekamen.
Uns war klar, dass wir unsere Architektur überarbeiten mussten und da wir auch langfristig aus dem kleinen Rechenzentrum in Wien ausziehen wollten, haben wir uns nach Alternativen umgesehen. Bernhard, unser Backendspezialist, ist zu dieser Zeit auf die AWS Re:Invent nach Las Vegas geflogen und hat einige interessante Konzepte mitgebracht. Für mich war der Begriff “Serverless” damals noch sehr neu. Serverless bedeutet eine Applikation auf einer Infrastruktur laufen zu haben, ohne auf die darunterlegenden Server bzw. Container Rücksicht nehmen zu müssen.

Auf in die Wolke

Nach einigen Überlegungen sind wir dann zu dem Schluss gekommen, dass eine Migration in die AWS Cloud für uns am besten ist. Der Einfachheit halber hatten wir einfach unsere Microservices auf EC2 Instanzen gestartet und diese miteinander verbunden. Wie ihr euch vorstellen könnt, bedeutete das einiges an Kosten und wir hatten wieder “Server” um die wir uns kümmern mussten. Zwar waren diese einfacher zu verwalten, da die Updates größtenteils automatisch durchgeführt wurden, doch so ganz glücklich waren wir damit noch nicht.

Lambda to the rescue

Wir haben uns immer mehr in die AWS Infrastruktur eingelesen und sind auf den Lambda-Service gestoßen. Dieser ermöglicht es Funktionen direkt auszuführen, ohne diese auf einem bestimmten Server installiert zu haben. Diese Funktionen können auf unzählige Methoden angesprochen bzw. angestoßen werden. Die für uns wichtigsten sind REST-Requests, Events, Zeitgesteuert und durch E-Mails. AWS erlaubt es diese Funktionen in unterschiedlichen Programmiersprachen zu erstellen, was sehr angenehm ist. Aufgrund der Gewschwindigkeits- und Speichervorteile haben wir uns für NodeJS entschieden.
Einen der ersten Services, die wir auf so eine Funktion umgestellt hatten, war unser Terminerinnerungsservice. Dieser prüft zeitgesteuert, welche Termine anstehen und informiert die Patienten entweder per SMS oder per E-Mail darüber. Alleine durch diese Umstellung konnten wir knapp €50,— von unserer monatlichen Infrastrukturrechnung streichen.

Aufgrund der guten Erfahrungen mit AWS Lambda sind wir nun dabei alle restlichen Services umzustellen bis wir hoffentlich bald wirklich “Serverless” in der Wolke unterwegs sind.

Christopher Supnig ist Webentwickler und Co-Founder von appointmed. Wenn Sie mehr Erfahren möchten, besuchen Sie ihn auf https://www.supnig.com

Cashbee Kassensoftware auf Linux

Unsere auf Unicenta basierende Kassensoftware Cashbee läuft an sich auf einem Linux System mit Java problemlos. Es muss lediglich die cashbee.jar gestartet werden. Zwei Stolpersteine sind allerdings zu beachten:

Zum einen wird für die Signatur, bzw für die benötigten Schlüssellängen die „java unlimited strength policy“ benötigt. Es sollte genügen diese über die Paketverwaltung der Distribution zu installieren oder gemäß den Anweisungen hier zu installieren.

Manche Anwender berichten zudem über Probleme bei der Inbetriebnahme der Signatureinheit. Diese wird manchmal auf Anhieb nicht von Cashbee gefunden. In diesem Fall ist sicherzustellen, dass die benötigten Pakete und Libaries installiert sind, dazu gibt es ein PDF von Gemalto. Klappt es dann immer noch nicht, sollte beim Aufruf von cashbee der Pfad zur „security.smartcardio.library“ manuell angegeben werden. Zum Beispiel mittels

java -Dsun.security.smartcardio.library=/lib/x86_64-linux-gnu/libpcsclite.so.1 -jar /pfad/zu/cashbee.jar

Der Pfad kann natürlich je System variieren.

Mit diesen Anpassungen sollte einem gesetzeskonformen Betrieb inkl. Signatur auf Linux nichts mehr im Wege stehen!

GPLpos Update Signatur bzw. RKSV 2017

Da mich wohl aufgrund des letzten Beitrages sehr viele Mails erreichen, erlaube ich mir nochmal Infos zu unserer Software Cashbee hier zu veröffentlichen.

Cashbee ist eine gesetzeskonforme Registrierkassensoftware und basiert im Kern ebenso wie GPLpos auf Unicenta. Die digitale Signatur mitsamt der Registrierkassensicherheitsverordnung (RKSV) ist voll implementiert. Ein Umstieg von GPLpos oder Unicenta ist problemlos möglich. Bei Interesse oder Fragen bitte einfach ein kures Mail an [email protected]

 

GPLpos – Beispiel für Risiken bei Free Open Source Software?

Die Registrierkassenpflicht in Österreich geht in die heiße Phase. Mit 01.04.2017 müssen alle Registrierkassen über eine Signatureinheit verfügen und Belege entsprechend signieren. Ein Vorgang der für die Softwareentwickler nicht ganz einfach ist und doch ein gewisses Maß an Wissen über Kryptographie und gängige Signaturverfahren erfordert.

Ende 2015 wurde dazu das Projekt GPLpos ins Leben gerufen. Ein Fork der durchaus bewährten Open Source Software Unicenta. Durchgeführt wurden im wesentlichen Übersetzungen von Textbausteinen der Software sowie Anpassungen von Icons. Zudem das vollmundige Versprechen, dass dieser Fork rechtzeitig alle gesetzlichen Anforderungen der Registrierkassensicherheitsverordnung (RKSV) erfüllen wird.

GPLpos verzeichnet seitdem etwa tausend Downloads. Hunderte Anwender sind in der Hoffnung, eine kostenlose und gesetzeskonforme Registrierkasse zu bekommen auf den Zug aufgesprungen und haben ihr Unternehmen auf GPLpos ausgerichtet. Die Weinbauschule Eisenstadt zum Beispiel hat einige vorbildlich verfasste Tutorials inklusive Videos erstellt und die Software damit weiter bekannt gemacht. Auch andere IT Dienstleister sind aufgesprungen und haben die Software ihren Kunden angedeihen lassen.

Seitdem gab es kein neues Release von GPLpos. Es blieb ein Unicenta mit ein paar minimalen Anpassungen, die ein Laie in 20 Minuten hätte erledigen können. Dass die RKSV noch rechtzeitig in die Software integriert wird ist mehr als unwahrscheinlich. Alleine wir haben bereits um die 50 GPLpos Anwender auf unsere Cashbee umgestellt.

Was ist passiert?
Im wesentlichen wurde dem Autor geglaubt. Wenn jemand eine Software publiziert, neigen wir dazu ihm zu glauben dass er auch die Weiterentwicklung auf die Reihe kriegt. Und wer mich kennt weiß, dass dieser Blogpost garantiert kein Statement gegen Open Source Software wird. Weil Open Source Software großartig ist und die gesamte IT Welt mitsamt dem Internet wäre heute ohne Open Source nicht so weit wie sie ist. Aber es gibt eben auch Gefahren. Die „No Warranty“ Gefahr quasi. Freie, kostenlose Open Source Software nimmt auch den Anwender in die Pflicht. Ihm muss klar sein, dass er etwas kostenlos bekommt, sich aber im Gegenzug auch auf nichts verlassen kann. Das Leben ändert sich, auch das von Open Source Entwicklern. Eines Tages fehlt zum Beispiel schlicht die Zeit um etwas weiter zu entwickeln. Die Liste der anfangs vielversprechenden, aber mittlerweile eingestellten Open Source Projekte ist lang.

Gentoo für den Raspberry Pi 3: gentoo4raspi-201612

Ich habe mein Gentoo Image für den Raspberry Pi 3 auf den aktuellen Stand gebracht und somit die Version 201612 released. Integriert wurde auch der aktuelle Raspberry Pi Kernel 4.4.37-v7, was wohl hinsichtlich aktueller Kernel Meldungen auch securitymäßig relevant ist.

Download Gentoo4Raspi 201612 auf Sourceforge (3,39 GByte)

Änderungen 201610 -> 201612
Kernel von Linux 4.4.31-v7+ #922 -> Linux 4.4.37-v7+ #936
– dev-libs/expat-2.1.1-r2 -> dev-libs/expat-2.2.0-r1
– sys-libs/db-4.8.30-r2 -> sys-libs/db-5.3.28-r2
– sys-libs/readline-6.3_p8-r2 -> sys-libs/readline-6.3_p8-r3
– net-misc/openssh-7.3_p1-r6 -> net-misc/openssh-7.3_p1-r7
– dev-lang/python-3.4.3-r1 -> dev-lang/python-3.4.5
– net-dns/bind-tools-9.10.4_p3 -> net-dns/bind-tools-9.10.4_p4
– net-misc/ntp-4.2.8_p8 -> net-misc/ntp-4.2.8_p9
– sys-devel/flex-2.5.39-r1 -> sys-devel/flex-2.6.1
– net-misc/whois-5.2.12 -> net-misc/whois-5.1.5
– Neu: sys-apps/iproute2-4.4.0
– dev-libs/glib-2.46.2-r3 -> dev-libs/glib-2.48.2

Allgemeine Infos:
– Vollständig getestet für den Raspberry Pi 3. Im wesentlichen installiert laut diesem und diesem Guide
– Download ist eine gezipte img Datei für eine 16GB SD Karte. Zum Schreiben empfiehlt sich der Win32 Disk Imager
– Hostname „raspi.local“, root-pw: „password“
– Achtung: root Login per ssh ist erlaubt (ggf. anpassen in /etc/ssh/sshd_config)
– verwendet wurde der raspberry Kernel inklusive der nonfree Module um zb. den WLAN Chipsatz zum Laufen zu bringen
– wlan0 ist nicht eingerichtet, eth0 default auf dhcp