極簡密碼生成工具:docker一鍵部署pwgen指南
- 1.1 pwgen簡介
- 1.2 主要特點
- 1.3 使用場景
- 2.1 本地環(huán)境規(guī)劃
- 2.2 本次實踐介紹
- 3.1 檢查Docker服務(wù)狀態(tài)
- 3.2 檢查Docker版本
- 3.3 檢查docker compose 版本
- 5.1 創(chuàng)建部署目錄
- 5.2 docker-cli方式部署(可選)
- 5.3 編輯部署文件
- 5.4 創(chuàng)建pwgen容器
- 5.5 查看pwgen容器狀態(tài)
- 5.6 檢查pwgen容器日志
- 6.1 訪問pwgen首頁
- 6.2 生成默認密碼
一、 pwgen介紹
1.1 pwgen簡介
pwgen 主要用于生成隨機密碼或短語密碼(passphrase),以滿足不同用戶對安全性與便利性的需求。它不僅支持基礎(chǔ)的密碼生成功能,還提供了一系列高級選項來增強用戶體驗和安全性,如集成有被泄露密碼數(shù)據(jù)庫檢查、離線模式等特性。此外,通過環(huán)境變量配置,可以讓管理員根據(jù)實際情況調(diào)整默認設(shè)置,使得該工具更加靈活多變。
1.2 主要特點
- 友好的用戶界面:提供直觀易用的界面,并允許直接復(fù)制生成的密碼到剪貼板。
- 安全檢查:利用 haveibeenpwned API 檢查新生成的密碼是否已被泄露,確保用戶不會使用已知不安全的密碼。
- 離線模式:對于那些運行在隔離網(wǎng)絡(luò)中或者不需要外部API訪問的情況下,可以關(guān)閉在線驗證功能。
- 環(huán)境變量配置:允許通過設(shè)置環(huán)境變量來自定義密碼/短語密碼的生成規(guī)則。
- 多語言支持:除了英文外,還支持芬蘭語單詞列表來生成短語密碼。
- 自定義字典:支持從指定URL加載自定義單詞列表,增加個性化選項。
- 漸進式Web應(yīng)用(PWA):為用戶提供接近原生應(yīng)用體驗的服務(wù)。
- 豐富的密碼選項:包括大寫字母、數(shù)字及特殊字符,同時可選擇排除外觀相似的字符(homoglyphs)。
- 靈活的短語密碼生成:允許用戶定制分隔符類型、決定是否包含數(shù)字或特殊符號等。
1.3 使用場景
- 個人用戶:需要為自己常用的網(wǎng)站和服務(wù)創(chuàng)建強密碼時,尤其是當(dāng)這些服務(wù)要求定期更改密碼。
- 企業(yè)環(huán)境:IT部門可以部署pwgen作為內(nèi)部工具,幫助員工生成符合公司安全策略的密碼。
- 開發(fā)人員:在開發(fā)過程中快速生成測試賬號所需的密碼。
- 教育機構(gòu):向?qū)W生展示如何正確地管理自己的賬戶信息,提高他們對網(wǎng)絡(luò)安全的認識。
- 安全意識培訓(xùn):作為演示工具,在進行網(wǎng)絡(luò)安全相關(guān)的講座或研討會時使用,教導(dǎo)人們關(guān)于密碼安全的重要性。
二、本次實踐規(guī)劃
2.1 本地環(huán)境規(guī)劃
本次實踐為個人測試環(huán)境,操作系統(tǒng)版本為|Ubuntu 22.04.1。
2.2 本次實踐介紹
1.本次實踐部署環(huán)境為個人測試環(huán)境,生產(chǎn)環(huán)境請謹慎; 2.在Docker環(huán)境下部署pwgen簡單密碼生成器。
三、本地環(huán)境檢查
3.1 檢查Docker服務(wù)狀態(tài)
檢查Docker服務(wù)是否正常運行,確保Docker正常運行。
root@jeven01:~# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2024-11-01 00:45:50 CST; 3 weeks 0 days ago Docs: https://docs.docker.com Main PID: 10450 (dockerd) Tasks: 150 (limit: 9387) Memory: 3.4G CPU: 46min 54.584s CGroup: /system.slice/docker.service ├─10450 /usr/bin/dockerd ├─10459 containerd --config /var/run/docker/containerd/containerd.toml
3.2 檢查Docker版本
檢查Docker版本
root@jeven01:~# docker -v Docker version 27.1.1, build 6312585
3.3 檢查docker compose 版本
檢查Docker compose版本,確保2.0以上版本。
root@jeven01:~# docker compose version Docker Compose version v2.19.1
四、下載pwgen鏡像
執(zhí)行以下命令,拉取以下pwgen鏡像。
root@jeven01:~# docker pull jocxfin/pwgen:latest latest: Pulling from jocxfin/pwgen d25f557d7f31: Already exists d2c04aca259c: Pull complete 17b8b3e271e5: Pull complete e66f59b5a57d: Pull complete c552f0e9d771: Pull complete d7461950037d: Pull complete 093c741c7cef: Pull complete ae27391479cd: Pull complete 4c78c5859469: Pull complete Digest: sha256:1dab8a2a5fc174cae4d4d181505559a98dabaa1ebb56f05ee0416500206c5556 Status: Downloaded newer image for jocxfin/pwgen:latest docker.io/jocxfin/pwgen:latest
五、部署pwgen應(yīng)用
5.1 創(chuàng)建部署目錄
- 創(chuàng)建部署目錄
mkdir -p /data/pwgen && cd /data/pwgen
5.2 docker-cli方式部署(可選)
可使用以下docker-cli方式,快速部署pwgen應(yīng)用。
docker run -d -p 5069:5069 -e NO_API_CHECK=true jocxfin/pwgen:latest
5.3 編輯部署文件
本次實踐使用docker compose方式部署,在部署目錄下,創(chuàng)建docker-compose.yaml文件,其中宿主機映射端口等可以自定義配置。
vim docker-compose.yaml
version: '3' services: pwgen: image: jocxfin/pwgen:latest container_name: pwgen restart: always ports: - 6500:5069
- 相關(guān)環(huán)境變量如下所示,可自定義設(shè)置。
5.4 創(chuàng)建pwgen容器
執(zhí)行以下命令,創(chuàng)建pwgen容器。
root@jeven01:/data/pwgen# docker compose up -d [+] Running 2/2 Network pwgen_default Created 0.1s Container pwgen Started 0.3s
5.5 查看pwgen容器狀態(tài)
檢查pwgen容器狀態(tài)狀態(tài),確保pwgen容器正常啟動。
root@jeven01:/data/pwgen# docker compose ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS pwgen jocxfin/pwgen:latest "gunicorn -w 2 -t 4 …" pwgen About a minute ago Up About a minute 0.0.0.0:6500->5069/tcp, :::6500->5069/tcp
5.6 檢查pwgen容器日志
檢查pwgen容器日志,確保pwgen服務(wù)正常運行。
root@jeven01:/data/pwgen# docker compose logs pwgen | [2024-11-27 10:20:38 +0000] [1] [INFO] Starting gunicorn 23.0.0 pwgen | [2024-11-27 10:20:38 +0000] [1] [INFO] Listening at: http://0.0.0.0:5069 (1) pwgen | [2024-11-27 10:20:38 +0000] [1] [INFO] Using worker: uvicorn.workers.UvicornWorker pwgen | [2024-11-27 10:20:38 +0000] [7] [INFO] Booting worker with pid: 7 pwgen | [2024-11-27 10:20:38 +0000] [8] [INFO] Booting worker with pid: 8 pwgen | [2024-11-27 10:20:39 +0000] [7] [INFO] Started server process [7] pwgen | [2024-11-27 10:20:39 +0000] [7] [INFO] Waiting for application startup. pwgen | [2024-11-27 10:20:39 +0000] [7] [INFO] ASGI 'lifespan' protocol appears unsupported. pwgen | [2024-11-27 10:20:39 +0000] [7] [INFO] Application startup complete. pwgen | [2024-11-27 10:20:39 +0000] [8] [INFO] Started server process [8] pwgen | [2024-11-27 10:20:39 +0000] [8] [INFO] Waiting for application startup. pwgen | [2024-11-27 10:20:39 +0000] [8] [INFO] ASGI 'lifespan' protocol appears unsupported. pwgen | [2024-11-27 10:20:39 +0000] [8] [INFO] Application startup complete.
六、訪問pwgen服務(wù)
6.1 訪問pwgen首頁
訪問地址:http://192.168.3.88:6500,將IP替換為自己服務(wù)器IP地址。如果無法訪問到以下頁面,則檢查宿主機的防火墻是否關(guān)閉或者放行相關(guān)端口,云服務(wù)器則還需要設(shè)置安全組規(guī)則。
6.2 生成默認密碼
生成的短語密碼遵循了以下規(guī)則:每個單詞首字母大寫、包含數(shù)字、包含特殊字符,使用破折號
-
作為分隔符,最大單詞長度為7個字符,并且由4個單詞組成?;谶@些設(shè)定,生成的具體短語密碼示例為Obeyed7#-Wins2;-Hamauls7:-Aptest5:
。這個密碼結(jié)合了易于記憶的單詞與額外的安全元素(如數(shù)字和特殊字符),以增強其安全性。此外,該工具還提供了復(fù)制功能,方便用戶直接將生成的密碼粘貼到需要的地方。所有生成的密碼和短語密碼都會被交叉引用檢查,確保它們未曾在已知的數(shù)據(jù)泄露事件中出現(xiàn)過,從而進一步保障用戶賬戶的安全性。
- 生成安全密碼和短語密碼的要求
七、總結(jié)
在部署實踐過程中,使用Docker容器化pwgen密碼生成器展現(xiàn)了其便捷性和靈活性。通過簡單的Docker命令即可快速啟動服務(wù),并利用環(huán)境變量輕松調(diào)整密碼生成規(guī)則,滿足不同場景下的安全需求。實際體驗中,pwgen不僅提供了強大的密碼和短語密碼生成功能,還確保了生成的密碼經(jīng)過泄露數(shù)據(jù)庫檢查,增強了安全性。此外,友好的用戶界面設(shè)計和易于使用的復(fù)制功能極大地提升了用戶體驗,使得無論是個人還是企業(yè)用戶都能方便地管理自己的密碼安全。
作者聲明本文無利益相關(guān),歡迎值友理性交流,和諧討論~
,