Ich browse gerade durch einen Issue bei #Gitlab und lese dies:
Egal, ob nun Google, Apple, Microsoft, Oracle… — dieses “der Algorithmus entscheidet” ist ganz ganz großer Mist. Davor soll sich niemand verstecken dürfen.
Ich browse gerade durch einen Issue bei #Gitlab und lese dies:
Egal, ob nun Google, Apple, Microsoft, Oracle… — dieses “der Algorithmus entscheidet” ist ganz ganz großer Mist. Davor soll sich niemand verstecken dürfen.
Mit den Jahren reagiere ich immer allergischer auf die völlig unreflektierten Jubelgesänge pro OSS.
OSS hat einen einzigen Vorteil: Umsonst in der Anschaffung. Jeder weitere behauptete Vorteil, insbesondere daß OSS sicherer sei weil ja jeder reinsehen kann, scheint mir realitätsfern: Denn es sind IMMER die anderen, die ja reinschauen können. Woraus folgt: Niemand schaut rein. Oder? Wer von euch hat denn den Quellcode zum Linux Kernel, zu OpenOffice, Firefox, Gnome… gelesen? Und lesen allein ist ja komplett sinnlos, man muß auch noch kompetent sein. Nein, wir haben nicht einmal den Quellcode für /bin/true
gelesen. Oder?
“Die Community” ist auch eine schöne Vorstellung — allein: die Entwicklungskosten für die wirklich großen OSS-Projekte zahlen Firmen, indem sie Programmierer bereitstellen. Und die arbeiten wohl eher nach Vorgaben ihrer Arbeitgeber als nach unseren Issuetracker-Tickets. (Mir fallen auch viele Ausnahmen ein, aber die ändern nichts am Prinzip)
Die Zeiten, in denen ein Student einen Terminal Emulator schreibt und hinten versehentlich ein Kernel rauspurzelt, der dann die Welt erobert — die sind vorbei.
Nein, es geht um etwas anderes: offene Protokolle und offene Dateiformate. Im Internet, gibt es da noch proprietäre Protokolle? Mir fällt nichts ein. Außerhalb sicherlich, aber auch da fällt mir gerade nichts ein.
Aber die offenen Dateiformate: Da entscheidet sich m.E. die Zukunft. Wir sehen ja den Kampf: Microsoft hatte seine völlig geschlossenen Office-Formate und mußte dann (wegen der Regierungsaufträge) neue Formate erfinden: Office Open XML, das so komplex ist, daß niemand, auch MS selber nicht, es vollständig implementiert. Angereichert dann um eine zu allen anderen inkompatible Makrosprache, so daß auch heute noch .docx
automatisch als “Word-Dokument” verstanden wird — was falsch ist. Microsoft Word kann docx schreiben, Apple Pages kann es, Libreoffice kann es, Papyrus Office kann es… Ja, die Dokumente sehen vielleicht überall leicht anders aus, aber wer definiert denn, was “richtig” und was “falsch” ist?
Ich bin davon überzeugt, daß unsere digitale Freiheit zuerst an offenen Formaten — und danach vielleicht an quelloffenen Verarbeitungsprogrammen — hängt.
Und der Titel dieses Posts ist natürlich mit Absicht provokant 😉
Gestern wollte ich der Tochter mal wieder was von vor dem Krieg erzählen: Früher wurde auf Disketten gespeichert, Disketten sahen so aus, das nimmt man heute manchmal noch als Speichern-Symbol.
Und wie? Nun, indem ich ihr eine moderne App mit Speichern-Symbol zeige:
“Na, Tochter, was glaubst Du, worauf man zum Speichern tippen muß?”
Sie zeigt zielsicher auf die Diskette, ich staune Bauklötzer. “Woran hast Du das erkannt???” “Na das ist doch eine Speicherkarte!” antwortet sie verwirrt…
Die kleine Tochter hat an ihrem Odroid eine drahtlose Kombi aus Tastatur und Maus zu hängen, für die gibts scheinbar Security-Updates:
root@gerhard:~# fwupdmgr get-upgrades ? BJTD4R has no available firmware updates Unknown Product ? ??Unifying Receiver: ? Device ID: 71fcf526569a6cf966914382b98edf144b59cf48 ? Summary: A miniaturised USB wireless receiver ? Current version: RQR24.01_B0023 ? Bootloader Version: BOT03.01_B0008 ? Vendor: USB:0x046D ? Install Duration: 30 seconds ? GUIDs: cc4cbfa9-bf9d-540b-b92b-172ce31013c1 ? fcf55bf5-767b-51ce-9c17-f6f538c4ee9f ? HIDRAW\VEN_046D&DEV_C52B&REV_00 ? 279ed287-3607-549e-bacc-f873bb9838c4 ? HIDRAW\VEN_046D&DEV_C52B ? Device Flags: ? Updatable ? ? Supported on remote server ? ??Unifying Receiver (RQR24) Device Update: ? New version: RQR24.06_B0030 ? Remote ID: lvfs ? Summary: Firmware for the Logitech Unifying receiver ? License: Proprietary ? Size: 86.4?kB ? Vendor: Logitech ? Duration: 30 seconds ? Flags: is-upgrade ? Description: This release addresses an encrypted keystroke injection issue known as Bastille security issue #13. The vulnerability is complex to replicate and would require a hacker to be physically close to a target. ? ? A few of Logitech's devices used to send select buttons in an unencrypted way, and in an effort to protect against this vulnerability, Logitech removed the feature. Affected hardware is: ? ? ? Wireless Mouse M335 ? ? Zone Touch Mouse T400 ? ? Wireless Mouse M545 ? ? Wireless Mouse M560 ? ? Touch Mouse M600 ? ? Touch Mouse T620 ? ? Wireless Rechargeable Touchpad T650 ? ? Although Logitech does not recommend it, these features may be re-activated by keeping/downgrading the receiver to an older firmware. ? ??Unifying Receiver (RQR24) Device Update: New version: RQR24.05_B0029 Remote ID: lvfs Summary: Firmware for the Logitech Unifying receiver License: Proprietary Size: 86.4?kB Vendor: Logitech Duration: 30 seconds Flags: is-upgrade Description: This release addresses an unencrypted keystroke injection issue known as Bastille security issue #11. The vulnerability is complex to replicate and would require a hacker to be physically close to a target. root@gerhard:~#
Was mache ich nun?
Angst vor Angriffen habe ich wirklich nicht.
Gerade sehe ich mal durch die Logs des sshd
, da fällt auf:
Mar 2 09:59:46 big sshd[7021]: Invalid user admin from 141.98.80.69 port 45833 Mar 2 09:59:46 big sshd[7024]: Invalid user admin from 141.98.80.70 port 35859 Mar 2 09:59:54 big sshd[7037]: Invalid user user from 141.98.80.71 port 46773 Mar 2 09:59:55 big sshd[7468]: Invalid user admin from 141.98.80.82 port 43473 Mar 2 09:59:56 big sshd[7573]: Invalid user operator from 141.98.80.85 port 50042 Mar 2 09:59:57 big sshd[7599]: Invalid user test from 141.98.80.69 port 33773 Mar 2 10:00:06 big sshd[7684]: Invalid user guest from 141.98.80.71 port 42305 Mar 2 10:00:07 big sshd[8321]: Invalid user ubnt from 141.98.80.82 port 38095 Mar 2 10:00:07 big sshd[8997]: Invalid user guest from 141.98.80.83 port 35895 Mar 2 10:00:07 big sshd[9004]: Invalid user support from 141.98.80.85 port 52444
Das heißt, der Angreifer hat mehrere IPs unter seiner Kontrolle und kann die wechseln. Sinnvoll ist das nur, um ein IDS zu umgehen.
Ich habe (Vodafone Kabel) Gigabit zu Hause, natürlich nur im Download, momentan gerade (was macht der Rest der Familie? Internet kopieren?)
[ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 447 MBytes 375 Mbits/sec 162 sender [ 5] 0.00-10.00 sec 444 MBytes 372 Mbits/sec receiver
Und Upload:
[ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 64.8 MBytes 54.4 Mbits/sec 57 sender [ 5] 0.00-10.00 sec 63.0 MBytes 52.9 Mbits/sec receiver
Im Download habe ich aber auch schon Werte im die 980 gesehen.
Und was nutzen wir davon?
Das ist der Traffic eines Jahres, mit durchgehend Homeoffice, zwei Kindern im Homeschooling, jedes mit eigenem Rechner.
Gut, wir zocken kaum, das bißchen Minecraft des Sohnes fällt nicht auf.
Ich verstehe nicht, weswegen alle Welt Gigabit haben will.
Gestern ging @workplace das Drama los:
DNS-Resolution für unsere Hosts ging mal, mal nicht mit SRVFAIL. Unser eigener autoritativer Server hatte keine Problem, aber der Rest der Welt: 1.1.1.1, 8.8.8.8, 9.9.9.9 und so weiter. Alle wie ein Blinker: An-Aus-An-Aus.
Als anständiger Hobby-Admin betreibe ich die fragliche Zone natürlich mit DNSSEC, seit vielen Jahren völlig schmerzlos.
Doch gestern zeigte mir Dnsviz viel rot:
Very uncool. Nun KANN das eigentlich gar nicht passieren, ich habe in meinem bind die Zone so konfiguriert:
zone "sagich.nicht" { type master; auto-dnssec maintain; key-directory "/keys"; inline-signing yes; file "sagich.nicht"; };
Das ganze Signing passiert also automatisch, und das seit Jahren, und daran hat sich auch nichts geändert. Kruzitürkn! Ich bin kein DNSSEC-Profi, wie gesagt, das läuft seit Jahren stabil und ohne menschliches Eingreifen.
Heute früh dann noch mal mit frischem Tee einen Blick in die Runde geworfen: Mein Primary hat eine Serial von 2021021014, während der Secondary 2021070247 hat. Let’s do the math: 2021021014 < 2021070247
. Wenn man Serial schreibt, hat sich die Schreibweise YYYYMMDDzweistelligesinkrement bewährt. Es gibt im Firmen-DNS (hoffentlich) nur zwei Menschen, die da schreiben können/dürfen — einen Kollegen und mich. Der höheren Serial 2021070247 nach zu urteilen, hat jemand am 07. 02. 2021 die Serial erhöht, um einen gewaltigen Sprung. Was zur Folge hatte, daß der Secondary ab diesem Zeitpunkt keine Notifies mehr entgegennahm, warum auch. Auch nicht die Notifies, daß sie die RRSIGs geändert haben…
Ich für meinen Teil kann mich nicht erinnern, am 7. 2. im DNS geschmiert zu haben — was aber nicht allzuviel bedeutet, vielleicht habe ja doch ich das vergeigt.
Jetzt müssen wir warten, bis der Admin des Secondaries die Zone bei sich löscht und neu zieht, dann ist hoffentlich alles wieder schön.
#selflart #dns #dnssec
Ich hatte bislang Home Assistant in einem Python virtual environment zu laufen — warum? Nun, es gibt wohl ein Image auf SD-Karte: Einschieben, booten, HA läuft. Allerdings ist ein Pi viel zu potent, als daß man ihn mit einer einzigen Aufgabe beleidigend unterfordern wollte.
Da kam die venv-Variante gerade recht: Man kann rumschweinen, Python-Packages nachinstallieren nach Gusto, ohne das system-Python anfassen zu müssen. Mit einer Einschränkung: Man ist an das System-Python(3) gebunden, und das ist bei einem aktuellen Raspbian 3.7.3 — und HA mault das seit Monaten als deprecated an.
Ein neueres Python gibt es aber nicht als Paket (jedenfalls habe ich nichts gefunden). Also ich bin ja ein uberhero, habe viele viele Jahre sendmail aus den Quellen übersetzt und meine allererste sendmail.cf tatsächlich selber geschrieben (und danach m4 entdeckt), also so ein popliges Python selber bauen, ist ja wohl keine Herausfoderung! Stellt sich raus: In der Tat, ist es nicht, geht ganz smooth. Also schnell noch Aliase gesetzt und los: python-venv gestartet, HA gestartet.
Welcome tot the dependencies hell!¹
Ach was da alles nicht verfügbar ist! xz
,sqlite3
— danach habe ich aufgegeben.
Die Lösung?
systemctl stop home-assistant@homeassistant.service systemctl disable home-assistant@homeassistant.service docker run --init -d --name="home-assistant" -e "TZ=Europe/Berlin" -v /home/homeassistant/.homeassistant:/config/ --net=host --restart=always homeassistant/raspberrypi4-homeassistant:stable
Löppt. So einfach kann es sein!
root@r4:~# python3 --version Python 3.7.3 root@r4:~# docker exec -ti home-assistant python3 --version Python 3.8.7 root@r4:~#
Dann will man natürlich gleich Watchtower haben. Das meckert zwar beim Starten, läuft dann aber wohl doch:
root@r4:~# docker run -d --name watchtower --restart always -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm/v7) and no specific platform was requested 33f87b78d1ba24793b0272db247f7f4fc9315e0e4aee335128e1049db6fe3aa3 root@r4:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 33f87b78d1ba containrrr/watchtower "/watchtower" 13 seconds ago Up 11 seconds 8080/tcp watchtower bfebd671b8fd homeassistant/raspberrypi4-homeassistant:stable "/init" 43 minutes ago Up 43 minutes home-assistant root@r4:~#
Wunderbar! Warum habe ich das nicht seit langem so???
¹ OK, wer schon mal Ruby Dependencies hinbekommen hat, der wird dasselbe bei Python noch volltrunken hinbekommen.
Das ist eine “Rezension”, die ich 2016-11-16 12:58:39+0100 bei Google+ geschrieben hatte. und nun aus Gründen re-posten möchte.
—–8<—–
Projekt Phoenix — Der Roman über IT und DevOps
Die Story:
Der Held (Bill Palmer) wird anfangs zum IT-Chef (genauer: VP IT
Operations) der Firma Parts Unlimited befördert — eigentlich läßt er
sich eher breitschlagen, diesen Posten zu übernehmen. Parts Unlimited
ist eine Zulieferfirma (Autobau?, das wird nicht genauer erklärt) und
hat ca. 4000 Mitarbeiter. Der Firma geht es nicht gut, die Konkurrenz
ist schneller und beweglicher. Deshalb wurde das Programm Phoenix ins
Leben gerufen, das nun alles ändern soll. An Phoenix hängt die Zukunft
der Firma. Phoenix selbst ist en großer Klumpen aus Prozessen,
Verantwortlichkeiten — und eben auch (selbstgeschriebener) Software.
Sehr viel hängt dabei von der völlig überforderten IT ab.
Der erste Teil des Romans führt die handelnden Personen ein, und
illustriert ansonsten die deprimierende Situation in der Firma. Auf jede
Katastrophe folgt eine noch größere Katastrophe. Bill versucht zu
retten, was zu retten ist, aber die ihm zur Verfügung stehende Zeit ist
einfach zu kurz. Natürlich leidet auch seine Familie. Am Ende wird das
Projekt Phoenix mit Schmackes gegen die Wand gefahren (erinnert sich
jemand an die zusammenstürzende Seilbahn bei Alexis Sorbas — genau so!)
Verantwortlich letztlich ist der völlig inkompetente CEO der Firma, der
sämtliche Warnungen Bills in den Wind geschlagen hat. Bill kündigt
daraufhin.
In Teil 2 wird genau derselbe CEO über Nacht geläutert und sieht seine
Fehler ein. Bill wird wieder eingestellt und bekommt faktisch freie
Hand. Bereits im vorigen Teil tauchte ein Aufsichtsrats-Kandidat auf:
Erik, der fortan als Bills Mentor auftritt. In den Gesprächen zwischen
Erik und Bill geht es immer darum, erstens die IT als Produktion zu
verstehen und zweitens Bill begreiflich zu machen, daß er die
Gesamtorganisation im Blick haben muß, nicht nur die IT. Dabei ist Erik
eine merkwürdige Mischung aus einem weisen alten Kungfu-Lehrer und
Sokrates (Mäeutik) In diesem zweiten Teil schafft Bill es, die
wichtigsten Engpässe zu lokalisieren und beginnt mit ihrer Beseitigung.
In Teil 3 dann wird die Ernte eingefahren, die in Teil 2 gesät wurde.
Alles wird fein, die Firma läßt die Konkurrenz hinter sich, Bill steht
eine glänzende Karriere an der Firmenspitze in Aussicht.
Mein Senf:
Ein grauenvoll schlechter Roman. Die handelnden Personen sind allesamt
Klischees, die Handlung ist völlig vorhersehbar, die Personen entwickeln
sich nicht. Die plötzliche Läuterung des CEOs über Nacht wird weder
herbeigeführt noch irgendwie begründet. Es ist einfach passiert. Die
Dialoge sind schmerzhaft gestelzt und könnten einer Image-Kampagne für
irgendwas entnommen sein. Keine Lesempfehlung von mir.
Es sei denn, man hat irgendwie mit IT und Entwicklung zu tun. Der Autor
ist ehemaliger Mitgründer von Tripwire und versteht also etwas vom
Gegenstand des Buches: Wie baue ich ein funktionierendes Softwareprodukt
in möglichst kurzer Zeit? In Teil 1 wird die Ist-Situation dargestellt:
ein einziges Kuddelmuddel. Jeder Entwickler darf überallhin einchecken,
es gibt keine stable branches, CI/CD gibt es auch nicht, keine
definierten Testumgebungen usw. usf. Ab der Bestandsaufnahme und auch
im ganzen Teil 2 kommt Erik die Rolle zu, Bill und damit dem Leser die
Prinzipien von DevOPs nahezubringen. Dabei tritt er wie ein asiatischer
Guru auf. Teil 3 spielt gar keine Rolle mehr, der ist nur fürs Happy
End zuständig. Und da könnte dann auch der Lesegewinn für den
interessierten IT-ler/Entwickler liegen: die Herleitung von modernen
Prinzipien in der Software-Entwicklung. Nur ist die Frage, ob man dafür
nicht besser ein trockenes Lehrbuch gelesen hätte. Apropos Lehrbücher:
Die (es sind einige) werden auch kurz gewürdigt, da tauchen dann
penetrant solche Epitheta wie “wegweisend, fantastisch,
beeindruckend…” auf. Nicht mein Ding jedenfalls.
Offensichtlich aber wollte der Autor (genaugenommen die 3 Autoren) einen
Roman und kein Lehrbuch schreiben. Der Roman, der dabei herausgekommen
ist, ist leider eine Enttäuschung geworden.
Anhang:
Das bezieht sich alles auf das Ebook bei Amazon, und das ist leider
lieblos gemacht. Keine Silbentrennung, aber Blocksatz, dadurch teils
häßlich große Wortabstände. Völlig unmotivierte kursiv gesetzte
Passagen, meist am Absatzanfang. Schade, von O’Reilly darf man
mehr Sorgfalt erwarten.
—–8<—–
#ausgelesen
Seit längerem schon werden die großen Browser immer pingliger bei Zertifiakten: Selbstsignierte mögen sie nicht, neuerdings solche mit Laufzeiten von > 395 Tagen, wenn der CN bzw. SAN nicht stimmen; wer weiß, was nächsten Monat passiert.
Also habe ich es nun endlich in Angriff genommen: Dem Routerchen im Keller ein sauberes Zertifikat geben. Da ich sowieso schon überall ein Wildcard für *.sokoll.com verwende, warum nicht für den Router? Also zunächst im DNS den Router bekannt machen (eigentlich finde ich private Adressen im DNS uncool, aber nun ja)
~$ host homerouter.sokoll.com homerouter.sokoll.com has address 192.168.1.254 ~$
Das war schon mal einfach!
Nun noch schnell das Zertifikat rüberschieben. Das macht dann der Raspi daneben:
root@r4:~/bin# cat le_for_router.sh #!/bin/sh rsync -aL big.sokoll.com:/etc/dehydrated/certs/wildcard_sokoll.com/{fullchain,privkey}.pem /tmp/ cat /tmp/privkey.pem /tmp/fullchain.pem > /tmp/server.pem rsync -a /tmp/server.pem 192.168.1.254:/etc/lighttpd/ 2>/dev/null ssh 192.168.1.254 'kill -SIGINT $(cat /var/run/lighttpd.pid) ; /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf' 2>/dev/null rm /tmp/*.pem root@r4:~/bin#
Dummerweise interessiert ein SIGHUP
den lighty überhaupt nicht, so daß man ihn töten und hinterher neu starten muß. Das ganze wird dann einmal täglich via cron aufgerufen.
Ich sollte noch etwas verschönern:Wenn sich das Zertifikat nicht geändert hat, kann man eigentlich gleich nach dem ersten rsync aufhören.
Das wird dann Version 0.0.1 😉