Daniels Blog

Increase Headphone Volume in Cyanogenmod 12

Being used to the extremely loud headphone volume of AIWA walkmen from the 1990s, my Android volume was always a bit too low for my ears.

I tried to play around with CMs included "DSP Manager" but it never worked as I expected and I disliked to need an additional app to increase volume on my device.

In Cyanogenmod headphone volumes are configured in /system/etc/snd_soc_msm/snd_soc_msm_2x
(Maybe this will work in every recent Android distribution, no idea though, I am on CM12 Lollipop)

Just edit this file and search for the stanzas called "Headphones" and "PROXY Rx Headphones"

Inside of those you will find "RX# Digital Volume" with a percentage value.

Mine were set to 69.4%. I rose them to 75% and rebooted. Now my ears bleed. Nice.

The settings will be lost after updates so I created a small script to run after updates which will replace the original file with my modified one.

# The file on /sdcard is my modified backup
cp /sdcard/snd_soc_msm_2x /system/etc/snd_soc_msm/snd_soc_msm_2x
veröffentlicht unter: Android keine Kommentare

Debian Jessie LXC networking. Containers with public and NATed IPs

It took me some time to get this working so it's time for a blog post:

This was a setup for a server in a data center with a public IP address. The server has one physical interface with a public routable IP address. Additionaly I ordered another public IP address for the server to be used in one of the LXC containers.

I have two containers.

Container A
"A" gets a public routable IP-address to be reachable from the internet without NATing

Container B
"B" gets a private IP address and can only be reached thru NAT and port-mappings

Host has as main public IP
Container A has as "virtual" IP
Container B has as NATed private IP



auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet manual
   pre-up   ifconfig eth0 up
   pre-down ifconfig eth0 down

auto  br0
iface br0 inet static
  broadcast broadcast.ip
  netmask   netmask.ip
  gateway   gateway.ip
  bridge_ports eth0
  bridge_fd 0
  bridge_maxwait 0

auto  br1
iface br1 inet static
  bridge_fd 0
  bridge_maxwait 0
  pre-up brctl addbr br1
  up iptables -t nat -F POSTROUTING

  # Exclude boxes with static IPs from Natting
  up iptables -A PREROUTING -t nat -i br0 -p tcp -s -j ACCEPT

  # Enable Forwarding for NATed boxes
  up iptables -t nat -A POSTROUTING -s -o br0 -j MASQUERADE

  # example PORT FORWARDINGS FOR Mailserver
  up iptables -A PREROUTING -t nat -i br0 -p tcp --dport 25 -j DNAT --to
  up iptables -A PREROUTING -t nat -i br0 -p tcp --dport 465 -j DNAT --to
  up iptables -A PREROUTING -t nat -i br0 -p tcp --dport 587 -j DNAT --to

  # example PORT FORWARDINGS FOR Webserver
  up iptables -A PREROUTING -t nat -i br0 -p tcp --dport 80 -j DNAT --to
  up iptables -A PREROUTING -t nat -i br0 -p tcp --dport 443 -j DNAT --to

  post-down iptables -F
  post-down iptables -t nat -F
  post-down brctl delbr br1

#IP forwarding must be enabled in the kernel as well (don't forget reboot)

CONTAINER A Setup (static virtual public IP):

lxc.utsname = containershostname
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0

# This is the MAC for the public IP i got from my provider
# container gets IP by providers DHCP
lxc.network.hwaddr = 00:11:22:33:44:55

CONTAINER B Setup (static NATed private IP):

lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br1
lxc.network.ipv4.gateway =

Android Kernel und weitere Images unter Ubuntu flashen mit adb und fastboot

apt-get install android-tools-fastboot

# USB-Debugging im Handy aktivieren
# Handy per USB connecten

adb devices
# gerät sollte angezeigt werden
adb reboot-bootloader

# Gerät rebootet in Fastboot Mode

fastboot devices
fastboot flash boot filename_of_boot.img
fastboot reboot

# Weitere Images flashen
fastboot flash bootloader bootloader.img
fastboot reload-bootloader

fastboot flash radio radio.img

fastboot flash recovery recovery.img

fastboot flash system system.img

fastboot flash vendor vendor.img


Schriftfarbe von Objekten auf dem Cinnamon Desktop ändern

Heute mal etwas kosmetisches, das mich ewig genervt hat: Je nach GTK3-Theme ändert sich die Schriftfarbe von Ordnern und Dateien auf dem Cinnamon-Desktop, so dass die Schrift bei manchen Wallpapers kaum noch lesbar ist.

Man kann das Ganze zum Glück global ändern, habe nur ewig gebraucht um herauszufinden wo.
Hier ein Beispiel für weisse Font:

# Datei anlegen: $HOME/.config/gtk-3.0/gtk.css

