前言與起源
網路上相關文章非常多,但寫錯寫不清楚的占比大約90%
這就是為什麼我寫這篇文章來教學Bitwarden。
還有,樂團成員總是問來問去某個服務的帳號密碼,但在通訊軟體交換密碼又是一件危險的事情
成員本身也沒有使用密碼管理器的習慣,所以乾脆在原本的Server上建立一個管理器服務
如此一來主管理員控制整個密碼資料存取,成員各自也可以建立自己的密碼資訊。
什麼是Bitwarden
Bitwarden
一款密碼管理工具,顧名思義就是一個管理你所有密碼的平台
類似的平台有很多,例如:1password、lastpass
為什麼需要密碼管理器
想像你有三棟房子在台北、台中、高雄,三個家門的鑰匙會用同一把嗎?
這個答案非常肯定是「不會」,因為危險。
所以你的臉書、IG、信箱都不算資產囉?
既然三棟房子使用不同的鑰匙,為什麼三個不同平台的密碼要用同一組?
一組密碼打天下的的優點就是「便利」,但是便利的背後隱藏的卻是嚴重的資安問題
有的人會說:我只是個賣茶葉的,又不是工程師,幹嘛學這個?
「資訊安全,人人有責」,因為自己不注意資安被竊取資料然後再去請朋友、警察協助
「預防勝於治療」希望各位都理解。
如果使用的網路平台有一百個,不就要記一百組不同的密碼?
所以你現在看到這篇文章,教你怎麼使用密碼管理器與搭建。
需求
更新一下
安裝Nginx
1
| apt-get install nginx -y
|
安裝Docker
1
| sudo systemctl start docker
|
1
| sudo systemctl enable docker
|
安裝Docker-compose
1
| sudo curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
|
安裝Bitwarden
1
| mkdir -p /data/bitwarden && cd /data/bitwarden
|
- 建立docker-compose設定文件
- 建議複製到筆記本修改好後,再貼到伺服器的終端機內執行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| cat > docker-compose.yml <<EOF version: '3'
services: bitwarden: image: bitwardenrs/server:latest container_name: bitwarden restart: always volumes: - /data/docker/bitwarden/data:/data environment: WEB_VAULT_ENABLED: 'true' SIGNUPS_ALLOWED: 'true' WEBSOCKET_ENABLED: 'true' LOG_FILE: /data/bitwarden.log SMTP_HOST: 'mail.gandi.net' SMTP_FROM: 'service@league2eb.me' SMTP_PORT: '465' SMTP_SSL: 'true' SMTP_USERNAME: 'service@league2eb.me' SMTP_PASSWORD: 'password' SMTP_EXPLICIT_TLS: 'true' ports: - 7006:80 - 7007:3012 EOF
|
設定Nginx反向代理
1
| cd /etc/nginx/sites-available && vi bitwarden.conf
|
- 建議先使用筆記本編輯好下面的內容後,在貼到bitwarden.conf中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| upstream bitwardenrs-default { server 127.0.0.1:7006; } upstream bitwardenrs-ws { server 127.0.0.1:7007; }
server { listen 80; server_name pass.league2eb.me; return 301 https: }
server { listen 443 ssl http2; server_name pass.league2eb.me;
ssl_certificate /etc/nginx/ssl/league2eb.me/fullchain.cer; ssl_certificate_key /etc/nginx/ssl/league2eb.me/keyfile.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers off; 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; add_header Content-Security-Policy upgrade-insecure-requests; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options nosniff; add_header Referrer-Policy "no-referrer-when-downgrade";
location / { 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: }
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: }
location /notifications/hub { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_set_header X-Real-IP $remote_addr;
proxy_pass http: } }
|
連結設定檔案符號表
1
| cd /etc/nginx/sites-enabled && ln -s ../sites-available/bitwarden.conf . && systemctl reload nginx
|
正式啟用Bitwarden
使用、建立帳號
- 訪問自己的網域名稱將會看到這個畫面
- 選擇「建立帳戶」
禁止建立帳號
當家人、團隊組織成員或者自己建立好帳號後,必須關閉該註冊功能
否則就是開大門。
- 回到伺服器內終端機操作移動到bitwarden資料夾
- 將SIGNUPS_ALLOWED改為false
- 如果不打算用網頁版本管理,WEB_VAULT_ENABLED改為false
重啟容器
1
| docker-compose down && docker-compose up -d
|
手機端使用(iOS)
後記
整理一下「我覺得」密碼外洩、被盜用、重複登入警告的原因
- 將密碼儲存在Google瀏覽器或者Safari瀏覽器。
- 同一組密碼使用所有平台。
- 使用通訊軟體直接交換密碼,如果你硬要,那我推薦 Telegram。
警告
- 如果要自己架設,需要有相對應管理Server的能力或者阻擋被攻擊的能力。
- 只要密碼儲存在「網路」就是不可能永遠安全。
- 這則教學文章建立在你沒有能力買NAS的前提下,如果有能力還是建議買NAS來架設Bitwarden。
好文推薦 !
在群暉 Docker 搭建免費開源密碼管理器 Bitwarden