Yopass ist eine Open-Source-Plattform zur sicheren und schnellen Übermittlung vertraulicher Daten. Die Nachrichten werden direkt im Browser verschlüsselt, sodass Yopass selbst keinen Zugriff auf die Entschlüsselungsschlüssel hat. Nach der Verschlüsselung wird eine einmalige URL generiert, die automatisch nach einer festgelegten Zeit verfällt. Zudem bleibt der Absender anonym, da keine Rückverfolgbarkeit zur verschlüsselten Nachricht besteht. Durch diese einfache, aber effektive Struktur bietet Yopass eine sichere Alternative zur Weitergabe sensibler Informationen.
Mit Yopass lässt sich das Risiko reduzieren, dass vertrauliche Daten in alltäglichen Kommunikationskanälen verweilen und potenziell kompromittiert werden. Durch die lokale Verschlüsselung im Browser, die einmalige URL und die Anonymität des Dienstes bietet Yopass eine minimalistische, aber effektive Lösung, die den Anforderungen an schnelle und sichere Kommunikation gerecht wird.
Für all jene, die Passwörter, Zugangsdaten und andere sensible Informationen sicher teilen möchten, ist Yopass eine durchdachte und benutzerfreundliche Option.
Datum | Änderungen |
---|---|
05.11.2024 | Erstellung dieser Anleitung |
16.11.2024 | Deutsches Sprachpaket hinzugefügt. Danke @steje |
1. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik V3 Installation, Konfiguration und CrowdSec-Security
2. Verzeichnis erstellen
Dazu gebt ihr folgenden Befehl ein:
mkdir -p /opt/containers/yopass
3. Docker Compose Datei erstellen
Nun erstellen wir unsere Docker Compose Datei.
nano /opt/containers/yopass/compose.yml
Fügt folgendes ein:
--- services: memcached: image: memcached restart: always expose: - "11211" networks: - default yopass: image: jhaals/yopass restart: always command: "--memcached=memcached:11211 --port 80" environment: - VIRTUAL_HOST=yopass.euredomain.de - MAX_LENGTH=8000000 labels: - "traefik.enable=true" - "traefik.http.routers.yopass.entrypoints=websecure" - "traefik.http.routers.yopass.rule=Host(`yopass.euredomain.de`)" - "traefik.http.routers.yopass.middlewares=default@file" - "traefik.http.routers.yopass.tls=true" - "traefik.http.routers.yopass.tls.certresolver=http_resolver" - "traefik.http.routers.yopass.service=yopass" - "traefik.http.services.yopass.loadbalancer.server.port=80" - "traefik.docker.network=proxy" networks: - default - proxy networks: proxy: external: true
Notwendige Anpassungen:
- Ihr müsst noch den Hostnamen anpassen: (yopass.euredomain.de)
- Ihr müsst den Virtual_Host anpassen: VIRTUAL_HOST=yopass.euredomain.de
4. Yopass starten
Jetzt nur noch den Container starten. Gebt dazu folgendes ein:
docker compose -f /opt/containers/yopass/compose.yml up -d
Nun geht ihr auf “yopass.euredomain.de”. Dort solltet ihr jetzt folgendes sehen.
Yopass unterstützt den Upload kleiner Dateien, wie SSH-Schlüssel und Zertifikate, die sicher geteilt werden müssen. Der maximale Upload ist aktuell auf 1 MB beschränkt, eine Grenze, die sich durch die Variable max-length anpassen lässt. Diese Begrenzung stellt sicher, dass die Plattform für kleinere, sensible Dateien optimiert bleibt und eine schnelle, sichere Übertragung gewährleistet.
5. Yopass auf Deutsch betreiben (optional)
Um Yopass mit deutscher Sprache zu nutzen, gehen wir wie folgt vor:
Ordnerstruktur anlegen:
Legt die benötigten Ordner an und erstellt eine de.json
-Datei mit folgendem Inhalt:
mkdir -p /opt/containers/yopass/website/public/locales
nano /opt/containers/yopass/website/public/locales/de.json
{ "create": { "title": "Nachricht verschlüsseln", "inputSecretLabel": "Geheime Nachricht", "inputSecretPlaceholder": "Nachricht, die im Browser verschlüsselt werden soll.", "buttonEncrypt": "Nachricht verschlüsseln", "buttonEncryptLoading": "Verschlüssele Nachricht...", "inputOneTimeLabel": "Einmaliger download", "inputPasswordLabel": "Benutzerdefinierter Schlüssel", "inputGenerateLabel": "Schlüssel erzeugen" }, "upload": { "title": "Datei ablegen zum Hochladen...", "caption": "Der Dateiupload ist für kleine Dateien gedacht, wie z.B. SSH-Schlüssel oder Zertifikatsdateien", "errorFileTooLarge": "Die Datei ist zu groß" }, "display": { "titleFetching": "Datenbank wird gelesen, bitte warten...", "titleDecrypting": "Geheimnis wird entschlüsselt, bitte warten...", "titleDecryptionKey": "Dechiffrierschlüssel eingeben", "captionDecryptionKey": "Bitte Seite nicht neu laden. Das Geheimnis könnte auf einen einmaligen Abruf beschränkt sein.", "inputDecryptionKeyPlaceholder": "Dechiffrierschlüssel", "inputDecryptionKeyLabel": "Ein Dechiffrierschlüssel ist erforderlich. Bitte unten eingeben.", "errorInvalidPassword": "Ungültiger Dechiffrierschlüssel, bitte erneut versuchen", "buttonDecrypt": "Geheimnis entschlüsseln" }, "error": { "title": "Geheimnis ist nicht vorhanden", "subtitle": "Das könnte eine der folgenden Ursachen haben.", "titleOpened": "Zuvor geladen", "subtitleOpenedBefore": "Ein Geheimnis kann auf einen einmaligen Aufruf beschränkt werden. Es könnte sein, das der Absender den Link bereits aufgerufen hat.", "subtitleOpenedCompromised": "Das Geheimnis wurde von einem Dritten gelesen und ist somit kompromitiert. Kontaktiere den Absender und fordere ein neues Geheimnis an.", "titleBrokenLink": "Kaputter Link", "subtitleBrokenLink": "Der Link muss vollständig und korrekt sein, damit das Geheimnis entschlüsselt werden kann. Möglicherweise fehlen ein paar Zeichen.", "titleExpired": "Abgelaufen", "subtitleExpired": "Kein Geheimnis lebt ewig. Alle gespeicherten Geheimnisse werden automatisch gelöscht. Die Gültigkeitsdauer kann zwischen einer Stunde und einer Woche liegen." }, "result": { "title": "Geheimnis in Datenbank gespeichert", "subtitleDownloadOnce": "Bitte denke dran, das auf ein Geheimnis möglicherweise nur einmal zugegriffen werden kann. Öffne den Link also nicht selbst.", "subtitleChannel": "Der Dechiffrierschlüssel kann sicherheitshalber auf einem anderen Kanal übermittelt werden.", "rowLabelOneClick": "Link mit Schlüssel", "rowLabelShortLink": "Einfacher Link", "rowLabelDecryptionKey": "Dechiffrierschlüssel" }, "secret": { "titleFile": "Datei heruntergeladen", "titleMessage": "Entschlüsselte Nachricht", "subtitleMessage": "Dieses Geheimnis ist möglicherweise nur einmal lesbar. Bitte jetzt sichern!", "buttonCopy": "Kopieren" }, "delete": { "buttonDelete": "Löschen", "messageDeleted": "Das Geheimnnis wurde gelöscht!", "dialogTitle": "Geheimnis löschen?", "dialogMessage": "Soll das Geheimnis wirklich gelöscht werden?", "dialogProgress": "Lösche...", "dialogConfirm": "Löschen", "dialogCancel": "Abbrechen" }, "attribution": { "createdBy": "Erstellt von", "translatedBy": "Übersetzt von", "translatorName": "Anturix", "translatorLink": "https://github.com/Anturix" }, "expiration": { "legend": "Speicherdauer, nach der die verschlüsselte Nachricht automatisch gelöscht werden soll.", "optionOneHourLabel": "Eine Stunde", "optionOneDayLabel": "Einen Tag", "optionOneWeekLabel": "Eine Woche" }, "features": { "title": "Geheimnisse sicher und einfach teilen", "subtitle": "Yopass wurde mit dem Ziel erstellt, die Anzahl Klartextpasswörter in E-Mails oder Chats zu reduzieren, indem diese verschlüsselt und mittels eines kurzlebigen, nur einmal aufrufbaren Links, übermittelt werden können.", "featureEndToEndTitle": "Ende-zu-Ende Verschlüsselung", "featureEndToEndText": "Ver- und Entschlüsselung werden lokal im Browser ausgeführt. Der Schlüssel wird niemals an den yopass-Server übermittelt.", "featureSelfDestructionTitle": "Selbstzerstörung", "featureSelfDestructionText": "Alle verschlüsselten Nachrichten haben eine begrenzte Lebensdauer und werden spätestens nach Ablauf der Speicherdauer automatisch gelöscht.", "featureOneTimeTitle": "Einmaliger Download", "featureOneTimeText": "Die verschlüsselten Nachrichten können nur einmalig aufgerufen werden. Dadurch wird das Risiko reduziert, das Dritte unbemerkt Kenntnis davon erlangen können.", "featureSimpleSharingTitle": "Einfach teilen", "featureSimpleSharingText": "Yopass erstellt einen individuellen Einmallink für die verschlüsselte Datei oder Nachricht. Der Dechiffrierschlüssel kann separat übermittelt werden.", "featureNoAccountsTitle": "Keine Anmeldung nötig", "featureNoAccountsText": "Teilen sollte schnell und einfach sein. Außer dem verschlüsselten Geheimnis sollten keine weiteren Informationen in der Datenbank gespeichert werden.", "featureOpenSourceTitle": "Open Source Software", "featureOpenSourceText": "Die Yopass Verschlüsselung basiert auf Open Source Software, kann frei eingesehen, überprüft oder neue Funktionen vorgeschlagen werden." }, "header": { "buttonHome": "Start", "buttonUpload": "Upload" } }
Dockerfile erstellen:
Erzeugt ein Dockerfile mit dem folgenden Inhalt, um die deutsche Sprachunterstützung hinzuzufügen:
nano /opt/containers/yopass/Dockerfile
FROM docker.io/jhaals/yopass:11.17.0 COPY website/public/locales/de.json /public/locales/
Compose-Datei anpassen:
Passt die compose.yaml
-Datei entsprechend an, um den Container mit der neuen Konfiguration zu starten.
nano /opt/containers/yopass/compose.yaml
--- services: memcached: image: memcached restart: always expose: - "11211" networks: - default yopass: image: anturix/yopassde #deutschsprachiges image restart: always command: "--memcached=memcached:11211 --port 80" environment: - VIRTUAL_HOST=yopass.euredomain.de - MAX_LENGTH=8000000 labels: - "traefik.enable=true" - "traefik.http.routers.yopass.entrypoints=websecure" - "traefik.http.routers.yopass.rule=Host(`yopass.euredomain.de`)" - "traefik.http.routers.yopass.middlewares=default@file" - "traefik.http.routers.yopass.tls=true" - "traefik.http.routers.yopass.tls.certresolver=http_resolver" - "traefik.http.routers.yopass.service=yopass" - "traefik.http.services.yopass.loadbalancer.server.port=80" - "traefik.docker.network=proxy" networks: - default - proxy networks: proxy: external: true
Baut den Container mit:
docker build -t anturix/yopassde -f Dockerfile .
Startet den Container wie gewohnt mit:
docker compose -f /opt/containers/yopass/compose.yml up -d
Quelle:
https://github.com/jhaals/yopass
Hallo 2TAP2B,
vielen Dank für die Anleitung. Du musst die — aus der 1. Zeile entfernen.
Zudem kann man das ganze auch leicht auf die deutsche Sprache umstellen.
https://github.com/Anturix/yopass-german
Viele Grüße
Jens