.nemo-desktop.nemo-canvas-item {
color: #FFFFFF;
background-color: #5E80A0;
text-shadow: 1px 1px @desktop_item_text_shadow;

Using Android without Google – The hard way

I have been trying to get rid of Google completely on my Android phone. As I have made some nice progress I'd like to share what I did and which problems I had to overcome:

OS I removed my stock version of Android and replaced it with Cyanogen Mod (http://www.cyanogenmod.org/) CM doesn't ship the Google Services, you have to install them manualy afterwards. I didn't do that, so most of Google was gone already. This produced a lot of problems, because Google Play isn't available plus the Maps Framework is used by many 3rd party apps.

Appstore The biggest showstopper is the missig appstore. I installed F-Droid (https://f-droid.org/) which is a nice appstore that provides open-source apps only. This provided me with some apps i use regualry (Twitter-client and some others) but is in no way a replacement for Google Play. Now I had to decide if I wanted to trust other 3rd party appstores or not. I decided to don't. Amazon has it's own "trustworthy" appstore, but apps are patched and crippled. didn't want to have that. Decided to download needed apps with another Android device. After that I grab them from /data/app on the other device with Root Explorer (https://play.google.com/store/apps/details?id=com.speedsoftware.rootexplorer&hl=de) and sync them to my real device with Owncloud. This ugly process basicly made me use less apps on my phone because it's such a hassle to get them on it. I got used to it after some time and reduced my app selection to a sane minimum.

Contacts, Mail and Calendar sync I setup an installation of Horde Groupware (http://www.horde.org) on my personal server. Horde features "Microsoft Active Sync" compatibility. On Android, I just had to add an Active Sync Account to sync all my stuff to my own server. Works perfectly.

Maps Framework Many apps that embed a Google Map somewhere use the "Google Maps Framework" which comes with Google Maps. A specific app I use often depends on the framework. The app won't start without the framework, even I don't need the embedded maps inside. Luckyly some guy from XDA wrote a script that simulates an installed Maps framework without it being there actually. (Couldn't find link, too long ago)

Maps Checked out many mapping applications based on OpenStreetMaps. MapFactor worked best for me (https://play.google.com/store/apps/details?id=com.mapfactor.navigator&hl=de). It's not as good as Google Maps but it works.

Browser Andorid browser that ships with Android has builtin Google-Search. I replaced it with Lightning (https://play.google.com/store/apps/details?id=acr.browser.barebones), a small and quick open souce browser which can be configured to use many different search engines. I set it to Startpage.

Music My PlayStore license for Poweramp didn't work on my devices without Google Licensing Services, provided by Play (a problem with many pay-apps, not all though). Luckily the dev offers a version, bound to an e-mail account. I re-bought the software.

That's basicly it. I'll sniff the traffic of my phone, if I find the time, to verfiy I really got rid of Google on my phone. (I bet i forgot something)


VAULT – A small script to create and mount encfs encrypted directories on the fly

This small script will allow you to create, mount and unmount encfs directories on the fly.
As the need for encryption seems to rise all the time, usable solutions always come in handy.

You can create a safe storage for sensible data quickly and easily with this script.

All you need to do to is to install encfs with your distrubutions package manager and adjust the tiny CONFIG section to your needs.
The script will take care of the rest (hopefully).

Comments welcome.

# DR 20140624
# http://www.daniel-ritter.de/blog/vault-create-and-mount-encfs-encrypted-directories-on-the-fly
# ENCFS NEEDS TO BE INSTALLED (apt-get install encfs for Debian/Ubuntu)
# http://www.gnu.org/licenses/gpl.txt




echo "VAULT"

# INITIAL SETUP creates directories and sets up encryption
if [ ! -d "$VAULTBASEDIR/.vault_dec" ];then
encfs $VAULTBASEDIR/.vault $VAULTBASEDIR/.vault_dec
touch $VAULTBASEDIR/.vault_dec/mounted
fusermount -u $VAULTBASEDIR/.vault_dec

# VAULT is unlocked, lock it
if [[ -e $VAULTBASEDIR/.vault_dec/mounted ]];then
echo "Locking VAULT"
fusermount -u $VAULTBASEDIR/.vault_dec
ls -la $VAULTBASEDIR/.vault_dec
echo "LOCKED"

# VAULT IS LOCKED, unlock it and open filemanager
encfs $VAULTBASEDIR/.vault $VAULTBASEDIR/.vault_dec

veröffentlicht unter: Linux, Ubuntu keine Kommentare

Monitorswitcher mit YAD und xrandr

Da ich häufiger mal den Video-Output von meinem Notebook ändern muss, habe ich ein kleines Script geschrieben, das mir die Aufgabe erheblich erleichtert. Ich habe mir das Script auf einen Keyboard-Shortcut gelegt und kann so in Sekundenschnelle die gewünschte Anzeige wählen. Für das grafische Interface benutze ich YAD, zur eigentlichen Einstellung des Outputs xrandr.


action=$(yad --width 300 --title "OUTPUT" \
    --button="Monitor + Notebook :1" \
    --button="Notebook:2" \
    --button="Monitor:3" \
    --button="TV MODE:4")


# Notebook + Monitor
if [[ $ret -eq 1 ]]; then
xrandr --output LVDS1 --mode 1366x768  --output DP1 --mode 1920x1200 --left-of LVDS1 --primary --output VGA1 --off

# Notebook Only 
if [[ $ret -eq 2 ]]; then
xrandr --output LVDS1 --mode 1366x768  --output VGA1  --off --output DP1 --off

# Monitor Only
if [[ $ret -eq 3 ]]; then
xrandr --output DP1 --mode 1920x1200 --primary --output VGA1 --off --output LVDS1 --off

# TV MODE (Monitor  + TV)
if [[ $ret -eq 4 ]]; then
xrandr --output DP1 --mode 1920x1200 --right-of VGA1 --primary --output VGA1 --mode 1920x1080 --output LVDS1 --off

exit 0

veröffentlicht unter: Dies und das keine Kommentare

Pound Reverse Proxy für HTTP und HTTPS – Quick and dirty Howto auf Debian Squeeze

Pound ist ein Loadbalancer und Reverse Proxy für HTTP und HTTPS. Hier ein Quick and Dirty Setup für das HTTPS-Proxying eines HTTP-Servers. Praktisch um zum Beispiel einem Webdienst, der kein HTTPS unterstützt, trotzdem eine sichere Verbindung zu spendieren.

Pound installieren

apt-get install pound

SSL-Key und Zertifikat generieren
Pound erwartet Zertifikat und Key in einer! Datei.

cd /etc/ssl
mkdir pound
cd pound
openssl req -x509 -newkey rsa:1024 -keyout pound.pem -out pound.pem -days 9999999 -nodes

Pound konfigurieren
(Alle eingehenden Verbindungen an werden weitergeleitet an


## global options:

User            "www-data"
Group           "www-data"
#RootJail       "/chroot/pound"

## Logging: (goes to syslog by default)
##      0       no logging
##      1       normal
##      2       extended
##      3       Apache-style (common log format)
LogLevel        1

## check backend every X secs:
Alive           30

## use hardware-accelleration card supported by openssl(1):
#SSLEngine      ""

# poundctl control socket
Control "/var/run/pound/poundctl.socket"

## listen, redirect and ... to:

## redirect all requests on port 8080 ("ListenHTTP") to the local webserver (see "Service" below):
        Port    9999
        Cert    "/etc/ssl/pound/pound.pem"

        ## allow PUT and DELETE also (by default only GET, POST and HEAD)?:
        xHTTP           1

                        Port    8000

In Debian den Daemon enablen


Pound starten

/etc/init.d/pound start

Die Festplatte der PS3 auf eine größere Festplatte klonen mit Linux


Die Festplatte meiner Uralt-PS3 wurde nun endlich mit ihren 80GB zu klein. Zum Glück hatte ich noch eine 500GB-Platte herumfliegen und habe diese meiner Konsole spendiert.

Die ganze Sache war leider ziemlich zeitaufwändig. Hätte ich eine weitere Platte für ein Backup mit dem PS3-Systemprogramm gehabt, hätte ich mir viel Kopiererei sparen können. Aber es ging auch so...

Für diese etwas komplizierte Methode braucht man:

  • Die alte Platte aus der PS3
  • Eine neue Platte
  • Einen PC mit genug Platz auf der Platte um die alte Platte komplett aufzunehmen
  • Einen SATA-USB-Adapter

AUSBAU: Zunächst baut man die Platte aus der PS3 aus. Das geht ziemlich einfach. An der linken Seite befindet sich eine Plastikabdeckung, die man aufwippen kann. Danach entfernt man die blaue Schraube und kann den Schlitten mit der Platte einfach aus der Konsole herausziehen.

ORIGINALPLATTE AUSLESEN: Nun benötigt man einen USB-SATA Adapter, um die Platte an einen Rechner anschließen zu können. Auf dem Rechner muss genug Platz sein, um die komplette Platte aufzunehmen. Das Auslesen selbst geht ganz einfach.

Zunächst /var/log/syslog beim Anstecken der Platte per USB mitlesen um den Devicenamen zu erhalten..

> tail -f /var/log/syslog
Nov  6 20:38:27 think kernel: [ 3035.910418] sd 7:0:0:0: [sdb] 156301488 512-byte logical blocks: (80.0 GB/74.5 GiB)
Nov  6 20:38:27 think kernel: [ 3035.913066] sd 7:0:0:0: [sdb] Write Protect is off
Nov  6 20:38:27 think kernel: [ 3035.913075] sd 7:0:0:0: [sdb] Mode Sense: 28 00 00 00
Nov  6 20:38:27 think kernel: [ 3035.914499] sd 7:0:0:0: [sdb] No Caching mode page found
Nov  6 20:38:27 think kernel: [ 3035.914507] sd 7:0:0:0: [sdb] Assuming drive cache: write through
Nov  6 20:38:27 think kernel: [ 3035.919639] sd 7:0:0:0: [sdb] No Caching mode page found
Nov  6 20:38:27 think kernel: [ 3035.919646] sd 7:0:0:0: [sdb] Assuming drive cache: write through
Nov  6 20:38:27 think kernel: [ 3036.013996]  sdb: unknown partition table
Nov  6 20:38:27 think kernel: [ 3036.019555] sd 7:0:0:0: [sdb] No Caching mode page found
Nov  6 20:38:27 think kernel: [ 3036.019562] sd 7:0:0:0: [sdb] Assuming drive cache: write through
Nov  6 20:38:27 think kernel: [ 3036.019567] sd 7:0:0:0: [sdb] Attached SCSI disk

Prima. Die PS3-Platte ist nun unter /dev/sdb erreichbar.

Nun kann die komplette Platte in eine einzelne Datei ausgelesen werden.

> sudo su
> dd if=/dev/sdb of=/tmp/ps3.disk bs=50000

Nun muss man warten, bis die Kopie fertig ist. Man kann sich allerdings in einem neuen Terminalfenster ansehen, wie weit der Kopiervorgang fortgeschritten ist:

> watch "ls -hla /tmp | grep disk"
-rw-r--r--  1 root root  43G Nov  6 21:13 ps3.disk

Der ganze Vorgang hat bei mir ziemlich genau eine Stunde gedauert.

N1600527+1 Datensätze ein
1600527+1 Datensätze aus
80026361856 Bytes (80 GB) kopiert, 3600,04 s, 22,2 MB/s

KOPIE AUF DIE NEUERE, GRÖßERE PLATTE ZURÜCKSPIELEN: Nun tauscht man die Platten am SATA-USB-Adapter aus und schließt die neue, größere Platte an. Das Zurückspielen der Daten dauert dann noch einmal genausolang und kann wieder mit "dd" erledigt werden.

> dd if=/tmp/ps3.disk of=/dev/sdb bs=50000

DIE NEUE PLATTE EINBAUEN: Nun hat man eine Kopie der Originalplatte auf der neuen Platte. Diese wird jetzt in die PS3 eingebaut. Wenn die PS3 hochfährt und noch alle Daten vorhanden sind und Spiele gestartet werden können, ist alles glatt gelaufen. Nun hat man zwar eine Kopie der alten Platte auf der Neuen, aber die alte Partitionierung wurde mitkopiert. Die neue Platte hat also auch nur den freien Platz der alten Platte verfügbar. Ich habe keine Möglichkeit gefunden, die Partition der Platte zu vergrößern, SONY nutzt leider kein Standard-Dateisystem. Deshalb sind die nächsten Schritte auch noch notwendig.

DIE ALTE PLATTE ZUM BACKUP DER SPIELDATEN DER PS3 NUTZEN: Die alte Platte wird nun wieder an den SATA-USB-Adapter gesteckt und mit FAT32 formatiert.

>  mkfs.vfat -I -F32 /dev/sdb 

Die formatierte alte Platte kann jetzt per USB an die PS3 angeschlossen werden. Mit ihr führt man nun über das Playstation-Menü eine Sicherung der Spieldateien durch.

Vor dem Backup sollte man seine Tropähen noch einmal synchronisieren. Sie werden mit dem lokalen Backup NICHT mitgesichert.

#PS3 Menü
 [PSN] > [Trophäen-Sammlung] > Dreieck > Trophäen synchronisieren.

Jetzt kann man endlich die Daten auf die alte angeschlossene Platte sichern:

#PS3 Menü
 [Einstellungen] > [System-Einstellungen] > [Datensicherungsprogramm] > [Sichern]


Neue (eingebaute) Platte löschen:

#PS3 Menü
 [Einstellungen] > [System-Einstellungen] > [Formatierungs-Dienstprogramm] > [Systemspeicher formatieren]

Jetzt steht endlich der volle Speicherplatz der neuen Platte zur Verfügung.

Nun muss nur noch das Backup von der alten Platte zurückgespielt werden:

#PS3 Menü
 [Einstellungen] > [System-Einstellungen] > [Datensicherungsprogramm] > [Wiederherstellen]

Voila, ich habe alle meine Daten komplett behalten, aber habe jetzt 420GIG mehr Platz und die Platte ist um einiges schneller als die alte. Sehr schön.

Leichter wäre alles gegangen mit einer weiteren Platte, die ich leider nicht zur Verfügung hatte:
PS3-Platte direkt mit der PS3 auf die weitere Platte sichern -> Neue grosse Platte einbauen -> Alles von der weiteren Platte zurücksichern.

Wenn man einen PC zur Verfügung hat (ich hatte nur ein Notebook) sollte man die Kopiererei auch nicht über USB machen sondern die Platten direkt an die SATA-Ports des Boards hängen. Viel schneller.


CanoScan Lide 110: Out of the box Hardware für Ubuntu


Erfreulich problemlos funktioniert dieser Flachbettscanner unter Ubuntu 13.04. Per USB anstecken. Fertig. Danach kann direkt mit Tools wie "Simple Scan" gescannt werden. So soll es ein.

Möglich, dass es Probleme mit der "E-Mail-Taste" und der "Photokopier-Taste" gibt. Da ich diese Funktionen nicht benötige kann ich dazu nichts sagen, zum reinen Scannen ist das Gerät allerdings super.

# /var/log/syslog nach dem Einstecken

Sep 10 15:15:45 think kernel: [  117.489711] usb 3-2: new high-speed USB device number 3 using xhci_hcd
Sep 10 15:15:45 think kernel: [  117.507211] usb 3-2: New USB device found, idVendor=04a9, idProduct=1909
Sep 10 15:15:45 think kernel: [  117.507218] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Sep 10 15:15:45 think kernel: [  117.507222] usb 3-2: Product: CanoScan
Sep 10 15:15:45 think kernel: [  117.507225] usb 3-2: Manufacturer: Canon
Sep 10 15:15:45 think colord: Device added: sysfs-Canon-CanoScan
Linux think 3.8.0-30-generic #44-Ubuntu SMP Thu Aug 22 20:52:24 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux    

Weshalb es eine schlechte Idee sein könnte, nichts zu verbergen zu haben

Seit einigen Wochen gibt es keine Zweifel mehr. Dank Snowden wissen wir nun zweifelsfrei das, was viele schon vorher mit hoher Wahrscheinlichkeit vermutet haben: Es werden Daten über uns gesammelt und weiterverarbeitet. Es trifft nicht nur einzelne Verdächtige, sondern pauschal alle. Es wird alles erfasst, was technisch möglich ist. Der Wissensdurst von Staaten scheint unstillbar. Begründet wird die Sammlung der Daten mit dem Kampf gegen die organisierte Kriminalität und den internationalen Terrorismus. Eine gute Sache könnte man meinen. Die Staaten sorgen für die Sicherheit der Bürger, wer sich nichts zu Schulden kommen lässt, hat nichts zu befürchten. Dieser auf den ersten Blick logische Gedankengang hat jedoch seine Tücken. Nachfolgend werde ich einige Argumente bringen, warum es eine schlechte Idee sein könnte nichts zu verbergen zu haben.

Wissen ist Macht und Macht korrumpiert
Dieses alte Sprichwort beschreibt das Hauptproblem sehr gut. Macht ist die Möglichkeit "machen zu können". Je mehr Wissen angehäuft wird, desto mehr Macht entsteht auf der Seite der Wissenden. Macht korrumpiert zuverlässig und zieht noch grösseren Wissensdurst nach sich. Da Wissen und Macht in den momentanen Verhältnissen nur von einer kleinen und grösstenteils unkontrollierten bürokratischen Elite angehäuft werden, wird die grosse Mehrheit der Menschen gleichzeitig kontrollierbar und entmachtet. Dies geschieht mit immer weniger parlamentarischer Kontrolle und wann immer es geht im Verborgenen. Da alle Macht vom Volke ausgehen sollte, ist diese Situation gefährlich für Demokratien und nicht hinzunehmen.

Die wirklich bösen Buben werden nicht überwacht
Das offizielle Hauptargument für Überwachung ist der Kampf gegen die organisierte Kriminalität und den Terrorismus. Diese beiden Hauptziele der Überwachung können sich ihr jedoch leicht entziehen. Mit nur minimalem technischen Verständnis kann man Kommunikation wirkungsvoll verschlüsseln. Dafür werden weder grosse Geldmengen noch spezielle Hardware benötigt. Viele Artikel in meinem Blog beschreiben Methoden zur wirkungsvollen Verschlüsselung von Kommunikation und Datenspeichern. Aktuelle Verschlüsselungsmethoden können nicht gebrochen werden, wenn sie korrekt angewandt werden. Das sind mathematische Gesetze, die kein Staat und kein Geheimdienst beugen kann. Da wirkungsvolle Verschlüsselung möglich ist und ich sie selbst persönlich (mit meinen sehr beschränkten Mitteln) nutzen kann, ist klar, dass der internationale Terrorismus und die Mafia mit nahezu unbegrenzten Geldmitteln diese Möglichkeiten auch nutzen. Die Überwachung verfehlt also ihre Ziele konsequent. Oder ist das Ziel eventuell doch der normale Bürger?

Überwachungsstrukturen werden auf undemokratische Weise im Geheimen etabliert
Die Überwachung der gesamten US-Bevölkerung wurde niemals durch den Kongress bewilligt. Die wuchernden Überwachungsstrukturen werden in der Regel abseits einer nachfragenden und unbequemen Öffentlichkeit etabliert. Nur durch Leaks und Whistleblower kommen die Machenschaften ans Tageslicht. Die Bevölkerungen werden vor vollendete Tatsachen gestellt, eine öffentliche Diskussion findet erst nach Etablierung statt, eine öffentliche Kontrolle ist unmöglich. Es bilden sich unkontrollierbare Staaten in Staaten mit extremen Machtkonzentrationen, die sich vom Rechtsstaat abkoppeln, eigene Kontrollinstanzen hervorbringen - sich also selbst kontrollieren - und gleichzeitig Kritik an sich selbst als Hochverrat ahnden. Die Gewaltentrennung wird ausgehebelt.

Überwachung schränkt die Meinungsfreiheit ein
Ist eine umfassende Überwachung erst einmal etabliert, ist es leicht ein Klima der Angst zu verbreiten. Kritiker können leicht mundtot gemacht werden, da sich im Hinterkopf schnell eine Selbstzensur einschleicht. Man geht davon aus, dass jede kritische Äusserung registriert und vielleicht auch kontrolliert wird. Man wird vorsichtiger in seinen Äusserungen um keine Probleme zu bekommen. Die zeitlich unbegrenzte Speicherung von Kommunikation dehnt diese Ängste sogar noch bis in eine unbestimmte Zukunft aus. Einzelne öffentlichwirksam inszenierte Exempel an Abweichlern bringen ganze Bevölkerungen auf Kurs. Viele diktatorische Staaten regieren auf diese Weise, sogar ohne das gigantische Machtpotential, das die westlichen Demokratien zur Zeit anhäufen.

Überwachung sichert die Meinungshoheit der Überwacher
Das Internet hat Staaten, Behörden und Regierungen vor grosse Probleme gestellt. Hatte man vor der digitalen Revolution lediglich eine Hand voll mehr oder weniger leicht kontrollierbare Massenmedien, die die öffentliche Meinung gebildet haben, ist heute jeder nicht nur Empänger von Information sondern auch Sender. Das Internet bietet jedem eine Sendehoheit. Auch Meinungen, die nicht aus den Massenmedien stammen, können sich viral verbreiten und ihren Weg in die Köpfe einer grossen Öffentlichkeit finden. Das Bestreben von Staaten ist es die alte gewohnte Meinungshoheit wieder zu erlangen. Denn wer die öffentliche Meinung setzen kann, setzt die gefühlte Realität. Um zum alten Status Quo zurückzukehren muss also die Kontrolle über den neuen Rückkanal der Bürger erlangt werden. Dies funktioniert nur durch Unterdrückung unliebsamer Meinungen. Diese können durch Überwachung identifiziert werden. Und zwar nicht nur die einzelner Personen, sondern vollautomatisiert die ganzer Personennetzwerke.

Wir haben keine Glaskugel
Man könnte meinen, dass all das keine Relevanz für uns hat. Wir leben in einem demokratischen Rechtsstaat, sind unsere Freiheiten gewohnt und haben fast alle nie ein anderes Deutschland erlebt. Dennoch können sich die Verhältnisse ändern. Wir hatten in den letzten 100 Jahren bereits 4 deutsche Staaten. Davon waren 2 Diktaturen und einer ist an sich selbst gescheitert. Freiheit und Demokratie sind keine genetischen Fakten, die tief in den Menschen verwurzelt sind. Sie sind viel mehr sehr fragile Gebilde, die beschützt werden müssen und schnell in sich zusammenbrechen können, wenn die äusseren Umstände sich ändern. Hätten wir einen Rechts- oder Linksruck, würde der Euro endgültig zusammenbrechen, hätten wir einen Krieg in Europa - die bereits geschaffene Überwachungsinfrastruktur würde alles bisher dagewesene weit übertreffen. Der neue Staat hätte alle Möglichkeiten parat um seine Bürger nach Belieben klein zu halten, zu kontrollieren, zu gängeln und in Angst und Schrecken zu versetzen. Möglichkeiten von denen das Dritte Reich oder die DDR nur träumen konnten.

Überwachung ist teuer und wir bezahlen sie
Überwachung kostet viel Geld. Hardware, Software, Verwaltungsinfrastrukturen, Instandhaltung, Speicherung, Auswertung. All das kostet sehr viel Geld. Ironischer Weise stammt dieses Geld aus den Steuern der Bürger, die somit ihre eigene Überwachung finanzieren. Da durch die Überwachung kommulierte Macht nach immer mehr Macht strebt, wird auch die Überwachung immer weiter ausgedeht werden. Das wird immer mehr Geld kosten. Die Bürger zahlen für ihre eigene Entmachtung, bis sie sich aus Machtverlust heraus nicht mehr gegen dieselbe wehren können.

Die Überwachung der Überwacher findet nur im Geheimen statt
In Deutschland werden die Geheimdienste durch das parlamentarische Kontrollgremium kontrolliert. In diesem sitzen 12 Bundestagsabgeordnete aller Parteien. Diese 12 Personen haben besondere Rechte und dürfen Akteneinsicht bei den deutschen Geheimdiensten fordern. Zu dem Gremium gehören auch ultrarechte deutsche Politiker, wie zum Beispiel der CSU Politiker Uhl. Es erscheint mir sehr fraglich, ob 12 Berufspolitiker, die neben ihrer Kontrollaufgabe auch noch mannigfaltige weitere Aufgaben im politischen Alltag wahrnehmen, dazu befähigt sind die deutschen Geheimdienste im Sinne der Bürger zu überwachen - falls überhaupt der Wille dazu besteht. Selbst wenn sie Anmerkungen zur Arbeit der Dienste hätten, ist es Ihnen verboten mit anderen Mitgliedern des Bundestages darüber zu beraten. Zur Überwachung der Überwacher wäre ein unabhängiges Amt mit angemessener Mannstärke und Besoldung sicher besser geeignet, als 12 "ältere Herren" mit vollem Terminkalender. Und auch woanders ist es nicht besser. Der amerikanische Kongress war nicht informiert über die Komplettspeicherung und Verarbeitung aller Verbindungsadaten im Inland.

Jeder wird erpressbar
Die Bestrebungen sind klar: Alles soll erfasst werden, alles soll zusammengeführt und ausgewertet werden. Im Alltag fallen beim Durchschnittsbürger tatsächlich viele Daten an. Telefongespräche, SMS, MMS, Whatsapp, Facebook, Internetsuchen, besuchte Websites, Reisebewegungen, Kartenzahlungen, Aufenthaltsorte, Handy-Kontakte, E-Mails, u.s.w. Alle diese Daten zusammengeführt an einer zentralen Stelle bilden das persönliche Leben des Einzelnen fast lückenlos ab. Durch Speicherung dieser Daten wird nicht nur eine Momentaufnahme verfügbar sondern auch eine Historie bis weit in die persönliche Vergangenheit hinein. Die Überwacher verfügen über Daten, die man nicht einmal selbst von sich hat. In der kompletten Lebenshistorie eines Menschen gibt es sicherlich einige unliebsame Episoden, die man gerne für sich behalten würde. Durch diese Daten kann jeder nach gutdünken bedrängt werden, wenn es nötig sein sollte. Wissen ist Macht. Und diese Macht liegt bei einer weitgehend unkontrollierten Elite, die man niemals zu Gesicht bekommen wird, die aber im Gegenzug alles über jeden weiss. Ein gutes Gefühl, oder?

Man ist nicht frei, wenn man überwacht wird
Dieser Satz steht für sich selbst aber trotzdem möchte ich einige Zeilen dazu schreiben. Freiheit und Überwachung stehen auf einer Skala an entgegengesetzten Enden. Wenn man auf Freiheit wert legt, kann man ihr Gegenteil nicht als Realität akzeptieren. Das ist Orwellsches Doppeldenk par excellence. Freiheit steht für sich und ist nicht ihr Gegenteil. Wenn wir auf Freiheit wert legen, dürfen wir Überwachung nicht dulden.

Was kann man tun?
Andere mögen anderer Ansicht sein, aber ich glaube, dass der aktuelle Trend zu immer mehr Kontrolle aus oben genannten Gründen auf politischem Weg nicht mehr aufzuhalten sein wird. Natürlich ist politische Arbeit in diesem Bereich wichtig und gut, aber der Krieg scheint verloren, bevor überhaupt die ersten Kampfhandlungen erfolgten. Die Überwachungsstrukturen sind zu Grossteilen fertiggestellt und eine öffentliche Empörung ist nur in kurzen Wellen bei jedem neuen Skandal auszumachen. Leider sind die technischen Zusammenhänge hinter dem Überwachungsapparat den Nicht-Geeks sehr schwer näherzubringen. Daraus resultiert, dass man sich nur selbst darum kümmern kann, der Überwachung zu entgehen. Es muss eine kritische Masse an Personen entstehen, die konsequent verschlüsselt, nur verschlüsselt kommuniziert und Daten nur sicher ablegt. Dafür werden Tools benötigt, die leicht zu bedienen und massentauglich sind. Verschlüsselung muss zur Normalität und nicht zur Ausnahme werden. Leider haben alle grossen Internetdienste daran kein Interesse, da Ihre Geschäftsmodelle darauf beruhen, mit den Daten ihrer Benutzer zu arbeiten und sie zu barer Münze zu machen. Die Masse muss verstehen, warum Privatsphäre wichtig ist, sie muss einfache Werkzeuge an die Hand bekommen um sie ausüben zu können. Bestrebungen Verschlüsselung zu verbieten müssen verhindert werden. Wenn wir diesen grossen Kampf verlieren, oder wenn er gar nicht erst stattfindet, werden wir die letzte freie Generation gewesen sein.

veröffentlicht unter: Dies und das keine Kommentare

Logfile Monitoring und E-Mail Benachrichtigung mit swatch unter Debian und Ubuntu


Logfiles enthalten viele wertvolle Informationen. Eine Platte ist defekt, das RAID gibt den Geist auf, ein Backup ist fehlgeschlagen oder die Batterie von der USV ist kaputt. Leider bekommt man von diesen wichtigen Infos wenig mit, wenn man sich über auftauchende Probleme nicht automatisiert benachrichtigen lässt. Niemand kann (oder will :)) täglich alle anfallenden Logs checken.

Ein einfaches und effektives Monitoring kann man sich mit dem kleinen Daemon "swatch" einrichten. Swatch liest live Logfiles mit und führt Aktionen aus, wenn bestimmte Schlüsselworte in den Logfiles auftauchen.

Hier ein Quick and Dirty Setup um das Logfile von rsnapshot, einem Backuptool zu monitoren und bei Problemen eine Mail zu versenden:

# swatch installieren
apt-get -y install swatch

Nun muss man sich das Logfiles das überwacht werden soll ansehen und identifizieren, was dort gelogged wird, wenn Fehler auftauchen. Hier als Beispiel das Logfile von rsnapshot nach einem Backup, das Probleme verursacht hat:

[15/May/2013:01:00:21] require Lchown
[15/May/2013:01:00:21] Lchown module loaded successfully
[15/May/2013:01:00:21] /usr/bin/rsnapshot daily: started
[15/May/2013:01:00:21] Setting locale to POSIX "C"
[15/May/2013:01:00:21] echo 13895 > /var/run/rsnapshot.pid
[15/May/2013:01:00:21] /root/scripts/nas-backup
[15/May/2013:01:00:26] /bin/rm -rf /media/net/nas1/data/daily.6/
[15/May/2013:01:13:30] mv /media/net/nas1/data/daily.5/ /media/net/nas1/data/daily.6/
[15/May/2013:01:13:30] mv /media/net/nas1/data/daily.4/ /media/net/nas1/data/daily.5/
[15/May/2013:01:13:30] mv /media/net/nas1/data/daily.3/ /media/net/nas1/data/daily.4/
[15/May/2013:01:13:30] mv /media/net/nas1/data/daily.2/ /media/net/nas1/data/daily.3/
[15/May/2013:01:13:30] mv /media/net/nas1/data/daily.1/ /media/net/nas1/data/daily.2/
[15/May/2013:01:13:30] /bin/cp -al /media/net/nas1/data/daily.0 /media/net/nas1/data/daily.1
[15/May/2013:01:30:07] /usr/bin/rsync -av --delete --numeric-ids --relative --delete-excluded /media/local/share /media/net/nas1/data/daily.0/localhost/
[15/May/2013:01:32:19] rsync succeeded
[15/May/2013:01:32:19] /usr/bin/rsync -av --delete --numeric-ids --relative --delete-excluded /etc /media/net/nas1/data/daily.0/localhost/
[15/May/2013:01:32:21] rsync succeeded
[15/May/2013:01:32:21] /usr/bin/rsync -av --delete --numeric-ids --relative --delete-excluded /home /media/net/nas1/data/daily.0/localhost/
[15/May/2013:03:28:06] rsync succeeded
[15/May/2013:03:28:06] /usr/bin/rsync -av --delete --numeric-ids --relative --delete-excluded /var /media/net/nas1/data/daily.0/localhost/
[15/May/2013:03:55:06] /usr/bin/rsnapshot daily: ERROR: /usr/bin/rsync returned 12 while processing /var/
[15/May/2013:03:55:06] /usr/bin/logger -i -p user.err -t rsnapshot /usr/bin/rsnapshot daily: ERROR: /usr/bin/rsync returned 12 while processing /var/
[15/May/2013:03:55:06] touch /media/net/nas1/data/daily.0/
[15/May/2013:03:55:08] No directory to delete: /media/net/nas1/data/_delete.13895
[15/May/2013:03:55:08] rm -f /var/run/rsnapshot.pid
[15/May/2013:03:55:08] /usr/bin/logger -i -p user.err -t rsnapshot /usr/bin/rsnapshot daily: ERROR: /usr/bin/rsnapshot daily: completed, but with some errors
[15/May/2013:03:55:08] /usr/bin/rsnapshot daily: ERROR: /usr/bin/rsnapshot daily: completed, but with some errors

Im rsnapshot-Log tauchen also die Wörter "ERROR:" und "errors" auf, falls es Probleme gibt. Dies teilt man Swatch in einer neu angelegten Konfigurationsdatei mit:

watchfor /ERROR|errors/
mail addresses=daniel\@daniel-ritter.de,subject=RSNAPSHOT_BACKUP_HAT_WARNUNG_GENERIERT

In der "watchfor"-Zeile werden die zu überwachenden Schlüsselwörter konfiguriert, in der "mail"-Zeile gibt man eine Mail-Adresse und ein Subject für die Warn-Email an.

Nun muss swatch nur noch gestartet werden:

/usr/bin/swatch  --config-file=/etc/swatch/watch_rsnapshot --tail-file=/var/log/rsnapshot.log --daemon


- Das Starten von swatch muss in die Startskripte des Servers eingefügt werden, damit swatch nach einem Reboot sofort wieder mit der Überwachung beginnt.

- Das E-Mail System des Servers muss funktionieren. Am Besten generiert man eine Testmail und überprüft, ob sie tatsächlich bei der konfigurierten E-Mail Adresse ankommt. Dafür kann man einfach eines der zu überwachenden Schlüsselworte an die überwachte Logdatei anhängen.

echo "errors" >> /var/log/rsnapshot.log

Bei Problemen schaut man am Besten in den Logdateien des MTA nach um dem Fehler auf die Schliche zu kommen /var/log/exim4/mainlog (Exim) oder /var/log/mail.log (Postfix)

veröffentlicht unter: Linux, Ubuntu 2 Kommentare