# NetBird Admin – Erste Schritte

Dashboard: https://netbird.kpt-lab.de
Login: fk@kpt-consulting.de / E7U6*P8hM5Nz

---

## 1. Setup Key erstellen

Setup Keys erlauben Clients (PCs/Laptops), dem Netzwerk beizutreten.

- Gehe zu **Setup Keys** (Seitenmenü)
- Klicke **"Add Setup Key"**
  - Name: z.B. `DD-Kabelbau`
  - Key Type: **One-off** (einmalig, gilt für 1 Gerät) **oder Reusable (empfohlen)**
  - Expires: `30d` oder leer (kein Ablauf)
  - **Auto-assign Groups**: später
- **Speichern** → den Key kopieren & auf den Client-Maschinen verwenden

## 2. NetBird Client auf Clients installieren

### Windows
```
netbird.io → Download → netbird-x.x.x-windows-amd64.msi
netbird install
netbird up --setup-key NB_XXXX
```

### Linux
```bash
curl -fsSL https://pkgs.netbird.io/install.sh | sh
netbird up --setup-key NB_XXXX
```

### Prüfen
```bash
netbird status
# → Management: Connected
# → IP: 100.xxx.xxx.xxx
```

## 3. Access Policies erstellen

Policies steuern, wer mit wem kommunizieren darf.

- Gehe zu **Access Control** → **Policies**
- **"Add Policy"**
  - Name: `Alle zu Allen`
  - Rule: **Traffic**
  - Source: `Alle` (oder `All Users`, `All Groups`)
  - Destination: `Alle` (oder `All Users`, `All Groups`)
  - Ports: `*`
  - Action: **Allow**
- Speichern

> Für erste Tests reicht eine offene Policy. Später feinere Regeln (z.B. nur bestimmte Peers).

## 4. Exit Node (VPS als Gateway)

Damit der VPS den gesamten Traffic der Clients routen kann.

- **Auf dem VPS-Host (Proxmox – NICHT im CT 111) installieren:**
  ```bash
  curl -fsSL https://pkgs.netbird.io/install.sh | sh
  netbird up --setup-key NB_XXXX
  ```
- **Im Dashboard:** Gehe zu **Peers** → den VPS-Peer anklicken
  - **"Enable as exit node"** aktivieren
- **Auf dem Client:** `netbird up --exit-node <PEER_ID>` oder im Dashboard per Policy

> Der VPS-Host ist `159.195.68.61` (Proxmox), **nicht** CT 111.

## 5. Routes (dauerhafte Netzwerkrouten)

Wenn Clients bestimmte private Subnetze (z.B. `192.168.222.0/24`) über den NetBird erreichen sollen.

- Gehe zu **Routes** → **"Add Route"**
  - Network: `192.168.222.0/24` (euer internes Netz)
  - Peer: Den VPS-Exit-Node-Peer auswählen
  - Metric: `1`
  - Masquerade: `ON` (damit Antworten zurückgeroutet werden)
  - Enabled: ✔
- Speichern

> **Alternative:** Wenn nur einzelne Dienste exponiert werden sollen, reichen Services (siehe Punkt 7).

## 6. DNS konfigurieren

Eigene Domains für NetBird-Endpoints.

- Gehe zu **DNS** → **"Add Nameserver Group"**
  - Name: `Intern`
  - Domains: `intern.kpt-lab.de`
  - Nameserver: `1.1.1.1` (oder eigener DNS)
  - **Enabled**: ✔
- Speichern

> Damit können Clients `dienst.intern.kpt-lab.de` auflösen, wenn der DNS-Eintrag im Dashboard gesetzt wird.

## 7. Reverse Proxy / Services einrichten

Der NetBird Proxy (läuft auf CT 111) kann interne Dienste per Domain ins Internet exposen.

> **Voraussetzung:** Der Proxy-Container läuft (Status: Up). Ist erledigt.

### Service anlegen

- Gehe zu **Services** → **"Add Service"**
  - **Domain:** `z.b.gitea.pr.kpt-lab.de`
    - Die Domain muss via DNS auf `159.195.68.61` zeigen (bereits erledigt: `*.pr.kpt-lab.de`)
  - **Backend:** Den internen NetBird-Peer auswählen (IP:Port des Dienstes)
    - z.B. `192.168.222.40:3000` für Gitea
  - **TCP Ports:** leer lassen (Default)
  - **HTTP:** ON (für http->https redirect)
- Speichern

> Der Proxy holt automatisch ein Let's Encrypt Zertifikat.

### Wichtige Domains
| Domäne | Ziel |
|--------|------|
| `*.pr.kpt-lab.de` | → öffentlich über Traefik (CT 111) |
| DNS im Dashboard setzen | → NetBird-interne Auflösung |

### Nächste Dienste die du anlegen könntest
| Service | Interne Addr (NetBird-IP) | Domain |
|---------|--------------------------|--------|
| Gitea | `100.x.x.x:3000` | `gitea.pr.kpt-lab.de` |
| AufmaßWeb (lokal) | `100.x.x.x:5000` | `aufmass.pr.kpt-lab.de` |

## 8. Nächste Schritte

1. **Exit Node einrichten** → NetBird Client auf dem Proxmox-Host installieren
2. **Gitea neu aufsetzen** (alter CT 404 ist gelöscht)
3. **AufmaßWeb lokal starten** → Service im Dashboard anlegen
4. **Access Policies verfeinern** (nicht alle zu allen)

---

## Kurzreferenz NetBird CLI (Client)

```bash
netbird up --setup-key NB_KEY       # Verbinden
netbird up --exit-node <PEER_ID>     # Exit-Node nutzen
netbird status                       # Status anzeigen
netbird down                         # Trennen
netbird service install              # Autostart (Windows/Linux)
```
