From f6d25ba0b9532baad0b0f64954fceb5b0ad7f766 Mon Sep 17 00:00:00 2001 From: Thomas Dannenberg Date: Sat, 4 Oct 2025 07:37:52 +0000 Subject: [PATCH] =?UTF-8?q?Kapitel=205/Free=20Rohtext.md=20hinzugef=C3=BCg?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Kapitel 5/Free Rohtext.md | 553 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 553 insertions(+) create mode 100644 Kapitel 5/Free Rohtext.md diff --git a/Kapitel 5/Free Rohtext.md b/Kapitel 5/Free Rohtext.md new file mode 100644 index 0000000..ceecbb1 --- /dev/null +++ b/Kapitel 5/Free Rohtext.md @@ -0,0 +1,553 @@ +# Kapitel 5 – Vaultwarden (Passwörter, 2FA) + +## Einleitung + +Zugangsdaten gehören zu den sensibelsten Informationen im digitalen Alltag. +Ob Streaming-Tools, Creator-Plattformen, E-Mail-Konten, Domains oder Selfhosting-Dienste – jeder Dienst hat sein eigenes Passwort, manche erfordern zusätzlich Zwei-Faktor-Codes (2FA). + +### Das Problem mit Passwörtern im Alltag + +Oft landen Passwörter: +- in Browsern, die ohne Hauptkennwort speichern, +- in Textdateien auf dem Desktop, +- oder werden für mehrere Konten wiederverwendet. + +Zwei-Faktor-Codes liegen dann verstreut in Authenticator-Apps auf dem Handy – ohne Backup und nicht synchronisierbar. + +> [!WARNING] +> Wer 2FA-Codes verliert, verliert oft dauerhaft den Zugriff. +> Viele Dienste bieten keinen Wiederherstellungsprozess ohne die Codes. + +### Vaultwarden als Lösung + +Vaultwarden ist ein selbst gehosteter Passwort-Manager. +Er speichert Passwörter und 2FA-Codes verschlüsselt auf dem eigenen Server – vollständig kompatibel mit den offiziellen Bitwarden-Apps für Browser, Desktop und Mobilgeräte. + +Der Zugriff erfolgt über eine zentrale Weboberfläche, erreichbar unter einer eigenen Domain wie `https://pass.DEINE-DOMAIN.tld`, mit gültigem SSL-Zertifikat und WebSocket-Sync. + +> [!TIP] +> Vaultwarden ist die leichtgewichtige, Docker-basierte Variante von Bitwarden – ohne Cloud, ohne Abo, ohne Datenweitergabe. + +### Ziel dieses Kapitels + +Wir richten Vaultwarden in einem eigenen Debian‑12‑LXC per Docker Compose ein und machen ihn per Nginx Proxy Manager erreichbar. +Dabei setzen wir auf verschlüsselte Kommunikation (HTTPS), geschützte WebSocket-Verbindung und ein gehärtetes Admin-Backend mit Hash-Login. + +Am Ende des Kapitels steht ein voll einsatzfähiger Passwort-Manager: +- auf eigener Hardware, +- mit geschlossener Registrierung, +- sicher erreichbar von jedem Gerät. + +--- + +## Voraussetzungen & Ressourcen + +Vaultwarden wird in einem eigenen LXC-Container unter Debian 12 betrieben. +Ein LXC ist ein leichtgewichtiger Container unter Proxmox – ideal für einzelne Dienste wie diesen. Die Einrichtung haben wir bereits in Kapitel 1 Schritt für Schritt gezeigt. + +### Anforderungen an den Container + +- **Betriebssystem:** Debian 12 +- **CPU:** 1 Kern +- **RAM:** 512 MB +- **Festplatte:** 8 GB +- **IP-Adresse:** 192.168.1.50 (per DHCP-Reservierung im Router fest zugewiesen) +- **Internetverbindung:** erforderlich für Paketinstallation und Docker-Download + +> [!TIP] +> Vergib die IP-Adresse über eine **DHCP-Reservierung im Router**, nicht außerhalb des DHCP-Bereichs. +> So stellst du sicher, dass die Adresse dauerhaft erhalten bleibt – ohne Konflikte mit anderen Geräten. + +👉 *Screenshot geeignet: Proxmox – LXC erstellen → Allgemeine Einstellungen mit Hostname „vaultwarden“* + +### Subdomain & Reverse Proxy + +Damit Vaultwarden später über eine Webadresse erreichbar ist, benötigen wir: + +- Eine Subdomain wie `pass.meinedomain.de` +- Einen laufenden Nginx Proxy Manager (siehe Kapitel 3), der HTTPS-Anfragen an den Vaultwarden-Container weiterleiten kann + +> [!NOTE] +> Du kannst auch eine kostenlose DynDNS-Adresse verwenden – z. B. über DuckDNS. +> Wichtig ist nur, dass der Proxy Manager Anfragen zuverlässig an die IP `192.168.1.50` weiterleitet. + +👉 *Screenshot geeignet: DuckDNS-Dashboard mit Subdomain + NPM-Dashboard mit Proxy Host* + +## Schritt-für-Schritt-Anleitung + +### System vorbereiten + +Wir starten im frisch erstellten LXC-Container. +Öffne in Proxmox den Container `vaultwarden` und klicke im Menü auf **Konsole**. + +Zuerst bringen wir das System auf den aktuellen Stand und installieren die benötigten Hilfspakete. +Diese sorgen dafür, dass externe Paketquellen sicher eingebunden und später Docker korrekt installiert werden kann. + + apt update + apt upgrade -y + apt install -y ca-certificates curl gnupg lsb-release + +> [!NOTE] +> Diese Pakete ermöglichen verschlüsselte Verbindungen, das Verifizieren von Signaturen und das Erkennen der verwendeten Systemversion. + +👉 *Screenshot geeignet: Proxmox-Konsole mit apt upgrade und Paketinstallation* + +### Docker und Compose installieren + +Vaultwarden wird als Docker-Anwendung betrieben. +Dafür installieren wir die aktuelle Docker Engine und das dazugehörige Compose-Plugin direkt aus dem offiziellen Repository. + +1. Verzeichnis für den Signaturschlüssel anlegen: + + mkdir -p /etc/apt/keyrings + +2. Docker-Signaturschlüssel herunterladen und abspeichern: + + curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg + +3. Docker-Repository hinzufügen: + + echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ + $(. /etc/os-release && echo $VERSION_CODENAME) stable" > /etc/apt/sources.list.d/docker.list + +4. Paketlisten aktualisieren und Docker installieren: + + apt update + apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin + +5. Docker beim Systemstart automatisch aktivieren: + + systemctl enable --now docker + +> [!TIP] +> Prüfe die Installation mit folgenden Befehlen: + + docker --version + docker compose version + +👉 *Screenshot geeignet: Terminalausgabe mit Docker- und Compose-Version* + +> [!WARNING] +> Falls Docker im Container nicht startet: +> In Proxmox → Container auswählen → Reiter „Optionen“ → Haken bei „Nesting“ und „keyctl“ setzen → Container neu starten. + +👉 *Screenshot geeignet: Proxmox → CT-Optionen mit aktivierten Haken* + +### Projektstruktur & .env-Datei + +Wir legen jetzt die Verzeichnisstruktur für Vaultwarden an und erstellen eine Konfigurationsdatei `.env`. +Diese Datei enthält später wichtige Einstellungen wie die Adresse des Dienstes und (optional) SMTP-Daten für Mailversand. + +Öffne die Konsole des Containers und gib folgende Befehle ein: + + mkdir -p /opt/vaultwarden/data + cd /opt/vaultwarden + nano .env + +Es öffnet sich der Nano-Editor. Trage hier Folgendes ein: + + DOMAIN=https://pass.DEINE-DOMAIN.tld + SIGNUPS_ALLOWED=false + + # Optional: SMTP für Verifizierung und Passwort-Reset + # SMTP_HOST=smtp.example.com + # SMTP_FROM=pass@example.com + # SMTP_PORT=587 + # SMTP_SECURITY=starttls + # SMTP_USERNAME=nutzername + # SMTP_PASSWORD=deinSMTPpasswort + +> [!TIP] +> Trage die Domain unbedingt **mit https://** ein. +> Ohne Protokollangabe können später Links in Mails oder der Weboberfläche fehlerhaft sein. + +> [!NOTE] +> Die Option `SIGNUPS_ALLOWED=false` deaktiviert die offene Registrierung. +> Du aktivierst sie später kurzzeitig manuell, um deinen ersten Nutzer anzulegen. + +Speichern mit: +Strg + O → Enter → Strg + X + +👉 *Screenshot geeignet: Nano-Editor mit ausgefüllter .env-Datei* + +### docker-compose.yml erstellen + +Vaultwarden wird über Docker Compose gestartet. +Dazu legen wir eine Datei namens `docker-compose.yml` an, die beschreibt, welches Image verwendet wird, auf welchen Ports der Dienst erreichbar ist und wo die Daten gespeichert werden. + +Gib in der Konsole ein: + + nano docker-compose.yml + +Füge folgenden Inhalt ein: + + services: + vaultwarden: + image: vaultwarden/server:latest + container_name: vaultwarden + restart: unless-stopped + env_file: .env + environment: + - DOMAIN=${DOMAIN} + volumes: + - ./data:/data + ports: + - "8000:80" + - "3012:3012" + +> [!NOTE] +> Port 8000 wird später im Nginx Proxy Manager als Weiterleitungsziel eingetragen. +> Port 3012 ist für WebSockets zuständig – ohne ihn funktioniert der Live-Sync zwischen Geräten nicht. + +Speichern mit: +Strg + O → Enter → Strg + X + +👉 *Screenshot geeignet: docker-compose.yml im Nano-Editor mit vollständigem Inhalt* + +### Container starten & Logs prüfen + +Sobald alle Dateien angelegt sind, starten wir Vaultwarden zum ersten Mal. +Dabei wird das Docker-Image heruntergeladen, der Container erstellt und im Hintergrund ausgeführt. + +Gib in der Konsole ein: + + docker compose up -d + +> [!TIP] +> Der Parameter `-d` sorgt dafür, dass der Container im Hintergrund („detached“) läuft. + +Prüfe danach, ob der Container fehlerfrei gestartet wurde: + + docker compose logs -f --tail=80 vaultwarden + +Wenn alles korrekt eingerichtet ist, erscheint nach einigen Sekunden die Meldung: + + Rocket has launched from http://0.0.0.0:80 + +Das bedeutet, dass Vaultwarden intern erfolgreich auf Port 80 gestartet wurde. + +> [!NOTE] +> Wenn stattdessen Fehlermeldungen wie „permission denied“ oder „/data not writable“ auftauchen, +> überprüfe die Rechte des Datenordners oder lösche einen fehlerhaften Container mit: + + docker compose down + docker compose up -d + +👉 *Screenshot geeignet: Terminal mit „Rocket has launched...“-Ausgabe im Log* + +### Veröffentlichung im Nginx Proxy Manager + +Vaultwarden läuft nun intern auf Port 8000 des Containers. +Damit der Dienst auch von außen über eine Domain wie `https://pass.DEINE-DOMAIN.tld` erreichbar ist, richten wir ihn im Nginx Proxy Manager (NPM) als neuen Proxy Host ein. + +Öffne die NPM-Weboberfläche: +http://:81 + +> [!NOTE] +> Die Einrichtung von NPM haben wir ausführlich in Kapitel 3 gezeigt. +> Falls du dir nicht sicher bist, wie du einen Proxy Host anlegst, sieh dir das dortige Beispiel erneut an. + +#### Proxy Host hinzufügen + +1. Gehe auf **Hosts → Proxy Hosts** +2. Klicke auf **Add Proxy Host** + +Fülle die Felder wie folgt aus: + +- **Domain Names:** `pass.DEINE-DOMAIN.tld` +- **Scheme:** `http` +- **Forward Hostname / IP:** `192.168.1.50` +- **Forward Port:** `8000` +- **Block Common Exploits:** aktivieren +- **Websockets Support:** aktivieren + +👉 *Screenshot geeignet: Proxy Host Maske mit IP 192.168.1.50 und Port 8000* + +#### WebSocket-Weiterleitung hinzufügen + +Vaultwarden nutzt WebSockets für den Live-Sync zwischen Geräten. +Dafür muss eine spezielle Weiterleitung für den Pfad `/notifications/hub` eingerichtet werden. + +1. Klicke im Proxy Host auf den Reiter **Custom Locations** +2. Wähle **Add Location** + +Trage ein: + +- **Location:** `/notifications/hub` +- **Forward Hostname / IP:** `192.168.1.50` +- **Forward Port:** `3012` +- **Websockets Support:** aktivieren + +Speichern und zurück zum Hauptfenster des Proxy Hosts. + +👉 *Screenshot geeignet: Custom Location mit WebSocket-Port 3012* + +#### SSL-Zertifikat erstellen + +Wechsle in den Reiter **SSL** und richte ein gültiges HTTPS-Zertifikat ein: + +- **SSL Certificate:** Request a new SSL Certificate +- **Force SSL:** aktivieren +- **HTTP/2 Support:** aktivieren +- **HSTS Enabled:** aktivieren +- **Agree to terms:** Haken setzen + +> [!TIP] +> Achte darauf, dass die Domain bereits auf deinen Server zeigt. +> Die Validierung von Let’s Encrypt funktioniert nur, wenn die Ports 80 und 443 korrekt weitergeleitet wurden. + +Speichern. Der Proxy Host wird nun aktiv. +Rufe im Browser `https://pass.DEINE-DOMAIN.tld` auf. +Die Login-Seite von Vaultwarden sollte jetzt erscheinen. + +👉 *Screenshot geeignet: Browseransicht mit Vaultwarden-Loginmaske unter HTTPS-Adresse* + +### Admin-Absicherung & Benutzer anlegen + +Vaultwarden besitzt ein separates Admin-Interface unter: +`https://pass.DEINE-DOMAIN.tld/admin` + +Beim ersten Aufruf erscheint ein Warnhinweis: +Die Nutzung eines einfachen Admin-Tokens in Klartext ist unsicher. +Stattdessen hinterlegen wir einen verschlüsselten Zugriffscode im Format **Argon2 PHC**. + +#### Sicheren Admin-Token erzeugen + +Vaultwarden enthält ein eingebautes Werkzeug zum Erzeugen dieses Hashes. + +Gib in der Konsole des Containers ein: + + docker exec -it vaultwarden /vaultwarden hash --preset owasp + +Du wirst zweimal nach dem gewünschten Admin-Passwort gefragt. +Am Ende erscheint ein langer Code, der mit `$argon2id$` beginnt. +Diesen **komplett kopieren** – er wird später im Adminbereich eingetragen. + +> [!NOTE] +> Dieser Code ist nicht das Passwort selbst, sondern ein sicherer Rechenwert daraus. +> Du verwendest weiterhin das **eingegebene Passwort**, nicht den Hash zum Login. + +👉 *Screenshot geeignet: Konsole mit Ausgabe des Argon2-Hashes* + +#### Hash im Webinterface eintragen + +1. Öffne `https://pass.DEINE-DOMAIN.tld/admin` +2. Logge dich mit dem neuen Passwort ein +3. Gehe zu **Settings → General** +4. Trage den kopierten Hash in das Feld **Admin Token / Argon2 PHC** ein +5. Speichern + +Ab jetzt ist der Adminbereich mit dem sicheren Hash geschützt. +Der alte Klartext-Eintrag darf entfernt werden. + +> [!TIP] +> Öffne die `.env`-Datei und lösche die Zeile mit `ADMIN_TOKEN=` +> Danach den Container neu starten: + + sed -i '/^ADMIN_TOKEN=/d' /opt/vaultwarden/.env + cd /opt/vaultwarden && docker compose restart vaultwarden + +👉 *Screenshot geeignet: Adminbereich mit gespeichertem Hash + Login-Maske* + +#### Ersten Benutzer anlegen + +Vaultwarden lässt keine offenen Registrierungen zu – genau das haben wir in der `.env` vorher deaktiviert. +Um den ersten Benutzer anzulegen, aktivieren wir die Anmeldung **kurzzeitig manuell**: + +1. Adminbereich öffnen → **Settings → General** +2. Option **Allow new signups** aktivieren → Speichern +3. In einem zweiten Tab `https://pass.DEINE-DOMAIN.tld/#/register` öffnen +4. Benutzer registrieren +5. Danach Anmeldung testen und die Registrierung wieder deaktivieren + +> [!TIP] +> Alternativ kannst du Nutzer auch über **Users → Invitations** per E-Mail einladen, wenn SMTP korrekt konfiguriert ist. + +👉 *Screenshot geeignet: Registrierung und späterer Login im Tresor* + +### Backups & Wiederherstellung + +Vaultwarden speichert alle Daten in einem lokalen Ordner – das betrifft sowohl Passwörter, Benutzer, Konfigurationen als auch Anhänge und TOTP-Codes. + +Wichtig: +Nicht der Docker-Container ist relevant, sondern der **Ordner `/opt/vaultwarden/data`**. +Nur dieser Ordner muss regelmäßig gesichert werden. + +#### Manuelles Backup erstellen + +Ein manuelles Backup kannst du direkt im Container-Terminal erstellen: + + cd /opt/vaultwarden + tar -czf /root/vaultwarden-backup-$(date +%F).tar.gz data + +> [!TIP] +> Wenn du maximale Datensicherheit willst, kannst du Vaultwarden vor dem Backup kurz stoppen: + + docker compose stop vaultwarden + +> [!NOTE] +> Für kleine Setups ist ein Online-Backup im laufenden Betrieb meist ausreichend. + +Nach dem Backup startest du den Container bei Bedarf wieder: + + docker compose start vaultwarden + +Die Backup-Datei liegt danach unter `/root/` und heißt z. B. `vaultwarden-backup-2025-10-04.tar.gz` + +👉 *Screenshot geeignet: Terminalausgabe nach erfolgreicher Archivierung* + +#### Wiederherstellung + +Falls du Vaultwarden auf einem neuen System wiederherstellen musst: + +1. Neue Instanz bis zur `docker-compose.yml` einrichten +2. Backup-Datei nach `/opt/vaultwarden/` kopieren +3. Archiv entpacken: + + tar -xzf vaultwarden-backup-2025-10-04.tar.gz + +4. Container starten: + + docker compose up -d + +Das System ist danach wieder wie vorher nutzbar – inklusive aller Benutzer, Einstellungen und Daten. + +> [!WARNING] +> Stelle sicher, dass die Zugriffsrechte auf den Ordner `data` erhalten bleiben. +> Andernfalls kann Vaultwarden die Datenbank nicht korrekt öffnen. + +--- + +## Troubleshooting & Tipps + +### Vaultwarden lädt nicht im Browser + +Wenn sich die Seite `https://pass.DEINE-DOMAIN.tld` nicht öffnet: + +- Öffne in Proxmox den Container `vaultwarden` +- Klicke auf **Konsole** +- Gib ein: + + docker compose ps + +In der Spalte „State“ muss „running“ stehen. + +Falls nicht, starte den Container erneut: + + docker compose up -d + +👉 *Screenshot geeignet: Ausgabe von `docker compose ps` mit Status „running“* + +> [!TIP] +> Du kannst auch testen, ob Vaultwarden intern erreichbar ist: +> Öffne `http://192.168.1.50:8000` im Browser. +> Wenn dort die Login-Maske erscheint, funktioniert Vaultwarden – das Problem liegt am Proxy. + +### Die Domain funktioniert, aber es erscheint keine Login-Maske + +Öffne den Nginx Proxy Manager und gehe wie folgt vor: + +- Klicke auf den Proxy Host für `pass.DEINE-DOMAIN.tld` +- Prüfe: + - IP-Adresse: `192.168.1.50` + - Port: `8000` + - Haken bei „Block Common Exploits“ und „Websockets Support“ + +👉 *Screenshot geeignet: Proxy Host Übersicht mit richtiger IP und Port* + +- Wechsle in den Reiter **Custom Locations** +- Prüfe: + - Location: `/notifications/hub` + - Ziel-Port: `3012` + - WebSocket-Support: aktiviert + +👉 *Screenshot geeignet: Custom Location mit aktivem Websocket-Haken* + +> [!TIP] +> Änderungen speichern, Proxy Host kurz deaktivieren und wieder aktivieren. + +### Die Seite lädt, aber nichts funktioniert richtig + +Wenn z. B. das Design fehlt oder Buttons nicht reagieren: + +- Öffne die `.env`-Datei mit: + + nano /opt/vaultwarden/.env + +- Prüfe, ob die Domain mit `https://` eingetragen ist: + + DOMAIN=https://pass.DEINE-DOMAIN.tld + +Fehlt das `https://`, tragen wir es nach und starten neu: + + docker compose restart vaultwarden + +👉 *Screenshot geeignet: Nano-Editor mit korrigierter DOMAIN-Zeile* + +### Ich kann mich nicht im Adminbereich anmelden + +- Rufe `https://pass.DEINE-DOMAIN.tld/admin` auf +- Gib das Passwort ein, das du beim Erzeugen des Hashs vergeben hast + +> [!NOTE] +> Der Admin-Login funktioniert **nicht mit dem Hash**, sondern mit dem dazugehörigen Passwort. + +Wenn du keinen Zugriff mehr hast: + +- Neuen Hash erzeugen: + + docker exec -it vaultwarden /vaultwarden hash --preset owasp + +- Hash im Adminbereich unter **Settings → General → Admin Token** einfügen +- Container neu starten + +👉 *Screenshot geeignet: Adminbereich mit Argon2 PHC Feld* + +> [!WARNING] +> Falls nichts mehr geht: +> Vorübergehend `ADMIN_TOKEN=deinPasswort` in `.env` setzen → dann zurück auf Hash wechseln. + + +### Keine Live-Synchronisation zwischen Geräten + +Wenn du Vaultwarden auf zwei Geräten gleichzeitig geöffnet hast und eine Änderung (z. B. ein neues Passwort) **nicht automatisch** auf dem anderen Gerät erscheint, liegt das fast immer an einer fehlenden WebSocket-Verbindung. + +Vaultwarden verwendet WebSockets, um Änderungen sofort an alle verbundenen Geräte zu übertragen – ohne Neuladen. +Damit das funktioniert, muss im Nginx Proxy Manager eine **zusätzliche Weiterleitung** eingerichtet sein. + +Öffne den Proxy Host in NPM, der auf `pass.DEINE-DOMAIN.tld` zeigt: + +1. Wechsle in den Reiter **Custom Locations** +2. Stelle sicher, dass dort eine Weiterleitung für **`/notifications/hub`** eingerichtet ist +3. Die Ziel-IP ist wie beim Haupt-Proxy `192.168.1.50`, aber der **Port ist `3012`** +4. Aktiviere auch hier den Haken **„Websockets Support“** + +> [!TIP] +> Diese Weiterleitung ist zwingend erforderlich – ohne sie funktioniert die automatische Aktualisierung nicht. +> Du musst dann manuell die Seite neu laden, um Änderungen zu sehen. + +👉 *Screenshot geeignet: Custom Location mit Pfad `/notifications/hub`, Port 3012 und aktivem WebSocket-Haken* + +--- + +## Zusammenfassung & Nächste Schritte + +Mit Vaultwarden hast du jetzt einen vollwertigen Passwort-Manager im eigenen Homelab eingerichtet – sicher, unabhängig und kompatibel mit allen offiziellen Bitwarden-Apps. + +### Was du jetzt erreicht hast: + +- Vaultwarden läuft als Docker-Anwendung in einem eigenen Debian-LXC +- Der Dienst ist über `https://pass.DEINE-DOMAIN.tld` erreichbar +- Das Admin-Interface ist mit einem sicheren Hash-Zugang geschützt +- Die WebSocket-Verbindung sorgt für Live-Synchronisierung +- Backups sind eingerichtet und schnell wiederherstellbar + +👉 *Screenshot geeignet: Loginmaske in Browser + aktiver Proxy Host in NPM* + +> [!TIP] +> Wenn du den Tresor auch unterwegs nutzen willst, installiere die Bitwarden-App auf deinem Smartphone +> und stelle unter „Server-URL“ deine eigene Adresse ein: +> `https://pass.DEINE-DOMAIN.tld` + +> [!NOTE] +> Du kannst Vaultwarden jetzt direkt im Alltag nutzen – zum Speichern von Passwörtern, Anlegen von Ordnern, Hinterlegen von TOTP-Codes und für sicheren Zugriff von überall. \ No newline at end of file