# ufw-Firewall-Regeln und private Netzwerke einrichten

> Öffne Ports in der ufw-Firewall deines Servers, erlaube oder sperre Verkehr von IP-Adressen und Bereichen und verbinde Server sicher über ihr privates Netzwerk.

Auf der Seite **Netzwerk** eines Servers verwaltest du seine Firewall und siehst sein privates Netzwerk. Auf jedem Server läuft ufw (Uncomplicated Firewall), die Standard-Firewall von Ubuntu. Eingehender Verkehr wird abgewiesen, außer eine Regel auf dieser Seite erlaubt ihn. Ausgehender Verkehr ist erlaubt, damit der Server Git-Hosts, Paketspiegel und APIs erreicht.

Auf dieser Seite öffnest du einen Port für einen Dienst, lässt deine anderen Server eine Datenbank oder einen Cache erreichen oder sperrst eine Adresse.

![Die Seite Netzwerk mit den Standardregeln für SSH, HTTP und HTTPS und einer MySQL-Regel für das private Netzwerk](https://ops.vimonto.com/docs-media/de/server-network.webp?v=161e760d "Firewall-Regeln eines Servers")

## Welche Regeln hat ein neuer Server?

Bei der Provisionierung bekommt die Firewall einige Regeln, markiert als **Standard**:

| Regel | Port | Wann |
| --- | --- | --- |
| SSH | der SSH-Port des Servers (meist 22) | Jeder Server. |
| HTTP | 80 | Server mit Nginx: App-Server, Webserver und Load Balancer. |
| HTTPS | 443 | Server mit Nginx. |
| MySQL, MariaDB oder PostgreSQL | 3306 oder 5432, nur aus dem Bereich des privaten Netzwerks | Datenbankserver in einem privaten Netzwerk. |
| Redis | 6379, nur aus dem Bereich des privaten Netzwerks | Cache-Server in einem privaten Netzwerk. |
| Memcached | 11211, nur aus dem Bereich des privaten Netzwerks | Cache-Server in einem privaten Netzwerk. |
| Meilisearch | 7700, nur aus dem Bereich des privaten Netzwerks | Meilisearch-Server in einem privaten Netzwerk. |

Die SSH-Regel lässt sich nicht entfernen: Ohne SSH kann Vimonto Deploy den Server nicht mehr erreichen. Änderst du den SSH-Port in den [Servereinstellungen](https://ops.vimonto.com/docs/de/servers/server-settings#den-ssh-port-ändern), zieht die SSH-Regel auf den neuen Port mit. Die Regeln für HTTP und HTTPS kannst du entfernen, deine Sites sind dann aber nicht mehr erreichbar.

Die Regeln für das private Netzwerk erlauben den Adressbereich des Netzwerks, etwa `10.0.0.0/16`, und sonst nichts; siehe [Server in einem privaten Netzwerk](https://ops.vimonto.com/docs/de/servers/server-types#server-in-einem-privaten-netzwerk). Kennt Vimonto Deploy kein privates Netzwerk für den Server, etwa bei einem eigenen VPS, werden diese Regeln nicht angelegt: Füge dann selbst eine Regel für die Adressen deiner anderen Server hinzu. Du kannst diese Regeln entfernen, deine anderen Server erreichen den Dienst dann aber nicht mehr.

Auf den Servern läuft außerdem fail2ban. Es sperrt vorübergehend Adressen, die sich wiederholt erfolglos per SSH anzumelden versuchen.

## Eine Firewall-Regel hinzufügen

1. Öffne den Server und wähle in der Seitenleiste **Netzwerk**.
2. Klicke auf **Regel hinzufügen**.
3. Fülle das Formular aus:

| Feld | Bedeutung |
| --- | --- |
| **Name** | Ein Name, an dem du die Regel erkennst, etwa „MySQL von den Webservern“. |
| **Port** | Ein Port (`3306`) oder ein Bereich (`8000:8100`). Leer lassen für alle Ports; die Regel gilt dann für jedes Protokoll und zeigt **Alle**. |
| **Protokoll** | **TCP**, **UDP** oder **Beide**. |
| **Von** | Eine IP-Adresse (`203.0.113.10`) oder ein Bereich in CIDR-Notation (`10.0.0.0/16`). IPv4 und IPv6 funktionieren beide. Leer lassen für alle. |
| **Aktion** | **Erlauben** oder **Verweigern**. |

4. Klicke auf **Regel hinzufügen**.

Die Regel steht auf **Wird hinzugefügt**, bis ufw sie übernommen hat, und erscheint dann in der Liste mit Port, Protokoll, Quelle und Aktion. Schlägt das Hinzufügen fehl, klicke auf **Erneut versuchen**.

### Häufige Regeln

| Zweck | Port | Protokoll | Von | Aktion |
| --- | --- | --- | --- | --- |
| MySQL oder MariaDB von deinen Webservern | `3306` | TCP | Bereich des privaten Netzwerks, etwa `10.0.0.0/16` | Erlauben |
| PostgreSQL von deinen Webservern | `5432` | TCP | Bereich des privaten Netzwerks | Erlauben |
| Redis von deinen App-Servern | `6379` | TCP | Bereich des privaten Netzwerks | Erlauben |
| Alles aus deinem Büro | leer | Beide | die IP-Adresse deines Büros | Erlauben |
| Eine missbräuchliche Adresse sperren | leer | Beide | die Adresse | Verweigern |

Datenbank-, Cache- und Meilisearch-Server in einem privaten Netzwerk haben die Regeln für ihre eigenen Ports bereits. Füge sie selbst hinzu für einen Server ohne privates Netzwerk oder um andere Adressen zuzulassen.

## Wie werden Firewall-Regeln angewendet?

Aus jeder Regel wird eine ufw-Regel, zum Beispiel:

```bash
ufw allow proto tcp from 10.0.0.0/16 to any port 3306
```

Ein Portbereich mit dem Protokoll **Beide** wird zu zwei ufw-Regeln, einer für TCP und einer für UDP, weil ufw einen Bereich nur zusammen mit einem einzigen Protokoll akzeptiert. Entfernst du die Regel, verschwinden beide.

ufw prüft die Regeln von oben nach unten und verwendet die erste passende. Regeln mit **Erlauben** kommen ans Ende der Liste, Regeln mit **Verweigern** an den Anfang, sodass eine Sperrregel immer Vorrang vor einer erlaubenden Regel hat. Um eine Adresse auf einem Port zu sperren, der für alle offen ist, etwa 443, füge eine Regel mit **Verweigern** für diese Adresse und diesen Port hinzu: Alle anderen kommen über die HTTPS-Regel weiterhin durch.

Verkehr, auf den keine Regel passt, wird abgewiesen.

## Eine Firewall-Regel entfernen

Klicke neben einer Regel auf **Entfernen** und bestätige mit **Regel entfernen**. Der Verkehr, den diese Regel erlaubt oder gesperrt hat, fällt dann auf den Standard zurück: Eingehender Verkehr wird abgewiesen.

Regeln lassen sich nicht bearbeiten. Um eine Regel zu ändern, füge zuerst die neue hinzu und entferne danach die alte, damit der Port zwischendurch nie geschlossen ist.

## Privates Netzwerk

Wird ein Server bei einem Cloud-Anbieter in einem privaten Netzwerk erstellt, zeigt der Abschnitt **Privates Netzwerk** den Namen des Netzwerks und die **Private IP-Adresse** des Servers. Andere Server im selben Netzwerk erreichen diesen Server über seine private Adresse, ohne Umweg über das öffentliche Internet. Das Netzwerk wählst du im Assistenten, wenn du [einen Server erstellst](https://ops.vimonto.com/docs/de/servers/create-a-server). Ist ein Server in keinem privaten Netzwerk, steht das hier.

Die Firewall gilt auch für das private Netzwerk. Datenbank-, Cache- und Meilisearch-Server erlauben ihre Dienst-Ports bereits aus dem Bereich des Netzwerks. Für jeden anderen Dienst fügst du auf dem empfangenden Server eine Regel hinzu, aus dem Bereich des Netzwerks oder von der privaten IP-Adresse jedes Servers. Verbinde deine Sites mit der privaten IP-Adresse des Datenbankservers, wie auf der Seite [Datenbanken](https://ops.vimonto.com/docs/de/servers/databases) beschrieben.

> [!WARNING]
> Öffne Ports für Datenbanken, Redis oder Memcached niemals für alle. Beschränke diese Regeln auf die Adressen deiner eigenen Server oder den Bereich deines privaten Netzwerks.

## Häufig gestellte Fragen

### Wie öffne ich einen Port auf meinem Server?

Öffne **Netzwerk**, klicke auf **Regel hinzufügen**, gib den Port ein, wähle das Protokoll, lass **Von** leer, um alle zuzulassen, oder gib eine Adresse ein, um nur diese zuzulassen, und wähle **Erlauben**.

### Blockiert die Firewall auch ausgehenden Verkehr?

Nein. ufw ist so eingerichtet, dass eingehender Verkehr abgewiesen und jeder ausgehende Verkehr erlaubt wird. Die Regeln auf dieser Seite gelten nur für eingehenden Verkehr.

### Ich habe die Firewall von Hand mit ufw geändert. Überschreibt Vimonto Deploy das?

Das Hinzufügen oder Entfernen einer Regel auf dieser Seite fügt nur genau diese Regel hinzu oder entfernt sie. Von Hand hinzugefügte Regeln bleiben bestehen, erscheinen aber nicht auf dieser Seite.

### Wer darf die Firewall ändern?

Mitglieder mit der Berechtigung, Server zu verwalten; siehe [Mitglieder und Rollen](https://ops.vimonto.com/docs/de/organization/members-and-roles). Jedes Mitglied sieht die Regeln.
