f.zz.de

f.zz.de

IAA Nutzfahrzeuge 2016

Posted Sun Sep 25 22:15:10 2016 Florian Lohoff in

Heute war ich spontan mal auf der IAA Nutzfahrzeuge in Hannover. Und habe mich auch sofort in mein hoffentlich neues Dienstfahrzeug verliebt. Ist nicht so Prollig wie Alpina B3 oder C63AMG mit denen man nicht beim Kunden vorfahren kann. Mit dem Unimog macht man eher den Eindruck, hier ist man auf alles vorbereitet ;)

Und futuristische Studien gab es natürlich überall. Hier mal Iveco aber da haben sich MAN, Mercedes, Scania und Volvo nichts getan.

Und natürlich ein Fahrrad darf auf der IAA natürlich auch nicht fehlen.

Auch ZF war mit einem großen Stand vertreten - Musste ich mich doch gleich mal umsehen was da morgen auf mich zukommt.

Siemens Scalance

Posted Fri Sep 23 21:56:47 2016 Florian Lohoff in

Am Montag tauche ich mal in die Welt der Industrial Ethernet ab und Debugge mal Industrieautomation und deren Netz.

Ich habe das seichte Gefühl das wird ein Himmelfahrtskommando, wir bereiten uns mal mit Doku und vielleicht einem Seriellen Kabel vor.

Ach ja - Und Sicherheits ESD Schuhen und Reinraumanzug.

Prosody, LDAP und Roster

Posted Wed Sep 21 19:30:07 2016 Florian Lohoff in

Schön das Prosody in Lua geschrieben ist. So kann man schnell mal dinge fixen ohne gleich alles neu bauen zu müssen.

So ist mir vor Monaten schon aufgefallen das ich meinen Roster gar nicht mehr updaten kann. D.h. Kontakte Löschen geht - nach dem Restart vom Pidgin sind die wieder da. Des Rätsels Lösung war ein fehler im mod_auth_ldap der zwar bei der Authentisierung ein scope=subtree hat aber nicht beim user finden um festzustellen ob ein user überhaupt existiert um den Roster zu speichern ...

function provider.user_exists(username) log("info", "LDAP User Exists check - Username "..username.." in "..ldap_base); local l = do_query({ base = ldap_base; filter = "(uid="..ldap_filter_escape(username)..")"; scope = "s"; }); return l; end

Buchtips am Morgen

Posted Wed Sep 21 09:07:12 2016 Florian Lohoff in

Da kommt man nichtsahnend ins Büro und hat neue Buchvorschläge da liegen.

Cisco - Ein Interface hat viele Namen

Posted Tue Sep 20 15:49:55 2016 Florian Lohoff in

Wieso liebe Cisco? Das Interface heisst TenGigE0/0/2/0 - Aber nur in der ipv4 arp tabelle und in der running config. Bei IPv6 heisst es dann Te0/0/2/0. Auf den Catalysts gibts die abkürzung auf auf TeX/Y/Z auch - Da heisst das eigentliche interface dann aber ''TenGigabitEthernet''.

RP/0/RSP0/CPU0#sh ipv6 ne | inc fe80::224:dc00:6f77:5fc0
Tue Sep 20 13:50:42.199 UTC
fe80::224:dc00:6f77:5fc0                 44   0024.dc77.5fc0 REACH Te0/0/2/0            0/0/CPU0    

RP/0/RSP0/CPU0#sh arp | inc 0001.4227.7360  
Tue Sep 20 13:51:40.536 UTC
80.81.192.11    01:50:36   0001.4227.7360  Dynamic    ARPA  TenGigE0/0/2/0

Printer discovery in 2016

Posted Tue Sep 20 14:45:23 2016 Florian Lohoff in

Ist das echt euer ernst? Printer Autodiscovery durch SNMP get request an die Broadcast Adresse? Ich dachte dafür gibt es SSDP über Port 1900 UDP oder IPP UDP Port 631:

14:42:15.866096 IP (tos 0x0, ttl 64, id 8379, offset 0,
    flags [DF], proto UDP (17), length 71)
    192.168.1.198.44285 > 192.168.1.255.161: 
    { SNMPv1 { GetRequest(28) R=1  .1.3.6.1.2.1.25.3.2.1.2.1 } } 
