安全的同僚,尤其甲方的蓝队安全人员往往会碰到这样的问题,一堆安全设备的密码Passbolt是面向团队的开源密码管理。专为团队协作而打造,开源、自托管、以 API 为中心、注重隐私、开发者优先。
官方文档建议的配置是2H2GB 的,我选择了Debian 12 操作系统,纯净好用!本文是以docker为例搭建的,如果想系统安装建议最新最干净的系统进行安装,别整什么服务面板之类的,不然可能你web服务是哪个跑起来的都分不清。
环境准备 使用docker安装会很方便,首先安装部署docker:
1 2 3 4 5 6 7 8 9 sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install docker-ce
启动docker,并设置为开机自启:
1 2 sudo systemctl start docker sudo systemctl enable docker
下载docker-compose,这个需要自己重新下载:
1 sudo curl -L "https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-$(uname -s) -$(uname -m) " -o /usr/local/bin/docker-compose
赋予执行权限:
1 sudo chmod +x /usr/local/bin/docker-compose
检查是否需要配置环境变量:
1 docker-compose --version
如果 /usr/local/bin
不在你的 PATH
中,你可以创建一个符号链接到 /usr/bin
:
1 sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
安装Passbolt 下载官方docker容器文件,官方文档里写的docker文件有时候会出玄学问题,我这里用的是在官方GITHUB仓库找到的docker文件:
1 curl -LO https://raw.githubusercontent.com/passbolt/passbolt_docker/refs/heads/master/docker-compose/docker-compose-ce.yaml
下载哈希校验文件:
1 curl -LO https://github.com/passbolt/passbolt_docker/releases/latest/download/docker-compose-ce-SHA512SUM.txt
比对哈希:
1 sha512sum -c docker-compose-ce-SHA512SUM.txt
如果不OK说明文件下载不完整,会出问题的:
容器默认占据的80端口和443端口:
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 root@debianserver:/home/debian# cat docker-compose-ce.yaml version: "3.9" services: db: image: mariadb:10.11 restart: unless-stopped environment: MYSQL_RANDOM_ROOT_PASSWORD: "true" MYSQL_DATABASE: "passbolt" MYSQL_USER: "passbolt" MYSQL_PASSWORD: "P4ssb0lt" volumes: - database_volume:/var/lib/mysql passbolt: image: passbolt/passbolt:latest-ce restart: unless-stopped depends_on: - db environment: APP_FULL_BASE_URL: https://passbolt.local DATASOURCES_DEFAULT_HOST: "db" DATASOURCES_DEFAULT_USERNAME: "passbolt" DATASOURCES_DEFAULT_PASSWORD: "P4ssb0lt" DATASOURCES_DEFAULT_DATABASE: "passbolt" volumes: - gpg_volume:/etc/passbolt/gpg - jwt_volume:/etc/passbolt/jwt command: [ "/usr/bin/wait-for.sh" , "-t" , "0" , "db:3306" , "--" , "/docker-entrypoint.sh" , ] ports: - 80 :80 - 443 :443 volumes: database_volume: gpg_volume: jwt_volume:
文件中包含了数据库用户名密码,数据库端口,以及Passbolt的域名https://passbolt.local。官方还提供了更多的变量 :
1 https://www.passbolt.com/docs/hosting/configure/environment-reference/
比如我要添加对接内网的邮服SMTP,可以在passbolt中添加:
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 version: "3.9" services: db: image: mariadb:10.11 restart: unless-stopped environment: MYSQL_RANDOM_ROOT_PASSWORD: "true" MYSQL_DATABASE: "passbolt" MYSQL_USER: "passbolt" MYSQL_PASSWORD: "P4ssb0lt" volumes: - database_volume:/var/lib/mysql passbolt: image: passbolt/passbolt:latest-ce restart: unless-stopped depends_on: - db environment: APP_FULL_BASE_URL: https://passbolt.local DATASOURCES_DEFAULT_HOST: "db" DATASOURCES_DEFAULT_USERNAME: "passbolt" DATASOURCES_DEFAULT_PASSWORD: "P4ssb0lt" DATASOURCES_DEFAULT_DATABASE: "passbolt" EMAIL_DEFAULT_FROM: 'noreply@yourdomain.com' EMAIL_TRANSPORT_DEFAULT_HOST: 'smtp.your-smtp-server.com' EMAIL_TRANSPORT_DEFAULT_PORT: 587 EMAIL_TRANSPORT_DEFAULT_USERNAME: 'your-smtp-username' EMAIL_TRANSPORT_DEFAULT_PASSWORD: 'your-smtp-password' EMAIL_TRANSPORT_DEFAULT_TLS: true volumes: - gpg_volume:/etc/passbolt/gpg - jwt_volume:/etc/passbolt/jwt command: [ "/usr/bin/wait-for.sh" , "-t" , "0" , "db:3306" , "--" , "/docker-entrypoint.sh" , ] ports: - 80 :80 - 443 :443 volumes: database_volume: gpg_volume: jwt_volume:
构建启动容器:
1 docker-compose -f docker-compose-ce.yaml up -d
开启第一个管理用户 注册第一个账户:
1 docker exec passbolt su -m -c "bin/cake passbolt register_user -u your@email.com -f yourname -l surname -r admin" -s /bin/sh www-data
注意下边的绿色链接,直接打开会白屏,使用ip访问也会白屏,并不是构建失败了,将自己docker.yaml文件中的域名与自己环境ip写进自己本地hosts文件中:
1 passbolt.local xx.xx.xx.xx
然后浏览器打开:
为注册的用户设置一个密码,应用会检查设置的密码是否在弱口令密码泄露库里,如果密码符合它的要求,会下载一个key文件:
随后点击Next,选择一个颜色:
随后进入web应用页面:
功能介绍 左边是功能区,上半部分是工具栏,点击左边的Creat可以进行创建条目:
New Password:
URL不是必填项,如果有很多网站后台密码,可以填写Url,创建添加密码会进行身份校验,需要二次验证:
添加完成后密码会以加密类型显示,前端看起来是解不出来的:
那么需要给密码归类怎么办呢?看到New Folders了吗?
创建好文件夹可以直接把已经添加好的密码用鼠标左键拖进去:
顶部还有users控制面板,可以便于管理admin以及非admin用户:
还可以个性化: