The next big thing

Wir hatten 2012 mit relativ schmalem Budget unser jetziges Haus ausgebaut. Es gibt ein sogar ein Baublog aus der Zeit.

Mit 370km Umzug, teilweise neuer Küche sind wir bei ~15.000 Euro gelandet. Das war nur so günstig, weil Schwiegervater Z. uns mit unendlich viel Wissen und Material unterstützt hat. Dank Schweiß, Tränen und Elternzeit haben wir ein passables Plätzchen zum Wohnen geschaffen. Es hat zwar „nur“ Ofenheizung, aber dafür Gigabit Ethernet in der Wand. Was man so an Prioritäten hat.

Es war klar, dass das aktuelle Haus nur eine Übergangslösung ist. Wir wollten das Landleben ausprobieren ohne uns darauf festzulegen. Jetzt werden die Kinder größer, das Landleben fetzt – da juckt es wieder in den Fingern zu bauen. Was liegt näher als sich das Haus vom Tantchen vorzunehmen.

Das Objekt der Begierde: Straßenseite, Hofseite, vom Nachbargrundstück, Gartenseite (v.l.n.r.).
Das Objekt der Begierde. Straßenseite, Hofseite, vom Nachbargrundstück, Gartenseite (v.l.n.r.).

Das ist es also. 200 Jahre alt, Fachwerk, in den 80ern im Erdgeschoss „saniert“, grundsätzlich gute Substanz, großer Garten, Scheune (nicht im Bild). Voll ausgebaut kämen wir auf 370m^2. Eigentlich zu groß für uns. Aber Kollege T. sagt: „Platz kann man nicht genug haben“. Nun denn, auf geht’s.

Telekom Speedport Hybrid: Logging mit rrdtool

Als internetsüchtiges Landei greift man ja jedem Strohhalm, den man zu fassen bekommt. Ich hatte vor gut zwei Jahren zusätzlich zu unserem „normalen“ DSL-Anschluss der (je nach Tagesform) 10-14MBit/s bring noch einen LTE-Anschluss geklickt.

Das Problem an der Sache: bei zwei Uplinks man muss den Traffic intelligent routen. Eigentlich soll alles über LTE abgewickelt werden, aber man definiert dann unzählige Ausnahmen um möglichst keinen teuren LTE-Traffic zu vergeuden. Manche Dienste lassen sich auch schwer anhand von IPs und Ports in Filter gießen. Selbst mit viel Gefummel und Gehirnschmalz reichen dann 30GB für zwei Werktätige im Homeoffice eigentlich nicht aus.

Zum LTE-Vertragende wurden Hybrid-Anschlüsse bundesweit verfügbar. Das ist genau was ich eigentlich will: höhere Geschwindigkeit ohne Volumenlimit und mehr Redundanz, das alles ohne Fummelorgie in pf bzw. iptables. Einzig der Rant von Clemens in der Freakshow hat mich davon abgehalten sofort zuzuschlagen. Sein Fazit: das Produkt ist gut, aber der Router ist scheiße.

Nun habe ich einen Speedport Hybrid im Haus und kann diese Meinung vollumfänglich bestätigen. Das Webinterface des Routers ist eine Beleidigung. Javascript-Foo ohne Ende, es nervt mit unwichtigen Dingen wie Telefonie und diversen „Sicherheitsfeatures“. Man kann zeitgesteuert WLAN und Internet abschalten (ein sehr deutsches Feature), dafür kommt man aber an wichtige Informationen wie verbrauchter Traffic oder CRC-Fehler nicht ran. Das Webinterface warnt den User, wenn von einem weiteren Client darauf zugegriffen wird und ist auch sonst in jeder Hinsicht ein Usability-Verbrechen.

Her mit Deinen Daten!

Es gibt ein verstecktes „Engineer“-Menü, das viele Daten bereitstellt, die ich gerne hätte: Paket-Zähler der Interfaces; Dämpfung, SNR, CRC-Fehler und Bitrate auf der DSL-Leitung, Empfangsqualität des LTE-Signals ect.

