Geo-Blocking als Sicherheitsfunktion für Port 80 und Port 443 auf dem Raspberry Pi

Seit meine Allsky-Kamera über eine eigene Subdomain öffentlich erreichbar ist, sehe ich regelmäßig Zugriffsversuche aus bestimmten Ländern. Vor allem IPs aus Russland (RU) und China (CN) tauchen überproportional häufig in den Logfiles auf – meistens automatisierte Scanner, Bots oder Credential-Stuffing-Versuche.

Natürlich schützt ein gehärtetes System (Firewall, Fail2Ban, Rate-Limits, HTTPS) bereits recht gut. Aber: Viele dieser Anfragen müsste ich mir gar nicht erst ins System ziehen. Deshalb setze ich zusätzlich auf Geo-Blocking: Der Raspberry Pi wirft TCP-Verbindungen aus bestimmten Ländern einfach ab, und zwar bevor der Webserver sie erreicht.

Raspberry PI – IPv6 – Port 80 absichern mit Rate Limiting

Während IPv4 durch NAT strukturell geschützt ist, ist IPv6 ohne Firewall immer global erreichbar – ganz ohne Portfreigaben. Genau deshalb ist eine IPv6-Firewall kein „nice to have“, sondern Pflicht.

IPv6: globale Reichweite absichern und ICMPv6 erlauben

Überraschend war für mich, dass mein Raspberry Pi sofort eine globale IPv6-Adresse erhalten hat. Das bedeutet: er ist ohne NAT von außen erreichbar. Ohne ip6tables sind damit alle IPv6-Dienste offen – oft ohne dass man es bemerkt.

Die Lösung ist eine IPv6-Firewall analog zur IPv4-Konfiguration, aber mit einem wichtigen Unterschied: ICMPv6 sollte eher nicht blockiert werden, da sonst Funktionen wie Neighbor Discovery, Router Advertisements oder MTU-Erkennung nicht mehr zuverlässig funktionieren.

Raspberry PI – Port 80 absichern mit Rate Limiting

Nachdem meine Allsky-Kamera über Apache, abgesichert mit Let’s Encrypt und einer eigenen Subdomain öffentlich verfügbar ist, wollte ich den Raspberry Pi auch auf Netzwerkebene etwas härten – ohne riskante Experimente oder unnötige Komplexität. NAT schützt bei IPv4 zwar grundsätzlich, aber gerade die Ports 80 und 443 sind öffentlich erreichbar. Zusätzlich erzeugen Bots, Scanner und automatisierte Anfragen unnötigen Traffic.

Mein Ziel: eine pragmatische Firewall, die echte Zugriffe zulässt, Bot-Lärm reduziert und Let’s Encrypt nicht beeinträchtigt. Hier ist zunächst der IPv4-Teil – einen zusätzlichen Post zum Thema IPv6 findet ihr hier!

Allsky-Kamera unter eigener Subdomain erreichbar machen

Nach der Einrichtung der myFRITZ! Freigabe wollte ich gerne meine Allsky-Kamera auch unter einer eigenen Subdomain erreichbar machen.

Hierfür habe ich – wie hier beschrieben – zunächst die myFRITZ! Freigabe eingerichtet. Anschließend habe ich bei meinem Webhoster all-inkl.com einen sogenannten CNAME-Eintrag für die Subdomain angelegt.

Allsky-Kamera per FRITZ!Box im Internet freigeben

myFRITZ!LogoFür meine Allsky-Kamera nutze ich die Software indi-allsky (mehr Infos hier!). In ganz seltenen Fällen kam es vor, dass meine Kamera nicht mehr reagiert hat – und natürlich möchte man auch von unterwegs mal auf die Bilder der letzten Nacht draufschauen. allsky-rodgau.de bietet zwar ein Livebild, aber eben kein so umfangreiches Archiv wie die Software. Deswegen habe ich mich schlau gemacht, wie man auch von „außen“ Zugriff auf die Kamera erhalten kann.