14:42:15.867962 IP (tos 0x0, ttl 64, id 43867, offset 0,
    flags [none], proto UDP (17), length 80)
    192.168.1.3.161 > 192.168.1.198.44285: 
    { SNMPv1 { GetResponse(37) R=1  .1.3.6.1.2.1.25.3.2.1.2.1=
        .1.3.6.1.2.1.25.3.1.5 } } 

IP normalisierung und parsing

Posted Mon Sep 19 15:14:02 2016 Florian Lohoff in

Es gibt für Perl diverse IP Adresse Normalisierungs oder Manipulations Module. Jedes ist auf seine Weise kaputt.

Normalerweise nehme ich gerne NetAddr::IP weil es einfach einen String konsumiert und mir eben den Host oder Network oder die Masklen zurückliefern kann. Dazu bekomme ich auch entsprechend die Normalisierte Schreibweise zurück - Gut um z.b. DNS Zonen zu schreiben. Heute war allerdings die Natur wieder besser. Es gibt Content da behauptet NetAddr::IP es sei eine ipv4 Adresse - wenn man es ausgibt kommt eine IPv6 Adresse bei raus. Jetzt muss Mutter Natur nur jemanden Produzieren der diesen Content da rein wirft - Aber auf Mutter Natur ist ja verlass:

libnetaddr-ip-perl: Parses number - version() == 4 - prints v6

Es gibt natürlich andere Module - Net::IP was aber Probleme in der Normalisierung hat. So ist der default bei Net::IP die IPv6 Adressen nicht in ihre Normalisierte shortform zu bringen wie es das RFC5952 verlangt.

perl -MNet::IP 
    -e '$i=new Net::IP("2001:DB8::/32") or die (Net::IP::Error());
        print $i->ip() ."\n";'
    2001:0db8:0000:0000:0000:0000:0000:0000

Also findet man ''$i->short()'' was funktioniert

perl -MNet::IP 
    -e '$i=new Net::IP("2001:DB8::/32") or die (Net::IP::Error());
        print $i->short() ."\n";'
2001:db8::

Nur macht das dann bei IPv4 ärger:

    perl -MNet::IP 
    -e '$i=new Net::IP("192.168.0.0/24") or die (Net::IP::Error());
        print $i->short() ."\n";'
192.168.0

Mal davon abgesehen das es nur Netze verarbeiten kann und sowas wie ''192.168.1.22/24'' komplett verschmäht.

Dann gibt es noch Data::Validate::IP was ich zugegebenermaßen noch nicht probiert habe. Da es aber auch keine Normalisierung hat löst das Modul auch nur die Hälfte der Probleme. Vielleicht sollte ich doch mal ein eigenes IP Parsing Modul & Validation Module schreiben. Wie kommt man an einen CPAN account?

Ein Jahr danach

Posted Sun Sep 18 14:36:09 2016 Florian Lohoff in

Als Legal Präamble zu diesem Blogpost: Nichts davon kann ich belegen - Da ich keinen Zugang mehr zu meinen Firmenmails etc habe schonmal noch viel weniger. Es sind lediglich meine Eindrücke, Erlebnisse und Ergebniss von bestimmt 200 Gesprächen die ich geführt habe. Sollte der Eindruck einer Tatsachenbehauptung entstehen so ist das ein Fehler - Es ist alles fiktional - Also bis auf die Fristlose Kündigung. Nicht das man übermorgen hier mit einer Einstweiligen Verfügung steht wegen falscher Tatsachenbehauptungen - Ich würde es ihnen Zutrauen nach den Erfahrungen die ich gemacht habe.

Heute vor einem Jahr überreichten mir mein damaliger Chef Patrick Heinzberger und ein weiterer Kollege aus der Geschäftsleitung meine fristlose Kündigung. Nicht das man einen Grund hatte - bzw - Man hatte keinen den man wirklich schreiben wollte oder konnte. Wer will schon da stehen haben:

Warf einem Geschäftsführer Unterschlagung vor