Telekom Speedport Engineer Menu

Diese Daten wollte ich haben und mit rrdtool visualisieren. Dann hätte ich einen „DSL-Wetterbericht“ und weiß, wie es meinem Anschluss geht. Leider muss man sich jedes Mal auf dem Webinterface einloggen und dann die Engineer-URL in den Browser pasten.

Das ganze kann man schlecht automatisieren, solche Trümmer wie Selenium wollte ich nicht gleich auffahren. Ich habe mir deswegen zwei Sachen näher angeschaut:

  1. Die Firmware. Vielleicht gibt es noch einen einfachen Weg: es könnten durchaus Klartextscripte (lua?) in der Router-Firmware zu finden sein, die Rückschlüsse auf die Datenquellen zulassen.
  2. Die Kommunikation beim Login und das involvierte Javascript.

Die Firmware des Routers gibt es bei der Telekom zum Download. Mit Tools wie dem Firmware Modification Kit und binwalk kann man in das Image reinschauen und findet folgendes vor:

Target File: Firmware_Speedport_Hybrid_v050124.01.00.057.bin
MD5 Checksum: 086f589676e2cf108e755c2f0ad34649

DECIMAL HEX DESCRIPTION
----------------------------------------------------
132615 0x20607 JFFS2 filesystem, big endian
31098175 0x1DA853F PNG image, 488 x 2, 8-bit colormap, non-interlaced
31098375 0x1DA8607 JFFS2 filesystem, big endian
45205479 0x2B1C7E7 gzip compressed data
53720703 0x333B67F gzip compressed data
56458441 0x35D7CC9 gzip compressed data
56493219 0x35E04A3 gzip compressed data
66090195 0x3F074D3 gzip compressed data

Interessant: das Image enthält mehrere Firmware-Images: neben der für den „normalen“ Router gibt es noch ein vxworks-Image für den LTE-Teil des Routers. Die anderen Images konnte ich nicht genauer zuordnen, „mein“ Image ist mit 30MB das größte und lässt sich einfach mit dd rauskratzen. Das Image ist ein JFFS2 Image und ich konnte es auch mit viel googeln und fluchen nicht mounten. An der Stelle musste ich erstmal aufgeben und einen anderen Weg suchen.

well … SECURITY!

Zwischen Router und Browser wird http gesprochen, man kann also einfach mit Charles oder Wireshark den Traffic analysieren. Früher hatten andere Speedport Router ein HTTPS-Webinterface. Das hatte aber nicht nur Vorteile:

Es spricht viel dafür, dass das HTTP-only Webinterface ein Resultat der oben geschilderten Probleme ist.

Ab in das JavaScript-Schlammbad!

Also Augen zu und durch! Der interessante Code steckt in http://speedport.ip/js/pages/login.js. Als Beifang springen zwei Dinge sofort ins Auge:

Offenbar gibt es ein Standardpasswort für Servicezwecke. Entweder ist das Passwort statisch oder es lässt sich aus der Telekom verfügbaren Daten ableitet (IMEI oder Seriennummer …).

[Update] Ich habe in einem meiner vielen Telefonate mit der Telekom Störungsstelle einem Mitarbeiter die Information abgerungen, dass es nur ein hart codiertes Engineer-Password gibt … 🙁 [/Update]

Die Statusseite unter http://speedport.ip/html/login/status.html?lang=de ist ohne Login zugänglich und könnte den notwendigen Input liefern.
Insgesamt ist das schon gruselig, dass mein Provider meinen Router umkonfigurieren kann und ich nicht in der Lage bin es zu verhindern.

Ein weiteres interessantes Fundstück findet sich hier:

Offensichtlich findet beim Hersteller der Firmware kein Code-Review statt.

Die Speedport Login Prozedur

Damit trotzdem niemand das Router-Passwort mitlesen kann, unternimmt das Webinterface einen unglaublichen Eiertanz. Das Vorgehen ist vermutlich aus einem Crypto-Playbook, so ähnlich funktioniert auch der Login bei einigen Musikstreamingdiensten.

