EdgeOS, Stolperfalle

Ich hab’ im Kel­ler ja einen ER‑X, der mir außer­or­dent­lich gut gefällt (man hät­te ihm aller­dings mehr Sto­rage geben sol­len, 256 MB sind arg wenig¹)
Auf dem ist port for­war­ding ein­ge­rich­tet für

  • TCP/22 /Fernwartung des Heim­net­zes) und
  • TCP/443 (Home Assistant)

ssh soll natür­lich von über­all funk­tio­nie­ren, Home Assistant aller­dings nur von einer bestimm­ten IP²
Doch egal was ich mache: Es funk­tio­niert von über­all. WTF?
Weil es außer­mensch­li­che Intel­li­genz gibt, und die in die­sem Fal­le hieß:

port-forward {
    auto-firewall enable
    hairpin-nat enable

Oder in bunt grau:

Das sieht man erst, wenn man “Show advan­ced opti­ons” ange­tickt hat 🙁
Jeden­falls: Sobald die “auto-fire­wall” akti­viert ist, kann man zwar in den Fire­wall-Regeln erlaub­te Source-Adres­sen kon­fi­gu­rie­ren, aber das wird nicht berück­sich­tigt. auto-fire­wall heißt: “source: any”.

Also habe ich den Quatsch aus­ge­schal­tet, die gewünsch­te Source-Adres­se bei den Fire­wall-Regeln ein­ge­tra­gen, und bämm!, nur noch die eine IP darf 🙂
Mer­ke: Bes­ser die con­fig lesen als der GUI vertrauen.


¹ eigent­lich  ist es genug, nur wird bei einem Update das alte Sys­tem behal­ten, so daß sich der ver­füg­ba­re Platz fak­tisch halbiert.Auch das reicht, solan­ge man nicht zusätz­li­che Soft­ware instal­liert hat. Ich habe zum Bei­spiel noch tcp­dump, screen und rsync nachinstalliert.

² Ist ne län­ge­re Geschich­te, und die geht so: Wir haben iPho­nes. HA kann IOS push noti­fi­ca­ti­ons, das ist schon ziem­lich geil (ich nut­ze es zum Bei­spiel für den Staub­sauger). Nur braucht dann HA ein von Apple akzep­tier­tes Zer­ti­fi­kat, also kein selbst­si­gnier­tes. Da bie­tet sich mein LE-Wild­card an für *.sokoll.com — aber wie bekom­me ich das auf den Pi, auf dem HA läuft? Da es ein Wild­card ist, muß man ja zwin­gend die DNS-Chall­enge neh­men. Klar könn­te man wil­de Skrip­te klöp­peln — ich habe mich für eine ein­fa­che­re Vari­an­te ent­schie­den: Auf mei­nem Root-Ser­ver läuft ein Apa­che mit mod_proxy:

SSLEngine on
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.58.188/api/websocket
ProxyPassReverse /api/websocket wss://91.66.58.188/api/websocket
ProxyPass / https://91.66.58.188/
ProxyPassReverse / https://91.66.58.188/
SSLProxyEngine on
SSLProxyCheckPeerCN off
SSLProxyCheckPeerExpire off
SSLProxyCheckPeerName off

SSLProxyCheckPeerExpire off hät­te ich mir spa­ren können 🙂

~$ openssl s_client -showcerts -servername hass.sokoll.com -connect raspberrypi.local:443 < /dev/null 2>/dev/null | openssl x509 -noout -dates
notBefore=May 17 17:17:07 2019 GMT
notAfter=Apr 12 17:17:07 4757 GMT
~$

Im April des Jah­res 4757 ist viel­leicht der Raspi nicht tot, aber wahr­schein­lich ich.

Jeden­falls auf die­ses Wei­se habe ich kei­nen Streß mit Zertifikaten.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert