使用Docker搭建自己的在線密碼管理器軟件-Bitwarden

前言

因爲現在網絡安全問題愈發嚴重,黑客經常通過互聯網已泄露的用戶和密碼信息進行撞庫攻擊,而且很多用戶在不同網站使用的是相同的帳號密碼,所以爲不同的網站設置不同的密碼就非常重要。

但密碼不同尤其是使用隨機生成的密碼,這個時候往往需要一個密碼管理軟件幫我們記住並自動填寫這些密碼。比如1Passwordlastpass這些在線密碼管理器軟件。但是今天給大家介紹的是Bitwarden

Bitwarden是一款自由且開源的密碼管理服務,用戶可在加密的保管庫中存儲敏感信息。Bitwarden平臺提供有多種客戶端應用程序,包括網頁用戶界面、桌面應用,瀏覽器擴展、移動應用以及命令行界面。Bitwarden提供雲託管服務,並支持自行部署解決方案

推薦原因總結:

  • 開源且免費
  • 多平臺,電腦、手機、瀏覽器插件均可使用
  • 可以搭建在自己的服務器上

一、Docker和docker-compose安裝

這裏不做詳細介紹,可以參考我的這篇文章:Ubuntu使用Docker搭建編譯環境完整教程

二、使用bitwardenrs鏡像

(一)鏡像選擇

這裏沒有使用Bitwarden官方鏡像,因 Bitwarden 服務器使用.Net開發,Docker 鏡像體積過大,此外它使用MSSQL數據庫,這個數據庫對服務器性能要求比較高。

所以有人利用Rust重寫了一遍,根據官方項目同步更新,這個項目的Docker鏡像叫做bitwardenrs,這個鏡像體積比較小,對服務器性能要求比較低,所以本次部署採用該鏡像。

(二)docker-compose.yml

因爲採用docker-compose安裝,所以我們簡單粗暴,下面是docker-compose.yml文件:

version: '3'

services:
 bitwarden:
  image: bitwardenrs/server
  container_name: bitwarden
  restart: always
  volumes:
      - ./bw-data:/data
  ports:
    - 1080:80
  environment:
    SIGNUPS_ALLOWED: 'true'

使用docker-compose up -d即可啓動容器。

三、啓用HTTPS

一般來說,我們都不希望和服務器通信的密碼被截獲,所以牆裂建議啓用https來加密我們和服務器之間的通信。

這裏採用的是Nginx反向代理,具體證書申請不做詳述,下面是一個Nginx配置參考。

修改點:

  • server_name301return的網址換成你的域名
  • proxy_pass換成docker搭建的Bitwarden的ip和端口
  • ssl_certificatessl_certificate_key換成你域名的證書
server {
    listen 80;
    listen [::]:80;

    server_name yourdomain.com;

    # redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
    return 301 https://yourdomain.com$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name yourdomain.com;

    location / {
          proxy_pass http://127.0.0.1:1080;
          proxy_http_version    1.1;
          proxy_cache_bypass    $http_upgrade;

          proxy_set_header Upgrade            $http_upgrade;
          proxy_set_header Connection         "upgrade";
          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_set_header X-Forwarded-Host   $host;
          proxy_set_header X-Forwarded-Port   $server_port;
    }

    # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
    ssl_certificate /ssl/nginx/yourdomain.com.pem;
    ssl_certificate_key /ssl/nginx/yourdomain.com.key;
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
    ssl_session_tickets off;

    # curl https://ssl-config.mozilla.org/ffdhe2048.txt > /path/to/dhparam.pem
    ssl_dhparam /yasin/ssl/dhparam.pem;

    # intermediate configuration
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;

    # HSTS (ngx_http_headers_module is required) (63072000 seconds)
    add_header Strict-Transport-Security "max-age=63072000" always;

    # OCSP stapling
    ssl_stapling on;
    ssl_stapling_verify on;

    # verify chain of trust of OCSP response using Root CA and Intermediate certs
    # ssl_trusted_certificate /etc/ssl/ethanblog.com/chain1.pem;

    # replace with the IP address of your resolver
    resolver 223.5.5.5 8.8.8.8;
}

四、使用說明

(一)首次使用

一般設置好後,輸入你配置的服務URL,首次訪問時將語言設置爲中文,然後我們會看到下面的界面:

login

然後點擊註冊按鈕填寫我們的郵箱和主密碼,請務必牢記你的主密碼,因爲一旦遺失,你保存的密碼就再也找不回來了。

register

你設置的密碼信息會通過主密碼進行加密,比起擔心服務器數據泄露,更重要的是不能泄露主密碼。

爲了防止數據丟失,定期備份你的數據文件夾比如bw-data即可。

註冊完畢後我們就可以在各個客戶端通過配置Bitwarden的服務端URL,然後輸入用戶名和密碼即可訪問我們的密碼數據。

(二)關閉註冊

在我們註冊好自己郵箱和密碼後,如果你並不希望爲其他人提供服務,請記得關閉註冊功能

先使用docker-compose down停止容器,然後將docker-compose.yml文件最後的SIGNUPS_ALLOWED改爲false,然後使用docker-compose up -d命令重新啓動即可。

關閉註冊功能:

version: '3'

services:
 bitwarden:
  image: bitwardenrs/server
  container_name: bitwarden
  restart: always
  volumes:
      - ./bw-data:/data
  ports:
    - 1080:80
  environment:
    SIGNUPS_ALLOWED: 'false'

(三)PC軟件使用

第一次使用,推薦使用PC軟件,可以將我們的密碼較快的設置完畢。

下載打開後,記住設置成我們自己搭建的Bitwarden服務器URL,否則默認使用官方的密碼託管服務,手機軟件和瀏覽器插件同理。

設置如下:

pc_software

具體軟件的使用這裏就不詳細說明了,留給大家自己去探索。

(四)瀏覽器插件

我們更多的使用場景應該就是網頁自動填充了,所以添加一個瀏覽器擴展,這樣匹配到你密碼設置的域名網站就可以自動填充了。

這裏以我用的Chrome瀏覽器爲例,可以去應用商店中搜索Bitwarden安裝即可,這個比Chrome自帶的密碼填充的好處是隻有輸入主密碼纔可以查看你的密碼,Chrome有電腦系統用戶密碼就可以查看,而且索Bitwarden手機APP也可以使用。

如果有無法訪問應用商店的,這裏有一個1.4.3版本的離線版,Chrome離線安裝擴展方法可以自行搜索。

  • 百度網盤下載地址:點我
  • 提取碼:u15c

(五)手機APP

IOS和安卓都有相關軟件,且免費。

安卓不能上Google Play的話,下面是2.4.2版本的百度網盤的下載地址。

  • 百度網盤下載地址:點我
  • 提取碼:i9o6

IOS不太清楚,安卓的話,如果是安卓P(安卓9)以上版本,應該都可以調用自動填充框架服務,選擇Bitwarden,這樣APP也可以幫我們自動填寫密碼。

這是我的小米手機設置參考:

app

五、升級

當有新的版本可以升級時,可以使用下面的命令進行升級,否則可能無法使用APP對應的一些新功能:

docker-compose down
docker-compose pull
docker-compose up -d

強烈建議升級前先備份你的數據。

六、Enjoy

好了,就介紹這麼多,自動填充習慣後你就會發現再也回不回去了…

Enjoy it now。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章