Zuerst sendet der Browser das hier zum Router:

Mit diesem Request wird challengev angefordert, der Router liefert darauf hin 52 zufällige Bytes zurück:

challengev muss im weiteren Verlauf der Sitzung immer als Cookie mitgesendet werden. Das eigentliche Passwort wird dann mit challengev in eine Hashfunktion geworfen und das Resultat daraus in sjcl.codec.hex.fromBits().

Sendet man das richtige Passwort…

… bekommt man in der Antwort eine Session-ID:

Die Speedport-Firmware macht sich dann noch die Mühe mit den ersten 16 Zeichen von challengev sowie dem Passwort einen symmetrischen Schlüssel mittels PBKDF2 abzuleiten. Das alleine dauert in einer V8 Engine mehr als eine Sekunde und ist der Hauptgrund für die Verzögerung beim Login:

Mit den insgesamt nur drei Cookies kann man dem Speedport endlich seine Daten abringen:

Wie ich später bemerkt habe, ist derivedk für die Abfrage der JSON Statusdaten aus dem Engineer-Menu nicht notwendig.

l33tport

Ich habe das ganze in node.js nachgebaut und als „l33tport“ veröffentlicht. Das Script führt den Login durch und lädt die Statusdaten als JSON runter. Damit bin ich erstmal am Ziel: ich kann die Rohdaten selbst verarbeiten. Erstes Ergebnis ist der oben erwähnte „DSL-Wetterbericht“:

DSL Wetterbericht

Mit dem Script als Basis sind natürlich noch ganz andere Dinge vorstellbar: ein alternatives, benutzbares Web-UI für den Router, integration des Routers in Hausautomation, eine „richtige“ App… Wie immer sind der Phantasie keine Grenzen gesetzt.

Update (24.05.2015): rrdtool Beispiele

Das Github-Projekt enthält jetzt ein paar Beispiele, wie man die rrdtool-Datenbanken erstellt, dort via cron Daten reinpumpt und wie man daraus bunte Graphen erstellt.

Liebe Post,

ich habe heute versucht eine Briefmarke zu kaufen. Im Internet. Bei Euch auf der Webseite. Weil ich einen Brief versenden möchte.

Aber Ihr wollt wohl mein Geld nicht? Warum ist das so verdammt umständlich eine Briefmarke zu bezahlen? Ich hab auch gleich ein paar mehr in meinen Einkaufskorb gelegt, weil vielleicht sende ich ja nochmal einen Brief. Vielleicht. Man weiss es nicht, aber es ist Winter und da schreibt man ja Abends am Kamin so manches.

Ich wollte also meinen Warenkorb bezahlen, und hab einfach mal Lastschrift angeklickt. Ist schön bequem für mich. Als ich dann endlich alle Felder ausgefüllt habe, zeigt Ihr mir ein SEPA-Formular, dass ich unterschrieben zurücksenden soll. PER POST. MIT EINER BRIEFMARKE DRAUF. DIE ICH GERADE VERSUCHE ZU KAUFEN. Merkt Ihr selbst, oder?

Ja ich weiss. Deutschland. Ohne Unterschrift geht nichts. Verstehe ich total. Bei der Bahn kann ich mir meine Fahrkarte auch ausdrucken und ohne Unterschrift per Lastschrift bezahlen. Ach und bei Amazon mache ich das auch…

Und wenn Ihr mir hier mit „Aber dann sende es doch per Fax!“ kommt, dann haue ich Euch so einen 20 Kilo Philips-Brocken auf den Kopf, die gibt’s bei Ebay für ’nen Euro. WIR HABEN 2014. ICH WEIGERE MICH DIESE TECHNOLOGIE ANZUERKENNEN. FAX IST TOT. Da werfe ich lieber eine Brieftaube über Euren Zaun.

Ah, ihr sagt, da gibt es ja noch andere Zahlungsmöglichkeiten? Tja, Kreditkarte ist ausgegraut, warum auch immer. Ok, „Portokasse“ – versuchen wir es damit.

