使用Docker部署pwgen簡單密碼生成器
一、 pwgen介紹
1.1 pwgen簡介
pwgen 主要用于生成隨機密碼或短語密碼(passphrase),以滿足不同用戶對安全性與便利性的需求。它不僅支持基礎的密碼生成功能,還提供了一系列高級選項來增強用戶體驗和安全性,如集成有被泄露密碼數(shù)據(jù)庫檢查、離線模式等特性。此外,通過環(huán)境變量配置,可以讓管理員根據(jù)實際情況調(diào)整默認設置,使得該工具更加靈活多變。
1.2 主要特點
- 友好的用戶界面:提供直觀易用的界面,并允許直接復制生成的密碼到剪貼板。
- 安全檢查:利用 haveibeenpwned API 檢查新生成的密碼是否已被泄露,確保用戶不會使用已知不安全的密碼。
- 離線模式:對于那些運行在隔離網(wǎng)絡中或者不需要外部API訪問的情況下,可以關閉在線驗證功能。
- 環(huán)境變量配置:允許通過設置環(huán)境變量來自定義密碼/短語密碼的生成規(guī)則。
- 多語言支持:除了英文外,還支持芬蘭語單詞列表來生成短語密碼。
- 自定義字典:支持從指定URL加載自定義單詞列表,增加個性化選項。
- 漸進式Web應用(PWA):為用戶提供接近原生應用體驗的服務。
- 豐富的密碼選項:包括大寫字母、數(shù)字及特殊字符,同時可選擇排除外觀相似的字符(homoglyphs)。
- 靈活的短語密碼生成:允許用戶定制分隔符類型、決定是否包含數(shù)字或特殊符號等。
1.3 使用場景
- 個人用戶:需要為自己常用的網(wǎng)站和服務創(chuàng)建強密碼時,尤其是當這些服務要求定期更改密碼。
- 企業(yè)環(huán)境:IT部門可以部署pwgen作為內(nèi)部工具,幫助員工生成符合公司安全策略的密碼。
- 開發(fā)人員:在開發(fā)過程中快速生成測試賬號所需的密碼。
- 教育機構(gòu):向?qū)W生展示如何正確地管理自己的賬戶信息,提高他們對網(wǎng)絡安全的認識。
- 安全意識培訓:作為演示工具,在進行網(wǎng)絡安全相關的講座或研討會時使用,教導人們關于密碼安全的重要性。
二、本次實踐規(guī)劃
2.1 本地環(huán)境規(guī)劃
本次實踐為個人測試環(huán)境,操作系統(tǒng)版本為|Ubuntu 22.04.1。
hostname | IP地址 | 操作系統(tǒng)版本 | Docker版本 | 鏡像名稱 | 備注 |
---|---|---|---|---|---|
jeven01 | 192.168.3.88 | Ubuntu 22.04.1 LTS | 27.1.1 | jocxfin/pwgen:latest | —— |
2.2 本次實踐介紹
1.本次實踐部署環(huán)境為個人測試環(huán)境,生產(chǎn)環(huán)境請謹慎; 2.在Docker環(huán)境下部署pwgen簡單密碼生成器。
三、本地環(huán)境檢查
3.1 檢查Docker服務狀態(tài)
檢查Docker服務是否正常運行,確保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應用
5.1 創(chuàng)建部署目錄
- 創(chuàng)建部署目錄
mkdir -p /data/pwgen && cd /data/pwgen
5.2 docker-cli方式部署(可選)
可使用以下docker-cli方式,快速部署pwgen應用。
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
- 相關環(huán)境變量如下所示,可自定義設置。
環(huán)境變量 | 作用說明 |
---|---|
NO_API_CHECK=false | 是否禁用對 haveibeenpwned API 的檢查。設置為 false 表示啟用在線安全檢查。 |
PW_LENGTH=12 | 密碼的長度。這里設置為 12 個字符。 |
PW_INCLUDE_UPPERCASE=false | 密碼是否包含大寫字母。設置為 false 表示不包含。 |
PW_INCLUDE_DIGITS=false | 密碼是否包含數(shù)字。設置為 false 表示不包含。 |
PW_INCLUDE_SPECIAL=false | 密碼是否包含特殊字符。設置為 false 表示不包含。 |
PW_EXCLUDE_HOMOGLYPHS=true | 是否排除外觀相似的字符。設置為 true 表示排除。 |
PP_WORD_COUNT=4 | 短語密碼中單詞的數(shù)量。這里設置為 4 個單詞。 |
PP_CAPITALIZE=false | 短語密碼中的單詞首字母是否大寫。設置為 false 表示不大寫。 |
PP_SEPARATOR_TYPE=dash | 短語密碼單詞之間的分隔符類型。這里使用破折號 - 作為分隔符。 |
PP_USER_DEFINED_SEPARATOR='' | 用戶自定義的分隔符。這里為空表示沒有額外的用戶定義分隔符。 |
PP_MAX_WORD_LENGTH=12 | 短語密碼中單個單詞的最大長度。這里設置為 12 個字符。 |
PP_INCLUDE_NUMBERS=false | 短語密碼是否包含數(shù)字。設置為 false 表示不包含。 |
PP_INCLUDE_SPECIAL_CHARS=false | 短語密碼是否包含特殊字符。設置為 false 表示不包含。 |
PP_LANGUAGE=en | 短語密碼使用的語言。這里設置為英語。 |
PP_HIDE_LANG=false | 是否隱藏語言選擇下拉菜單。設置為 false 表示顯示。 |
PP_LANGUAGE_CUSTOM='' | 自定義語言列表的 URL。這里為空表示使用默認的語言列表。 |
MULTI_GEN=true | 是否允許多次同時生成密碼/短語密碼。設置為 true 表示允許。 |
GENERATE_PP=true | 是否生成短語密碼。設置為 true 表示生成。 |
ROBOTS_ALLOW=false | 是否允許搜索引擎爬蟲訪問該服務。設置為 false 表示不允許。 |
GOOGLE_SITE_VERIFICATION='' | Google 站點驗證代碼。這里為空表示未設置。 |
DISABLE_URL_CHECK=false | 是否禁用 URL 安全性檢查。設置為 false 表示進行檢查。 |
BASE_PATH='' | 服務的基礎路徑。這里為空可能意味著根路徑 /。 |
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服務正常運行。
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服務
6.1 訪問pwgen首頁
訪問地址:http://192.168.3.88:6500,將IP替換為自己服務器IP地址。如果無法訪問到以下頁面,則檢查宿主機的防火墻是否關閉或者放行相關端口,云服務器則還需要設置安全組規(guī)則。
6.2 生成默認密碼
生成的短語密碼遵循了以下規(guī)則:每個單詞首字母大寫、包含數(shù)字、包含特殊字符,使用破折號 - 作為分隔符,最大單詞長度為7個字符,并且由4個單詞組成?;谶@些設定,生成的具體短語密碼示例為 Obeyed7#-Wins2;-Hamauls7:-Aptest5:。這個密碼結(jié)合了易于記憶的單詞與額外的安全元素(如數(shù)字和特殊字符),以增強其安全性。此外,該工具還提供了復制功能,方便用戶直接將生成的密碼粘貼到需要的地方。所有生成的密碼和短語密碼都會被交叉引用檢查,確保它們未曾在已知的數(shù)據(jù)泄露事件中出現(xiàn)過,從而進一步保障用戶賬戶的安全性。
- 生成安全密碼和短語密碼的要求
參數(shù) | 描述 |
---|---|
包含大寫字母 | 密碼中包含大寫字母。 |
包含數(shù)字 | 密碼中包含數(shù)字。 |
包含特殊字符 | 密碼中包含特殊字符。 |
排除外觀相似的字符 | 密碼中不包含外觀相似的字符(例如:0 和 O, 1 和 l)。 |
長度 | 密碼長度為 12 個字符。 |
生成短語密碼 | 同時生成一個短語密碼。 |
七、總結(jié)
在部署實踐過程中,使用Docker容器化pwgen密碼生成器展現(xiàn)了其便捷性和靈活性。通過簡單的Docker命令即可快速啟動服務,并利用環(huán)境變量輕松調(diào)整密碼生成規(guī)則,滿足不同場景下的安全需求。實際體驗中,pwgen不僅提供了強大的密碼和短語密碼生成功能,還確保了生成的密碼經(jīng)過泄露數(shù)據(jù)庫檢查,增強了安全性。此外,友好的用戶界面設計和易于使用的復制功能極大地提升了用戶體驗,使得無論是個人還是企業(yè)用戶都能方便地管理自己的密碼安全。
到此這篇關于使用Docker部署pwgen簡單密碼生成器的文章就介紹到這了,更多相關Docker部署pwgen密碼生成器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
在 Ubuntu 下通過 Docker 部署 Mastodon&nbs
在Ubuntu系統(tǒng)上通過Docker部署Mastodon服務器的步驟,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2025-03-03docker在已有的tomcat鏡像上打新的鏡像的Dockerfile編寫說明介紹
這篇文章主要介紹了docker在已有的tomcat鏡像上打新的鏡像的Dockerfile編寫說明介紹,需要的朋友可以參考下2016-10-10