Inital commit
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# Hardware – Raspberry PI5
|
||||
|
||||
**Zusammenfassung**: Der `da-server-pi5` ist ein Raspberry PI5 mit 15 GB RAM, aktivem Kühler und drei USB-Massenspeichern. Läuft stabil bei ~46 °C CPU-Temperatur.
|
||||
**Quellen**: 🔌 SSH (`/proc/cpuinfo`, `lsusb`, `lspci`, `/sys/class/thermal/`)
|
||||
**Zuletzt aktualisiert**: 2026-06-17
|
||||
|
||||
---
|
||||
|
||||
## Modell
|
||||
|
||||
| Merkmal | Wert |
|
||||
|---|---|
|
||||
| **Modell** | Raspberry Pi 5 (BCM2712) |
|
||||
| **CPU** | ARM Cortex-A76 (4 Kerne, aarch64) |
|
||||
| **BogoMIPS** | 108.00 pro Kern |
|
||||
| **Features** | fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp |
|
||||
| **RAM** | 15 GB |
|
||||
| **Architektur** | arm64 (nativ), 64-bit-mode (`arm_64bit=1`, `arm_boost=1`) |
|
||||
|
||||
## Temperatur & Kühlung
|
||||
|
||||
- **CPU-Temperatur**: ~46 °C (Quelle: `/sys/class/thermal/thermal_zone0/temp`)
|
||||
- **Throttling**: Keines (vcgencmd zeigt keine Drosselung)
|
||||
- Der PI5 ist aktiv gekühlt und läuft sehr kühl.
|
||||
|
||||
## Angeschlossene Hardware (USB)
|
||||
|
||||
| Bus | Gerät | ID | Beschreibung |
|
||||
|---|---|---|---|
|
||||
| Bus 001 | Device 002 | `1e3d:2092` | **Chipsbank Flash Disk** – USB-Stick mit LUKS-Schlüsseldateien |
|
||||
| Bus 001 | Device 003 | `0781:55ae` | **SanDisk Extreme 55AE** – 1,8-TB-SSD (Hauptsystem + Daten) |
|
||||
| Bus 004 | Device 002 | `1058:1042` | **WD Elements SE Portable** – 931-GB-SSD (Zweitsystem) |
|
||||
|
||||
## PCI / Erweiterungsbus
|
||||
|
||||
```
|
||||
0002:00:00.0 BCM2712 PCIe Bridge
|
||||
0002:01:00.0 RP1 PCIe 2.0 South Bridge (Ethernet, USB, GPIO)
|
||||
```
|
||||
|
||||
## Boot-Konfiguration (`/boot/firmware/config.txt`)
|
||||
|
||||
```
|
||||
arm_64bit=1 # 64-bit mode
|
||||
arm_boost=1 # max Takt
|
||||
dtoverlay=vc4-kms-v3d # Grafiktreiber
|
||||
dtparam=audio=on # Audio aktiv
|
||||
camera_auto_detect=1 # Kamera-Erkennung
|
||||
display_auto_detect=1 # Display-Erkennung
|
||||
```
|
||||
|
||||
## Verwandte Seiten
|
||||
|
||||
- [systemuebersicht](../Konfiguration/systemuebersicht.md)
|
||||
- [laufwerke-und-speicher](../Konfiguration/laufwerke-und-speicher.md)
|
||||
@@ -0,0 +1,74 @@
|
||||
# Netzwerk – Raspberry PI5
|
||||
|
||||
**Zusammenfassung**: Der PI5 hat eine kabelgebundene (eth0) und eine WLAN-Schnittstelle (wlan0). DNS läuft über die FritzBox, Netzwerkkonfiguration via NetworkManager.
|
||||
**Quellen**: 🔌 SSH (`ip addr`, `/etc/resolv.conf`, `/etc/hosts`, `ss -tlnp`, `/opt/compose/traefik/conf.d/*.yml`)
|
||||
**Zuletzt aktualisiert**: 2026-06-17
|
||||
|
||||
---
|
||||
|
||||
## Schnittstellen
|
||||
|
||||
| Interface | IP | Typ | Status |
|
||||
|---|---|---|---|
|
||||
| `eth0` | `192.168.178.77/24` | Kabel (primär) | UP |
|
||||
| `wlan0` | `192.168.178.66/24` | WLAN (Fallback) | UP |
|
||||
| `lo` | `127.0.0.1/8` | Loopback | UP |
|
||||
|
||||
Gateway/Subnetz: `192.168.178.0/24`, Standard-Gateway `192.168.178.1` (FritzBox).
|
||||
|
||||
## DNS
|
||||
|
||||
- **Namensserver**: `192.168.178.1` (FritzBox)
|
||||
- **Suchdomain**: `fritz.box`
|
||||
- **Hostname**: `da-server-pi5`
|
||||
- **/etc/hosts**: `127.0.1.1 da-server-pi5` (von cloud-init verwaltet)
|
||||
|
||||
## Öffentliche Dienste
|
||||
|
||||
Alle öffentlichen Dienste laufen hinter [traefik](../Konfiguration/docker/traefik.md) auf den Ports **80 (HTTP)** und **443 (HTTPS)** mit Let's Encrypt:
|
||||
|
||||
| Subdomain | Dienst | interner Port |
|
||||
|---|---|---|
|
||||
| `cloud.da.home-webserver.de` | [nextcloud](../Konfiguration/docker/nextcloud.md) | `nextcloud:80` |
|
||||
| `photos.da.home-webserver.de` | [immich](../Konfiguration/docker/immich.md) | `immich_server:2283` |
|
||||
| `paperless.da.home-webserver.de` | [paperless](../Konfiguration/docker/paperless.md) | `paperless-webserver-1:8000` |
|
||||
| `wiki.da.home-webserver.de` | [wikijs](../Konfiguration/docker/wikijs.md) | `wikijs:3000` |
|
||||
| `pdf.da.home-webserver.de` | [stirling-pdf](../Konfiguration/docker/stirling-pdf.md) | `stirling-pdf:8080` |
|
||||
| `music.da.home-webserver.de` | [plex](../Konfiguration/docker/plex.md) | `plex:32400` |
|
||||
| `web.da.home-webserver.de` | [nginx](../Konfiguration/docker/nginx.md) | `nginx_pi5:80` |
|
||||
| `office.da.home-webserver.de` | [collabora](../Konfiguration/docker/collabora.md) | `collabora:9980` |
|
||||
| `jenkins.da.home-webserver.de` | [jenkins](../Konfiguration/docker/jenkins.md) | `jenkins:8080` |
|
||||
| `git.da.home-webserver.de` | [gitea](../Konfiguration/docker/gitea.md) | `gitea:3000` |
|
||||
| `traefik.da.home-webserver.de` | Traefik-Dashboard | `api@internal` |
|
||||
| `prometheus.da.home-webserver.de` | Prometheus | `monitoring-prometheus:9090` |
|
||||
| `grafana.da.home-webserver.de` | Grafana | `monitoring-grafana:3000` |
|
||||
|
||||
(Quelle: `/opt/compose/traefik/conf.d/*.yml`)
|
||||
|
||||
## HTTP->HTTPS-Weiterleitung
|
||||
|
||||
Die HTTPS-Weiterleitung im Traefik-Global-Router ist **derzeit auskommentiert** (`conf.d/0000-global.yml`). HTTP-Anfragen landen im "noop"-Service (Antwort 404). Die Dienste sind nur via HTTPS direkt erreichbar.
|
||||
|
||||
## Offene Ports (Listening)
|
||||
|
||||
| Port | Dienst | Bemerkung |
|
||||
|---|---|---|
|
||||
| `22/tcp` | SSH (sshd) | Nur per SSH-Key |
|
||||
| `80/tcp` | docker-proxy → Traefik | HTTP |
|
||||
| `443/tcp` | docker-proxy → Traefik | HTTPS |
|
||||
| `111/tcp` | rpcbind | system-intern |
|
||||
| `631/tcp` | cupsd (localhost) | Druckserver |
|
||||
|
||||
(Quelle: `ss -tlnp`)
|
||||
|
||||
## Firewall
|
||||
|
||||
- **ufw**: Nicht installiert
|
||||
- **iptables**: Wird von Docker verwaltet (Netzwerk-Isolation der Container)
|
||||
|
||||
## Verwandte Seiten
|
||||
|
||||
- [traefik](../Konfiguration/docker/traefik.md)
|
||||
- [domain-und-ssl](../Konfiguration/domain-und-ssl.md)
|
||||
- [systemuebersicht](../Konfiguration/systemuebersicht.md)
|
||||
- [sicherheit](./sicherheit.md)
|
||||
@@ -0,0 +1,86 @@
|
||||
# Sicherheit – Raspberry PI5
|
||||
|
||||
**Zusammenfassung**: SSH-Zugriff ist auf Public-Key-Authentifizierung beschränkt. Einige Sicherheitslücken bestehen (Grafana-Passwort, Gitea-Container-Konfiguration).
|
||||
**Quellen**: 🔌 SSH (`/etc/ssh/sshd_config`, `/etc/passwd`, `groups`, `docker inspect`)
|
||||
**Zuletzt aktualisiert**: 2026-06-17
|
||||
|
||||
---
|
||||
|
||||
## SSH-Zugang
|
||||
|
||||
- **Passwort-Authentifizierung**: **Deaktiviert** (`KbdInteractiveAuthentication no`)
|
||||
- **Zugelassen**: Nur SSH-Key (Public-Key-Auth via `authorized_keys`)
|
||||
- **User**: `piadmin` (UID 1000, /home/piadmin, bash)
|
||||
- **SSH-Port**: 22 (Standard)
|
||||
- **Keys**: Ed25519-Schlüsselpaar vorhanden
|
||||
|
||||
## Benutzer & Gruppen
|
||||
|
||||
Einziger menschlicher Benutzer: `piadmin`
|
||||
|
||||
Gruppen-Mitgliedschaften von `piadmin`:
|
||||
|
||||
| Gruppe | Zweck |
|
||||
|---|---|
|
||||
| `piadmin` | Eigenes |
|
||||
| `adm` | Log-Dateien lesen |
|
||||
| `dialout` | Serielle Schnittstelle |
|
||||
| `cdrom` | Optische Laufwerke |
|
||||
| `sudo` | **Vollständiger root-Zugriff** (sudo) |
|
||||
| `audio` | Audio-Geräte |
|
||||
| `video` | Video-Geräte |
|
||||
| `plugdev` | Wechselmedien |
|
||||
| `games` | Spiele |
|
||||
| `users` | Standard-Benutzergruppe |
|
||||
| `input` | Eingabegeräte |
|
||||
| `render` | GPU-Rendering |
|
||||
| `netdev` | Netzwerk-Konfiguration |
|
||||
| `spi` | SPI-Schnittstelle |
|
||||
| `i2c` | I²C-Schnittstelle |
|
||||
| `gpio` | GPIO-Pins |
|
||||
| **`docker`** | **Docker-Befehle ohne sudo** |
|
||||
|
||||
## LUKS-Verschlüsselung
|
||||
|
||||
Beide Datenpartitionen sind mit LUKS2 verschlüsselt und erfordern einen **USB-Schlüsselstick** (`/mnt/usb_key/`) zum Booten:
|
||||
|
||||
| Container | Schlüsseldatei | Größe |
|
||||
|---|---|---|
|
||||
| `encrypt_data` | `/mnt/usb_key/twotb.bin` | 4096 Bytes |
|
||||
| `encrypt_sdc3` | `/mnt/usb_key/onetb.bin` | 16384 Bytes |
|
||||
|
||||
Siehe [luks-verschluesselung](../Konfiguration/luks-verschluesselung.md).
|
||||
|
||||
## Bekannte Sicherheitslücken
|
||||
|
||||
### 🔴 Grafana-Passwort im Klartext
|
||||
|
||||
In `/opt/compose/monitoring/docker-compose.yml` steht das Admin-Passwort als Umgebungsvariable im Klartext:
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
- GF_SECURITY_ADMIN_PASSWORD=Y57ekJeG2fLohiL0xdZNDViKteDZf55wQkhvabR96xPlEy4qRd
|
||||
```
|
||||
|
||||
Sollte in ein Docker-Secret oder eine `.env`-Datei ausgelagert werden.
|
||||
|
||||
### 🔴 Gitea-Container `restart: no`
|
||||
|
||||
Der Gitea-Container hat die Restart-Policy `no` (statt `unless-stopped`) und läuft nicht. Die zugehörige MariaDB läuft dagegen normal.
|
||||
|
||||
Siehe [gitea](../Konfiguration/docker/gitea.md).
|
||||
|
||||
### 🟡 Collabora-Admin-Passwort
|
||||
|
||||
Der Standard-Admin-Zugang für Collabora sollte geändert werden.
|
||||
|
||||
### 🟡 HTTP->HTTPS-Weiterleitung
|
||||
|
||||
Die Weiterleitung von HTTP auf HTTPS ist in Traefik **auskommentiert**. Dienste sind zwar nur per HTTPS aufrufbar, aber HTTP-Anfragen geben einen 404 statt einer Weiterleitung.
|
||||
|
||||
## Verwandte Seiten
|
||||
|
||||
- [systemuebersicht](../Konfiguration/systemuebersicht.md)
|
||||
- [luks-verschluesselung](../Konfiguration/luks-verschluesselung.md)
|
||||
- [gitea](../Konfiguration/docker/gitea.md)
|
||||
- [monitoring](../Konfiguration/docker/monitoring.md)
|
||||
Reference in New Issue
Block a user