Nicht das ich das getan hätte - dieses Wort habe ich nie benutzt aber das war das was man mir wiederum vorgeworfen hat. Die Frage: "Warum wird das nicht abgerechnet?" wird zu einem Unterschlagungsvorwurf. Vor allem wurden im laufe der Wochen und Monate angeblich ja Preislisten und Rechnungen gefunden. Also warum genau hat man dann die Kündigung ausgesprochen wenn man mir das einfach hätte beantworten können das es doch abgerechnet wird?

Wer es nochmal nachlesen möchte wie sehr sie doch nichts in der Hand hatten - Die Historie hatte ich ja schonmal aufgeschrieben.

Nach bestimmt 200 Gesprächen in den letzten 12 Monaten muss ich zusammenfassen das die Kündigung am meisten darüber sagt was vermutlich passiert ist. Nachvollziehen wird man davon nichts mehr können weil so wie ich vermute etwas passiert ist was wir in der Technik bei Vitroconnect immer als "Das Fahrtenbuch fälschen" belächelt haben. Die Indizien deuteten schon in den auf die Kündigungen folgenden Diskussionen darauf. Plötzlich tauchten neue angebliche Belege auf die Wochen vorher keine Erwähnung fanden. In den Gesprächen schien man auch nur darüber besorgt zu sein was denn ein besonderer Shareholder wohl macht wenn er Kenntnis erlangt. Hier hat es jetzt ja bei der VMCap einen Exit gegeben so das die Gefahr gebannt ist.

Ich kann mir das ganze nur so erklären das es am Ende ein Entscheidung war "Entweder Patrick oder Ich" ... Irgendjemand musste seinen Kopf hinhalten. Dann ist die Entscheidung natürlich einfach wenn man in der Position ist jemanden "Opfern" zu können.

Bei der Anschliessenden Diskussion über die Rücknahme der Kündigung ging es in meinen Augen lediglich darum eine schöne Geschichte schreiben zu können. Integrale Mitarbeiter entsorgen ist halt immer schlecht für die Stimmung. Also wurde eine Geschichte konstruiert in der man mir vermeintlich eine Rückkehr ermöglicht und dann sukzessive die Bedingungen schlechter macht bis ich sagen muss das ich mir das nicht leisten kann. Daraufhin konnte man sich intern Prima hinstellen:

Tja - es ist sehr schade aber der Florian wollte ja nicht mehr

Man könnte den Eindruck gewinnen das es einen professionellen Spindoktor gab. Danach geht man noch hin und Bauchpinselt Mitarbeiter mit teuren Notebooks und alles was das Herz begehrt und schon ist vergessen was passiert ist.

Als ein weiteren Punkt muss man halt auch feststellen das das Menschen oder Mitarbeiterbild sehr befremdlich ist. Wenn ein Geschäftsführer scheinbar versucht nach der fristlosen Kündigung eines Mitarbeiters zu verhindern das dieser einen neuen Job bekommt, und wenn das doch klappt, versucht über den neuen Arbeitgeber Druck auszuüben, zeugt das in meinen Augen von einem kaputten Menschenbild - Offensichtlich hält man Mitarbeiter eher für Leibeigene.

Man könnte auch der Meinung sein das es hier um Nachtreten und Rache geht, was ja auch wieder nur zeigt wie Wund der Punkt war den ich getroffen habe und wie wenig belastbar die Belege gewesen wären hätte man sie wirklich mal vorzeigen müssen.

Die ganze Aktion hat mein "Lebenslanges Schwarzbuch" von 1er auf 3 Personen anwachsen lassen. Mit Menschen die keine Skrupel damit haben mir vorsätzlich zu Schaden werde ich nicht zusammenarbeiten.

Und für das nächste mal sollte es eine Warnung sein wenn man fast 2 Jahrzehnte einen Chef hat von dem kein einziges Detail aus dem Privatleben bekannt ist, nicht einmal der Wohnort - Hier geht es wohl darum die eigene Angriffsfläche zu minimieren.

Daimler und Edith Kiss

Posted Wed Sep 14 14:58:13 2016 Florian Lohoff in

Eine supergeile Posse in Berlin über die Benennung der Straße vor der neuen Vertriebszentrale. Ich finde den Namen gelungen.

uucp, stunnel, s_connect