So, ich soll also von meinem Paypal-KONTO Geld auf ein gammeliges Porto-KONTO schieben, von dem ich nicht weiss, wie ich es dort wieder runter bekomme. Ich will ja nur ’ne Briefmarke kaufen.
Ok, ich bin weich und versuche genau den Warenkorb-Preis (24,40) auf mein Portokonto zu laden.
Das geht aber nicht, WEIL MAN MIT PAYPAL NUR 20 EURO AUFLADEN KANN. Was soll der Mist? Kennt ihr den Spruch „Shut up and take my money“?

Warum zur Hölle kann ich nicht direkt mit Paypal bezahlen? Kann ich doch bei DHL auch. Achja, andere Firma, verstehe.

Also liebe Post, ich habe hier so ein modernes Gerät, das ist fast wie ein Fax, da steckt man oben Papier rein und dann – oh Wunder – kommt ein PDF im Computer an. Keine Panik, ihr könnt es ausdrucken und abheften, genau so wie ein richtiges Fax. Ich bitte Euch, nehmt es und schickt mir meine Briefmarke…

Die heutige Generation

Ich gebe der Generation überhaupt keinen Ratschlag. Aber ich bevorzuge den ausgeflippten Punk, oder einen alten, versoffenen Philosophen gegenüber den coolen, performenden Anzug-Typen, die vorbei laufen und ihre komische, lächerliche Erfolgsgeschichte inszenieren, die zum Beispiel darin bestehen kann, irgendeine verblödete Applikation für das Handy zu programmieren und diese dann verkaufen. Diese Typen interessieren mich einfach nicht. Das sind langweilige, öde Menschen.

Lest das wirklich empfehlenswerte Interview mit Bernhard Heinzlmaier.

How to use a Lightroom Catalog on multiple computers

I have one Lightroom database for my photographs, but multiple computers. Of course I want be able to edit my photos on every computer. The obvious solution is to put the catalog on a network share. But the catalog is a sqlite-Database which is build to be accessed by one process only. Because of this, Lightroom forbids to use a catalog that is located on a network share.

My solution is to rsync the catalog before Lightroom starts and sync it back, when the process terminates. To avoid conflicts, I create a lockfile during the runtime of Lightroom. Not very fancy, but this works well for me.

Streichen

Hurra, endlich kommt Farbe an die Wand. Das Gästezimmer wird dezent pink. Eine spätere Inspektion von J., die dort gelegentlich nächtigen soll, ergab, dass sie pink hasst. Nunja.

wpid-img_0013-2012-10-27-22-56.jpg

Kinderzimmer:

wpid-img_0017-2012-10-27-22-56.jpg

Zusammen mit dem abgeschliffenen Fußboden sieht es schon richtig gut aus. Fehlen nur noch die Fußleisten. Und die Steckdosen. Oh und Lampe und Lichtschalter. *hust*…

IMG_0040

Arbeitszimmer:

wpid-img_0016-2012-10-27-22-56.jpg

Im Bad geht es auch voran. Das Waschbecken ist montiert:

wpid-IMG_0020-2012-10-27-22-56.JPG

Der Boiler hängt und ist angeschlossen. Sogar halbwegs gerade:

wpid-IMG_0021-2012-10-27-22-56.JPG

Duscharmatur:

wpid-IMG_0023-2012-10-27-22-56.JPG

Spühlkastenanschluss (Details, details, aber wir freuen uns sehr):

wpid-IMG_0024-2012-10-27-22-56.JPG

Elektroporn

Meister B. war da und hat die Steckdosen in Bad und Hauswirtschaftsraum angeklemmt:

Das beste ist jedoch – die LED-Deckenlampen sind angeschlossen und machen ein prima Licht. T. fand sie etwas funzelig, aber wenn man die 7x 4W LED-Lampen gegen einen 500W Baustrahler antreten lässt, ist klar, dass der Baustrahler gewinnt. Auf jeden Fall sieht das Licht super aus, ist hell genug und erwähnte ich schon wie toll die Deckenstrahler aussehen?

