Vault部署保姆级教程

admin 2023年7月24日17:28:22评论111 views字数 3570阅读11分54秒阅读模式

Vault部署保姆级教程

 

Vault部署

官方文档:

https://developer.hashicorp.com/vault/downloads

软件运行环境

操作系统发行版及版本:自己选
Vault版本:XXXX
Vault配置文件路径:/etc/vault.d/vault.hcl
Vault环境变量路径:/etc/vault.d/vault.env
Vault TLS文件路径:/opt/vault/tls
MySQL版本:最新就行
库名:vault
表名:vault
账号:自己创建

安全加固

安全加固官方文档:https://lonegunmanb.github.io/essential-vault/9.%E5%AE%9E%E9%99%85%E6%A1%88%E4%BE%8B/7.production-hardening.html

部署过程

1 安装vault

# 操作系统Debian

# 安装版本:开源 1.13.1

apt install gpgwget -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.listsudo apt update && sudo apt install vault


2 准备mysql环境

后端存储:MySQL
MySQL版本:XXX
MySQL个数:1
MySQL备份:每天一全备
地址:IP
库名:vault 表名:vault
账号:username/password

3 建立自己的证书颁发机构 (CA)(server)

# 创建 CA 私钥,生成一个新的私钥文件 ca.keyopenssl 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.pemopenssl 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.xxxxx,IP:10.xxxxx > extfile.cnfecho 01 > ca.srlopenssl 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 = truedisable_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用

mkdir -p /var/log/vault/chown vault:vault /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/auditchown 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身份认证方式

  1. 为每个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文件



原文始发于微信公众号(安全info):Vault部署保姆级教程

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年7月24日17:28:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Vault部署保姆级教程https://cn-sec.com/archives/1903218.html

发表评论

匿名网友 填写信息