Posted Tue Sep 13 21:47:30 2016 Florian Lohoff in

Es ist schon gruselig - Da will man nach 10 Monaten sein UUCP Store-And-Forward wieder in Betrieb nehmen und man stellt fest das Debian Squeeze und Jessie echt nicht mehr so miteinander wollen.

Jessies stunnel4 verweigert die compression mit zlib:

[!] Line 23: "compression = zlib": zlib compression is disabled in
the Debian package of OpenSSL

Was aber in squeeze mal default in der stunnel config war.

Dafür kommen Squeeze und Jessie wieder sich bei SSLv3 und TLSv1 in die Quere ...

Naja - es läuft wieder ... Das Notebook als die "dicke pipe" nach Hause ist wieder funktionsfähig ...

SMP mit unterschiedlicher Cache Linesize

Posted Tue Sep 13 18:40:17 2016 Florian Lohoff in

Von Fefe - Sehr spannender Bug. Mono Apps crashen randommäßig wenn sie auf BIG.little ARM SOCs laufen. BIG.little Architekturen kann man sich so vorstellen als würde man eine Multicore CPU bauen die zum einen Intel Xeons drauf hat und zum anderen Intel Mobile Celerons. Je nachdem wieviel Power das System braucht schaltet man dann die Cores ab. Wenn also das Phone im Standby ist läuft nur ein "little" core und sobald man das Telefon aufweckt werden 2-3 BIG cores gestartet die das Screen rendering übernehmen und die ganzen Apps befeuern.

Der Linux Kernel scheduled dann die Apps auf den Cores wie sie es halt brauchen. Wenn eine App ihre Timeslice immer schön aufbraucht wird sie irgendwann vom little auf den BIG core verschoben.

Jetzt gibt es "atomic" primitiven oder stack trampolines die davon ausgehen das es eine bestimmte cache linesize gibt. Wenn ich also einen stack trampoline erzeuge oder einen atomic Bereich schreibe muss ich dann mit Instructions dafür sorgen das die Cacheline zurückgeschrieben wird.

Wenn ich also von einer 64byte Cacheline ausgehe - Der Stack trampoline 40 byte hat und ich die Cacheline zurückschreibe gehe ich davon aus das alles aus dem D-Cache im Speicher landet und dann mit einem I-Cache invalidate alles neu gefetched wird. Wenn ich jetzt aber plötzlich auf einem "little" System bin das eine kleinere cacheline size hat, sagen wir mal 32 byte, dann flushe ich die letzten 8 byte meines Stack trampolines nicht in den Speicher und invalidiere auch 8 byte zu wenig im I-Cache. Führt dazu das wenn ich das dann ausführe die letzten 8 byte quasi "random" content haben.

Beliebig fies das zu finden.

Aber so ist das halt wenn SMP eben nicht mehr Symmetric ist.

http://www.mono-project.com/news/2016/09/12/arm64-icache/

Wir haben eine neue Mama

Posted Tue Sep 13 15:29:03 2016 Florian Lohoff in

Trompete oder nicht

Posted Tue Sep 13 09:45:16 2016 Florian Lohoff in

mysql remote root 0day

Posted Mon Sep 12 16:37:26 2016 Florian Lohoff in

Also wenn ich mir das durchlese fallen mir sofort tonnen an schwächen in dem security modell von MySQL auf. Wieso darf ein normaler user das logging in eine Datei umändern? Warum darf ein user auf dem Server eine Datei erzeugen? Und warum ist der Workaround so kaputt?

Damit der db user nicht kaputt macht ist der workaround:

The issue was fixed by refusing to load config files with world-writable permissions as these are the default permissions applied to files created by OUTFILE query.

Da fällt mir nix zu ein. Der darf zwar alles kaputtschreiben aber wir lesen es halt einfach nicht wieder. Au backe

http://legalhackers.com/advisories/MySQL-Exploit-Remote-Root-Code-Execution-Privesc-CVE-2016-6662.html

Cisco Catalyst Stack

Posted Thu Sep 8 23:01:56 2016 Florian Lohoff in

Whats the point in building a stack of which the most visible "advantage" people say is the unified management point, when some commands simply dont work on the "other halve":

