Grafana TV-Mode: Einblenden „Variablen Dropdown Box“

Ich habe für meine Energie-Verwaltung ein Grafana-Dashboard gebaut (Grafana Version 7.5.10). Dabei lässt sich über ein Variablen-Dropdown die Sicherung auswählen (Sehr cooles Grafana-Feature). Das Dashboard binde ich so als iFrame in einer anderen Visualisierung ein. Dafür bietet Grafana verschiedene View-Modi an. Ich vernde den TV-Modus. Dabei werden die Grafana-Menu Icons ausgeblendet.

Leider blendet Grafana im TV-Modus auch diese Dropdown Liste der Variablen mit aus:

Eine Lösung dafür habe ich hier gefunden:

Unter dem Folder

/usr/share/grafana/public/build/

findet man zwei css-Dateien

grafana.dark.<nummer>.css 
grafana.light.<nummer>.css

Bei diesen beiden Files folgendes anhängen

.view-mode--tv .submenu-controls{display: flex !important}

Nun wird die Variablen Drobdown Liste auch im TV-Mode angezeigt:

=> ACHTUNG: Ctrl+F5 nicht vergessen. Sonst wird womöglich noch das alte CSS geladen 😉

DNS Leak – Test

Ich betreibe eine eigene OpnSense Firewall. Auf der OpnSense werkelt ein VPN-Client, der den ganzen Internet-Traffic verschlüsselt über einen VPN-Anbieter routet. Bei einer solchen Konfiguration ist es wichtig, den DNS-Server mit zu berücksichtigen.  Dies, weil die Anfragen an den DNS-Server natürlich auch von den ISPs überprüft werden können. Es ist also in diesem Falle empfehlenswert einen DNS-Server zu wählen, dem man auch (genaus wie dem VPN-Anbieter) vertraut. Welcher DNS-Server verwendet wird ist jedem selber überlassen (DNS-Sammlung). Beispiele:

Sobald der DNS-Server konfiguriert ist, kann über folgenden Dienst überprüft werden, ob wirklich nur noch der gewünschte DNS-Server getriggert wird bzw. keine DNS-Leaks bestehen.

https://www.dnsleaktest.com

Was ein DNS-Leak genau ist, wird hier schön beschrieben.

OPNsense Blacklist mit Spamhaus Droplists

Mittels OPNsense ist es auf einfache Art und Weise möglich, „bösartige“ IPs (z.B. basierend auf Spamhaus) zu blockieren.

Blacklists mit OPNsense

  1. Alias mit den Blacklisten erstellen
  2. Firewall Regel erstellen
    Alle Rule-Tabs mit Ausnahme von „Floating“ sind nur für den eingehenden Datenverkehr vorgesehen. Wir wollen aber sowohl eine ausgehende als auch eingehende Filterung erreichen. Dies kann über eine „Floating-Regel“ erreicht werden:

 

Links

Fusion360 Grafik nach sweethome3d

  • Wenn Materialien in Sweethome3d verändert werden sollen, müssen die zu verändernden Bereiche als Komponente in Fusion360 vorhanden sein.
  • Anschliessend in Funsion360 > Export > als STEP exportieren
  • Dann das File in FREECAD importieren
  • Ctrl – A (alles markieren)
  • Nun FreeCAD > Exportieren > als Collada (dae) File
  • Das File nun in Sweethome 3d importieren. Nun können die Farben der Komponenten angepasst werden.

Octopi über Spacelynk (lua) ausschalten

Ich betreibe meinen 3D Drucker über einen Octopi. Die ganze Printlandschaft kann ich über einen Shelly-Switch einschalten. Das ausschalten ist aber etwas kniffliger, weil Octopi zuerst sauber ausgeschaltet (shutdown) werden muss, bevor der Shelly-Switch den Strom komplett ausschalten kann.

 

Dazu verwende ich die API, welche von Octopi zu verfügung gestellt wird:

  • API CORS muss aktiviert sein
  • User muss über System rechte verfügen
  • API-Key muss unter dem User erstellt werden. Dieser kann dann für den Post-Request verwendet werden

Folgender Postrequest restartet den server:

curl --location --request POST 'http://octopi.home.arpa/api/system/commands/core/reboot?Host=spacelynk.home.arpa' \

--header 'X-Api-Key: xxxxxxxxxx'

 

Opnsense: VPN Client wechseln

Ich betreibe auf der Opnsense einen OpnVPN Client, der sich mit einem VPN-Anbieter verbindet. Der VPN-Anbieter bietet mehrere Server an, auf welche man connecten kann. Diese können hier definiert werden:

Der VPN-Anbieter ist als Gateway konfiguriert. Um sicherzustellen, dass das Gateway den korrekten Client verwendet, muss dieser in den Assignments zugewiesen werden. Wobei das System pro konfigurierten Client automatisch ein „Network-Port“ erstellt. In diesem Beispiel ist mit „ovpnc3“ die „ExpressVPNClient Switzerland1“ gemeit. Das muss man leider wissen:

  • „ovpn“ = es handelt sich um openvpn
  • c = es handelt sich um einen client (s wäre server)
  • 3 = fortlaufende Nummer.