Im Bad sind auch alle Steckdosen angeschlossen, das Spiegel-Licht leuchtet ebenfalls.

Super Sache: die Fußbodenheizung ist angeschlossen und funktioniert. Nur die Anleitung des Controllers müssen wir noch verstehen 😉

Holzarbeiten

Zp. hat die Fensterbretter in Kinderschlafzimmer und Arbeitszimmer montiert. Sieht super aus:

Außerdem wurden aus den unermesslichen Holzvorräten die Bretter für die Fußleisten rausgesucht. Vorsichtige Schätzungen ergeben mehr als 100m Fußleistenbedarf. Einer darf gar nicht daran denken, was es bedeutet, die alle zu befestigen.

Decke streichen (Schweinearbeit)

Mal eben die Zimmerdecke streichen ist auch so ein Spaß. Erstmal muss sämtliche Tapete runter (Schweinearbeit). Unter der Tapete kommt Leimfarbe zum Vorscheinen. Die muss abgewaschen werden (Schweinearbeit). Dabei stellt man fest, dass bei zu starkem Druck nicht nur die Farbe, sondern die ganze Decke abgelöst wird. Die Decke ist quasi nur bröseliger Putz, der zu Sand zerfällt, sobald man ihn anfässt und darüber mit rostigen Drähten befestigtes Stroh (soll den Putz halten).
Also neuer Plan. Einfach drüberstreichen geht nicht, also wird die ganze Decke dünn gespachtelt (Schweinearbeit) und abgeschliffen (Schweinearbeit). Dann kann man endlich den Fußboden abkleben und die Decke streichen.

Das Resultat dieser Schweinearbeit kommt im Bild nicht ganz zur Geltung. Der Unebenheitsgrad der Decke wird so hingenommen um nicht noch mehr Schweinearbeit zu haben.

Außenarbeiten hinten

Zp. hat das Gerüst an einem Tag vor dem Haus ab- und hinter dem Haus wieder aufgebaut. Incl. freischwebender Konstruktion über der Klärgrube (nicht im Bild), damit er an die Giebelseite rankommt.

Sensation: der alte, runerbröselnde Putz wurde sauber abgeschnitten, die ganze Wand nochmal mit Styropor eingekleidet. Wir haben eine gedämmte Wand, hurra 🙂

Vier Tage später ist das Styropor verputzt. Woanders bezahlt man viel Geld für ein „Wärmedämmverbundsystem“, wir bekommen es aus den unendlichen Baustoffvorräten von Zp. einfach mal so an die Wand geklebt. Super!

Innenarbeiten

Lampen im Hauswirtschaftsraum und im Bad reinpuzzeln:

Fertig. Kann aber noch nicht getestet werden, weil erst Elektrikermeister B. vorbei kommen muss um das Licht anzuklemmen. Wir sind gespannt.

Derzweil wird der erste Ofen angeschlossen und angeheizt. T. besteht darauf ihn einweihen zu dürfen. Eine super Attraktion für die kleinsten.

Außenarbeiten

Das Gerüst vorm Haus übt eine große Anziehungskraft auf die kleinen Mitbewohner aus. Täglich muss daran erinnert werden, dass nur Erwachsene das Gerüst betreten dürfen. Vor dem Inneren Auge wechseln tauchen abwechselnd Horrorszenarien und Episoden mit den Doozers auf.

Eine Woche später ist der Putz saniert:

Erfolge vom Wochenende

Die Tür ist eingebaut:

Blöd: wenn die Sonne drauf scheint schließt sie sehr stramm, wenn es nachts kalt ist, geht sie von alleine auf. Nach ewig viel Gefummel eine Einstellung gefunden, bei der sie unabhängig von der Sonneneinstrahlung zu bleibt. Allerdings kann man jetzt nur einmal abschließen. Das Leben ist voller Kompromisse…

