---
title: 'Linux: UFW Firewall Konfiguration (Web + Tailscale SSH)'
url: 'https://blog.ro011110ot.de/de/vps/security/ufw-firewall-konfiguration-web-tailscale-ssh'
markdown: 'https://blog.ro011110ot.de/de/vps/security/ufw-firewall-konfiguration-web-tailscale-ssh.md'
lang: de
date: '2026-10-05'
description: 'tags: linux security devops ufw vps date: 2026-10-05 Linux: UFW Firewall Konfiguration (Web + Tailscale SSH) Diese Notiz beschreibt die grundlegende Absicherung eines Linux-VPS mittels UFW (Uncomplicated Firewall). Das Ziel ist es, den Zugriff von außen auf das Notwendigste (HTTP/HTTPS) zu bes…'
---

---

tags:

- linux
- security
- devops
- ufw
- ## vps date: 2026-10-05

# Linux: UFW Firewall Konfiguration (Web + Tailscale SSH)

Diese Notiz beschreibt die grundlegende Absicherung eines Linux-VPS mittels **UFW (Uncomplicated Firewall)**. Das Ziel ist es, den Zugriff von außen auf das Notwendigste (HTTP/HTTPS) zu beschränken und administrative Zugriffe (SSH) ausschließlich über ein sicheres VPN wie \[\[Tailscale\]\] zu erlauben.

---

## 1. Standard-Richtlinien (Default Policies)

Zunächst wird der gesamte eingehende Datenverkehr standardmäßig blockiert und ausgehender Datenverkehr uneingeschränkt erlaubt.

```bash
sudo ufw default deny incoming
sudo ufw default allow outgoing
```

## 2. Firewall-Regeln definieren

### SSH nur über Tailscale erlauben

Um den Server nicht auszusperren, während Port 22 global geschlossen wird, binden wir den SSH-Zugriff exklusiv an das Tailscale-Interface (`tailscale0`). Dadurch sind Anfragen über die öffentliche IP wirkungslos.

Bash

```
sudo ufw allow in on tailscale0 to any port 22 proto tcp
```

### Öffentliche Web-Ports freigeben

Für den Nginx-Webserver und Let’s Encrypt werden die Standardports für HTTP und HTTPS geöffnet:

Bash

```
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
```

> \[!note\] Hinweis Falls zuvor eine globale Regel wie `sudo ufw allow OpenSSH` aktiv war, muss diese unbedingt entfernt werden, damit SSH nicht mehr öffentlich erreichbar ist (`sudo ufw delete allow OpenSSH`).

## 3. UFW aktivieren und prüfen

Nachdem alle Regeln konfiguriert sind, wird die Firewall eingeschaltet:

Bash

```
sudo ufw enable
```

### Status-Kontrolle mit erweiterten Details

Mit dem folgenden Befehl lässt sich die vollständige Konfiguration inklusive aktiver Interfaces und Standard-Policies überprüfen:

Bash

```
sudo ufw status verbose
```

Erwartete Ausgabe:

Plaintext

```
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)

To                         Action     From
--                         ------     ----
80/tcp                     ALLOW IN   Anywhere                  
443/tcp                    ALLOW IN   Anywhere                  
22/tcp on tailscale0       ALLOW IN   Anywhere                  
80/tcp (v6)                ALLOW IN   Anywhere (v6)             
443/tcp (v6)               ALLOW IN   Anywhere (v6)             
22/tcp (v6) on tailscale0  ALLOW IN   Anywhere (v6)             
```

## 4. Nützliche Befehle im Alltag

- **Status anzeigen:** `sudo ufw status`
- **Firewall neu laden:** `sudo ufw reload`
- **Regeln nummeriert anzeigen (zum Löschen):** `sudo ufw status numbered`
- **Bestimmte Regel löschen:** `sudo ufw delete <Nummer>`

---

## Navigation

- Previous: [Harden SSL Settings](https://blog.ro011110ot.de/de/vps/security/harden-ssl-settings.md)
