Vault部署保姆级教程

Vault部署
官方文档:Install | Vault | HashiCorp Developer
软件运行环境
操作系统发行版及版本:自己选
Vault版本:XXXX
Vault配置文件路径:/etc/vault.d/vault.hcl
Vault环境变量路径:/etc/vault.d/vault.env
Vault TLS文件路径:/opt/vault/tls(Qqun830709780)
MySQL版本:最新就行
库名:vault
表名:vault
账号:自己创建
安全加固
部署过程
1 安装vault
# 操作系统Debian
# 安装版本:开源 1.13.1
apt install gpg
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vault
2 准备mysql环境
后端存储:MySQL
MySQL版本:XXX
MySQL个数:1
MySQL备份:每天一全备
地址:IP
库名:vault 表名:vault
账号:username/password
3 建立自己的证书颁发机构 (CA)(server)
# 创建 CA 私钥,生成一个新的私钥文件 ca.key
openssl genrsa -out ca.key 4096
# 接下来,使用以下命令自签名生成 CA 证书
openssl req -new -x509 -days 36500 -key ca.key -out ca.crt -subj "/C=国家/ST=省份/L=城市/O=公司/OU=组织/CN=域名"
# 效验 CA 证书
openssl x509 -noout -text -in ca.crt
# 创建 Server 私钥,生成一个新的私钥文件 serverkey.pem
openssl genrsa -out server.key 2048
# 创建服务器证书请求,使用以下命令生成服务器证书请求
openssl req -new -key server.key -out server.csr -subj "/C=国家/ST=省份/L=城市/O=公司/OU=组织/CN=域名"
# 使用 CA 签署服务器证书,向 CA 提交服务器证书请求文件 server.csr。接下来,使用以下命令生成服务器证书
echo subjectAltName=IP:127.0.0.1,IP:10.8.64.201,IP:10.8.64.7 > extfile.cnf
echo 01 > ca.srl
openssl x509 -req -extfile extfile.cnf -days 18250 -CA ca.crt -CAkey ca.key -in server.csr -out server.crt
# 最后,将生成的 servercert.pem serverkey.pem 文件安装到 Web 服务器上,以供 SSL/TLS 连接使用
4 服务器证书准备
tls_cert_file = /opt/vault/tls/server.crt
tls_key_file = /opt/vault/tls/server.key
- 将ca.crt文件放到服务器/etc/ssl/certs目录下
5 配置文件
ui = true
disable_mlock = false
storage "mysql" {
address = "IP:3306"
username = "vault"
password = "xxxxxxx"
database = "vault"
table = "vault"
ha_enabled = "true"
max_connection_lifetime = "7200"
max_idle_connections = "5"
max_parallel = "128"
}
listener "tcp" {
address = "0.0.0.0:8200"
tls_cert_file = "/opt/vault/tls/server.crt"
tls_key_file = "/opt/vault/tls/server.key"
tls_disable = false
telemetry {
unauthenticated_metrics_access = true
}
}
api_addr = "https://IP:8200"
cluster_addr = "https://ip:8201"
cluster_name = "cluster-name"
log_level = "trace"
log_format = "json"
log_file = "/opt/vault/log/server/"
log_rotate_bytes = "102400"
log_rotate_max_files = "200"
telemetry {
prometheus_retention_time = "300s"
disable_hostname = true
}
在var/log下面,创建目录/var/log/vault,授权目录给vault用
6 启动服务
# 启动服务
systemctl start vault.service
# 开机自动重启
systemctl enable vault.service
7 初始化(生成的解封密钥通过GPG加密)
vault operator init -key-shares=3 -key-threshold=2
也可以将unseal key进行加密。
8 解封
vault operator unseal
9 创建审计设备
# 在opt/vault下面,创建目录/opt/vault/log,授权目录给vault用户
mkdir -p /opt/vault/log/audit
chown vault:vault /opt/vault/log/audit
# 创建审计设备(需先创建好vault_audit.log,并修改该文件所有者和组)(登录root进去创建)
vault audit enable file file_path=/opt/vault/log/audit/vault-audit.log
# 注意:每个节点需要单独创建独立的日志设备(官方建议)(加入日志轮换)
10 集群部署
# 配置这些参数
api_addr = "https://127.0.0.1:8200"
cluster_addr = "https://<Node-1-IP>:8201"
cluster_name = "vault-XX-cluster"
11 接入LDAP
vault write -f auth/ldap/config \
url="ldap://ldap地址" \
userfilter:"(&(memberOf=cn=xxx,ou=xxx,ou=xxxx,dc=xxxx,dc=xxx)(uid={{.Username}}))" ........
12 用户MFA二次认证接入
- 创建一个TOTP方法,并将该方法的强制执行绑定到LDAP身份认证方式
- 为每个LDAP用户分配TOTP验证码(通过邮箱等留底的方式)
# 生成该实体的TOTP二维码或者secreet密钥
vault write identity/mfa/method/totp/admin-generate method_id=METHOD_ID entity_id=ENTITY_ID
13 创建实体、分组
- 先登录,再给每个ldap用户改实体名(实体名字和别名和ldap用户名一样)
注意事项
Vault的不安全机制:
Vault在通过CLI登录后,会在发出命令的用户账户的主目录中创建一个名为 .vault-token 的隐藏文件,该文件记录了当前登录用户的token,且为明文;并且当其他用户登录该服务器之后,仍然可以看到这个隐藏的.vault-token文件,能够直接使用之前用户登录状态操作vault及明文查看它的token。
目前官方在CLI界面没有logout操作指令,故在每次使用完之后,需手动删除自己的 .vault-token文件。
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录