Um sich daran zu ergötzen, hat m. die erste Netzwerkdose angeklemmt. Schweinearbeit, wenn man kein Profi-Abisolierwerkzeug hat. Dafür ist ein LSA-Auflegewerkzeug im Hause und das rockt. Einfach sechzehn Mal Klick-klack und schon ist die Dose angeklemmt. Dass am anderen Ende des Kabels in diesem Herbst vermutlich nichts mehr angeschlossen werden kann, blenden wir in dem Moment des Freudentaumels einfach mal aus.

Duplicity on Ubuntu 12.04: broken ssh backend

After setting up a new server with Ubuntu 12.04, I discovered that duplicity was unable to perform backups. The first problem was the missing ssh-backend. The package python-paramiko must be installed in order to use ssh-servers as backup target.

The second pitfall is a bit tricky, because of the confusing error message:

The bug is fixed in the Quantal-package. Simply download the .deb from the Quantal repository and install it:

Disclaimer

Jaja, die Überschriften hier sind wenig originell, die Texte wenig spritzig. Aber wer erstmal ne halbe Stunde nach Mitternacht eines arbeitsreichen Tages vergeblich über Alternativen gebrütet hat verweist die innere (und äußere) Literaturkritik einfach mal an den Katzentisch. So.

Wie man zu große Löcher in Rigipsplatten kleiner bekommt

Ihr kennt das: im Tran den falschen Bohrer erwischt und schon hat das Loch für den Deckenstrahler statt 64mm plötzlich 72mm Durchmesser. Alle Platten nochmal abschrauben und wegschmeißen? Quatsch!

Man nehme man eine Säge, schneide eine Rechteck um das zu große Loch, schneide aus einer jungfräulichen Rigipsplatte ein ebensogroßes Rechteck, bohre dort ein Loch der korrekten Größe rein, befestige den Flicken mit Trockenbauschienen in der Decke, 3x Spachteln & Schleifen und zack:

Das Ding ist: man drückt sich wochenlang vor dieser unangenehmen Aufgabe und eines Tages – tata – hat es jemand anderes gemacht. Danke Zp!

Weiter geht’s im Schlafzimmer

Der Fußboden ist saniert 🙂 🙂 🙂 Zp. hat in mühevoller Arbeit die Unebenheiten ausgeglichen und die neuen Fußbodenbretter verlegt. Sieht super aus und im Gegensatz zum restlichen Haus, kann man über die Bretter laufen, ohne dass es knarzt 😉

Weitere Fortschritte: der Bereich über dem Schlafzimmerbalken wurde mit Styropor gefüllt und mit Rigipsplattenresten verkleidet. Jetzt kann man nicht mehr vom Dachboden ins Schlafzimmer gucken…

Außerdem wurde an den merkwürdigen Übergängen zwischen den alten Platten und dem Balken eine Putzschiene angebracht und der Bereich zwischen Türrahmen und Wand verputzt.

Weil Zp. einmal in Fahrt war, hat er noch gleich der abstehende Putzkante an der Flurtreppe mit einer Leiste zu einem bündigen Abschluss verholfen und den Rest darüber auch verputzt.

Das waren die letzten groben Innenarbeiten. Es fehlt „nur“ noch im Flur oben und unten die dünne finale Putzschicht. Der Rest also ein Klacks.

Bad gestrichen

M. hat nach zwei Runden spachteln und abschleifen die Wände für glatt genug befunden und abgeklebt wie ein Profi (Schweinearbeit). Am Wochenende gemalert und kaum ist man mal ein paar Tage nicht da, hängt der Boiler an der Wand:

Allerdings schief 🙁 Das Problem geringfügig schief gebohrter Löcher („oh, da habe ich wohl eine Fuge erwischt…“) setzt sich mit den 40cm (?) langen Bolzen dann so weit fort, dass die Enden – also dort wo der Boiler dran hängt – 5mm Höhenunterschied haben. Aufgrund der beengenten Raumsituation beim auf- und abhängen sowie anschrauben, wird das Monstrum erstmal schief hängen gelassen. Es gibt gerade wichtiges zu tun…

Pages: <<< 1 2 3 4 5 6 7 8 ... 96 97 98 >>>