Warum Linux für Vollpfosten segensreich ist

Ich hat­te vor viel­leicht 4 Wochen einen Web­ser­ver von Open­su­se auf Debi­an umge­stellt. Das ist wahr­lich kei­ne Rake­ten­tech­no­lo­gie, hat aber ein paar Stol­per­fal­len. Hat aber geklappt, alle waren zufrieden.
Bis auf ein zän­ki­sches Zab­bix, das mir soeben mel­det, ein Zer­ti­fi­kat (da lau­fen meh­re­re vir­tu­al hosts) wür­de in 3 Wochen auslaufen.
Was ist pas­siert? Nun, ganz klar, das gan­ze Lets-Encrypt Gedöns hat­te ich kom­plett ver­ges­sen. Na groß­ar­tig, die Maschi­ne wur­de kom­plett neu auf­ge­setzt, da gibt es die alten Skrip­te nicht, die sind weg 🙁
Doch ist da noch ein freund­li­ches rsnapshot, das den Rech­ner über 12 Mona­te sichert, und natür­lich habe ich dort die alten Skrip­te, die alte crontab.
Die wer­de ich heu­te Abend oder mor­gen gemüt­lich rüber­ko­pie­ren, gege­be­nen­falls anpas­sen und tes­ten — bin sehr zuver­sicht­lich, daß die LE-Zer­ti­fi­ka­te wie­der fein ein­tru­deln wer­den danach.
Also: Hasen­fü­ße neh­men bes­ser Linux, da gibt es ein­fa­che Lösun­gen für uns!


PS: Ich machs bis­lang mit dehy­dra­tedmod_md sieht aber inter­es­sant aus — hat jemand damit Erfahrungen?

Grafana has changed its signing key

Just a fri­end­ly tip:
If you are on Debian/Ubuntu and apt update complains:

W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://packages.grafana.com/oss/deb stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9E439B102CF3C0C6
W: Failed to fetch https://packages.grafana.com/oss/deb/dists/stable/InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9E439B102CF3C0C6
W: Some index files failed to download. They have been ignored, or old ones used instead.

and assu­med your grafana.list looks simi­lar to mine:

deb [arch=amd64 signed-by=/usr/share/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main

then this will fix your problem:

wget -qO - https://apt.grafana.com/gpg.key | gpg --dearmor > /usr/share/keyrings/grafana.gpg

HTH and HAND

László Krasznahorkai, Herscht 07769

Was für ein Roman!

Am Anfang ste­hen Brie­fe an Ange­la Mer­kel wegen des Urknalls, dann kom­men Neo­na­zis in einer thü­rin­gi­schen Klein­stadt, Bach spielt eine Rol­le, Wöl­fe, der NABU, und am Ende sind vie­le Men­schen tot, ver­brannt, erschla­gen, erschos­sen, Selbst­mord, Ver­kehrs­un­fall, Schlag­an­fall, Demenz.

Das Buch spielt in Kana, das zwei­fels­frei Kahla ist.
Der Held ist Flo­ri­an, ein jun­ger Mann, stark und tumb, dabei sanft und ehr­lich, der wohl Voll­wai­se ist, jeden­falls wur­de er von einem Kanaer Nazi, immer nur der Boss genannt, aus einem Heim geholt. Der Boss beschäf­tigt Flo­ri­an als nütz­li­che und bil­li­ge Arbeits­kraft und ver­sucht auch, aus Flo­ri­an einen anstän­di­gen Nazi, in sei­ner Spra­che, anstän­di­gen Deut­schen, zu machen, was ihm aber auf­grund von Flo­ri­ans gren­zen­lo­ser Nai­vi­tät nicht gelingt, er gibt es auch bald auf. Neben dem Nazis­mus hat der Boss eine wei­te­re Lei­den­schaft: Bach. Ja, JSB. Dafür stellt er in Kana sogar ein Sin­fo­nie­or­ches­ter zusam­men. Es ist Kana, also eine Klein­stadt, in der man natür­lich nicht genü­gend Musi­ker für Bach-Wer­ke zusam­men­be­kommt. Das Orches­ter gibt es zwar, aber die Musi­ker spie­len viel lie­ber rum­mel­platz­taug­li­che Musik, Beat­les, Abba, so etwas — zumal Bach eben auch tech­nisch zu schwie­rig ist. Und doch besteht der Boss auf Bach, und so müs­sen sie auf sei­nen Befehl hin wöchent­lich in der Turn­hal­le üben, üben, üben — manch­mal von Flo­ri­an beauf­sich­tigt, der übri­gens im Ver­lauf des Romans einen tie­fen Zugang zu Bach findet.
Bei die­sem Bild: Der Nazi, der eine Pro­vinz­ka­pel­le zu Bach zwingt, kommt ein Grund­merk­mal des Romans zum Vor­schein: Absur­di­tät. Nicht Komik, ganz und gar nicht. Solch sur­rea­le Absur­di­tä­ten durch­zie­hen das gan­ze Buch.
Der Boss hat eine Fir­ma, die auf die Ent­fer­nung von Graf­fi­ti spe­zia­li­siert ist. In ganz Thü­rin­gen wer­den Bach-Stät­ten immer wie­der mit Graf­fi­ti beschmiert, der Boss besei­tigt die­se umge­hend, nicht allein, er ist auch der unum­strit­te­ne Chef einer Neo­na­zi­trup­pe von viel­leicht 5, 6 Neo­na­zis, die wer­den dazu ver­don­nert, sich auf die Lau­er zu legen, um den Schmier­fink auf fri­scher Tat zu ertap­pen, was aber nicht gelingt.

Die ers­ten zwei Drit­tel des Buches plät­schern so dahin, wir wer­den ins gan­ze Pan­op­ti­kum einer Klein­stadt ein­ge­führt: Die Post­stel­le, die Biblio­the­ka­rin, der pen­sio­nier­te Phy­sik­leh­rer, der eine Wet­ter­sta­ti­on im Inter­net betreibt und vie­le ande­re Per­so­nen, alle leicht, aber wirk­lich nur sehr leicht, skurril.
Da pas­siert recht wenig, das ist nichts für Leser, die auf schnel­le Hand­lung war­ten, ich habe mich teil­wei­se wirk­lich gequält.

Dafür wird es im let­zen Drit­tel umso rasan­ter und wirk­lich aber­wit­zig, das ist teil­wei­se schon fast Splat­ter, doch dazu möch­te ich nichts ver­ra­ten. Wie gesagt, am Ende sind dann vie­le tot.

Eins muß unbe­dingt erwähnt wer­den: Die Form des Romans. Man fängt also an zu lesen, liest die ers­te, die zwei­te Sei­te und wun­dert sich: Kein Satz­en­de. Man blät­tert schnell wei­ter und stellt fest: Das gesam­te Buch, 400 Sei­ten, besteht aus einem ein­zi­gen Satz. Natür­lich gibt es jede Men­ge Satz­zei­chen, aber eben nur einen ein­zi­gen Punkt. Für mich hat es das Lesen nicht ein­fa­cher gemacht, vor allem nicht, wenn man wie­der rein­kom­men muß. Es gibt zwar fünf Kapi­tel, aber dann doch nicht wirk­lich. Die sind ein­fach durch schein­bar erra­ti­sche Über­schrif­ten abge­trennt, es gibt kei­ne inhalt­li­che Tren­nung. Dann gibt es noch Merk­wür­dig­kei­ten, deren Sinn (wenn es denn einen gibt) sich mir nicht erschließt: So wer­den Schimpf­wör­ter kon­se­quent ohne Voka­le benutzt, also etwa vrflcht. An bestimm­ten Stel­len wer­den Wör­tern grund­sätz­lich ein Leer­zei­chen unter­ge­scho­ben, also etwa: unterg escho­ben. War­um? Ich weiß es nicht, viel­leicht als Art Stolpersteine.

Und noch etwas: Das Buch spielt in Ost­thü­rin­gen, mit dem Zen­trum Kahla. Der Autor ist Ungar, der lauf Wiki­pe­dia in Buda­pest und Ber­lin lebt, aber jeden­falls nicht in Kahla. Und doch gibt es sehr viel Orte in dem Buch, die es auch real gibt. Da ist die Rede von einem Plat­ten­la­den MR MUSIC in Jena in der Kanai­schen Stra­ße. Es ist die Rede vom Café Wag­ner. In Kana trinkt man Kaf­fe aus der Kaf­fee­rös­te­rei Markt 11 Und das sind nur Jena­er Orte, die mir auf­ge­fal­len sind. Die Kah­ler Nazis woh­nen im Roman in der Burg­str. 19, auch Burg 19 genannt. Es gibt noch mehr in der Art. Der Autor hat offen­sicht­lich sehr genau recher­chiert. Das ist wirk­lich beeindruckend.

Das Lesen ist mir oft schwer­ge­fal­len, das mag mei­ne Schuld sein, weil man das Buch viel­leicht anders als ande­re Bücher lesen muß: Bedingt durch die unend­li­che Abfol­ge an Teil­sät­zen fließt das Buch, mir fällt kein bes­se­rer Ver­gleich ein. Man kann eigent­lich nicht auf­hö­ren zu lesen, weil man kei­nen Ruhe­platz fin­det, an dem man wie­der ein­stei­gen kann. Aber: das ist auch gar nicht nötig. Es gibt kei­ne strin­gen­te Hand­lung, die Geschich­te ist weit­ge­hend beschrei­bend, mit Hand­lung. Das macht es aber auch ein­fach, wie­der ein­zu­stei­gen, weil es eigent­lich ziem­lich egal ist, an wel­cher Stel­le man in den Fluß steigt. Es ist immer noch die Saale.

Ist es nun der deut­sche (sicher­lich nicht) Roman über ost­deut­sche Neonazis?
Nein. Dafür ist das Buch viel zu phan­tas­tisch. Es ist kei­ne Doku­men­ta­ti­on, nicht mal über die Kah­ler Neo­na­zi-Sze­ne. Auf der ande­ren Sei­te: Es gab/gibt die­se Sze­ne. Der NSU kommt aus Jena. Das Brau­ne Haus hat­te zen­tra­le Bedeu­tung für Thü­rin­ger Neo­na­zis (es gibt es nicht mehr, der Arti­kel­ab­schnitt bei Wiki­pe­dia ist veraltet)

Lese­emp­feh­lung? Für mich ein­deu­tig ja, ich wer­de mir das Buch viel­leicht in ein paar Mona­ten erneut vor­neh­men. Für alle ande­ren: Ja, für die Neu­gie­ri­gen, die bereit sind, sich auf unbe­kann­tes Ter­rain zu begeben

 

#aus­ge­le­sen

 

Wandern in Schweden

am Bol­men. Es war Tun­dra und Moor und Stein­pil­ze und schön.

 

Wetterstation: Luftdruck richtig eingestellt

Die Wet­ter­sta­ti­on mißt also den Luft­druck, und sie kann nur den mes­sen, der da ist. Der ist aber nur ver­gleich­bar mit ande­ren Luft­drü­cken in der­sel­ben Höhe, das ist zum Bei­spiel beim DWD erklärt. Da mei­ne Sta­ti­on etwa 20 Meter üNN liegt, muß ich also ca. 2,5 abzie­hen vom Meß­wert, um auf den rela­ti­ven Luft­druck zu kommen.

Nichts leich­ter als das:

Und der Effekt:

Home Assistant schön(er) gemacht

Bei mir läuft Home Assistant in einem Docker-Con­tai­ner auf einem Raspber­ry Pi 4, schon sehr lan­ge. Anfangs als nati­ve Instal­la­ti­on, da wur­de dann aber die Update­rei bald ner­vig, des­halb Docker, da geht das Upda­ten (und Down­gra­den) deut­lich schmerz­frei­er — mitt­ler­wei­le küm­mert sich watch­tower dar­um, das geht alles voll­au­to­ma­tisch, sehr schick.
Dann kam irgend­wann der Wunsch auf, die Instal­la­ti­on auch aus dem Inter­net zugäng­lich zu machen. Der nächst­lie­gen­de Gedan­ke war, auf dem Rou­ter ein­fach ein Port­for­war­ding zu schal­ten: Router:TCP/443 -> Pi:TCP/443. Das hat aber min­des­tens zwei Probleme:

  • DNS-Name. Ich habe zwar die Domain sokoll.com, aber die IP des Rou­ters ändert sich zwar sel­ten, aber eben doch ab und an. Dann müß­te das DNS nach­ge­zo­gen wer­den. Unter der Vor­aus­set­zung, daß man den Wech­sel der IP über­haupt bemerkt hat.
  • TLS-Zer­ti­fi­kat für den Web­ser­ver. Natür­lich will ich nichts selbst­si­gnier­tes, Let’s Encrypt soll es schon sein. Dann geht aber die HTTP chall­enge nicht. DNS chall­enge gin­ge, mache ich ohne­hin, aber dann müß­te ich wild mit cron­jobs ham­peln und das Zer­ti­fi­kat von mei­nem Net­cup-Ser­ver holen.

Alles nicht so fein. Also muß­te eine ande­re Lösung her: der DNS-Name zeigt auf mei­nen Ser­ver bei Net­cup, dort läuft ein Apa­che als rever­se proxy:

<VirtualHost 185.207.105.125:443 [2a03:4000:1e:181::1]:443>
  Protocols h2 http/1.1
  ServerName hass.sokoll.com
  ServerAlias home.sokoll.com
  ServerAdmin webmaster@sokoll.com
  ErrorLog ${APACHE_LOG_DIR}/hass.sokoll.com-error.log
  CustomLog ${APACHE_LOG_DIR}/hass.sokoll.com-access.log combined
  SSLCertificateFile /etc/dehydrated/certs/wildcard_sokoll.com/fullchain.pem
  SSLCertificateKeyFile /etc/dehydrated/certs/wildcard_sokoll.com/privkey.pem
  ProxyRequests off
  ProxyPreserveHost On
  ProxyPass /api/websocket wss://91.66.45.77/api/websocket
  ProxyPassReverse /api/websocket wss://91.66.45.77/api/websocket
  ProxyPass / https://91.66.45.77/
  ProxyPassReverse / https://91.66.45.77/
  SSLProxyEngine on
  SSLProxyCheckPeerCN off
  SSLProxyCheckPeerExpire off
  SSLProxyCheckPeerName off
</VirtualHost>

(die IP ist schon lan­ge nicht mehr gültig)
Das heißt: Der Request kommt bei Net­cup an, und der Apa­che dort schubst ihn dann wei­ter zu mei­nem Rou­ter, dort gibt es ein Port­for­war­ding auf den Pi. Nicht son­der­lich ele­gant, funk­tio­niert aber.

Nun änder­te sich kürz­lich die IP wie­der, und ich muß­te die Web­ser­ver-Kon­fi­gu­ra­ti­on ändern, hat­te mich ver­tippt, ging nicht, Feh­ler suchen und fin­den und behe­ben, bis zum nächs­ten IP-Wech­sel, das ist doch alles Mist.
Auf dem Ser­ver läuft ein #Wire­guard, das ver­sorgt ein Tele­fon und einen Lap­top mit #Piho­le, das könn­te doch auch den Pi bedie­nen? Wenn dann der Pi den Tun­nel auf­baut, hät­te ich immer die­sel­ben IPs und könn­te mir das gan­ze Geham­pel mit Port­for­war­ding auf dem Rou­ter sparen.
Wire­guard ist sim­pel. Auf dem Server:

~$ ssh -l root big wg
interface: wg0
  public key: RzZAu5Js3c8/5yQBPlhKg2b0jkOlxHT6vLreiC1BCgo=
  private key: (hidden)
  listening port: 51820

peer: yS2cSLvEovdsLLT8ne/lixoiU87o821TgBkzrVHRFS4=
  endpoint: 91.66.61.253:35710
  allowed ips: 192.168.3.6/32
  latest handshake: 1 minute, 21 seconds ago
  transfer: 16.10 MiB received, 1.83 MiB sent

peer: RF22N9Kb6AO0N+jqZvSIdPxtZj3CxgasdgwuW6ktGys=
  endpoint: 91.66.61.253:58623
  allowed ips: 192.168.3.5/32
  latest handshake: 1 minute, 45 seconds ago
  transfer: 50.42 MiB received, 715.71 MiB sent

peer: OAbhrovugDdR8he1UIzy67Szh798C4lxWelSwrd3Z3o=
  endpoint: 91.66.61.253:1024
  allowed ips: 192.168.3.4/32
  latest handshake: 1 minute, 49 seconds ago
  transfer: 19.73 MiB received, 77.50 MiB sent
~$

Auf dem Pi:

~$ ssh -l root r4 wg
interface: wg0
  public key: yS2cSLvEovdsLLT8ne/lixoiU87o821TgBkzrVHRFS4=
  private key: (hidden)
  listening port: 35710

peer: RzZAu5Js3c8/5yQBPlhKg2b0jkOlxHT6vLreiC1BCgo=
  endpoint: 185.207.105.125:51820
  allowed ips: 192.168.3.1/32
  latest handshake: 15 seconds ago
  transfer: 1.03 MiB received, 8.97 MiB sent
  persistent keepalive: every 25 seconds
~$

In der Apa­che-Kon­fi­gu­ra­ti­on oben noch die VPN-Adres­se des Pi ein­tra­gen und Apa­che reloaden.
Fertsch. Funk­tio­niert traumhaft.
Gut. Ein Pro­blem hat­te ich: Der Tun­nel wird von innen auf­ge­baut, solan­ge da kei­ne Pake­te lau­fen, ist der Tun­nel unten, und das gan­ze schö­ne Kon­strukt funk­tio­niert nicht. Man könn­te einen Dau­er-ping im Hin­ter­grund lau­fen las­sen, aber das wäre nun wirk­lich uncool. Und dann ent­deck­te ich eben persistent keepalive, was das Pro­blem ele­gant löst.

Wire­guard rockt da house!

Q: Warum? A: Weil es geht!

Ich habe bei AWS (Nord Vir­gi­nia) eine VM in der kleins­ten (kos­ten­lo­sen) Ausführung.
Auf der läuft ein Wire­guard, mein Tele­fon ist prak­tisch stän­dig ein­ge­loggt. Funk­tio­niert. Wo ich frü­her bei etwa Spie­gel Online Wer­bung hat­te, wel­che die bes­ten Rechts­an­wäl­te in Greifs­wald sei­en, sehe ich nun Wer­bung, wo in Ashb­urn VA SUVs fast ver­schenkt werden 🙂
Da ich ja krank geschrie­ben bin und also Zeit habe, habe ich mir ein mei­nem Heim­netz mal ein Pi-Hole instal­liert. Das funk­tio­niert erstaun­lich effek­tiv, damit hat­te ich nicht gerech­net. Sicher, ein Wer­be­blo­cker im Brow­ser funk­tio­niert noch erfolg­rei­cher, aber bei Mobil­ge­rä­ten ist das meist nicht mög­lich, und sobald es zu gene­ri­schen Apps kommt, ist es ganz vor­bei. Und da scheint Pi-Hole einen her­vor­ra­gen­den Job zu machen.
Aller­dings: Wenn ich im VPN bin, nützt das nichts. Ich könn­te zwar den Pi-Hole im LAN als DNS-Ser­ver ein­tra­gen, aber wenn ich mobil unter­wegs bin, ist der ja nicht mehr erreichbar.
Aber: anders als es der Name ver­mu­ten läßt, kann man Pi-Hole nicht nur auf einem Raspber­ry Pi instal­lie­ren, son­dern prak­tisch über­all, wo ein dns­masq lau­fen könn­te. Also auch auf mei­ner Ama­zon-VM, das ist ein Debi­an. In Wire­guard auf dem Tele­fon wird das wg0 des VPN-Ser­vers als DNS-Ser­ver eingetragen:


Scheint sofort zu funktionieren 🙂

 

Hüb­sche Spie­le­rei mit Nutzeffekt.

 

#wire­guard #pi-hole #piho­le

EdgeOS, IPv6 and hwnat

For the archive

IPv6 rou­ting sucks on the ER‑X, tes­ted with iperf3 from a LAN station:

pi@r4:~ $ iperf3 -6 -c iperf.par2.as49434.net -p 9231
Connecting to host iperf.par2.as49434.net, port 9231
[ 5] local 2001:470:6d:c40:828b:eb2f:26f:523e port 49342 connected to 2a0f:9240:1018::2 port 9231
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 172 KBytes 1.41 Mbits/sec 1 1.38 KBytes
[ 5] 1.00-2.00 sec 0.00 Bytes 0.00 bits/sec 1 1.38 KBytes
[ 5] 2.00-3.00 sec 0.00 Bytes 0.00 bits/sec 1 1.38 KBytes
[ 5] 3.00-4.00 sec 0.00 Bytes 0.00 bits/sec 0 1.38 KBytes
[ 5] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec 1 1.38 KBytes
[ 5] 5.00-6.00 sec 0.00 Bytes 0.00 bits/sec 0 1.38 KBytes
[ 5] 6.00-7.00 sec 0.00 Bytes 0.00 bits/sec 0 1.38 KBytes
[ 5] 7.00-8.00 sec 0.00 Bytes 0.00 bits/sec 0 1.38 KBytes
[ 5] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec 1 1.38 KBytes
[ 5] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec 0 1.38 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 172 KBytes 141 Kbits/sec 5 sender
[ 5] 0.00-10.07 sec 39.9 KBytes 32.4 Kbits/sec receiver

iperf Done.
pi@r4:~ $

From the rou­ter itself:

ubnt@sokoll-router:~$ iperf3 -6 -c iperf.par2.as49434.net -p 9231
Connecting to host iperf.par2.as49434.net, port 9231
[ 5] local 2001:470:6c:c40::2 port 46362 connected to 2a0f:9240:1018::2 port 9231
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 3.81 MBytes 31.9 Mbits/sec 0 382 KBytes
[ 5] 1.00-2.00 sec 6.11 MBytes 51.3 Mbits/sec 42 421 KBytes
[ 5] 2.00-3.00 sec 5.25 MBytes 44.0 Mbits/sec 5 333 KBytes
[ 5] 3.00-4.00 sec 4.76 MBytes 39.9 Mbits/sec 0 364 KBytes
[ 5] 4.00-5.00 sec 5.31 MBytes 44.5 Mbits/sec 0 385 KBytes
[ 5] 5.00-6.00 sec 4.32 MBytes 36.3 Mbits/sec 0 395 KBytes
[ 5] 6.00-7.00 sec 4.57 MBytes 38.3 Mbits/sec 2 292 KBytes
[ 5] 7.00-8.00 sec 3.83 MBytes 32.1 Mbits/sec 0 316 KBytes
[ 5] 8.00-9.00 sec 3.77 MBytes 31.6 Mbits/sec 3 239 KBytes
[ 5] 9.00-10.00 sec 2.90 MBytes 24.4 Mbits/sec 3 182 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 44.6 MBytes 37.4 Mbits/sec 55 sender
[ 5] 0.00-10.14 sec 43.5 MBytes 36.0 Mbits/sec receiver

iperf Done.
ubnt@sokoll-router:~$

That comes clo­se to my regu­lar upload bandwidth.

Now if I disable off­loa­ding for NAT:

ubnt@sokoll-router:~$ configure
[edit]
ubnt@sokoll-router# set system offload hwnat disable
[edit]
ubnt@sokoll-router# commit
[edit]
ubnt@sokoll-router#

results in

pi@r4:~ $ iperf3 -6 -c iperf.par2.as49434.net -p 9231
Connecting to host iperf.par2.as49434.net, port 9231
[ 5] local 2001:470:6d:c40:828b:eb2f:26f:523e port 37006 connected to 2a0f:9240:1018::2 port 9231
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 4.26 MBytes 35.7 Mbits/sec 0 443 KBytes
[ 5] 1.00-2.00 sec 5.81 MBytes 48.7 Mbits/sec 40 433 KBytes
[ 5] 2.00-3.00 sec 5.56 MBytes 46.6 Mbits/sec 0 491 KBytes
[ 5] 3.00-4.00 sec 6.05 MBytes 50.8 Mbits/sec 40 368 KBytes
[ 5] 4.00-5.00 sec 4.08 MBytes 34.2 Mbits/sec 36 286 KBytes
[ 5] 5.00-6.00 sec 3.71 MBytes 31.1 Mbits/sec 0 311 KBytes
[ 5] 6.00-7.00 sec 4.94 MBytes 41.5 Mbits/sec 0 324 KBytes
[ 5] 7.00-8.00 sec 4.39 MBytes 36.8 Mbits/sec 0 330 KBytes
[ 5] 8.00-9.00 sec 4.32 MBytes 36.3 Mbits/sec 0 330 KBytes
[ 5] 9.00-10.00 sec 4.32 MBytes 36.3 Mbits/sec 0 330 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 47.4 MBytes 39.8 Mbits/sec 116 sender
[ 5] 0.00-10.06 sec 46.4 MBytes 38.7 Mbits/sec receiver

iperf Done.
pi@r4:~ $

It’s magic!

I’ll moni­tor the CPU load and see whe­ther dis­ab­ling hwnat impacts the router’s performance.

CEO Fraud

Every now and then, an email arri­ves at my com­pa­ny mailserver.

From: surname_big_boss lastname_big_boss <attacker@example.com>
To: surname_victim lastname_victim <victim@mycompany.com>

It is always the same: the atta­cker asks for the victim’s mobi­le num­ber or Whats­app num­ber, — and in the end, they will trick the vic­tim into trans­fer­ring money to the atta­cker. See https://en.wikipedia.org/wiki/Email_spoofing#Business_email
And unfort­u­na­te­ly, I had user in the past who replied 🙁

Of cour­se, you can­not block the attacker’s email address, becau­se it chan­ges with every new attack.
But what if we block ever­y­thing with the dis­play name “surname_big_boss lastname_big_boss” and an email domain that is NOT one of ours? With post­fix and regu­lar expres­si­ons, that is quite easy:

~# grep ^header_checks /etc/postfix/main.cf
header_checks = pcre:/etc/postfix/header_checks_map
~#

Sil­ly naming, I know. It is not a map. But names are not important 😉

And now in /etc/postfix/header_checks_map

/^From: +surname_big_boss +lastname_big_boss +<.+@(?!mycompany\.(de|com)).*>$/i REJECT Go away phisher

Don’t for­get to rel­oad post­fix after you made the change.

Of cour­se, this works not so good if your boss is “Peter Smith”… Mine has a more uni­que name.