Zum Inhalt springen
Serverküche
Suche

Die Suche wird geladen … (nur in der veröffentlichten Seite verfügbar).

Netcup Schwierigkeit: Fortgeschritten

netcup-Firewall im SCP einrichten (mit stateless-UDP-Kniff)

Die netcup-Firewall als Netzwerk-Schutz vor dem Server einrichten: komponierbare Policy-Templates im SCP – mit dem Kniff für stateless UDP (DNS & NTP).

· 12 Min. Lesezeit ·Dauer: ca. 25 Minuten
Inhaltsverzeichnis

netcup bringt eine Firewall schon vor deinem Server mit – im Server Control Panel, noch bevor ein Paket das Betriebssystem erreicht. Richtig gebaut ist sie ein starker Schutzschild. Es gibt dabei aber einen stateless-UDP-Kniff, an dem viele scheitern: Die netcup-Firewall ist bei UDP zustandslos. Dieses Tutorial zeigt dir eine saubere, wiederverwendbare Firewall – und warum DNS und NTP sonst plötzlich klemmen.

Was bauen wir?

Wir bauen im netcup SCP eine Netzwerk-Firewall aus komponierbaren Policy-Templates: ein Basis-Template (das jeder Server braucht), eins für SSH und eins für Web (HTTP/HTTPS). Diese Bausteine weist du deinem Server nach Bedarf zu – ein Webserver bekommt Basis + SSH + Web, ein Server ohne Website nur Basis + SSH. Am Ende ist eingehend alles gesperrt außer dem, was du bewusst erlaubst.

Die netcup-Firewall arbeitet im Netzwerk vor dem Server und ersetzt nicht die Firewall auf dem Server selbst (UFW). Beide zusammen sind „Defense in Depth": Fällt eine Schicht aus oder ist falsch konfiguriert, greift die andere. Richte ruhig beide ein.

Voraussetzungen

  • Ein netcup-Server, z. B. dein erster VPS.
  • Deine SCP-Zugangsdaten (Kundennummer + SCP-Passwort aus der netcup-Willkommensmail – andere als dein SSH-Login).
  • Klarheit über deinen SSH-Port: Standard ist 22, und beim SSH-Absichern bleibt er auch dabei. Hast du ihn anderweitig geändert, nimm deinen echten Port – sonst sperrst du dich beim Aktivieren aus.
🍳 Empfehlung Anzeige

VPS 1000 G12.5

4 vCore · 8 GB RAM · 128 GB SSD

ab 14,50 €/Monat

Die Firewall ist bei jedem netcup-Server im SCP inklusive.

Zu netcup →

💶 1 Monat gratis:

Einmal einlösbar, gilt für VPS 1000 G12.5. Im Warenkorb einlösen →

💶 5,95 € Gutschein für netcup-Neukunden: immer gültig · nicht für Domains und VPS Lite

Alle netcup-Gutscheine →

Schritt für Schritt

Schritt 1: Firewall Policys im SCP öffnen

