Первичная настройка
BI.ZONE Vault — централизованное хранилище секретов и паролей от привилегированных учетных записей.
Шаг 1. Создание политики доступа
Авторизуйтесь в веб-интерфейсе Vault.
Перейдите на вкладку Policies → Create policy.
В поле Name укажите название политики.
В поле Policy добавьте:
path "kv2/data/*" { capabilities = [read] } path "pam-ssh-client-signer/*" { capabilities = ["create", "read", "updates", "list"] } path "/sys/metrics" { capabilities = ["read"] }Нажмите Create policy.
Политика создана, включите движки Vault.
Шаг 2. Активация Secret Engine
После создания политики нужно добавить движки KV , SSH и Active Directory.
KV Secret Engine v2
Этот движок используется при подключении пользователей к ресурсам по SSH, RDP и с помощью RemoteApp через пароль.
Перейдите на вкладку по относительному пути
/ui/vault/secrets.Нажмите Secrets → Enable new engine.
Выберите KV и нажмите Next.
На вкладке Enable KV Secret Engine укажите:
Path — "kv2".
Version — "2".
Остальное — по умолчанию.
Нажмите Enable Engine
После активации отобразится страница с движком. Вернитесь в /ui/vault/secrets и активируйте остальные движки.
SSH Secret Engine
На вкладке Secret Engines нажмите Enable new engine.
Выберите SSH и нажмите Next.
На вкладке Enable SSH Secret Engine укажите:
Path — "pam-ssh-client-signer".
Method Options — оставьте без изменений.
Нажмите Enable Engine.
В открывшейся вкладке движка нажмите Create role.
Укажите:
Role Name — "worker-ssh".
Key Type — выберите ca.
Отметьте Allow user sertificate.
Нажмите Options.
В открывшемся списке:
Allowed users — укажите "*".
Allowed domains — укажите "*".
Max TTL — включите параметр и укажите "600".
Allowed critical options — укажите "{}".
Default critical options — укажите "{}".
В поле Allowed extentions укажите:
permit-pty, permit-X11-forwardingВ поле Default extentions укажите:
{ "permit-pty": "" }Нажмите Create role — параметры роли будут добавлены в движок.
Вернитесь на вкладку созданного движка pam-ssh-client-signer.
Перейдите на вкладку Configuration и нажмите Configure.
Проверьте, что включен параметр Generate signing key и нажмите Save.
После сохранения конфигурации Vault сгенерирует публичный ключ. Ключ будет использоваться для подключения к ресурсам в PAM при использовании аутентификации по SSH-ключу.
Для каждого пользователя, под которым будет выполняться подключение в PAM с аутентификацией по сертификату, добавьте сгенерированный public_key в файл .ssh/authorized_keys в домашней директории пользователя. Перед ключом необходимо указать директиву cert-authority:
cat .ssh/authorized_keys cert-authority ssh-rsa AAAA
SSH Secret Engine настроен, теперь активируйте Active Directory Secret Engine.
Active Directory Secret Engine
На вкладке
/ui/vault/secretsв Vault нажмите Enable new engine.Выберите Active Directory и нажмите Next.
Укажите:
Path — путь до каталога AD.
Method Options — оставьте без изменений.
Нажмите Enable Engine.
Движок активирован. Конфигурирование Active Directory Secret Engine выполняется с помощью curl-запросов.
Создание политики паролей
cat > pass-policy-payload.json <<EOF { "policy": "length = 25\nrule \"charset\" { charset = \"abcdefghijklmnopqrstuvwxyz\"\n min-chars = 1 }\n rule \"charset\" { charset = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n min-chars = 1 }\n rule \"charset\" { charset = \"0123456789\"\n min-chars = 1 }\n rule \"charset\" { charset = \"!@#$%^*\"\n min-chars = 1 }" } EOF curl --header 'X-Vault-Token: X' --request POST --data @pass-policy-payload.json https://server:port/v1/sys/policies/password/ad_password_policy
Конфигурирование Secret Engine ad/shadow/pam.bi.zone
cat > ldap_config_shadow.json <<EOF { "binddn": "sa-vault@dev.pam.bi.zone ", "bindpass": "X", "length": "0", "max_ttl": "31536000", "password_policy": "ad_password_policy", "ttl": "31536000", "url": "ldaps://ldap_server:636", "userdn": "OU=SHADOW,OU=Bizone,DC=dev,DC=pam,DC=bi,DC=zone", "insecure_tls": "true" } EOF curl -kvL --header 'X-Vault-Token: X' --request POST --data @ldap_config_shadow.json --url "https://server:port/v1/ad/shadow/pam.bi.zone/config" curl -kvL --header 'X-Vault-Token: X' --request GET --url https://server:port/v1/ad/shadow/pam.bi.zone/config
Маппинг пользователей из AD в Vault для Secret Engine ad/shadow/pam.bi.zone
curl -kvL --request POST --url https://server:port/v1/ad/shadow/pam.bi.zone/roles/shadow-01 --header 'Content-Type: application/json' --header 'X-Vault-Token: X' --data '{ "service_account_name": "shadow-01@pam.bi.zone", "ttl": "5184000" }'
Теперь нужно добавить движки в PAM.
Шаг 3. Добавление движков в БД PAM
После настройки движков Vault, добавьте записи в таблицу vault базы данных PAM:
INSERT INTO pam.vault (id, "name", fqdn, port, "attributes", description, update_at) VALUES (gen_random_uuid(), 'ldap', ‘$LDAP_FQDN, 443, '{"name": "control", "mount": "ldap", "secret_engine": "ad"}'::jsonb, 'ldap engine puz', now());
где $LDAP_FQDN — FQDN на котором развернут Vault.
Теперь нужно включить и настроить методы аутентификации.
Шаг 4. Настройка Authentication Methods
Настройка нужна для подключения компонента Control к PAM Secman и работы Control с созданными Secret Engine.
В Vault перейдите в раздел Access.
На вкладке Authentication Methods нажмите Enable new method.
Выберите TLS Certificates и нажмите Next.
В поле Path укажите метод аутентификации "cert".
Нажмите Method Options. В открывшемся списке:
List method when unauthenticated — снимите флаг.
Default Lease TTL — отключите параметр.
Max Lease TTL — отключите.
Token Type — выберите Select one.
Нажмите Enable Method.
В окне метода перейдите на вкладку Certificate и нажмите Create certificate.
Заполните:
Name — название сертификата, например "pam".
Certificate — вставьте PEM корневого CA.
Display name — отображаемое название сертификата, например "pam".
Нажмите Constraints и заполните поля в выпадающем списке.
Allowed common names:
control.apps.pam.bi.zone pam.bi.zoneGenerated Token's Policies — "pam"
Generated Token's Initial TTL — включите параметр, укажите "60" и выберите seconds.
Generated Token's Type — "service"
Остальные поля оставьте пустыми.
Нажмите Save.
Настройка метода авторизации выполнена, теперь настройте LDAP auth-метод.
Шаг 5. Настройка LDAP auth-метода
Настройка нужна, чтобы предоставить доступ через UI к PAM secman. Чтобы настроить доступ, внесите правки в конфигурационные файлы Vault.
# Активация auth-метода /opt/vault/usr/bin/vault auth enable ldap # Конфигурация auth-метода # Пользователи будут загружаться из userdn, группы из groupdn, binddb+bindpass – для учетной записи которая может забирать пользователей и группы /opt/vault/usr/bin/vault write auth/ldap/config \ url="ldaps://ldap_server:636" \ userattr="sAMAccountName" \ userdn="ou=UA,ou=Bizone,dc=dev,dc=pam,dc=bi,dc=zone" \ discoverdn=true \ groupdn="ou=Groups,ou=Bizone,dc=dev,dc=pam,dc=bi,dc=zone" \ groupfilter="(&(objectClass=group))" \ groupattr="cn" \ certificate=@ldap_ca_cert.pem \ insecure_tls=true \ starttls=true \ binddn="sa-vault@pam.bi.zone" \ bindpass="X" # Cоздание политики для группы из AD /opt/vault/usr/bin/vault policy write admin-pam - <<EOF path "*" { capabilities = ["read","create","update"] } EOF # Создание маппинга группа → политика /opt/vault/usr/bin/vault write auth/ldap/groups/PAM-ConfigAdmins policies=admin-pam # Проверка – логин в vault через ldap auth-метод /opt/vault/usr/bin/vault login -method=ldap username=test # Если при аутентификации нет warning-сообщений, это означает что маппинг работает корректно # Чтобы добавить пользователю дополнительную политику /opt/vault/usr/bin/vault write auth/ldap/groups/admin-pam policies=admin-pam /opt/vault/usr/bin/vault write auth/ldap/users/test groups=admin-pam policies=admin-pam # Можно будет через UI выбрать LDAP метод и заходить в Vault по пользователю test из AD # Это аналог /opt/vault/usr/bin/vault login -method=ldap username=test