2960Sflexstack#sh platform port-asic stats drop gigabitEthernet 1/0/1
%Command Rejected: interface 'GigabitEthernet1/0/1' is not local port

Ariane5 Explosion

Posted Wed Sep 7 20:04:54 2016 Florian Lohoff in

Es gibt ja den Mythos das die Explosion der Ariane5 seine Ursache in der konversion von Yards und Metern hatte.

Hier gibt es mal eine aufarbeitung der Fehler im Detail. Ein ganz banaler "Integer Overflow" wenn man einen 64bit in einen 16bit integer konvertiert. Die Ariane5 war einfach "schneller" als die Ariane4 für die das Modul geschrieben war. D.h. die Geschwindigkeit (in welcher Maßeinheit auch immer) passte nicht mehr in 16bit ... BOOM

regfish meldet eine SQL injection

Posted Tue Sep 6 22:39:35 2016 Florian Lohoff in

Aha spannend - Mich hätte noch interessiert wie die drauf kommen das es nur eine geringe Menge ist.

Sehr geehrte Damen und Herren,

auf der regfish-Plattform wurde kürzlich der Versuch eines Angriffs per SQL Injection und daraufhin auch eine mögliche Schwachstelle im passwortgeschützten Bereich identifiziert, sodass der Diebstahl geringer Mengen persönlicher Daten unserer Kunden nicht ausgeschlossen werden kann.

Man fährt fort mit:

Bei dem Angriff handelte es sich, wie eingangs erwähnt, um eine möglicherweise erfolgreiche SQL-Injection. Unsere Infrastruktur wurde nicht kompromittiert und war zu keinem Zeitpunkt unter fremder Kontrolle.

Also eine SQL Injection ist jetzt schon irgendwie wenn jemand anders mit einem mal kontrolliert wie meine SQL Statements aussehen oder?

Naja ...

VIM: Erkenntnis des Tages #4

Posted Tue Sep 6 22:06:06 2016 Florian Lohoff in

Wir machen eine abbreviation - Für die .vimrc

iab ,,P <C-R>=substitute(system("pwgen -s 16 1"), '\n', '', 'g')

Danach lässt sich im insert mode einfach ein ,,P tippen und nach der eingabe eines space wird das ,,P durch ein 16 zeichen langes password ersetzt.

Natürlich kann man da auch anderes machen:

iab ,,U <C-R>=substitute(system("uuidgen"), '\n', '', 'g') iab ,,Y <C-R>=strftime("%a, %d %b %Y %T %z")

Rückreise ...

Posted Sat Sep 3 18:52:07 2016 Florian Lohoff in

Da scheint noch Firmenwachstum einkalkuliert ...

VIM: Erkenntnis des Tages #3

Posted Sat Sep 3 15:36:31 2016 Florian Lohoff in

CTRL-W =

Alle Fenster in etwa gleich groß machen ...

Ringkernspeicher herstellen

Posted Sat Sep 3 13:54:12 2016 Florian Lohoff in

Spannendes video wie in den 60ern Ringkernspeicher gemacht d.h. gefädelt wurde.

Sommerparty Filoo

Posted Fri Sep 2 15:44:43 2016 Florian Lohoff in

Wir fahren Quad ...

pwgen und yYzZ

Posted Thu Sep 1 21:19:12 2016 Florian Lohoff in

Die gute Tat für heute ist Debian Bug #836334

    commit acc97baf11505b5b741b3dde23b5855bf4eb8c88
    Author: Florian Lohoff <f@zz.de>
    Date:   Thu Sep 1 21:12:28 2016 +0200
    
        Add -r chars option for removing chars from password.
        
        The biggest annoyance on German Keyboards is the swap
        of y and z to the American Keyboard layout. Sometimes
        it cant be avoided to use American Keyboard e.g. on
        LOM/BMC/IPMI access. It would be nice to be able to
        avoid yYzZ in passwords because of this problem.
        As there will definitly be other Keyboard layouts
        which have the same problem add an option to avoid
        an arbitrary group of chars.

VIM: Erkenntnis des Tages #2

Posted Thu Sep 1 17:38:58 2016 Florian Lohoff in

vim <filename> +10

Öffnet das File direkt an der Zeile 10