Melde dich im Server Control Panel an und öffne oben den Menüpunkt Firewall Policys. Hier legst du wiederverwendbare Regelsätze („Policys") an – unabhängig vom einzelnen Server. Erst später weist du sie zu.

Schritt 2: Das Basis-Template bauen

Klick auf Firewall Policy erstellen, vergib den Namen Serverküche Basis und lege über Regel hinzufügen diese vier Regeln an – alle EINGEHEND und ACCEPT:

BeschreibungProtokollQuell-Port (Src)Ziel-Port (Dst)
DNS-Antworten (stateless)UDP53beliebig
NTP-Antworten (stateless)UDP123beliebig
ICMP (Ping/PMTU)ICMP––
ICMPv6 (Neighbor Discovery)ICMPv6––

Das Basis-Template im netcup SCP mit vier eingehenden ACCEPT-Regeln: DNS und NTP über den Quell-Port, dazu ICMP und ICMPv6
Das Basis-Template: DNS/NTP-Antworten kommen über den Quell-Port 53/123 herein

Zwei Dinge, die hier den Unterschied machen:

  • DNS/NTP über den Src Port, nicht den Ziel-Port. Dein Server fragt DNS/NTP an (ausgehend); die Antwort kommt von Port 53 bzw. 123 zurück. Weil UDP zustandslos ist, brauchst du diese Eingangs-Regel – sonst gibt es keine Namensauflösung und keine Zeitsynchronisation, obwohl „alles andere" zu funktionieren scheint.
  • ICMPv6 nie vergessen. Ohne Neighbor Discovery bricht IPv6 komplett. ICMP (v4) dazu ist für Ping und die Pfad-MTU-Erkennung sinnvoll. netcups Default-Policy „Ping allow" deckt ICMP zwar ab, im Basis-Template steht es trotzdem, damit dein Fundament auch ohne die netcup-Defaults vollständig bleibt.

Sobald eine Regel da ist, sperrt netcup den Rest automatisch

Ein abschließendes „alles sperren" musst du nicht anlegen. Ohne zugewiesene Policy ist eingehend alles erlaubt. Sobald du dem Server aber mindestens eine eigene Policy zuweist, schaltet netcup den Default auf „block all" – ab dann ist eingehend alles gesperrt, was keine deiner Regeln ausdrücklich erlaubt. Die Whitelist entsteht also von selbst; ausgehend bleibt offen.

Nutzt dein Server DHCP?

netcup-VPS sind in der Regel statisch konfiguriert – dann ist hier nichts zu tun. Sieh selbst nach, bevor du dich darauf verlässt; die Konfiguration liegt nicht in /etc/network/interfaces selbst, sondern in der Datei, die von dort eingebunden wird:

Terminal
grep -rE "inet6? (static|dhcp)" /etc/network/interfaces /etc/network/interfaces.d/
Ausgabe
/etc/network/interfaces.d/50-cloud-init.cfg:iface eth0 inet static
/etc/network/interfaces.d/50-cloud-init.cfg:iface eth0 inet6 static

Steht dort static, bist du fertig. netcups Netz betreibt zwar einen DHCP-Server, aber weil UDP zustandslos ist, wird die DHCP-Antwort (Quell-Port 67) von der Whitelist verworfen. Taucht bei dir stattdessen dhcp auf, ergänze im Basis-Template EINGEHEND · UDP · ACCEPT · Src 67 (für DHCPv6 zusätzlich Src 547) – sonst verliert er bei der nächsten Lease-Erneuerung seine IP.

Schritt 3: Kleine Bausteine für SSH und Web

Statt eines großen Regel-Monolithen legst du atomare Templates an, die du frei kombinierst. Erstelle nach demselben Muster zwei weitere Policys:

  • Serverküche SSH – eine Regel: EINGEHEND, TCP, ACCEPT, Ziel-Port 22.
  • Serverküche Web – zwei Regeln: EINGEHEND, TCP, ACCEPT, Ziel-Port 80 und 443.

Die drei komponierbaren Firewall-Templates in der netcup-SCP-Übersicht: Basis, SSH und Web
Drei kleine, wiederverwendbare Bausteine statt eines Monolithen

Der Gewinn: Die Basis-Regeln stehen nur einmal da, nicht in jeder Policy dupliziert. Kommt später ein Dienst dazu (z. B. ein Mailserver oder WireGuard), baust du dafür ein weiteres kleines Template und steckst es dazu – ohne die bestehenden anzufassen.

Schritt 4: Templates dem Server zuweisen

Wechsle zu Server → deinen Server → Reiter „Firewall" und klick auf Firewall Policys editieren. Schieb aus Verfügbare Firewall Policys die passenden nach Ausgewählte: für einen Webserver Serverküche Basis + Serverküche SSH + Serverküche Web.

Der Zuweisungs-Dialog im netcup SCP: links die verfügbaren Templates, rechts die für diesen Server ausgewählten
Zuweisen = zusammenstecken: Basis + SSH + Web auf einen Webserver

Bestätige mit Übernehmen und dann Speichern. Prüfe, dass der Schalter „Firewall aktiv" eingeschaltet ist. Die zugewiesenen Regeln erscheinen jetzt in der Liste – zusammen mit netcups Default-Policys (siehe Wartung).

Der Firewall-Reiter des Servers mit aktiver Firewall und den zugewiesenen Regeln
Firewall aktiv – Regeln werden von oben nach unten ausgewertet, erste Übereinstimmung greift

Nicht aussperren

Aktiviere die Firewall nur, wenn die SSH-Regel (Port 22 bzw. dein echter Port) drin ist. Lass während der Umstellung – und bei jeder späteren Änderung – eine zweite SSH-Sitzung offen und öffne parallel eine neue Verbindung, um den Zugang zu testen; erst wenn die klappt, die alte Sitzung schließen. Kommst du gar nicht mehr rein, hilft die VNC-Konsole unter Bildschirm im SCP.

Schritt 5: Fertige Templates für gängige Dienste

Genau nach dem Muster aus Schritt 3 folgen hier fertige Vorlagen für die häufigsten Selfhosting-Dienste. Jede ist ein eigenes kleines Template, alle Regeln sind EINGEHEND und ACCEPT. Bau nur die, die du wirklich brauchst, und steck sie wie in Schritt 4 zu Serverküche Basis + Serverküche SSH dazu.

Bei UDP-Diensten, die du selbst anbietest (VPN, TURN, eigener DNS-Server), steht der Port im Ziel-Port (Dst), denn hier verbinden sich Clients zu deinem Server. Das ist das Gegenteil der DNS/NTP-Regeln aus dem Basis-Template, wo dein Server der fragende Client ist und der Port deshalb im Quell-Port steht. Beide Richtungen existieren problemlos nebeneinander. TCP-Antworten sind davon nicht betroffen (der Firewall-Zustand spielt nur bei UDP keine Rolle); ausgehend ist ohnehin alles erlaubt.

Mailserver (mailcow & Co.)

Passt zu mailcow und Stalwart.

BeschreibungProtokollQuell-Port (Src)Ziel-Port (Dst)
SMTP (Mailannahme anderer Server)TCP–25
Submission (STARTTLS)TCP–587
Submission (implizites TLS)TCP–465
IMAP (STARTTLS)TCP–143
IMAPSTCP–993
POP3 (STARTTLS)TCP–110
POP3STCP–995
ManageSieve (Filterregeln)TCP–4190

Zwei Dinge gehören beim Mailserver zusätzlich dazu:

  • Web-UI und Zertifikate: mailcow braucht 80/443 für das Webinterface und den Let’s-Encrypt-Abruf – dafür einfach das Serverküche Web-Template mit zuweisen.
  • Ausgehendes SMTP: ist bei netcup ab Werk gesperrt. Wie du das änderst, steht im nächsten Abschnitt.

Port 25 freischalten: „netcup Mail block" abnehmen

Ein Mailserver muss auf Port 25 ausgehend zustellen können. netcup sperrt ausgehendes SMTP – die Ports 25, 465 und 587 – als Spam-Schutz über die Default-Policy „netcup Mail block". Eine Fehlermeldung bekommst du dabei nicht: Verbindungen zu fremden Mailservern laufen einfach in einen Timeout. IMAP (993) und alle anderen Ports nach draußen sind davon nicht betroffen.

Die Sperre nimmst du dem Server selbst ab: Deaktiviere in der Zuweisung aus Schritt 4 das netcup-Template „netcup Mail block". Ein Support-Ticket brauchst du dafür nicht. Willst du nur kurz testen, ob deine Mails zugestellt werden, kannst du das Template danach wieder zuweisen.

Offener Port 25 allein reicht für eine saubere Zustellung nicht. Ohne korrekten PTR-/Reverse-DNS-Eintrag landen deine Mails im Spam – was sonst noch dazugehört, steht bei der Mail-Zustellbarkeit.

WireGuard-VPN

Passt zu WireGuard-VPN einrichten.

BeschreibungProtokollQuell-Port (Src)Ziel-Port (Dst)
WireGuardUDP–51820

51820 ist der übliche Standard – nimm den Wert aus deinem ListenPort. Nur diese eine eingehende Regel ist nötig; die Antworten an die Clients gehen ausgehend raus.

Headscale (eigener Tailscale-Koordinationsserver)

Passt zu Headscale: das eigene Tailscale-Netz.

BeschreibungProtokollQuell-Port (Src)Ziel-Port (Dst)
STUN (eingebauter DERP-Server)UDP–3478

Oberfläche, API und der DERP-Kanal selbst laufen über den Reverse Proxy und damit über 443 (Serverküche Web). Direkt veröffentlicht wird nur UDP 3478: Darüber hilft der eingebaute DERP-Server deinen Geräten bei der NAT-Durchdringung. Eine fehlende Regel fällt erst spät auf – die Anmeldung am Koordinationsserver klappt über 443, nur die direkten Verbindungen zwischen den Geräten kommen nicht zustande.

OpenVPN

BeschreibungProtokollQuell-Port (Src)Ziel-Port (Dst)
OpenVPN (UDP, Standard)UDP–1194
OpenVPN (TCP-Fallback)TCP–1194

Standard ist UDP 1194. Die TCP-Regel nur, wenn du OpenVPN bewusst über TCP betreibst (manche legen es zusätzlich auf TCP 443, um durch restriktive fremde Netze zu kommen) – sonst weglassen.

Zabbix-Monitoring

Hier kommt es auf die Rolle des Servers an:

RolleBeschreibungProtokollZiel-Port (Dst)
Überwachter Host (Zabbix-Agent)passive Checks vom ServerTCP10050
Zabbix-ServerTrapper (aktive Agenten/Proxies)TCP10051

Der Zabbix-Server braucht zusätzlich 80/443 fürs Web-Frontend (Serverküche Web). Betreibst du aktive Checks, verbindet sich der Agent ausgehend zum Server auf 10051 – dafür ist am Agenten-Host keine eingehende Regel nötig.

Checkmk

RolleBeschreibungProtokollZiel-Port (Dst)
Überwachter Host (Agent)Agent-Controller, Pull-ModusTCP6556
Checkmk-Server (optional)Agent-Receiver (Push/Registrierung)TCP8000
Checkmk-Server (optional)Livestatus (verteiltes Monitoring)TCP6557

Im Standard-Pull-Modus verbindet sich der Checkmk-Server ausgehend zu 6556 der Agenten – eingehend braucht deshalb nur der überwachte Host diesen Port. Der Checkmk-Server selbst kommt mit 80/443 (Serverküche Web) aus; 8000 und 6557 nur, wenn du Push-Modus bzw. verteiltes Monitoring nutzt. 8000 gilt dabei für die erste Site auf dem Server – eine zweite Site nutzt 8001, eine dritte 8002 und so weiter.

Coturn / TURN-Server (Nextcloud Talk, Matrix)

BeschreibungProtokollQuell-Port (Src)Ziel-Port (Dst)
STUN/TURNTCP–3478
STUN/TURNUDP–3478
STUN/TURN über TLSTCP–5349
STUN/TURN über TLSUDP–5349
Medien-Relay (Audio/Video)UDP–49152–65535

Die große UDP-Relay-Range ist der Standard – über sie laufen die eigentlichen Audio-/Video-Streams. Du kannst sie in der coturn-Konfiguration (min-port/max-port) enger fassen und die Firewall-Regel dann auf denselben, kleineren Bereich setzen.

Jitsi Meet (Videokonferenzen)

Passt zu Jitsi Meet: eigene Videokonferenzen (Tutorial folgt voraussichtlich im November).

BeschreibungProtokollQuell-Port (Src)Ziel-Port (Dst)
Medien (Videobridge)UDP–10000

Das ist die Policy, die am häufigsten vergessen wird, weil Jitsi ohne sie komplett normal aussieht: Die Weboberfläche kommt über 443 (Serverküche Web), die Teilnehmerliste füllt sich, und erst beim Sprechen merkt man, dass nichts ankommt. Ton und Bild laufen nicht durch den Reverse Proxy, sondern direkt auf UDP 10000 – ein fester Port, anders als bei coturn mit seiner großen Relay-Range.

Git-Server über SSH (Forgejo)

Passt zu Forgejo: der eigene Git-Server hinter Traefik.

BeschreibungProtokollQuell-Port (Src)Ziel-Port (Dst)
Git über SSHTCP–2222

Die Weboberfläche kommt über 443 (Serverküche Web). Forgejos eingebauter SSH-Server liegt bewusst nicht auf 22 – dort sitzt schon der SSH-Dienst des Servers –, sondern auf 2222. Nimm den Wert, den du bei SSH_LISTEN_PORT gesetzt hast. Ohne diese Regel sieht alles gesund aus: Anmelden, Repositorys anlegen und HTTPS-Klonen funktionieren, nur git clone ssh://git@DEINE_DOMAIN:2222/… läuft in einen Timeout.

Syncthing

Passt zu Syncthing: Dateien zwischen Geräten synchronisieren.

BeschreibungProtokollQuell-Port (Src)Ziel-Port (Dst)
Sync-ProtokollTCP–22000
Sync-Protokoll über QUICUDP–22000

Der Sync-Verkehr läuft nicht über den Reverse Proxy, sondern direkt auf 22000 – nur die Weboberfläche kommt über 443. Beide Zeilen gehören dazu: Syncthing nimmt TCP und QUIC (UDP) auf demselben Port. Den dritten Port 21027/UDP brauchst du nicht – das ist die Geräte-Erkennung im lokalen Netz, die über das Internet ohnehin nicht trägt.

Eigener DNS-Server (AdGuard Home, Pi-hole, Unbound)

Diese Vorlage brauchst du nur, wenn dein DNS-Server öffentlich erreichbar sein soll. Im Serverküche-Weg bei AdGuard Home ist er das bewusst nicht: Dort lauscht AdGuard ausschließlich auf der WireGuard-Adresse, erreichbar also nur durchs VPN – dafür ist hier keine Regel nötig.

BeschreibungProtokollQuell-Port (Src)Ziel-Port (Dst)
DNS-AnfragenUDP–53
DNS-Anfragen (große Antworten/TCP)TCP–53
DNS-over-TLS (DoT)TCP–853

Dst 53 erlaubt hier die Anfragen fremder Clients an deinen DNS-Server – die Gegenrichtung zu Src 53 im Basis-Template.

Kein offener Resolver

Ein weltweit offener rekursiver DNS-Server wird für DNS-Amplification-Angriffe missbraucht. Beschränke den Zugriff auf deine eigenen Netze (Quell-Adresse in der Regel setzen) oder biete DNS ausschließlich verschlüsselt (DoT/DoH) für angemeldete Clients an – öffne 53 nie „mal eben" für die ganze Welt.

Datenbank-Fernzugriff (nur im Notfall)

BeschreibungProtokollQuell-Port (Src)Ziel-Port (Dst)
PostgreSQLTCP–5432
MySQL / MariaDBTCP–3306

Datenbanken gehören nicht ins offene Internet

Eine direkt erreichbare Datenbank ist ein bevorzugtes Angriffsziel. Der richtige Weg ist, den Port gar nicht zu öffnen und stattdessen über einen WireGuard-Tunnel oder einen SSH-Tunnel (ssh -L 5432:localhost:5432 …) zuzugreifen. Musst du den Port trotzdem freigeben, dann nur mit einer auf deine feste Admin-IP eingeschränkten Quell-Adresse in der netcup-Regel – niemals für alle.

Wenn es nicht funktioniert

Nach dem Aktivieren geht keine Namensauflösung mehr (apt update hängt, ping domain.de scheitert, aber ping 1.1.1.1 geht). Die DNS-Antworten werden geblockt. Prüfe im Basis-Template die Regel EINGEHEND UDP ACCEPT, Src-Port 53 – Quell-Port, nicht Ziel-Port.

Die Uhr driftet, oder TLS-Zertifikate werden wegen falscher Zeit abgelehnt. Die NTP-Antworten fehlen. Ergänze EINGEHEND UDP ACCEPT, Src-Port 123.

IPv6 funktioniert nicht mehr (v4 schon). Es fehlt die ICMPv6-Regel. Ohne Neighbor Discovery kann der Server über IPv6 nicht einmal seinen Nachbarn (Router) finden.

Du kommst nach dem Aktivieren nicht mehr per SSH rein. Die SSH-Regel fehlt oder nennt den falschen Port. Über die VNC-Konsole (SCP → Bildschirm) kommst du trotzdem auf den Server; korrigiere die Policy und speichere neu.

Der Server kann keine E-Mails versenden (Port 25 raus geht nicht). Kein Fehler deiner Policy, sondern netcups Default-Policy „netcup Mail block" – wie du sie abnimmst, steht beim Mailserver-Template.

Der Server läuft zunächst normal und ist nach ein bis zwei Wochen plötzlich offline. Nutzt der Server DHCP, wird die Lease-Erneuerung von der Whitelist geblockt. Ergänze EINGEHEND · UDP · ACCEPT · Src 67 im Basis-Template (siehe DHCP-Tipp in Schritt 2).

Dein Problem ist nicht dabei? Alle Fehlermeldungen durchsuchen →

Wartung & Backups

  • Nach jeder Änderung den Zugang testen – mit zweiter offener Sitzung, wie in Schritt 4.
  • Neue Dienste = neues Template. Brauchst du später einen weiteren Port, leg ein kleines eigenes Template an und weise es zusätzlich zu.
  • Reihenfolge beachten. netcup wertet die Regeln von oben nach unten aus; die erste zutreffende Regel greift. Bei reinen ACCEPT-Regeln ist das egal – sobald du aber eigene DROP-Regeln einsetzt, achte auf die Reihenfolge relativ zu den ACCEPTs.
  • netcups Default-Policys kennen. „netcup Mail block" (ausgehendes SMTP gesperrt) und „netcup Ping allow" sind vorgegeben. Über Default Policys wiederherstellen kommst du im Notfall auf einen bekannten, funktionierenden Grundzustand zurück, falls du dich mit eigenen Regeln ausgesperrt hast – zusammen mit der VNC-Konsole dein zweites Sicherheitsnetz.

Zuletzt aktualisiert: 20.10.2026

Feedback per E-Mail: feedback@serverkueche.de

Das könnte dir auch schmecken