Skip to content

Bitwarden_RS auf einem Debian Buster 10 Server installieren!

Angeheftet Linux
85 5 7.4k 2
  • Bitwarden_RS auf einem Debian Buster 10 Server installieren!

    Um was geht es? Es gibt eine Firma, die einen Passwortsafe entwickelt und vertreibt - Bitwarden. Bitwarden ist ein zentraler Server, der eine verschlüsselte Datenbank der Logins speichert. Mit zahlreichen Clients kann man dann auf diese Datenbank zugreifen. Sollte der Server gehackt werden, sind diese Daten immer noch ausreichend sicher, da verschlüsselt!

    Die Software ist OpenSource und den Quellcode kann man auf Github betrachten usw.

    Bitwarden is an open source password manager. The source code for Bitwarden is hosted on GitHub and everyone is free to review, audit, and contribute to the Bitwarden codebase.

    We believe that being open source is one of the most important features of Bitwarden. Source code transparency is an absolute requirement for security solutions like Bitwarden.

    Jede Firma möchte Geld verdienen, so das sie auch einen Service anbieten, den Passwortsafe direkt auf ihren Servern zu erstellen und zu benutzen. Aus Sicherheitsgründen, kein Problem, da alle Daten verschlüsselt abgelegt werden. Die Preise sind voll in Ordnung und für einen einzelnen Account kann man das auch kostenlos nutzen. Aber, da mein Trend weg von solchen Dingen geht, muss es eine Lösung sein, die man selber betreibt. Ja, für den kostenbewussten User, nicht die beste Lösung, aber Kontrolle kostet halt etwas. Als kleine Anregung, was macht man wenn die NSA bei Bitwarden den Stecker zieht? Sehr unwahrscheinlich, aber ich kann mich noch gut an ein Tool erinnern, was es heute nicht mehr gibt.

    Wie kommt man auf so eine Idee? Tja, das passiert wenn man sich mit Profis über alles mögliche in der Computerwelt unterhält und man dann auf so was hingewiesen wird. Danke Nico! Und da ich immer neugierig bin, probiere ich sehr viel aus.

    Und nun wollen wir das mal umsetzen...

    Plan

    • Cloud Server (ich werde hier als Beispiel Hetzner Cloud Server benutzen, das geht natürlich mit allen anderen auch 😉 )
    • Vaultwarden, was das ist erkläre ich gleich noch

    1. Server aufsetzen und absichern

    1.1 Installation

    Wie geschrieben, nehmen wir einen Cloud Server von Hetzner zum Testen.

    Bevor wir anfangen, legen wir ein neues Projekt an. Innerhalb dieses Projektes benötigen wir einen SSH-Key. Ohne SSH-Key erfolgt der Rootzugang mittels Passwort, das Euch per Mail zugesendet wird. Das möchten wir aber nicht, also legen wir einen SSH-Key an.

    SSH.png

    Danach richten wir eine Firewall ein. Seit kurzem kann man das über Hetzner direkt machen, ist simpel und einfach zu erstellen. Ich bevorzuge aber weiterhin iptabels und fail2ban. Aber für Einsteiger nicht das Schlechteste. Hier ein Beispiel wie das Aussehen kann.

    d28fdc22-e570-46ed-a470-66d8f0f9bd7e-image.png

    Nun sind die Vorbereitungen abgeschlossen und wir erstellen den Server.

    Schritt 1 & 2

    Hier wählt man einen Standort und das Image, welches man installieren möchte. Ich wähle hier Nürnberg und Debian 10. Den Standort könnt ihr wählen, wie ihr möchtet. Das .deb was wir hier benutzen läuft auf Debian 10 und Ubuntu 20.04, also auch hier könnt ihr wählen was ihr mögt.

    Pic_007.png

    Schritt 3

    Wir wählen die Art des Servers aus. Für das was wir vorhaben, reicht ein CX11 mit 2GB RAM und 20GB SSD locker aus. Würde uns dann 2,96€/Monat kosten.

    50ff10c6-94c4-4c18-9410-be6f9db35398-image.png

    Schritt 4 & 5

    Wird für dieses Projekt nicht benötigt

    Schritt 6 bis 9

    9.png

    Wichtig! Ich hab das schon x-mal vergessen, die Firewall und den SSH-Key auswählen! Die Felder müssen rot leuchten 🙂 Danach kann man auf Kostenpflichtig Erstellen klicken und der Server ist kurze Zeit später einsatzbereit. Danach findet man den Server unter dem Menü Server.

    server.png

    IP kopieren und mittels SSH connecten

    ssh root@<IPv4>
    

    Die Abfrage

    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    

    mit yes beantworten und man ist drin 😉

    2. Vaultwarden

    Für dieses Projekt benutzen wir Vaultwarden. Vaultwarden ist eine Rust Implementation der Bitwarden Server API. Dafür gibt es aber kein Debian Paket. Aber da wir ja mit Profis arbeiten, habe ich eine Lösung für Euch 🙂 Nein, mit Profi meine ich nicht mich, gemeint ist der Nico aus Hamburg 😉

    Er hat ein schönes Debian Paket gebaut, was man einfach auf den Debian Buster 10 Server installieren kann. Das findet man hier. DANKE dafür!

    2.1 Installation Vaultwarden

    Seine Anleitung für die Installation.

    Vaultwarden repository for Debian (bullseye and buster)
    -------------------------------------------
    
    Public repository. Feel free to use!
    
    # Installation
    1. wget -O /etc/apt/trusted.gpg.d/bananian-keyring.gpg https://bitwarden-deb.tech-network.de/bananian-keyring.gpg
    2. echo "deb http://bitwarden-deb.tech-network.de buster main" > /etc/apt/sources.list.d/vaultwarden.list
    3. apt-get update
    4. apt-get install vaultwarden
    
    # Configuration
    - Vaultwarden config file is located at /etc/vaultwarden (config.env)
    - Sample Apache configuration can be found here: https://bitwarden-deb.tech-network.de/Apache-VirtualHost.example.conf
    - Sample Nginx configuration can be found here: https://bitwarden-deb.tech-network.de/Nginx-VirtualHost.example.conf
    
    # Systemd service
    - Enable: systemctl enable vaultwarden.service
    - Start: systemctl start vaultwarden.service
    - Status: systemctl status vaultwarden.service
    - ...
    
    Sources and Credits:
    https://github.com/dani-garcia/vaultwarden
    
    Eine ausführliche deutschsprachige Installationsanleitung gibt es hier:
    https://linux-nerds.org/topic/977/bitwarden_rs-auf-einem-debian-buster-10-server-installieren
    

    Ergänzung, wer den Dienst sucht, der vaultwarden startet, wird hier fündig -> /lib/systemd/system/vaultwarden.service

    Ich denke, das brauche ich hier nicht noch mal hinschreiben, einfach die Schritte abarbeiten und fertig. Dann kam mal wieder eine Herausforderung für mich, ich mag leider den Apache2 nicht besonders. Nutze sonst nur NGINX. Da Nico meinte, das ist nicht so einfach, das umzusetzen für Nginx, habe ich mir die Zeit erspart und den Apache2 genommen. Nachtrag, mittlerweile haben wir eine funktionierende NGINX Konfiguration, so das ich hier beides erkläre.

    2.2 Apache2

    Kurze Vorüberlegung, was brauchen wir? Wir brauchen den Apache2, der den Proxy für Vaultwarden macht und den Dienst ausliefert. Da wir keine unverschlüsselte Kommunikation wollen, benötigen wir ein Zertifikat. Dazu benutzen wir Letsencrypt. Ok, also brauchen wir

    • apache2
    • letsencrypt

    Ok, installieren wir

    apt install apache2
    apt install letsencrypt
    

    Wir bleiben jetzt erst mal beim Apache2. Wir benötigen noch ein paar Module. In Nico's Beispiel Config findet man das.

    #Required Apache modules:
    #headers, proxy, proxy_http, proxy_wstunnel, ssl, rewrite
    
    <VirtualHost *:80>
            ServerName bitwarden-rs.example.com
            ErrorLog ${APACHE_LOG_DIR}/bitwarden_rs-error.log
            CustomLog ${APACHE_LOG_DIR}/bitwarden_rs-access.log combined
    
            # Redirect to https    
            RewriteEngine On
            RewriteCond %{HTTPS} off
            RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
    </VirtualHost>
    
    <VirtualHost *:443>
    	ServerName bitwarden-rs.example.com
            ErrorLog ${APACHE_LOG_DIR}/bitwarden_rs-error.log
            CustomLog ${APACHE_LOG_DIR}/bitwarden_rs-access.log combined
    
            # Reverse Proxy
    	RewriteEngine On
    	RewriteCond %{HTTP:Upgrade} =websocket [NC]
    	RewriteRule /notifications/hub(.*) ws://127.0.0.1:3012/$1 [P,L]
    	ProxyPass / http://127.0.0.1:8000/
    
    	ProxyPreserveHost On
    	ProxyRequests Off
    	RequestHeader set X-Real-IP %{REMOTE_ADDR}s
    
            # TLS
    	SSLEngine on
            SSLCertificateFile /etc/ssl/certs/bitwarden_rs-fullchain.crt
            SSLCertificateKeyFile /etc/ssl/private/bitwarden_rs.key
    
            #HSTS
    	Header always set Strict-Transport-Security "max-age=63072000"
    </VirtualHost>
    

    Ok, das hier brauchen wir

    #Required Apache modules:
    #headers, proxy, proxy_http, proxy_wstunnel, ssl, rewrite

    a2enmod headers
    a2enmod proxy
    a2enmod proxy_http
    a2enmod proxy_wstunnel
    a2enmod ssl
    a2enmod rewrite
    

    Die Konfiguration kommt in das File

    nano /etc/apache2/sites-enabled/000-default.conf
    

    Danach den Apache2 neustarten.

    systemctl restart apache2
    

    Wenn Fehler vorliegen kommen die jetzt 🙂 Aber, da fehlt noch was. Die Zertifikate!

    2.3 NGINX

    Alternativ hier noch die funktionierende Konfiguration von NGINX. Die Installation und Benutzung von Letsencrypt habe ich hier erklärt.

    Installation

    apt install nginx
    

    Die Konfigurationsdatei findet man -> /etc/nginx/sites-enabled

    Der Name der Datei -> default

    server {
        listen 80;
        server_name example.org;
    
        #location /.well-known/acme-challenge/ {
        #    root /var/www/acme;
        #}
    
        location / {
            return 301 https://$host$request_uri;
        }
    }
    
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name example.org;
    
        client_max_body_size 128M;
    
        # SSL Certificate
        ssl_certificate /etc/letsencrypt/live/example.org/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.org/privkey.pem;
        ssl_dhparam /etc/ssl/dhparam-4096.pem;
    
        ssl_protocols TLSv1.2 TLSv1.3;
    
        ssl_prefer_server_ciphers on;
        ssl_ciphers "ECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
        ssl_ecdh_curve secp384r1;
        ssl_session_cache shared:SSL:10m;
        ssl_session_tickets off;
        ssl_stapling on;
        ssl_stapling_verify on;
        resolver 127.0.0.1 valid=300s;
        resolver_timeout 5s;
        add_header X-Content-Type-Options nosniff;
        add_header Strict-Transport-Security "max-age=63072000; preload";
        keepalive_timeout 300s;
    
        location / {
            proxy_pass http://127.0.0.1:8000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
     
        location /notifications/hub/negotiate {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://127.0.0.1:8000;
        }
    }
    

    Nach dem Starten

    service nginx restart
    

    und fertig. Funktioniert hier seit gestern fehlerfrei.

    Quelle: https://pieterhollander.nl/post/bitwarden/

    @hase567 Danke für den Tipp!

    Und jetzt zu den Zertifikaten

    2.4 Letsencrypt

    Installiert haben wir das schon weiter oben. Ich bin beim Apache2 nicht der Fachmann, aber ich habe es so hinbekommen.

    apt install python-certbot-apache
    certbot --apache
    

    Der Certbot fragt nun ein paar Sachen ab. Ganz wichtig ist, das jetzt die Domain, die ihr gerne nutzen wollt auf die ServerIP verweist. Nur wenn das korrekt eingestellt ist, bekommt man auch ein gültiges Zertifikat von Letsencrypt. Der Certbot schreibt die Konfiguration auskommentiert in die Config. Entsprechend anpassen und nicht vergessen den Apache2 neuzustarten. Wenn wir jetzt alles richtig gemacht haben, bekommen wir folgende Webseite angezeigt.

    09030445-f275-48ed-a2a6-172a3f63d8f9-image.png

    🤓

    Noch was Wichtigstes, zu den Zertifikaten. Oben im Beispiel sieht man folgende Zeilen.

    Include /etc/letsencrypt/options-ssl-apache.conf
    

    Damit steuert man die Konfiguration des Zertifikates. Letsencrypt geht da etwas vorsichtig zu Gange, das ist mir bei solchen Diensten aber nicht gut genug. Wir passen das mal etwas an.

    nano /etc/letsencrypt/options-ssl-apache.conf

    # This file contains important security parameters. If you modify this file
    # manually, Certbot will be unable to automatically provide future security
    # updates. Instead, Certbot will print and log an error message with a path to
    # the up-to-date file that you will need to refer to when manually updating
    # this file.
    
    SSLEngine on
    
    # Intermediate configuration, tweak to your needs
    SSLProtocol all -TLSv1.1 -TLSv1.2 -TLSv1 -SSLv2 -SSLv3
    SSLCipherSuite          HIGH:!aNULL:!MD5
    #SSLCipherSuite          ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA25$
    SSLHonorCipherOrder     on
    SSLCompression          off
    
    SSLSessionTickets       off#
    
    SSLUseStapling          On
    SSLStaplingCache        "shmcb:logs/ssl_stapling(32768)"
    
    
    SSLOptions +StrictRequire
    
    # Add vhost name to log entries:
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" vhost_combined
    LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common
    
    #CustomLog /var/log/apache2/access.log vhost_combined
    #LogLevel warn
    #ErrorLog /var/log/apache2/error.log
    
    # Always ensure Cookies have "Secure" set (JAH 2012/1)
    #Header edit Set-Cookie (?i)^(.*)(;\s*secure)??((\s*;)?(.*)) "$1; Secure$3$4"
    

    Damit haben wir dann auch auf der https://www.ssllabs.com Webseite eine gute Bewertung 🙂

    SSL.png

    2.5 Crontab für Letsencrypt

    Es fehlt noch was. Das Letsencrypt Zertifikat muss regelmäßig aktualisiert werden, das mache ich normalerweise über einen Crontab. Wir erstellen einen crontab

    crontab -e
    

    Dann füge wir folgende Zeile ans Ende ein

    0 4 1 * * /usr/bin/certbot renew --pre-hook "service apache2 stop" --post-hook "service apache2 start"
    

    alternativ für NGINX

    0 4 1 * * /usr/bin/certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"
    

    Was macht das? Jeden ersten im Monat, starten wir den Prozeß. Als erstes wird der Apache2 gestoppt, weil Letsencrypt den Port 80 benutzt. Dann wird das Zertifikat aktualisiert und danach wird der Apache2 Wieder gestartet.

    Hier ein Beispiel, das Zertikat war nicht zur Aktualisierung vorgesehen.

    root@debian:/etc/letsencrypt/live/DOMAIN# /usr/bin/certbot renew --pre-hook "service apache2 stop" --post-hook "service apache2 start"
    Saving debug log to /var/log/letsencrypt/letsencrypt.log
    
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Processing /etc/letsencrypt/renewal/DOMAIN.conf
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Cert not yet due for renewal
    
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    
    The following certs are not due for renewal yet:
      /etc/letsencrypt/live/DOMAIN/fullchain.pem expires on 2021-06-28 (skipped)
    No renewals were attempted.
    No hooks were run.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    

    Damit wäre dann Letsencrypt komplett.

    3. Anwendung

    Nach dem Login sieht das dann so aus.

    bitwarden_tresor.png

    Ich konnte auch ganz einfach meine KeePassXC Datenbank importieren. Dazu exportiert man diese als .csv File und dieses Exportfile kann man dann mit dem Format KeePassX (csv) einfach importieren. Aufpassen, angehangene Files sind nicht vorhanden. Wer im Krypto Bereich unterwegs ist - Aufpassen!!

    fa136806-87a7-470f-9c46-2a880c944f00-image.png

    Es gibt eine Menge Tools dafür. Die findet man hier. Ausprobiert habe ich die Firefox Integration und die App für mein Android Handy. Beides funktioniert gut, obwohl ich da noch etwas Zeit investieren muss.

    3.1 Admin-Bereich

    Es gibt für Vaultwarden auch einen Admin-Bereich, in dem man ein paar wichtige Parameter einstellen kann. Alternativ kann man das auch sehr gut über die Konfigurationsdatei machen. Aber ein paar Sachen sind wohl sehr komfortabel nur über den Admin-Bereich einstellbar z.B. die User-Verwaltung.

    Bevor dieser überhaupt zu erreichen ist, muss in der Konfigurationsdatei ein Token gesetzt sein!

    ## Token for the admin interface, preferably use a long random string
    ## One option is to use 'openssl rand -base64 48'
    ## If not set, the admin panel is disabled
    ADMIN_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    

    Nach einem Neustart des Dienstes ist dann der Admin-Bereich über

    https://DOMAIN/admin/

    erreichbar. Hier muss man dann den Token eingeben.

    a9573089-1349-48b8-8ca4-ec8197fc4c95-grafik.png

    Danach sieht man das UI

    b2cfcfc8-5b4e-4e0b-a3dd-0b52987fb740-grafik.png

    3.2 Firefox Addon

    Das gibt es hier

    893022df-42b4-450f-820f-36faa349a947-grafik.png

    Beim ersten Start muss man die Server-URL einstellen, dazu auf das Zahnrad klicken.

    Bildschirmfoto vom 2021-05-15 10-27-51.png

    Danach kann man sich mit seinen Daten einloggen und dne Passwort-Safe benutzen.

    Tipps

    • 2FA unbedingt einschalten. Mit Authentifizierungs App kein Hexenwerk.
    • In der Config von Vaultwarden die Anmeldung neuer Benutzer abschalten, wenn man das nicht möchte!
    • In der Config Passwort Hints ausschalten!
    • Unbedingt an eine Datensicherung denken! Die Datenbank findet man unter /var/lib/vaultwarden/ Ohne Datenbank hätte ich verdammt viel Arbeit... Hier ein Link, wie es geht -> https://github.com/dani-garcia/bitwarden_rs/wiki/Backing-up-your-vault
    • Macht Euch zur Sicherheit Eurer Server im Netz bitte ausreichend Gedanken! So als Anregung zum Lesen, hier die Doku von Thomas Krenn.

    Anmerkungen

    ☝ Ich bezahle meine Hetzner Cloud Server selber!

    Quellen

    Hersteller -> https://bitwarden.com/
    Github des Herstellers -> https://github.com/bitwarden
    Bitwarden Server API in Rust -> https://github.com/dani-garcia/vaultwarden
    Bitwarden .deb Paket -> https://bitwarden-deb.tech-network.de/
    Exzellenter Blogbeitrag -> https://pieterhollander.nl/post/bitwarden/

  • Hi,
    danke für die tolle Anleitung, hat alles soweit funktioniert.
    Habe es sogar in nginx einbauen können...

    Wie sieht es eigentlich mit Updates aus? Da es bereits eine neue version von Bitwardenrs gibt?

    vG
    hase

  • Hi,
    danke für die tolle Anleitung, hat alles soweit funktioniert.
    Habe es sogar in nginx einbauen können...

    Wie sieht es eigentlich mit Updates aus? Da es bereits eine neue version von Bitwardenrs gibt?

    vG
    hase

    @hase567 Willkommen!

    Ich habe ja in der Anleitung die Konfiguration für Apache2 drin, ich würde das gerne um die Nginx Konfiguration erweitern. Kannst Du die hier zur Verfügung stellen?

    Der Nico hat mir damals erzählt, das er zeitnah ein neues Debian Paket baut. Ich habe mal bei ihm angefragt..

  • Antwort vom Nico

    Aber du verwendest schon mein Repository? Dort bin ich aktuell eine Version hinter der neuesten. Warum? Die haben den Namen des Projektes geändert und ich weiß noch nicht wie ich das handlen soll. Und da es dort keine Sicherheitslücken gab, habe ich das vorerst nicht priorisiert.

    Kurzfassung: Updates kommen über das Repository. Sicherheitsupdates schnell, bei anderen kann es mal ein paar Tage bis Wochen dauern

  • Hi,
    danke für dein Feedback bzgl. der Updates...
    Also ich habe mich fast an Deiner apache Anleitung gehalten, bis auf die Apache conf-Anpassungen. Da ich nginx nutze, habe ich etwas gefunden.
    Auf der Website https://pieterhollander.nl/post/bitwarden/ findest du die Einträge für die Bitwarden nginx vault.conf. Diese habe ich fast 1:1 übernommen.
    Bisher läuft es auf einem Testserver bei mir ohne Probleme...

  • Hi Frank,
    konntest du damit etwas anfangen bzw. hast du es bereits getestet?

  • Hi Frank,
    konntest du damit etwas anfangen bzw. hast du es bereits getestet?

    @hase567 Danke, der Link war informativ und ich denke ich bekomme das auch damit hin, wenn da nicht die Zeit wäre. So was mache ich selten, mal eben nebenbei. Somit brauche ich da mal eine ruhige Stunde für. Ausprobieren möchte ich das auf alle Fälle, da alle meine anderen Server NGINX benutzen.

  • Hi Frank,
    konntest du damit etwas anfangen bzw. hast du es bereits getestet?

    @hase567 Ok, hast mich überredet 🙂 Kurzer Test.

    service apache2 stop
    

    Danach NGINX installiert

    apt install nginx
    

    Konfiguration unter

    /etc/nginx/sites-enabled/default
    

    eingetragen. Folgt noch, muss noch was anpassen.

    service nginx restart
    

    Und, läuft so weit ich das auf die Schnelle sehen kann, wie unter Apache2.

    Ich werde das in der Anleitung s.o. später hinzufügen. Dann können sich Interessierte aussuchen, was sie nutzen möchten.

    Und jetzt habe ich zusätzlich ein + 😊

    26011942-5d37-40fc-ae25-8daa4073f3d3-image.png

  • Hi,
    das ist doch Super. Hatte mich auch gewundert das es doch recht Simpel ist.
    Bei mir läuft es aktuell noch auf einem Testserver, ohne irgendwelche Fehler weder seitens nginx noch von Bitwarden.
    Werde wohl komplett auf ein Livesystem umstellen. 😊

  • Hi,
    das ist doch Super. Hatte mich auch gewundert das es doch recht Simpel ist.
    Bei mir läuft es aktuell noch auf einem Testserver, ohne irgendwelche Fehler weder seitens nginx noch von Bitwarden.
    Werde wohl komplett auf ein Livesystem umstellen. 😊

    @hase567 Darf ich hier eigentlich nicht so schreiben, aber ich teste sehr viel direkt auf meinen Servern. Für Fälle wo es mal richtig schief geht, habe ich bei Hetzner ja noch etliche Backups der letzten paar Tage. Und Datensicherung usw. ist sowieso vorhanden.

    Und mal eben NGINX neben dem Apache2 zu testen ist ja auch nicht wirklich Hexerei. Wobei ich den Apachen wesentlich anstrengender finde. Aber, das könnte eine sehr subjektive Meinung sein. Darum freut es mich, wenn wir oben im Thread beide Varianten drin haben. Ich baue das morgen ein.

  • Hallo,

    ich habe es nun auch geschafft das Repository auf die aktuelle Version von (nun) Vaultwarden zu aktualisieren. Das Paket und die Binary heißen aber noch "bitwarden_rs". Die Transition auf den neuen Namen habe ich (zumindest für dieses Release) verschoben.

    Zusätzlich habe ich die Installationsanleitung von @FrankM im Repository verlinkt. Danke für den schönen Beitrag.
    Ebenfalls Danke für die nginx Snippets. Ich bin ein Apache-Kind, aber werde bei Gelegenheit die ordnungsgemäße Funktion verifizieren und die nginx Konfiguration dann auch ergänzen.

    Beste Grüße
    Nico

  • Hallo,

    ich habe es nun auch geschafft das Repository auf die aktuelle Version von (nun) Vaultwarden zu aktualisieren. Das Paket und die Binary heißen aber noch "bitwarden_rs". Die Transition auf den neuen Namen habe ich (zumindest für dieses Release) verschoben.

    Zusätzlich habe ich die Installationsanleitung von @FrankM im Repository verlinkt. Danke für den schönen Beitrag.
    Ebenfalls Danke für die nginx Snippets. Ich bin ein Apache-Kind, aber werde bei Gelegenheit die ordnungsgemäße Funktion verifizieren und die nginx Konfiguration dann auch ergänzen.

    Beste Grüße
    Nico

    @nico Danke für die Infos!

    Ich hab mal getestet 🙂

    root@:~# service bitwarden_rs restart
    Warning: The unit file, source configuration file or drop-ins of bitwarden_rs.service changed on disk. Run 'systemctl daemon-reload' to reload units.
    root@:~# systemctl daemon-reload
    root@:~# service bitwarden_rs restart
    

    7bba03e1-ea0a-4ea2-aa98-eaf3d65e835d-grafik.png

    Passt

  • Hi,
    bitte achtet darauf, das die neue .env Datei weitere/neue Zeilen enthält bzgl. der Purge Cronjobs des "Send" Systems. Die Einträge dazu sind auch im Adminbereich einsehbar.

    Andi

  • Hi,
    bitte achtet darauf, das die neue .env Datei weitere/neue Zeilen enthält bzgl. der Purge Cronjobs des "Send" Systems. Die Einträge dazu sind auch im Adminbereich einsehbar.

    Andi

    @hase567 Danke für den Hinweis.

    Da ich gestern vom Nico gefragt wurde, ob die Websockets unter NGINX gehen, habe ich das gestern ausprobiert. Ging nicht. Heute dann mal auf die Suche gegangen und festgestellt, das die in der Konfigurationsdatei nicht aktiv waren.

    Also eingeschaltet und ausprobiert. Einen neuen Eintrag erstellt und geschaut, ob der ohne Neuladen, sofort angezeigt wird. Das passiert bei mir jetzt so.

    Ich hoffe das stimmt jetzt so alles...

    ## Enables websocket notifications
    WEBSOCKET_ENABLED=true
    
    ## Controls the WebSocket server address and port
    WEBSOCKET_ADDRESS=0.0.0.0
    WEBSOCKET_PORT=3012
    
  • @hase567 Danke für den Hinweis.

    Da ich gestern vom Nico gefragt wurde, ob die Websockets unter NGINX gehen, habe ich das gestern ausprobiert. Ging nicht. Heute dann mal auf die Suche gegangen und festgestellt, das die in der Konfigurationsdatei nicht aktiv waren.

    Also eingeschaltet und ausprobiert. Einen neuen Eintrag erstellt und geschaut, ob der ohne Neuladen, sofort angezeigt wird. Das passiert bei mir jetzt so.

    Ich hoffe das stimmt jetzt so alles...

    ## Enables websocket notifications
    WEBSOCKET_ENABLED=true
    
    ## Controls the WebSocket server address and port
    WEBSOCKET_ADDRESS=0.0.0.0
    WEBSOCKET_PORT=3012
    

    @frankm Setz die "WEBSOCKET_ADDRESS" auf 127.0.0.1. Der Port muss/sollte nicht ohne Reverse Proxy erreichbar sein.

  • @frankm Setz die "WEBSOCKET_ADDRESS" auf 127.0.0.1. Der Port muss/sollte nicht ohne Reverse Proxy erreichbar sein.

    @nico Done.

    Ging erst nicht, was man so alles vergisst, der Port muss ja auch mal zugänglich sein. 🤓

    Also, das was ich heute dann noch optimiert habe. Für Websocket die Config entsprechend anpassen. Den Port in der Firewall freigeben.

    Das Logging wollte ich noch umbiegen, es hat lange gedauert, bis ich den Grund gefunden hatte warum es nicht geht.

    /lib/systemd/system/bitwarden_rs.service
    

    Der Dienst muss leicht angepasst werden

    ReadWriteDirectories=/var/lib/bitwarden_rs /var/log/bitwarden
    

    Dann geht es auch mit dem Logging in diese Datei.

  • @FrankM, @Nico
    Toller Service hier von euch bzgl. Bitwarden_rs! Läuft jetzt bei mir auch alles so wie es sein soll!

    Happy Weekend
    Andy

  • @FrankM, @Nico
    Toller Service hier von euch bzgl. Bitwarden_rs! Läuft jetzt bei mir auch alles so wie es sein soll!

    Happy Weekend
    Andy

    @hase567 Ich habe zu danken. Durch deinen sehr nützlichen Link

    konnte ich jetzt die Fail2Ban Erkennung noch mit einbauen, das Logging läuft jetzt auch separat. Tolle Seite vom Pieter. Hab mich da mal bedankt.

  • FrankMF FrankM hat dieses Thema am angepinnt
  • Hi zusammen,
    ich wollte nun mal auf einen Debian Server die Installation auf einem Apache durchführen.
    Bei der Einrichtung mit:
    apt-key adv --keyserver keys.gnupg.net --recv-keys 24BFF712
    erscheint folgende Fehlermeldung:
    Executing: /tmp/apt-key-gpghome.adhmhBrwoR/gpg.1.sh --keyserver keys.gnupg.net --recv-keys 24BFF712
    gpg: Empfangen vom Schlüsselserver fehlgeschlagen: Kein Name

    Habt Ihr eine Idee?

  • Hi zusammen,
    ich wollte nun mal auf einen Debian Server die Installation auf einem Apache durchführen.
    Bei der Einrichtung mit:
    apt-key adv --keyserver keys.gnupg.net --recv-keys 24BFF712
    erscheint folgende Fehlermeldung:
    Executing: /tmp/apt-key-gpghome.adhmhBrwoR/gpg.1.sh --keyserver keys.gnupg.net --recv-keys 24BFF712
    gpg: Empfangen vom Schlüsselserver fehlgeschlagen: Kein Name

    Habt Ihr eine Idee?

    @hase567 Da ich ja gerade einige Server von Debian Buster nach Debian Bullseye migriere, ist mir das auch schon aufgefallen 😉
    @Nico ist über das Problem informiert und arbeitet an einer Lösung.

  • OpenCloud - Storage Backends testen

    OpenCloud opencloud linux docker
    2
    0 Stimmen
    2 Beiträge
    117 Aufrufe
    FrankMF
    So, mal weiter damit beschäftigen. Also, durch meine ganze Testerei war doch ein Haufen Müll angefallen. dockeruser@opencloud:~/opencloud/deployments/examples/opencloud_full$ docker volume ls DRIVER VOLUME NAME local 0fcd6f237898477b251f3dacb6cd083996092b783f991f899b06d89befc41b1e local 1d8df3f5d41613ad93ed753ce2102a14738cf00e8e7d127ec79881660be291ab local 3b612ce20b207c226640d6b84c32c788cd0fad9f9157578c2310f4b3db63dd29 local 5dfdde733fefb9fdb805acec8338a860762e88cd0753f4bb4098a19fbcd4b6c3 local 6bd5659759fb99b0d0613175d2392ca268dbdb3bd0353b85ccdf9a6004e798c0 local 6f8881420aa0e7713ed5308e635fcb9382939b6570afbd1d776866a07f6d61f2 local 29f7d20edd9eda935041cea7af5aab0af748175d7df8f345288463753d2afa9a local 66ca6287706aac5013b458a109e7c143c4fb177670734fc7a0f68495b1c62fd4 local 74d304835ef51f91226cc22dbbd494d2ddc9a4d91badf88814cae24126efd04a local 0203eb654c1f28a60899ded4660fb101ea222a5f8c86a225d39f3e5da877f1c0 local 271c474feb2ed915afb8efa85e422461fcfdf8acd4097355841eadf33847b7ef local 569a8c34804afd5861299973bed023c0146f40c0dbda0d980b8651bbcadc7fc9 local 655b1f446b5db9749787d4be4445887dcb3d19906d4244d059a0f292a6cd5f01 local 843bb8d0d7845adab06e146c44b153b842d5a1a1d8eb3972bdee1d3cbcb7e815 local 987ee19b8639ad5fffabba276ceb1ca09af6ebc66efb007e561570589c9c53a8 local 1004f5b7b161a4fe37a07d7960740e5cd09b90d5744f1922fb3e41c1265f800a local 2043c77b57728106cbcca8b7e2d3ae2f07ddf4ca44ee21fca232526c95e07381 local 3685c81df1be0061352dfc5b0e6db8d8d9f9b0915a271f1ca53d2796a7876805 local 9581abcfb4fb42b2fabfabbc8139cc4659ca83d92a8b60041957565409293ef4 local 796650f1fa887ff0b153822b268a10aa3579f4f2ca3ce6855ff292e49b3bb6b8 local 426251107e3131a250b27b96e795355332127f19ccf1ec8252860aff5d0caec8 local bd43ceef38448db348cc34e7dc5c4fee9c834d8b6c5957b1e6cdb83cec7b0974 local d94e7ce6c0fb1f4f7b811f624b4526ea889f2f8b99d2aa1b21e79d00dfeb38d0 local e87a27c307a8be80839fae1c006273d57570bb99f60c78c95e86a1e9ea1a786c local f2b3e30406db730e2a341850243c115b6eb231f30f41f5353c7b2427de39af75 local opencloud_full_certs local opencloud_full_opencloud-apps local opencloud_full_opencloud-config local opencloud_full_opencloud-data Oje, das sieht ziemlich vermüllt aus. Dann mal ganz mutig alles löschen. Vorher alles gestoppt. docker compose down Volume löschen, nur ein Beispiel docker volume rm opencloud_full_opencloud-data Alles gelöscht. Dann mal ein Neustart docker compose up -d Jetzt sieht das schon viel besser aus. dockeruser@opencloud:~/opencloud/deployments/examples/opencloud_full$ docker volume ls DRIVER VOLUME NAME local 3737a8eab68ffdc08d6e41493346feeb2e06ef350a210213ab450775318e49f8 local opencloud_full_opencloud-apps Da ich neugierig bin, schauen wir mal rein. root@opencloud:~ ls -lha /var/lib/docker/volumes/3737a8eab68ffdc08d6e41493346feeb2e06ef350a210213ab450775318e49f8/_data/web/assets/apps/ total 8.0K drwxr-x--x 2 dockeruser dockeruser 4.0K May 19 18:25 . drwxr-x--x 3 dockeruser dockeruser 4.0K May 31 10:21 .. Vermutlich ein Speicher, wo die Web Apps was ablegen können. Der andere zeigt es dann klarer. root@opencloud-4gb-fsn1-2:~# ls -lha /var/lib/docker/volumes/opencloud_full_opencloud-apps/_data total 28K drwxr-x--x 7 dockeruser dockeruser 4.0K May 31 10:22 . drwx-----x 3 root root 4.0K May 31 10:21 .. drwxr-xr-x 2 root root 4.0K May 31 10:22 draw-io drwxr-xr-x 2 root root 4.0K May 31 10:21 external-sites drwxr-xr-x 3 root root 4.0K May 31 10:22 json-viewer drwxr-xr-x 2 root root 4.0K May 31 10:22 progress-bars drwxr-xr-x 3 root root 4.0K May 31 10:22 unzip Ok, das sollte mir erst mal reichen. Meine Installation lagert die certs ja aus, das habe ich im docker compose geändert. dockeruser@opencloud:~/opencloud/deployments/examples/opencloud_full$ ls -lha certs/ total 44K drwxr-xr-x 2 dockeruser dockeruser 4.0K May 30 05:49 . drwxr-xr-x 6 dockeruser dockeruser 4.0K May 31 10:38 .. -rw------- 1 dockeruser dockeruser 33K May 29 11:00 acme.json Im docker-compose.yml volumes: - ./certs:/certs # bind-mount acme.json Der Grund dafür ist, das ich das docker-compose nicht als root laufen haben möchte. Die Hauptdaten sind nach lokal ausgelagert. OC_CONFIG_DIR=/home/dockeruser/oc_data/config OC_DATA_DIR=/home/dockeruser/oc_data/data Somit sollte jetzt alles so passen und ich muss mal langsam mit der Spielerei aufhören
  • Rest-Server v0.13.0 released

    Restic rest-server restic linux
    2
    0 Stimmen
    2 Beiträge
    404 Aufrufe
    FrankMF
    Download Rest-Server und installieren Im Github Repository den aktuellen Release suchen. Hier am Beispiel der aktuellen Version 0.13.0 (27.07.2024) Datei herunterladen wget https://github.com/restic/rest-server/releases/download/v0.13.0/rest-server_0.13.0_linux_amd64.tar.gz Die Datei entpacken tar -xf rest-server_0.13.0_linux_amd64.tar.gz Ins Verzeichnis wechseln cd rest-server_0.13.0_linux_amd64 Wenn der Rest-Server läuft, dann muss man diesen erst mal stoppen. systemctl stop rest-server Danach kopiert man das File nach bin. Wer mag sichert vorher das alte File. cp rest-server /usr/local/bin Danach kann man den Rest-Server wieder starten. systemctl start rest-server Versionskontrolle root@rest-server:~# rest-server -v rest-server version rest-server 0.13.0 compiled with go1.22.5 on linux/amd64 Die Hilfe vom Rest-Server root@rest-server:~# rest-server -h Run a REST server for use with restic Usage: rest-server [flags] Flags: --append-only enable append only mode --cpu-profile string write CPU profile to file --debug output debug messages -h, --help help for rest-server --htpasswd-file string location of .htpasswd file (default: "<data directory>/.htpasswd)" --listen string listen address (default ":8000") --log filename write HTTP requests in the combined log format to the specified filename (use "-" for logging to stdout) --max-size int the maximum size of the repository in bytes --no-auth disable .htpasswd authentication --no-verify-upload do not verify the integrity of uploaded data. DO NOT enable unless the rest-server runs on a very low-power device --path string data directory (default "/tmp/restic") --private-repos users can only access their private repo --prometheus enable Prometheus metrics --prometheus-no-auth disable auth for Prometheus /metrics endpoint --tls turn on TLS support --tls-cert string TLS certificate path --tls-key string TLS key path -v, --version version for rest-server Systemd Wer noch ein passendes systemd File benötigt. [Unit] Description=Rest Server After=syslog.target After=network.target [Service] Type=simple User=rest-server Group=rest-server ExecStart=/usr/local/bin/rest-server --private-repos --tls --tls-cert /mnt/rest-server/<DOMAIN>/fullchain.pem --tls-key /mnt/rest-server/<DOMAIN>/key.pem --path /mnt/rest-server Restart=always RestartSec=5 # Optional security enhancements NoNewPrivileges=yes PrivateTmp=yes ProtectSystem=strict ProtectHome=yes ReadWritePaths=/mnt/rest-server [Install] WantedBy=multi-user.target
  • Fragen, Probleme, geht nicht?

    Angeheftet Support vaultwarden support linux
    1
    0 Stimmen
    1 Beiträge
    163 Aufrufe
    Niemand hat geantwortet
  • HSTS - Sicherheitsmechanismus für HTTPS-Verbindungen

    Linux hsts linux https
    1
    0 Stimmen
    1 Beiträge
    112 Aufrufe
    Niemand hat geantwortet
  • Quartz64 - SPDIF Modul

    Verschoben Quartz64 - A quartz64 linux
    2
    3
    0 Stimmen
    2 Beiträge
    350 Aufrufe
    FrankMF
    Für das bequeme Umschalten der Soundkarten kann man das Tool alsamixer benutzen. pacman -S alsa-utils Danach alsamixer [image: 1633791802992-e912744f-8f69-4b28-a50b-7ffc8a3ab399-grafik.png]
  • VSCodium - Nach Umzug die Entwicklungsumgebung wieder aktivieren

    Linux linux vscodium
    1
    2
    0 Stimmen
    1 Beiträge
    202 Aufrufe
    Niemand hat geantwortet
  • Vorstellung Ubiquiti ER-X

    Verschoben OpenWRT & Ubiquiti ER-X openwrt linux er-x
    1
    1
    0 Stimmen
    1 Beiträge
    405 Aufrufe
    Niemand hat geantwortet
  • ReactPHP auf einem ROCKPro64 testen

    Linux reactphp linux composer
    1
    1
    0 Stimmen
    1 Beiträge
    214 Aufrufe
    Niemand hat geantwortet