FTTC/FTTX Bauleiter?

Posted Wed Aug 31 18:49:51 2016 Florian Lohoff in

Sind in Essen auch so viele entsorgt worden das man jetzt wieder Leute sucht?

Hallo Herr Lohoff,

ich bin auf Ihr Xing-Profil aufmerksam geworden, da ich gesehen habe, dass Sie Erfahrungen und Kenntnisse im Bereich FTTC/FTTX haben.

Einer meiner Mandanten bietet momentan eine vakante Position als Bauleiter (m/w) FTTC/FTTX im Bereich Glasfasernetze an.

Bauleiter ist ja jetzt nicht so meins ;) Aber wie ich immer zu sagen Pflegte:

Machen wir ja nur nicht weil niemand die Schaufeln bestellt.

VIM: Erkenntnis des Tages

Posted Wed Aug 31 16:48:19 2016 Florian Lohoff in

dt<space>

Wir löschen bis zum nächsten space ... Wenn man mal IP Adressen oder Pfade löschen will deren seperator auch word boundaries sind.

The case of the 500-mile email

Posted Tue Aug 30 14:35:05 2016 Florian Lohoff in

Die 500 Meilen EMail ...

http://www.ibiblio.org/harris/500milemail.html

Schwer spannend ...

irssi config recovered

Posted Mon Aug 29 21:08:47 2016 Florian Lohoff in

Nach dem VIM/Shell/Mutt Workshopwochenende mit den Kollegen im Linux Hotel habe ich mir dann doch mal die Mühe gemacht meine irssi config aus dem Backup zurückzuholen. Seit knapp einem Jahr nicht mehr den irc client gestartet nachdem ich mein Firmennotebook ja so plötzlich abgeben "durfte".

Jetzt kann ich auch wieder IRCen und selbst mein Nick l0l0 kennt der Nickserv auch noch ... Na dann ...

The Little Person Inside

Posted Fri Aug 26 11:09:13 2016 Florian Lohoff in

UDLD, ASIC, STP - Kaputt

Posted Thu Aug 25 18:38:29 2016 Florian Lohoff in

Ich habe ja immer das UDLD Feature bei Cisco belächelt. Was soll das auf einem Link zu erkennen das dieser nur unidirektional Funktioniert. "Was soll schon schief gehen" ist da das Motto des Tages.

Heute war es dann soweit - Ich stehe am Whiteboard und Schule zwischen Tür und Angel über 802.1q, 802.1p, 802.1ad, LACP, Spanning Tree, MAC Learning etc - Plötzlich steht die Realität hinter mir und tippt mir auf die Schulter.

Wie das so ist bei einem L2 Ausfall - Man wünscht sich konsequent Out-Of-Band Management gemacht zu haben aber natürlich ist das nicht so konsequent wie es sein könnte.

Nach einigem Gefluche und 15 Hops später shutten wir mal diverse Links die alle sich über MAC Flapping beschweren.

Der Fehler lässt sich zügig auf ein Switchpaar eingrenzen aber es muss deutlich mehr abgeschaltet werden um die Situation zu beruhigen als man so meinen würde.

Nachdem es alles wieder ruhiger wird stellt sich raus.

In einem der Coreswitche ist der erste ASIC kaputt und hat zum einen einen Linkmember eines Portchannels in den Abgrund gerissen, wie auch 2 Kunden trunk ports. Der Effekt ist das wir zwar Input Packets haben, aber alle Output Packets als dropped gezählt werden und nicht den Switch verlassen. D.h. auch STP funktioniert nicht. Wir haben einen unidirektionlen Link der dann zu einem L2 Loop führt. Natürlich ist von der Symptomatik auch nicht der kaputte Switch der Verursacher sondern der Nachbar der nicht mehr in der Lage ist den Loop zu erkennen.

Den ganzen Tag dann mal Auswirkungen und Erkenntnisse des Ausfalls nachgearbeitet no logging console ist auch mein Froind und gefixed.

Die nächsten Tage werden dann mal die Provisionierungsscripte nachgezogen die entsprechend auf inter-switch-links UDLD Deployen.

Spannend ist das mit dem 802.3ae das ganze scheinbar mandatory wird mit der unidirectional Link detection.