OpenWrt-Dokumentation
Der zentrale Router steuert den Internetzugang via PPPoE, verwaltet das lokale Standard-Gateway (192.168.178.10), führt das Firewalling über nftables (fw4) durch und aktualisiert dynamische DNS-Einträge bei Netcup.
Überblick
Diese Seite dokumentiert die zentrale Routing- und Firewall-Umgebung des Heimnetzes. Sie beschreibt die wichtigsten Konfigurationsbereiche, Anbindungen und Wiederherstellungsmaßnahmen für die öffentliche Infrastruktur.
Schnellcheckliste
- WAN-Status und PPPoE prüfen
- DNAT- und Firewallregeln validieren
- DNS und DynDNS prüfen
- SMGW-Abgrenzung nicht verändern
- vor Änderungen ein Backup anlegen
Verwandte Seiten
1. Router-Spezifikationen & Netzwerkinformationen
| Parameter | Wert / Konfiguration |
|---|---|
| Router LAN-IP | 192.168.178.10 |
| WAN-Protokoll | PPPoE (dynamische öffentliche IPv4) |
| PPPoE-Interface | pppoe-wan |
| LAN-Interface | eth0 |
| WAN-Interface | eth1 |
| Aktuelle öffentliche IP | 149.224.183.96 (dynamisch via PPPoE) |
| DNS- & Gateway-Rolle | Standard-Gateway für Mailcow (192.168.178.146) und Caddy (192.168.178.150) |
Wichtige Sicherheitsabgrenzung: Smart Meter Gateway (SMGW) Das SMGW nutzt eine vollständig getrennte Netzwerk- und Firewall-Konfiguration (
smgw_zone). Bei sämtlichen Firewall-, NAT- oder Routing-Arbeiten darf diesmgw_zoneunter keinen Umständen verändert werden.
2. Firewall & Portweiterleitungen (DNAT)
Eingehende Verbindungen aus dem Internet werden über das nftables-Regelwerk (fw4) gezielt an interne Systeme verteilt:
| Dienst | Quellport (WAN) | Ziel-IP (LAN) | Zielport | Beschreibung |
|---|---|---|---|---|
| Mailcow SMTP | TCP 25 | 192.168.178.146 | 25 | Eingehender Mail-Empfang (Regel: Mailcow-SMTP-In) |
| Mailcow HTTP | TCP 80 | 192.168.178.146 | 80 | Mailcow Webzugriff / ACME |
| Caddy HTTPS | TCP 443 | 192.168.178.150 | 443 | Epping-Haus Website & DokuWiki |
Prüfen der nftables- und UCI-Konfiguration
# Portweiterleitung in UCI prüfen
uci show firewall | grep -A12 -B2 'Mailcow-SMTP'
# nftables-DNAT-Regeln für WAN auflisten
nft list chain inet fw4 dstnat_wan
3. Netcup CloudDNS DynDNS-Automatisierung
Da der Internetanschluss eine dynamische öffentliche IPv4 nutzt, werden die A-Records für epping-haus.de und mail.epping-haus.de automatisch über die Netcup-CloudDNS-Schnittstelle aktualisiert.
Konfigurationsdatei /etc/netcup-ddns.conf
- Berechtigung:
chmod 600(nur für root lesbar). - Enthält den geheimen Schlüssel
NETCUP_DDNS_TOKEN. - Wichtig: Der DynDNS-Token darf niemals im Klartext in ungeschützten Logs oder Dokumenten geteilt werden.
DynDNS-Skript: /root/bin/netcup-mail-ddns
- Berechtigung:
chmod 700(nur durch root ausführbar). - Liest die aktuelle WAN-IPv4 per
ubusaus und aktualisiert beide FQDNs per Curl-Aufruf.
#!/bin/sh
CONFIG="/etc/netcup-ddns.conf"
LOGTAG="netcup-mail-ddns"
HOSTS="mail.epping-haus.de epping-haus.de"
URL="https://customercontrolpanel.de/wsDynDns.php"
if [ ! -r "$CONFIG" ]; then
logger -t "$LOGTAG" "Konfigurationsdatei fehlt: $CONFIG"
exit 1
fi
. "$CONFIG"
if [ -z "$NETCUP_DDNS_TOKEN" ]; then
logger -t "$LOGTAG" "NETCUP_DDNS_TOKEN fehlt"
exit 1
fi
IP="$(ubus call network.interface.wan status 2>/dev/null \
| jsonfilter -e '@["ipv4-address"][0].address')"
case "$IP" in
''|*[!0-9.]*)
logger -t "$LOGTAG" "Keine gültige WAN-IPv4 gefunden: $IP"
exit 1
;;
esac
ERROR=0
for FQDN in $HOSTS; do
RESPONSE="$(curl -fsS --connect-timeout 5 --max-time 15 \
--get "$URL" \
--data-urlencode "action=update" \
--data-urlencode "token=$NETCUP_DDNS_TOKEN" \
--data-urlencode "fqdn=$FQDN" \
--data-urlencode "ipv4Address=$IP" 2>&1)"
RC=$?
if [ "$RC" -ne 0 ]; then
logger -t "$LOGTAG" "Netcup API Fehler ($FQDN): $RESPONSE"
ERROR=1
else
logger -t "$LOGTAG" "Update $FQDN -> $IP : $RESPONSE"
fi
done
exit $ERROR
Cron-Automatisierung (/etc/crontabs/root)
# 0 4 * * * /sbin/ifdown wan && sleep 15 && /sbin/ifup wan
*/5 * * * * /root/bin/netcup-mail-ddns
Bekannter Fehler & Lösung (Kollision am 04.09.2026)
- Ursache: Der tägliche PPPoE-Reconnect um 04:00 Uhr kollidierte mit dem 5-Minuten-DynDNS-Cronjob. Der DynDNS-Check lief ins Leere und hing bis zu 5 Minuten im Timeout.
- Lösung:
- Timeouts im Skript verankert (
--connect-timeout 5 --max-time 15). - Der künstliche tägliche PPPoE-Reconnect um 04:00 Uhr wurde auskommentiert.
4. DNS-Sollzustand (Netcup Nameserver)
| Record-Typ | FQDN | Ziel / Wert | Zweck |
|---|---|---|---|
| MX | epping-haus.de | MX 10 mail.epping-haus.de | Mailserver-Routing |
| A | mail.epping-haus.de | dynamische WAN-IPv4 | Mailcow Serveradresse |
| A | epping-haus.de | dynamische WAN-IPv4 | Basis-Domain |
| CNAME | autoconfig.epping-haus.de | mail.epping-haus.de. | Automatische Mailclient-Konfiguration |
| CNAME | autodiscover.epping-haus.de | mail.epping-haus.de. | Automatische Mailclient-Konfiguration |
| CNAME | www.epping-haus.de | epping-haus.de. | Öffentliche Webpräsenz |
| CNAME | wiki.epping-haus.de | epping-haus.de. | Internes DokuWiki |
5. Diagnose- & Monitoringbefehle
DynDNS-Test
# Manuelle Ausführung und Logprüfung
/root/bin/netcup-mail-ddns
logread | grep netcup-mail-ddns | tail -5
Netzwerk- und Paketmitschnitte
# WAN-Mitschnitt auf Port 25
tcpdump -ni pppoe-wan tcp port 25
# LAN-Mitschnitt für Mailcow
tcpdump -ni eth0 host 192.168.178.146 and tcp port 25
# Conntrack-Verbindungstracking prüfen
conntrack -L -p tcp --dport 25 -o extended
conntrack -E -o id,extended
6. Backup-Vorschriften vor Änderungen
Vor jeder Änderung an der OpenWrt-Konfiguration ist zwingend ein Backup anzulegen:
# 1. Firewall vor Änderung sichern:
cp /etc/config/firewall /root/firewall.backup-before-change
# 2. Funktionierenden Zustand zeitgestempelt archivieren:
cp /etc/config/firewall /root/firewall.mailcow-working.$(date +%F-%H%M%S)
# 3. Gesamte OpenWrt-Konfiguration sichern (.tar.gz):
sysupgrade -b /root/openwrt-backup-mailcow-working-$(date +%F-%H%M%S).tar.gz
Dokumentationsstand: 04.09.2026 (verifiziert)