Zum Inhalt springen
CitexNode
Alle Anleitungen

Firewall einrichten

ufw auf Debian und Ubuntu, firewalld auf AlmaLinux und Rocky: erst SSH erlauben, dann die Ports, die du brauchst.

5 Min. Lesezeit

Gilt für Debian 12/13 und Ubuntu 22.04/24.04 mit ufw und für AlmaLinux 9 und Rocky Linux 9 mit firewalld. Beide regeln IPv4 und IPv6 gemeinsam.

Das Prinzip: Alles Eingehende ist zu, außer dem, was du ausdrücklich erlaubst. Ausgehendes bleibt offen.

Debian und Ubuntu: ufw

Installieren

bash
apt install -y ufw

IPv6 prüfen

In /etc/default/ufw muss IPV6=yes stehen (das ist der Standard):

bash
grep IPV6 /etc/default/ufw

Dann gilt jede Regel automatisch auch für die IPv6-Adresse deines Servers.

SSH erlauben und einschalten

bash
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw enable

ufw enable warnt, dass bestehende SSH-Verbindungen abbrechen könnten. Da 22 erlaubt ist, mit y bestätigen.

Weitere Ports öffnen

bash
ufw allow 80/tcp          # HTTP
ufw allow 443/tcp         # HTTPS
ufw allow 25565/tcp       # Minecraft Java
ufw allow 19132/udp       # Minecraft Bedrock

Nur für eine bestimmte Adresse, etwa deine eigene:

bash
ufw allow from 198.51.100.7 to any port 3306 proto tcp

Eine Regel entfernen:

bash
ufw status numbered
ufw delete 4

Prüfen

bash
ufw status verbose

Du siehst Status: active, die Standardregeln und jede Regel zweimal: einmal für IPv4 und einmal mit (v6).

AlmaLinux und Rocky Linux: firewalld

Installieren und starten

Auf vielen Images ist firewalld schon dabei. Sonst:

bash
dnf install -y firewalld
systemctl enable --now firewalld

In der Standard-Zone public ist SSH bereits erlaubt. Prüfe das, bevor du weitermachst:

bash
firewall-cmd --get-active-zones
firewall-cmd --list-all

Bei services: muss ssh stehen. Fehlt es:

bash
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

Weitere Ports öffnen

bash
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=25565/tcp
firewall-cmd --permanent --add-port=19132/udp
firewall-cmd --reload

Ohne --permanent gilt eine Regel nur bis zum nächsten --reload oder Neustart. Mit --permanent wirkt sie erst nach --reload.

Nur für eine bestimmte Adresse:

bash
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="198.51.100.7" port port="3306" protocol="tcp" accept'
firewall-cmd --reload

Entfernen geht mit --remove-port, --remove-service bzw. --remove-rich-rule und denselben Werten.

Prüfen

bash
firewall-cmd --list-all

firewalld filtert IPv4 und IPv6 gemeinsam; --add-port und --add-service gelten für beide.

Prüfen von außen

Von einem anderen Rechner aus (nicht vom Server selbst), über IPv4 und IPv6:

bash
nmap -Pn 203.0.113.10
nmap -6 -Pn 2001:db8::10

Offen sein sollte nur, was du erlaubt hast. Einen einzelnen Port prüfst du schnell mit nc -vz 203.0.113.10 25565.

Ausgesperrt?

Kommst du nach einer Regel nicht mehr per SSH rein, hilft die Konsole deines vServers im Dashboard. Sie zeigt den Bildschirm des Servers im Browser und braucht kein SSH, siehe Konsole im Browser.

  1. Im Dashboard den vServer öffnen, Reiter Konsole, Verbinden.

  2. Als root anmelden. Das Passwort steht in der Übersicht unter Zugangsdaten. Langes Passwort? Mit Text einfügen in die Konsole übertragen. Kennst du es nicht mehr: Reiter System, Root-Passwort zurücksetzen.

  3. SSH wieder erlauben:

    bash
    # ufw
    ufw allow 22/tcp
    # oder die Firewall erst einmal ganz aus
    ufw disable
    bash
    # firewalld
    firewall-cmd --permanent --add-service=ssh
    firewall-cmd --reload
    # oder vorübergehend aus
    systemctl stop firewalld
  4. Per SSH testen, dann die Firewall wieder sauber einschalten.

Häufige Fehler

ProblemUrsache und Lösung
Port offen erlaubt, trotzdem nicht erreichbarDas Programm lauscht nur auf 127.0.0.1. ss -tlnp zeigt die Adresse; für Zugriff von außen muss dort 0.0.0.0 oder * stehen.
Regel wirkt nicht (firewalld)--permanent ohne --reload, oder ohne --permanent und nach einem Neustart weg.
ufw: command not found nach der InstallationDu bist nicht root. sudo ufw ….
Ausgehende Mails kommen nicht anPorts 25, 465 und 587 sind bei vServern ausgehend zum Schutz vor Spam gesperrt, unabhängig von deiner Firewall. Die Freischaltung beantragst du im Reiter Netzwerk unter Mail-Ports, siehe Netzwerk.
Über IPv6 geht etwas, über IPv4 nicht (oder umgekehrt)ufw status zeigt, ob die Regel als (v6) doppelt da ist. Bei Regeln mit fester Quelladresse gilt die Regel nur für deren Adressfamilie.

Wie es weitergeht