SL SSH-Zugang

Hier beschreibe ich, wie man Root Zugriff auf einen SL bekommt:

  • Auf dem SL läuft ein SSH-Server, basierend auf dropbear. Um Zugriff zu erlangen, kann die SD-Karte entnommen und in einem Linux gemountet werden.
  • Anschliessend ein Zertifikat erstellen
  • ssh-keygen -b 4096
  • Das Public-Zertifikat, welches gerade erstellt wurde, unter authorized_keys abspeichern
  • tee -a /media/ralwet/73a6c7bb-21a8-49e2-af43-04dd5942473e/etc/dropbear/authorized_keys < ~/.ssh/id_rsa.pub
  • SD-Karte wieder einbauen
  • nun über SSH zugreifen
  • ssh root@<IP>

Sinn und zweck war es, zusätzliche ipk-Pakete  (luaMysql-IPK ) für eine mysql Verbindung per Lua zu installieren:

  • Login auf SL
  • Installieren der drei Pakete
  • opkg install zlib_1.2.11-1_imx6.ipk
    opkg install liblua-mysql_2.2.0-6_imx6.ipk
    opkg install libmysqlclient_5.1.73-1_imx6.ipk

     

 

Links

  • https://oldwiki.archive.openwrt.org/doc/howto/dropbear.public-key.auth
  • https://linux.die.net/man/8/dropbear
  • https://www.systutorials.com/how-to-passwordless-ssh-to-an-openwrt-router/
  • https://openwrt.org/docs/guide-user/additional-software/opkg

Let’s encrypt

letsencrypt ist eine Zertifizierungsstelle, welche es erlaubt Zertifikate vollautomatisch und GRATIS zu generieren. Damit entfällt endlich die müsahme manuelle Erstellung von Zertifikaten. Und so geht es:

Ich installiere letsencrypt auf einem Ubuntu 16.04 System mit installiertem Apache:

    1. Letsencrypt installieren
      sudo apt install letsencrypt python-letsencrypt-apache
    2. Zertifikat generieren
      Bevors mit dem Zertifikate erstellen losgeht, muss ich zuerst den Apache-Dienst stoppen, weil letsencryp einen standalone Server auf port 80 verwendet:

      sudo service apache2 stop

      Nun generiere ich das Zertifikat mit „certonly“. Damit modifiziert mir letsencrypt nicht das Apache-Config File. Dieses möchte ich selber modifizieren… Für jede Domain kann dieser Befehl wiederholt werden:

      sudo letsencrypt certonly --agree-tos --email postmaster@yourdomain.ch -d www.yourdomain.ch

      Und voilà:

      IMPORTANT NOTES:
       - Congratulations! Your certificate and chain have been saved at
         /etc/letsencrypt/live/nextcloud.domain.ch/fullchain.pem. Your cert
         will expire on 2017-01-23. To obtain a new version of the
         certificate in the future, simply run Let's Encrypt again.
       - Some rewrite rules copied from /etc/apache2/conf-
         enabled/nextcloud.conf were disabled in the vhost for your HTTPS
         site located at /etc/apache2/conf-enabled/nextcloud-le-ssl.conf
         because they have the potential to create redirection loops.
      

      Nun den Apache wieder starten:

      sudo service apache2 start
    3. Das Script erstellt vollautomatisch die benötigten Zertifikate und legt diese ab unter
      /etc/letsencrypt/live/your.domain.zz/

      Das Zertifikat kann nun am conf-File des Apachen eingetragen werden

      SSLCertificateKeyFile /etc/letsencrypt/live/your.domain.zz/privkey.pem
      SSLCertificateFile /etc/letsencrypt/live/your.domain.zz/cert.pem
      SSLCertificateChainFile /etc/letsencrypt/live/your.domain.zz/chain.pem

    Renewal

    Letsencrypt stellt Zertifikate aus, welche 90 Tage gültig sind. Es wird empfohlen, dass alle 60 Tage ein renewal durchgeführt wird. Dies kann am einfachsten über einen cron-job erledigt werden, der monatlich ausgeführt wird:

    sudo vi /etc/cron.monthly/letsencrypt-renew
    #!/bin/bash
       echo "Stop Apache2 Service"
       service apache2 stop
       echo "Renew letsencrypt certificates"
       letsencrypt --standalone renew
       echo "Restart Apache2 Service"
       service apache2 start
    exit 0
    sudo chmod +x /etc/cron.monthly/letsencrypt-renew

     

Löschen

Mal erstellte Zertifikate, welche nicht mehr benötigt werden, können gelöscht werden:

sudo letsencrypt delete -d xx.domain.xx