🇬🇧 Go to english version of this post / Przejdź do angielskiej wersji tego wpisu
Silne hasła to niesamowicie istotna sprawa! Jest to jeden z fundamentów bezpieczeństwa w Internecie. Najlepszym rozwiązaniem jest posiadanie haseł składających się z przynajmniej 16 znaków, małych i dużych liter, a także cyfr i znaków specjalnych. Do tego dość kluczowe jest, aby nie posiadać jednakowego hasła do każdego z serwisów, bo jak wycieknie on z jednego z nich to sprawdzenie w innych popularnych portalach to pierwsze działanie jakie wykonują oszuści/złodzieje/włamywacze. Patrząc na to wszystko nasuwa się pytanie – Jak spamiętać w głowie wszystkie te skomplikowane ciągi znaków?! Zapisanie ich w notatniku na komputerze nie jest zbyt bezpiecznym rozwiązaniem, a przepisywanie z fizycznego notesu chowanego w sejfie to droga przez mękę. W takiej sytuacji na białym rumaku wjeżdża menedżer haseł i to nie byle jaki, bo konkretnie Bitwarden, którego można hostować na własnym serwerze, co też uczynimy, bo przecież nie lubimy przekazywać swoich danych w posiadanie osobom trzecim, a w szczególności jeżeli chodzi tutaj o nasze hasła.
W tym wpisie podejdę do sprawy podobnie jak przy wpisie o Nextcloud, czyli pokażę dwa sposoby na uruchomienie swojej instancji Bitwardena (a konkretnie implementacji Vaultwarden):
Uruchomienie w YunoHost
Instalacja będzie przebiegać podobnie do tej opisanej we wpisie o WriteFreely, jednakże w przypadku uruchamiania Vaultwardena nie potrzebujemy oddzielnej domeny (tak samo jak we wpisie o Nextcloud). Powiem więcej, w przypadku uruchamiania jedynie dla siebie nawet nie zalecane jest tworzenie specjalnej domeny, bo po pierwsze to tylko dodatkowy koszt, a po drugie lepiej nie odkrywać wszystkich swoich kart, a tym samym narażać swoich danych, poprzez korzystanie z subdomeny np. bitwarden.tomaszdunia.pl, co jednoznacznie oznaczałoby, że pod tym adresem znajdują się wszystkie nasze hasła. Ja ogólnie jestem zwolennikiem trzymania tego typu usług w sieci lokalnej, do której dostęp ma się jedynie przez VPN np. WireGuard, ale o tym kiedy indziej w zupełnie innym wpisie.
Zaczynamy od zalogowania się do naszego panelu administratora YunoHost i od razu przechodzimy do Aplikacje. Następnie w prawym górnym rogu zielony przycisk + Instaluj, wyszukujemy aplikację Vaultwarden i wybieramy ją z listy. Zjeżdżamy niżej do sekcji Ustawienia instalacji i rozpoczynamy konfigurację:
- W pole tekstowe Etykieta dla Vaultwarden [1] wpisujemy to pod jaką nazwą chcemy widzieć tą aplikację na liście aplikacji w naszym YunoHost.
- Z rozwijanej listy poniżej [2] wybieramy na jakiej domenie ma zostać zainstalowany Vaultwarden. Jak widać ja wybrałem domenę główną, na której uruchomiony jest mój YunoHost. Możesz zrobić tak samo lub wybrać inną domenę z listy.
- W następnym polu tekstowym [3] definiujemy dokładną ścieżkę pod jaką ma zostać zainstalowany Vaultwarden. Podając tutaj wartość (jak domyślnie) /vaultwarden zostanie zainstalowany na przykładowa.domena.pl/vaultwarden, gdzie oczywiście przykładowa.domena.pl to wybrana przez Ciebie wyżej domena. Jeżeli zdecydowałeś/aś się na podpięcie domeny dedykowanej tylko do Vaultwardena to w tym miejscu można podać jedynie / co będzie oznaczało instalację w katalogu nadrzędnym domeny.
- Dalej mamy pole decyzji [4] Czy ta aplikacja powinna być udostępniana anonimowym użytkownikom?. Tutaj proponuję wybrać Tak, gdyż w przeciwnym wypadku klienty Vaultwarden (mowa tutaj o oficjalnej aplikacji Bitwardena) nie będą działały, bo pojawi się dodatkowy krok uwierzytelnienia, konieczność zalogowania do YunoHost, którego nie przewiduje.
- Kolejna lista rozwijana [5] służy do wskazania, który z użytkowników YunoHost ma być administratorem dla tej aplikacji.
- Powyższe ustawienia zatwierdzamy przyciskiem Instaluj [6] i tym samym rozpoczynamy proces instalacji, który niestety do najkrótszych nie należy, więc trzeba się uzbroić w cierpliwość.
Po zakończeniu procesu instalacji łączymy się przez SSH do serwera, na którym uruchomiony jest YunoHost. Następnie przelogowujemy się na użytkownika root:
sudo su
Otwieramy plik z ustawieniami aplikacji Vaultwarden:
nano /etc/yunohost/apps/vaultwarden/settings.yml
W tym pliku musimy odszukać następującą linijkę:
admin_token: [token]
Kopiujemy wartość [token], która będzie nam potrzebna do zalogowania się do panelu administratora Vaultwarden. Na tym etapie połączenie SSH z serwerem nie będzie już nam potrzebne. Panel administratora dostępny jest pod adresem, którego początek to adres, który podczas instalacji wybraliśmy dla aplikacji Vaultwarden, a koniec to dopisek /admin. Podajemy tam skopiowany token i co pozwoli wejść do panelu admina, w którym od razu przechodzimy do zakładki Users [1].
Na dole znajduje się sekcja Invite User. W polu tekstowym [2] podajemy swój adres e-mail i potwierdzamy przyciskiem Invite [3].
Powyższe działanie poskutkuje tym, że na liście pojawi się nowy użytkownik [4]
W międzyczasie na podany adres e-mail zostanie wysłane zaproszenie z linkiem aktywacyjnym. Naciskamy przycisk Join Organization Now [5].
Zostaniemy przeniesieni z powrotem do przeglądarki, gdzie zobaczymy komunikat mówiący o tym, że zostaliśmy zaproszeni do organizacji i możemy z niego teraz skorzystać. Naciskamy przycisk Utwórz konto [6].
Zostaniemy przeniesieni do standardowego formularza rejestracji, w którym podajemy adres e-mail [7], nazwę użytkownika [8], hasło (dwa razy) [9] i opcjonalnie podpowiedź do hasła [10]. Na koniec możemy jeszcze zdecydować [11] czy chcemy, aby nasze hasło było wyszukane w znanych zbiorach haseł, które wyciekły. Ja jednak tego celu używam strony HaveIBeenPwned.com, więc zawsze odznaczam to pole. Wypełniony formularz potwierdzamy przyciskiem Utwórz konto [12].
Uruchomienie jako kontener Dockera
Nie masz serwera z YunoHost? Nic nie szkodzi! To samo da się zrobić przy użyciu Dockera! Polecam najpierw zapoznać się z moim wpisem Docker – jeden serwer wiele usług. Jako obraz wykorzystamy fork o nazwie Vaultwarden dostępny na Docker Hub.
Rozpoczynamy od stworzenia folderu dla tego kontenera:
mkdir -p /home/$USER/docker/vaultwarden
Następnie tworzymy plik konfiguracyjny dla tego kontenera:
nano /home/$USER/docker/vaultwarden/docker-compose.yml
Proces konfiguracji Vaultwardena jako kontener jest stosunkowo prosty:
version: "3"
services:
vaultwarden:
container_name: vaultwarden
image: vaultwarden/server:latest
ports:
- "80:80"
environment:
PUID: '1000'
PGID: '1000'
TZ: 'Europe/Warsaw'
volumes:
- '/home/$USER/docker/vaultwarden/volumes/data:/data'
restart: unless-stopped
W powyższej konfiguracji należy skontrolować i ewentualnie dostosować do swojego zastosowania:
- port na jakim ma być uruchomiony ten kontener, ja dla przykładu wpisałem port 80,
- PUID i PGID, tak jak to było opisane we wpisie o kontenerze Nextcloud.
Na tym etapie pozostaje nam jeszcze utworzyć odpowiedni wolumen, który zadeklarowaliśmy jako miejsce do przechowywania danych kontenera:
mkdir -p /home/$USER/docker/vaultwarden/volumes/data
Sprawdźmy jeszcze czy port do obsługi tego kontenera został otwarty w naszym firewall’u:
sudo ufw allow 80
Na koniec pozostaje nam już tylko kompilacja i uruchomienie kontenera Vaultwarden:
docker-compose -f /home/$USER/docker/vaultwarden/docker-compose.yml up -d
Wchodzimy w przeglądarce na adres składający się z IP serwera oraz portu, na których uruchomiony został kontener (jeżeli jest to port 80 to nie ma potrzeby podawania go, bo jest to port domyślny) i sprawdzamy czy zostanie poprawnie załadowana strona Vaultwarden. Niestety w takiej formie będzie się wyświetlać, ale nie będzie prawidłowo działać, co można zaobserwować próbując utworzyć nowe konto użytkownika. Otrzymamy wtedy komunikat, że jest potrzebny certyfikat HTTPS, bez którego nie możemy korzystać z naszego skarbca (po ang. vault). Więc na ten moment zatrzymajmy kontener:
docker stop vaultwarden
A następnie usuńmy go:
docker rm vaultwarden
Musimy utworzyć tak zwany self signed certificate, co można przetłumaczyć jako certyfikat z własnym podpisem. To wystarczy w przypadku, kiedy mówimy o Vaultwardenie działającym w sieci lokalnej. W przypadku, gdy chcesz udostępniać go osobom trzecim (poza sieć lokalną) to możesz skorzystać z Let’s Encrypt jednocześnie podpinając pod to domenę. Ja, na potrzeby tego wpisu, wybrałem znacznie bezpieczniejsze rozwiązanie i stawiam skarbiec w sieci lokalnej, do której mam dostęp przez VPN – Wireguard, więc zewnętrzny certyfikat nie jest mi potrzebny.
Najpierw musimy stworzyć Root Certificate Authority, zwany w skrócie CA, czyli nasz prywatny urząd certyfikacyjny, który będzie podpisywał certyfikaty dla konkretnych domen.
Zaczynamy od utworzenia klucz CA:
openssl genpkey -algorithm RSA -aes128 -out private-ca.key -outform PEM -pkeyopt rsa_keygen_bits:2048
Trzeba podać passphrase, który ma od 4 do 1024 znaków. Zapamiętaj go! W tym przypadku zagrożenie jest znikome, więc proponuję zastosować regułę KISS – z ang. Keep It Simple Stupid, co można przełożyć na Zrób to prosto idioto. Dążę do tego, że passphrase nie musi być skomplikowane, bo jak ktoś dostanie dostęp do naszej sieci lokalnej i tym samym do menedżera haseł to możliwość poznania przez niego passphrase będzie naszym najmniejszym zmartwieniem. Efektem działania powyższego polecenia będzie utworzenie pliku private-ca.key.
Na podstawie utworzonego klucza generujemy certyfikat CA:
openssl req -x509 -new -nodes -sha256 -days 3650 -key private-ca.key -out self-signed-ca-cert.crt
Po wywołaniu tego procesu musimy wpisać wcześniej podane passphrase i wypełnić krótką ankietę, w której w każdym polu można podać po prostu kropkę („.”) i zatwierdzić ENTERem. Jedyne co warto wypełnić to pole Common name, w którym należy podać nazwę naszego certyfikatu, ja podałem vaultwarden. Jak widać w poleceniu podaliśmy -days 3650 to oznacza, że nasze CA będzie miało 10-letnią datę ważności.
Enter pass phrase for private-ca.key: [podaj passphrase]
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [AU]:.
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (e.g. server FQDN or YOUR name) []:vaultwarden
Email Address []:.
Rezultatem tego polecenia będzie utworzenie pliku self-signed-ca-cert.crt.
Teraz musimy utworzyć klucz dla certyfikatu Vaultwarden:
openssl genpkey -algorithm RSA -out vaultwarden.key -outform PEM -pkeyopt rsa_keygen_bits:2048
Zostanie utworzony plik vaultwarden.key. Następnie musimy stworzyć certificate request file:
openssl req -new -key vaultwarden.key -out vaultwarden.csr
Tutaj znowu krótka ankieta, w której wszędzie wstawiamy kropki, poza polem Common name, w którym musimy podać adres naszego serwera, który może być adresem w sieci lokalnej (adresem IP serwera).
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [AU]:.
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (e.g. server FQDN or YOUR name) []:[adres ip serwera]
Email Address []:.
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:.
An optional company name []:.
Zostanie utworzony plik vaultwarden.csr. Ostatnim plikiem jaki musimy utworzyć jest:
nano vaultwarden.ext
Do którego wklejamy:
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
IP.1 = [adres ip serwera]
Jako parametr IP.1 podajemy ten sam adres co wcześniej, czyli adres IP serwera. Plik w takiej formie zapisujemy i wychodzimy z edytora.
Tak utworzony certyfikat musimy teraz podpisać przez wcześniej utworzone CA:
openssl x509 -req -in vaultwarden.csr -CA self-signed-ca-cert.crt -CAkey private-ca.key -CAcreateserial -out vaultwarden.crt -days 365 -sha256 -extfile vaultwarden.ext
Efektem końcowym będzie utworzenie pliku vaultwarden.crt. Warto zauważyć, że ustawiliśmy ważność certyfikatu na 365 dni. Dlaczego nie podpisaliśmy go od razu na 10 lat tak jak to zrobiliśmy dla CA? Niestety niektóre podmioty uznają za prawidłowe jedynie certyfikaty, które są ważne do maksymalnie roku (plus/minus parę dni). W przypadku Apple jest to na przykład 398 dni. Z uwagi na to, co rok będziemy musieli wykonywać ten ostatni krok i przedłużać certyfikat Vaultwardena na kolejny okres.
Dalej przenieśmy utworzony i podpisany certyfikat Vaultwardena wraz z jego kluczem do folderu dla certyfikatów na naszym serwerze:
sudo mv vaultwarden.crt vaultwarden.key /etc/ssl/certs
Pozostałe pliki proponuję zachować w folderze /etc/ssl na przyszłość:
sudo mkdir /etc/ssl/CA
sudo mv vaultwarden.csr vaultwarden.ext private-ca.key self-signed-ca-cert.crt self-signed-ca-cert.srl /etc/ssl/CA
Gdy już rozwiązaliśmy problem z certyfikatami, wchodzimy do pliku konfiguracyjnego kontenera Vaultwarden:
nano /home/$USER/docker/vaultwarden/docker-compose.yml
i zmieniamy jego zawartość analogicznie do poniższego przykładu:
version: "3"
services:
vaultwarden:
container_name: vaultwarden
image: vaultwarden/server:latest
ports:
- "80:80"
environment:
PUID: '1000'
PGID: '1000'
TZ: 'Europe/Warsaw'
ROCKET_TLS: '{certs="/ssl/vaultwarden.crt",key="/ssl/vaultwarden.key"}'
volumes:
- '/home/$USER/docker/vaultwarden/volumes/data:/data'
- '/etc/ssl/certs:/ssl'
restart: unless-stopped
Jak widać dodana została jedna zmienna środowiskowa (environment) i wolumen, w którym zapisaliśmy wygenerowany certyfikat.
To niestety jeszcze nie koniec, bo tworzenie własnego certyfikatu wiąże się z tym, że konieczne będzie przerzucenie go na wszystkie urządzenia, które będą korzystać z menedżera haseł. Bez tego nie zostaną one prawidłowo uwierzytelnione. W tym celu potrzebujemy wyciągnąć z serwera plik self-signed-ca-cert.crt i wrzucić go do pamięci wszystkich urządzeń, na których zamierzamy korzystać z Vaultwardena.
Omówmy sobie jak go zaaplikować do najpopularniejszych przeglądarek i urządzeń:
- Firefox – Ustawienia -> Prywatność i bezpieczeństwo -> Certyfikaty -> Wyświetl certyfikaty… -> zakładka Organy certyfikacji -> Importuj… wybieramy z dysku certyfikat, w okienku zaznaczamy Zaufaj temu CA przy identyfikacji witryn internetowych., na koniec potwierdzamy przyciskiem OK. Dobrze jest zrestartować przeglądarkę.
- Chrome – Ustawienia -> Prywatność i bezpieczeństwo -> Bezpieczeństwo -> Zarządzaj certyfikatami -> odpali się okno Certyfikaty -> zakładka Zaufane główne urzędy certyfikacji -> Importuj… -> Dalej -> Przeglądaj… -> wybieramy z dysku certyfikat -> Dalej -> Zakończ, na koniec wyskoczy pewnie jeszcze Security Warning, na którym potwierdzamy Tak. Dobrze jest zrestartować przeglądarkę.
- iOS / iPadOS – tutaj wystarczy w dowolny sposób przerzucić certyfikat na urządzenie i uruchomić go. Wyskoczy okienko Wybierz urządzenie, na którym chcesz zainstalować ten profil, w którym wybieramy iPhone, po czym certyfikat powinien pojawić się w Ustawieniach i wystarczy go tylko włączyć w Ustawienia -> Ogólne -> VPN i urządzenia zarządzane -> sekcja Profil konfiguracji -> tu powinien już być do wybrania nasz certyfikat pod nazwą, którą mu nadaliśmy -> Zainstaluj -> podajemy kod do odblokowania urządzenia -> Instaluj -> wychodzimy OK. Konieczne jest jeszcze dodanie certyfikatu do zaufanych w Ustawienia -> Ogólne -> To urządzenie… -> na samym dole Ustawienia zaufanych certyfikatów -> sekcja Włącz pełne zaufanie do certyfikatów głównych -> aktywujemy nasz certyfikat, tak aby przełącznik znajdujący się przy nim był na zielono -> w okienku, które wyskoczy wciskamy Dalej i gotowe.
- Android – tak samo jak na iOS wystarczy w dowolny sposób pobrać certyfikat na telefon i otworzyć go, zostaniemy zapytani czy otworzyć Instalator certyfikatów, oczywiście potwierdzamy i zostaniemy przeniesieni do okienka, w którym podajemy nazwę certyfikatu oraz z listy rozwijanej wybieramy, że ma zostać użyty dla VPN i aplikacji.
Teraz, gdy już dla wszystkich urządzeń mamy zainstalowane certyfikaty, możemy przejść pod adres, pod którym uruchomiony jest Vaultwarden i zalogować się do skarbca.
Aplikacje i rozszerzenia do przeglądarek
Przydatną rzeczą w kontekście menedżera haseł jest posiadanie aplikacji mobilnych i/lub rozszerzeń do przeglądarek, które same będą nam przeszukiwać bazę haseł i wypełniać odpowiednie z nich na odpowiednich stronach. Bitwarden udostępnia aplikacje na każdy popularny system operacyjny i rozszerzenia do wszystkich przeglądarek. Działają one z Vaultwardenem. Jednak w naszym przypadku, aby korzystać z tych aplikacji/rozszerzeń musimy wskazać nasz serwer niestandardowy, czyli po instalacji na ekranie logowania wejść do ustawień (nacisnąć ikonę koła zębatego) i wpisać jako Adres URL serwera adres (poprzedzony https://), pod którym działa Vaultwarden.
Kopia zapasowa
Robienie kopii zapasowych to zawsze bardzo ważna sprawa. Jednakże posiadanie backupu skarbca menedżera haseł to sprawa życia lub śmierci. Nie ma tutaj znaczenia, czy uruchamiamy Vaultwardena w chmurze czy też na serwerze domowy, na nowym czy na starym sprzęcie. Zawsze należy zakładać, że coś może pójść nie tak i trzeba być na to przygotowanym. Ja osobiście nie wyobrażam sobie stracić dostępu do mojej bazy haseł, bo zabiłoby to moje cyfrowe życie. Z uwagi na to mam dużo kopii zapasowych rozlokowanych w wielu miejscach, na wielu rodzajach nośników i każdemu polecam taką praktykę.
Bitwarden – podstawowa konfiguracja
W moim przypadku, poza ogarnięciem sprawy kopii zapasowych, konfiguracja zaraz po uruchomieniu własnego skarbca składa się jeszcze z jedynie dwóch kroków.
Pierwszym z nich jest włączenie dwuskładnikowego uwierzytelnienia podczas logowania, bo zabezpieczenie swoich haseł to podstawa. Realizuje się to poprzez rozwinięcie menu użytkownika znajdującego się w prawym górnym rogu [1], wejście w Ustawienia konta [2], następnie po lewej zakładka Zabezpieczenia [3] i Logowanie dwustopniowe [4]. W tym miejscu można skonfigurować takie zabezpieczenia jak TOTP (aplikacje z kodami czasowymi), klucze sprzętowe Yubico (YubiKey) czy w ostateczności (bo jest to najgorsza forma) kody przesyłane na skrzynkę mailową.
Drugą czynnością jest migracja mojej bazy haseł. Narzędzie do importu znajduje się w zakładce Narzędzia [5] w zakładce Importuj dane [6].
Pingback: Vaultwarden – self-hosted password manager – Tomasz Dunia Blog
Taki_Michal_
@to3k lecę czytać 🙂
MorganMLG
@to3k Fajnie, że starasz się budować świadomość użytkowników w kwestii self-hostingu oraz alternatywnych rozwiązań, jednak miałbym kilka zastrzeżeń co do tekstu.Po pierwsze, piszesz o tym, że "przepisywanie z fizycznego notesu chowanego w sejfie to droga przez mękę" co jest jak najbardziej prawdą, ale rozwiązanie z hostowaniem menadżera haseł lokalnie i dostęp przez VPN niewiele się od niego różni. Niektóre strony wymagają, aby logowanie użytkownika nastąpił w jakimś określonym limicie czasu. Przykładowo w momencie, gdy chcemy się zalogować do jakiejś usługi, włączanie VPNa, czekanie aż klient Bitwardena "złapie" połączenie z lokalnym serwerem i kopiowanie hasła, może być raz, że naprawdę mało wygodne, dwa, że zbyt długie, żeby nie przekroczyć limitu czasu na logowanie.Po drugie, co w przypadku gdy chcemy zalogować się z jakiegoś nowego urządzenia? W tym przypadku, o ile nie mamy ze sobą urządzenia, z którego możemy przekopiować config połączenia VPN na nowe urządzenie, mamy związane ręce. Zwyczajnie się nie zalogujemy. Jeżeli mamy natomiast pod rękę urządzenie z dostępem do naszego VPNa, to opcje mamy dwie, albo kopiujemy config VPNa na nowe urządzenie, albo przepisujemy hasło z urządzenia na urządzenie ręczenie. Oba rozwiązania nie są rozwiązaniami szybkimi i wygodnymi. Opcję z wysyłaniem hasła przez jakiś komunikator na drugie urządzenie odrzucam od razu, ponieważ rozważamy bezpieczne rozwiązania.Po trzecie, nie jest konieczne zakładania nowej domeny na każdą usługę. Wystarczy jedna domena, do której możemy dodawać subdomeny poprzez CNAME. Nie spotkałem się jeszcze z dostawcą, który naliczałby jakieś dodatkowe koszty za subdomeny. Na pewno da się to zrobić na noho.st, ghandi, czy cloudflare. Po czwarte, niektóre urządzenia lub aplikacje mogę wymagać poprawnego certyfikatu i tego, żeby usługa, z która próbujemy się połączyć, była wystawiona na HTTPS, ale tutaj więcej może mieć do powiedzenia @cichy1173, ponieważ używa on urządzeń z jabłkiem. Jak coś to ogólnie bardzo lubię Twoje teksty 😉
Tomasz Dunia
Odniosę się po kolei 😉
1. Nie do końca jest to prawda, bo klienty Bitwarden mają swój cache na wszystkich urządzeniach, więc dostęp do haseł masz nawet bez połączenia przez VPN, a jedynie jak nowe Ci dojdą to musisz co jakiś czas zrobić synchro. Poza tym ja ze swoim VPNem domowym jestem połączony cały czas. Pierwsze to nie odsłanianie tak od razu swojego aktualnego położenia, drugie to bezpieczna transmisja przez bramę domową, która filtruje i szyfruje mi transfer.
2. No niestety za wzrost bezpieczeństwa czasem trzeba zapłacić wygodą i ja jestem na to gotowy 🙂
3. Subdomeny jasna sprawa.
4. Jeszcze się nie spotkałem, żebym z czymkolwiek miał problem na Vaultwardenie działającym jedynie w sieci lokalnej.
kpalik
dla chcących mieć instancję vaultwarden ale niekoniecznie potrafią postawić sobie własny serwer (albo potrafią ale nie są pewni swoich kompetencji w jego utwardzeniu i utrzymaniu – czyli dla mnie) istnieje co najmniej jedna ciekawa alternatywa – PikaPods.
Stworzycie na niej dockerowy kontenerek Vaultwarden (ale też kilkudziesięciu innych aplikacji). Za usługą stoją autorzy Borg Backup, kontenery są na bieżąco aktualizowane do nowszych wersji a wszystko kosztuje grosze.
Kiedyś po rejestracji dostawało się 5$ kredytu nie wiem jak teraz, ale to wystarczy na 3-4 miesiące jeśli postawicie sobie tylko Vaultwardena. Kontenerki są rozliczane godzinowo ale minimalna opłata to 1$ miesięcznie za kontener (nawet wyłączony).
Oczywiście to nie to samo co hostowanie u siebie – trzeba się wykazać zaufaniem do dostawcy. Z drugiej strony teoretycznie każdy sejf jest zaszyfrowany hasłem głównym i nie powinno być możliwe jego odczytanie nawet po skopiowaniu sobie plików z kontenera, więc to już zostawiam wam do rozważenia.