【5分鐘玩轉Lighthouse】搭建bitwarden個人密碼管理器
0x00 背景概述
現在各種網站和手機APP都要求設置密碼和輸入密碼,每個人都要設置大量的密碼。 如果都設為統一密碼,就存在一旦一個密碼被攻破,其他密碼都失效的情況。 如果要分別設置為不同密碼,那麼記住密碼又成了一個困難的問題。 所以密碼管理工具也就應運而生,比較有名的密碼管理工具有1Password,OneSafe,LastPass,但是這些工具大多數需要收費並且密碼存儲在其提供的伺服器上。 密碼交給別人管理,還是有些不放心。
為了解決個人對密碼管理的需求,在我們本期【5分鐘玩轉Lighthouse】系列教程中,將為大家介紹如何在騰訊雲Lighthouse輕量應用伺服器上基於Docker搭建bitwarden私人密碼管理器。
為什麼選在Lighthouse和bitwarden呢? 原因如下:
1. Lighthouse輕量應用伺服器創建簡單,性價比高,自帶Docker鏡像。
2. bitwarden是一款有免費版且開源的密碼管理工具,最重的是它允許自建密碼管理服務,完全不用擔心密碼被別人管理的問題。 同時biwarden對Windows,Linux,Mac,iPhone,Android以及Chrome等多種主流瀏覽器都支援,完全滿足個人跨平臺、跨終端的密碼管理需求。
0x01 準備Lighthouse輕量應用伺服器
我們首先在騰訊雲Lighthouse輕量應用伺服器購買頁面,購買一台伺服器。 如下圖所示。 伺服器的具體設定如下:
- 地域:台灣香港
- 鏡像:應用鏡像 Docker
- 實例套餐:CPU 2核 記憶體2G SSD 80GB 峰值頻寬 30Mbps 每月流量3072GB
- 實例名稱:輸入bitwarden即可。
點擊"立即購買",付款之後伺服器就開始創建了。 當伺服器狀態為"運行中"時,我們就可以使用了。
設定選擇理由:
套餐:Bitwarden建議使用CPU:2核 記憶體:2G 磁碟25G的配置,因此我們選擇了上述套餐。
鏡像:搭建bitwarden伺服器我們使用Docker鏡像的方式,直接選擇Lighthouse自帶的Docker鏡像即可。
有了伺服器,接下來我們就要搭建bitwarden密碼管理器了。
0x02 搭建bitwarden個人密碼管理器
1. 註冊功能變數名稱與配置解析
註冊功能變數名稱
為了方便記憶我們的bitwarden密碼管理器服務地址,我們先申請一個功能變數名稱以方便訪問。 進入輕量應用伺服器的實例詳情頁面,點擊 「註冊功能變數名稱」。。
接下來參考騰訊雲官方文檔《功能變數名稱註冊》完成功能變數名稱的購買、註冊和實名認證。
如下圖所示,功能變數名稱購買成功。
點擊功能變數名稱後的解析,添加一條A記錄,主機記錄填 「WWW」,記錄值填寫輕量應用伺服器的外網IP。
2. 申請與下載SSL證書
為了保證輕量應用伺服器通信的安全性,我們要使用HTTPS協議進行通信。 因此我們再申請SSL證書具體參考騰訊雲官方文檔《SSL證書新手入門》,申請「域名型免費版SSL證書」即可。
申請好證書后,點擊「下載證書」,留待後面上傳到輕量應用伺服器上,配置Nginx使用的SSL證書。
3. 安裝bitwarden
我們先部署bitwarden,然後使用Nginx作為反向代理,將請求轉發到bitwarden伺服器上。
Docker部署bitwarden
mkdir /data/bitwarden
docker run -d
--rm
--name bitwarden
-p 8080:80
-p 3012:3012
-e SIGNUPS_ALLOWED=true
-e WEB_VAULT_ENABLED=true
-e DOMAIN=https://mydomain.cn
-v /data/bitwarden:/data
bitwardenrs/server:latest
上面命令的各个参数含义如下:
-d 在后台运行
--rm 容器停止运行后,自动删除容器文件
--name bitwarden容器的名字为bitwarden
-p 8080:80 容器的端口80映射到8080,在Nginx配置
-p 3012:3012 容器的端口3012映射到3012
-e SIGNUPS_ALLOWED=true 设置环境变量SIGNUPS_ALLOWED=true允许用户注册
-e WBE_VAULT_ENABLE=true 设置环境变量WBE_VAULT_ENABLE=true
-e DOMAIN=https://mydomain.cn设置域名,需要替换成自己申请的域名
-v /data/bitwarden:/data 容器的/data/目录映射到宿主机的/data/bitwarden目录
4. 安裝並配置Nginx
接下來使用docker安裝Nginx並配置SSL證書與反向代理。
安裝Nginx
docker run
--rm
--name nginx
-d
nginx
上面命令的各个参数含义如下:
--rm 容器停止运行后,自动删除容器文件
--name nginx 容器的名字为nginx
-d 在后台运行
拷貝配置
docker cp nginx:/etc/nginx /data
上面命令的含义:将nginx容器内的/etc/nginx目录复制到宿主机的/data目录
配置SSL證書與反向代理
解壓從騰訊雲證書控制台下載的SSL證書檔。 目錄結構如下,我們使Nginx目錄中的.crt和.key檔使用。
mkdir /data/nginx/certs
cp ./Nginx/1_mydomain _bundle.crt /data/nginx/certs
cp ./Nginx/2_mydomain.key /data/nginx/certs
打開nginx檔/data/nginx/conf.d/default.conf中新增如下內容:
HTTP 80埠新增如下配置:
server {
listen 80;
……此处省略无修改的内容
return 301 https://$host$request_uri; #将http的域名请求转成https
}
HTTPS 443埠新增如下配置:
server {
listen 443 ssl http2;
server_name localhost;
ssl on;
ssl_certificate /etc/nginx/certs/1_mydomain_bundle.crt; #配置证书文件
ssl_certificate_key /etc/nginx/certs/2_mydomain.key; #配置证书私钥文件
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
#配置反向代理,请求代理发送到8080端口
location / {
proxy_pass http://127.0.0.1:8080;
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;
root /usr/share/nginx/html;
index index.html index.htm;
}
location /notifications/hub {
proxy_pass http://127.0.0.1:3012;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /notifications/hub/negotiate {
proxy_pass http://127.0.0.1:8080;
}
}
重啟nginx
重啟nginx使配置生效
docker restart nginx
至此我們就完成了bitwarden密碼管理器的安裝和部署。
0x03 使用bitwarden管理密碼
訪問我們的功能變數名稱就可以訪問bitwarden的主頁,接下來我們來介紹一下如何使用自己bitwarden管理我們各個平臺與各個終端上的密碼。
1. 註冊bitwarden帳號
首先我們使用自己的電子郵件地址註冊一個帳號。
點擊提交后,即表示註冊成功。 接下來會返回到登錄頁面,輸入電子郵件位址,和主密碼即可登錄。 下圖顯示註冊帳號后為空的密碼庫。
2. 禁止其他人註冊
由於這個bitwarden伺服器是供個人使用,我們在註冊完帳號后,要關閉註冊功能,防止他人註冊。
# 先停止bitwarden容器
docker stop bitwarden
# 设置环境变量不允许注册用户-e SIGNUPS_ALLOWED=false,再启动bitwarden容器
docker run -d
--rm
--name bitwarden
-p 8080:80
-p 3012:3012
-e SIGNUPS_ALLOWED=false
-e WEB_VAULT_ENABLED=true
-e DOMAIN=https://mydomain
-v /data/bitwarden:/data
bitwardenrs/server:latest
此時再註冊帳號時,會提示Registration not allowed or user already exists.這樣的錯誤。
3. chrome上使用bitwarden
在chrome網上應用店搜索bitwarden,並添加至Chrome中。
設置我們自建bitwarden伺服器URL的位址。
接下來我們就體驗一下,bitwarden自動保存密碼的功能。 在chrome瀏覽器中,我們登錄果殼網,bitwarden會自動檢測需要保存的使用者名和密碼。 點擊"是的,現在保存"即可。
接下來,我們退出帳號,再次重新登錄,點擊bitwarden中的登錄專案,http://account.guokr.com,密碼使用者名和密碼就會自動填充好。
4. IOS 上使用bitwarden
在AppStore上搜索bitwarden,下載Bitwarden密碼管理器。
打開APP,點擊設置圖示,設置我們搭建的bitwarden伺服器功能變數名稱。
點擊「登錄」,用註冊的bitwarden賬號登錄到我們搭建的伺服器上。 接下來用safari瀏覽器打開http://account.guokr.com,此時safari會自動彈出"使用Bitwarden,登錄 guokr.com",選擇我們要登錄的賬號,確定登錄。
bitwarden會自動填充上使用者名和密碼,登錄成功。
0x04 小結
本教程通過藉助Lighthouse輕量應用伺服器和bitwarden,我們搭建了個人密碼管理器。 輕量應用伺服器提供的Docker鏡像,為我們提供了一鍵運行容器的環境,bitwarden提供的跨平臺,跨終端能力,使得我們再也不用為管理密碼頭疼了。 最重要的是bitwarden可以自行部署的能力,讓我們把密碼安全掌握在自己的手裡,這才是密碼管理器最讓人放心的地方。
更多騰訊雲伺服器技術乾貨、優惠活動、交流社區,敬請關注「騰訊雲伺服器」微信公眾號(TencentCVM)