> Die vollständige Liste der Artikel steht in [llms.txt](https://docs.f3cloud.com/llms.txt). Jede Seite gibt es auch als Markdown, dazu einfach .md an die Adresse anhängen. Diese Seite als Markdown: [https://docs.f3cloud.com/de/client-area/protect-vps-from-unauthorised-access/firewall.md](https://docs.f3cloud.com/de/client-area/protect-vps-from-unauthorised-access/firewall.md).

# Firewall mit UFW und firewalld auf einem Linux-VPS einrichten

Wie Sie auf einem VPS eine Firewall einrichten und überflüssige Ports schließen. Schritt-für-Schritt-Einrichtung von UFW für Ubuntu und Debian und von firewalld für AlmaLinux, CentOS und Oracle Linux, SSH-Zugang nur von Ihrer IP.

Die Firewall entscheidet, welche Verbindungen auf den Server gelassen werden und welche nicht. Das Prinzip ist einfach. Von außen sollten nur die Dienste sichtbar sein, die Sie wirklich nutzen. Je weniger Ports offen sind, desto geringer ist die Chance, dass jemand darin eine Schwachstelle findet.

Meist müssen Sie nur sehr wenig öffnen.

* **SSH** – Port `22` oder Ihr eigener, falls Sie ihn [geändert haben](https://docs.f3cloud.com/de/client-area/protect-vps-from-unauthorised-access/change-ssh-port.md);
* **Website** – die Ports `80` und `443`;
* **VPN oder Proxy** – die Ports, die Ihr Programm verwendet, zum Beispiel `443` für VLESS.

> **Erlauben Sie zuerst SSH.**
>
> Wenn Sie die Firewall einschalten, ohne SSH zu erlauben, verlieren Sie sofort den Zugang zum Server. Führen Sie die Befehle deshalb genau in dieser Reihenfolge aus.

***

### Firewall einrichten

Die Befehle führen Sie auf dem Server aus.

#### Ubuntu und Debian (UFW)

```bash
# UFW installieren (unter Ubuntu ist es meist schon vorhanden)
sudo apt update
sudo apt install -y ufw

# Standardmäßig alle eingehenden Verbindungen verbieten und
# ausgehende erlauben
sudo ufw default deny incoming
sudo ufw default allow outgoing

# SSH erlauben. Wenn Sie den Port geändert haben, tragen Sie Ihren statt 22 ein
sudo ufw allow 22/tcp

# Wenn auf dem Server eine Website läuft, HTTP und HTTPS öffnen
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Firewall einschalten. Auf die Frage nach bestehenden SSH-Verbindungen
# mit y antworten
sudo ufw enable

# Anzeigen, welche Regeln gelten
sudo ufw status verbose
```
#### AlmaLinux, CentOS, Oracle Linux (firewalld)

```bash
# firewalld installieren und den automatischen Start einschalten
sudo dnf install -y firewalld
sudo systemctl enable --now firewalld

# Anzeigen, was bereits offen ist. SSH ist hier meist standardmäßig
# erlaubt
sudo firewall-cmd --list-all

# Wenn auf dem Server eine Website läuft, HTTP und HTTPS öffnen
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# Änderungen übernehmen
sudo firewall-cmd --reload
```

Wenn Sie später einen weiteren Port öffnen müssen, zum Beispiel `8080` für ein Control Panel, genügt dafür ein einziger Befehl.

#### Ubuntu und Debian (UFW)

```bash
# Port 8080 für TCP-Verbindungen öffnen
sudo ufw allow 8080/tcp
```
#### AlmaLinux, CentOS, Oracle Linux (firewalld)

```bash
# Port 8080 für TCP-Verbindungen öffnen und Änderungen übernehmen
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
```

***

### SSH nur von Ihrer IP-Adresse

Das ist die wirksamste Maßnahme, denn per SSH können sich dann nur Sie verbinden, und für alle anderen bleibt der Port geschlossen. Ihre eigene IP-Adresse finden Sie auf der Website [2ip.ru](https://2ip.ru) heraus.

> **Nur bei einer festen IP-Adresse.**
>
> Dieser Schritt eignet sich nur, wenn Sie eine feste IP-Adresse haben. Bei vielen Internetanbietern für Privatkunden ändert sie sich von Zeit zu Zeit, und nach einem Wechsel der Adresse kommen Sie nicht mehr per SSH auf den Server und müssen die Konsole nutzen. Wenn Sie nicht sicher sind, ob Ihre IP fest ist, überspringen Sie diesen Schritt.

#### Ubuntu und Debian (UFW)

```bash
# SSH nur von Ihrer IP erlauben. Statt IHRE_IP setzen Sie
# Ihre Adresse ein,
# und statt 22 Ihren SSH-Port, falls Sie ihn geändert haben
sudo ufw allow from IHRE_IP to any port 22 proto tcp

# Die allgemeine Regel löschen, die alle zu SSH durchließ
sudo ufw delete allow 22/tcp

# Liste der Regeln prüfen
sudo ufw status
```
#### AlmaLinux, CentOS, Oracle Linux (firewalld)

```bash
# SSH nur von Ihrer IP erlauben. Statt IHRE_IP setzen Sie
# Ihre Adresse ein,
# und statt 22 Ihren SSH-Port, falls Sie ihn geändert haben
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IHRE_IP" port port="22" protocol="tcp" accept'

# Den Standarddienst SSH entfernen, der für alle offen war
sudo firewall-cmd --permanent --remove-service=ssh

# Änderungen übernehmen und Ergebnis prüfen
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
```

> **Falls der Zugang doch verloren geht.**
>
> Falls der Zugang doch verloren geht, öffnen Sie den Server über die Schaltfläche <kbd>Console</kbd> in der Serverliste im Kundenbereich und schalten Sie die Firewall vorübergehend aus.\
> Unter Ubuntu und Debian ist das der Befehl `sudo ufw disable`.\
> Unter AlmaLinux, CentOS und Oracle Linux ist es `sudo systemctl stop firewalld`.
>
> Korrigieren Sie danach die Regeln und schalten Sie die Firewall wieder ein.

***

### Unsere Ressourcen

**Telegram-Kanal:** [https://t.me/f3cloud_news](https://t.me/f3cloud_news)\
**Hosting-Website:** [https://f3cloud.com](https://f3cloud.com/de)
