Traefik: Zertifikate mittels Bash-Script exportieren

Ich habe heute TLS-Zertifkate mit einer modifizierten Version dieses Scripts exportiert:

https://blog.cubieserver.de/2021/minimal-traefik-v2-certificate-export/

Zu beachten ist, dass mittig im Script der Besitzer der Zertifikatsdateien geändert wird. Neben den Pfaden, die am Anfang des Scripts einzutragen sind, und dem Namen des Resolvers, muss diese Stelle ggf. angepasst werden.

Eigener DNS-Server als Upstream-Server für Fritzbox mit lokalen DNS-Einträgen

Ich habe einen eigenen DNS-Server, den ich bei meiner Fritzbox für DNS-Anfragen eingetragen habe. Der lokale DNS-Server ‚überschreibt‘ von ein paar öffentlichen Domains die IP-Adressen mit lokalen Adressen in meinem Netzwerk. Dabei ist zu beachten, dass der Rebind-Schutz der Fritzbox für diese Domains aufgehoben wird, weil die Fritzbox ansonsten die entsprechenden DNS-Einträge filtert.

Wichtig: DNS-Einträge, die ins „normale“ lokale Netz zeigen, funktionieren im Gästenetz nicht, weil das Gästenetz nicht auf das normale Netz zugreifen kann.

Portfreigabe für openWB

Wer eine openWB Wallbox hinter einer Firewall betreibt, muss die Ports 80 und 9001 freigeben, um auf das Webinterface zugreifen zu können. Außerdem dürfen die Ports nicht umgeleitet werden. D. h. der http-Zugriff muss zwingend über Port 80 erfolgen. Wenn ein anderer Port (z. B. 8080) verwendet wird, funktioniert der Zugriff nicht.

Für den Zugriff mittels MQTT muss zusätzlich Port 1883 freigegeben werden. Hinweis: Die MQTT-Brücke der Wallbox muss dafür nicht aktiviert werden.

Außerdem steht im Forum von openWB, dass man die Wallbox besser nicht über das Internet zugreifbar macht…

Zugriff vom internen Netz auf das Gästenetz einer Fritzbox

Ich verwende einen Raspberry Pi, dessen Ethernetanschluss an das „normale“ Netz angeschlossen ist. Wlan0 befindet sich im Gästenetz. Der Raspberry Pi leitet die Ports 8787 bis 8789 an drei verschiedene Hosts im Gästenetz weiter.

nftables-Konfiguration:

table inet filter {
        chain input {
                type filter hook input priority filter; policy accept;
                iifname "wlan0" drop
        }

        chain forward {
                type filter hook forward priority filter; policy drop;
                ct status dnat accept
        }
}
table ip nat {
        chain postrouting {
                type nat hook postrouting priority srcnat; policy accept;
                oifname "wlan0" masquerade
        }

        chain prerouting {
                type nat hook prerouting priority dstnat; policy accept;
                tcp dport 8787 dnat to 192.168.179.31:80
                tcp dport 8788 dnat to 192.168.179.35:80
                tcp dport 8789 dnat to 192.168.179.30:80
        }
}

Die Tabelle „filter“ soll dafür sorgen, dass über wlan0 keine Verbindungen eingehen oder weitergeleitet werden, sofern sie nicht durch die Portweiterleitung aufgebaut wurden.

Alternativ: Konfiguration als Shell-Script:

#!/bin/bash
nft add table inet filter 
nft 'add chain inet filter input { type filter hook input priority 0;policy accept;}'
nft 'add chain inet filter forward { type filter hook forward priority 0; policy drop;}'
nft add rule inet filter forward ct status dnat accept
nft add rule inet filter input iifname "wlan0" drop
nft add table nat
nft 'add chain nat postrouting { type nat hook postrouting priority 100 ; }'
nft 'add chain nat prerouting { type nat hook prerouting priority -100; }'
nft add rule ip nat prerouting tcp dport 8787 dnat to 192.168.179.31:80
nft add rule ip nat prerouting tcp dport 8788 dnat to 192.168.179.35:80
nft add rule ip nat prerouting tcp dport 8789 dnat to 192.168.179.30:80

nft add rule nat postrouting oifname "wlan0" masquerade

Zusätzlich muss in der Datei /etc/sysctl.conf folgende Einstellung gemacht werden:

net.ipv4.ip_forward = 1