Что нужно сделать при обновлении до 2.3
Предварительные условия
Получите релиз с обновлениями. Обновление производится с учетом вашей схемы развертывания и внутренних регламентов обновления ПО.
Выполните резервное копирование БД PAM.
Запланируйте окно обслуживания.
Шаг 1. Настройка TTL токенов в Keycloak
Версия PAM 2.2.
Войдите в Keycloak → Realm → pam → Clients.
Выберите клиент
web-site.Перейдите в Advanced → Advanced Settings.
Установите:
Access Token Lifespam = 1mВ Clients выберите
control.Перейдите в Advanced → Advanced Settings.
Установите:
Access Token Lifespam = 15mВ
.envфайле сервиса Control измените:KEYCLOACK_REFRESH: 5m
Шаг 2. Указание FQDN для ресурсов
Версия PAM 2.2.
Перейдите в раздел Ресурсы.
Откройте первый в списке ресурс и проверьте заполнение поля FQDN. Если FQDN отсутствует, укажите IP-адрес и сохраните изменение.
Повторите для каждого ресурса.
Шаг. 3 Проверка наличия атрибутов в User Profile
Версия PAM 2.2.
Откройте Keycloak → Realm
pam→ Realm settings → User Profile → Attrubutes Group.Проверьте наличие группы по умолчанию. Если такая отсутствует, создайте ее.
Шаг 4. Изменение конфигурационного файла Control
Версия PAM 2.2.
Добавлена альтернативная конфигурация на control. Теперь структура выглядит следующим образом:
grpc: common: port: 9080 reflection: true security: cert: deploy/config/production/certs/test.crt enabled: true key: deploy/config/production/certs/test.key use_mtls: false ca_cert: deploy/config/production/certs/client.cert.pem insecure_skip_verify: false # example of second grpc server configuration, it can be used together with main grpc config #alt: # port: 9081 # reflection: true # security: # cert: certs/test.crt # enabled: false # key: certs/test.key # use_mtls: false # ca_cert: certs/ca.cert.pem # cert_cn_regexp: # log_error_response: true
На окружениях, где не требуется 2 конфигурации, альтернативную можно закомментировать и не использовать.
Чтобы переопределить настройку в .env файле необходимо поправить путь:
GRPC_COMMON_SECURITY_ENABLED=false # аналогично для alt конфигурации GRPC_ALT_SECURITY_ENABLED=false
Шаг 5. Изменение шаблона SSH-подключений
Версия PAM 2.2.
Если для подключений по SSH используются нестандартные порты:
Перейдите в Настройки системы → Основные настройки → Подключения.
В поле Шаблон строки SSH-подключения обновите шаблон:
ssh -p {{.WorkerLBPort}} {{.UserLogin}}@{{.CredentialLogin}}@{{.TargetFQDN}}^{{.TargetPort}}@{{.WorkerLBFQDN}}
Разделитель порта по умолчанию — карет ("^").
Шаг 6. Импорт пользователей и групп из AD или LDAP
Версия PAM 2.2.
Перед настройкой
group-mapperсоздайте родительскую группу, которая будет содержать все импортированные группы.Имя родительской группы должно начинаться с
Remote-, напримерRemote-AD.Настройте родительскую группу:
Для созданной федерации добавьте
hardcoded-mapperв список мапперов:Name —
isremote-mapperMapper Type—
hardcoded-attribute-mapperUser Model Attribute Name —
isRemoteAttribute Value —
true
Шаг 7. Настройка ротации ПУЗ в LDAP через Vault
Версия PAM 2.2.2.
Создать LDAP-движок в Vault.
Настройте TTL:
Тип учетной записи
ttlmax_ttlПУЗ
2592000(1 месяц)31536000(1 год)ТУЗ
31536000(1 год)31536000(1 год)Shadow user
2592000(1 месяц)31536000(1 год)Выдайте ACL Policy по аналогии с движком для
shadowuser.Добавить запись о движке в БД PAM, в таблицу
pam.vault.Создайте static-роли для ПУЗ.
Создайте в PAM учетные записи и SSH-подключения.
Шаг 8. Оптимизация размера сессии
Версия PAM 2.2.3.
В файле конфигурации worker-ssh добавьте:
SERVICE_SPLIT_FILE=12 # Количество секунд, через которые файл будет "ротироваться". При значении 12 секунд будет генерироваться 5 файлов in и out каждую минуту.В файле конфигурации web-api добавьте:
API_MODULES_FILES_READ_SIZE_KB: 51200 # Размер в килобайтах, который будет лимитом при отдаче чанков ssh-сессии клиенту (браузеру)
Настройки указаны для активных сессий, где много stdin и stdout событий. Эти настройки можно пропорционально корректировать. Если увеличивается размер чанка, например, до 15 минут, то размер файла на web-api должен увеличиваться до нескольких сотен Мб.
Примечания:
Если в течение заданного количества секунд (
SERVICE_SPLIT_FILE) не было новых событий в stdin или stdout, будет создан пустой файл за заданный промежуток времени. Пустые файлы сworker-sshне будут отправлены в хранилище s3.Если размер файла в s3 превышает заданный лимит (
API_MODULES_FILES_READ_SIZE_KB), то файл будет отдан, но обрезан по заданному лимиту. Данные по сессии будут также отображаться частично обрезанными.При сокращении длительности чанка, количество чанков растет, но размер каждого держится в определенных границах. Лимит на
web-apiможно держать небольшим.При увеличении длительности чанка, количество чанков сокращается, но растет их объем. В этом случае, корректное отображение сессии на веб-портале может занять время.
Шаг 9. Валидация поля username в web-site
Версия PAM 2.2.4.
Чтобы исправить валидацию поля username в Keycloak и на web-site:
Откройте Keycloak → Realm
pam→ Realm Settins → User Profile.Откройте настройки поля username.
Добавьте локализацию для Display Name.
Удалите валидатор
prohibited-username-characters.Добавьте валидатор Patterns со значением
^[A-Za-z0-9'._!#^~$-]+$.Измените валидатор Length на
min=3,max=32.Сохраните настройки.
Шаг 10. Включите управление Unmanaged Attributes
Версия PAM 2.2.3.
Откройте Keyckloak → Realm
pam→ Realm Settings → General.Включите Unmanaged Attributes.
Шаг 11. Включение mTLS для gRPC
Для использования подключения воркеров к control по протоколу gRPC через mTLS:
Включите на
controlсервер gRPC при помощи переменных окружения, например:GRPC_COMMON_PORT: 9080 GRPC_COMMON_REFLECTION: false GRPC_COMMON_SECURITY_ENABLED: true GRPC_COMMON_SECURITY_USE_MTLS: true GRPC_COMMON_SECURITY_CERT: /bpam/volumes/ssl/vault_cert.pem GRPC_COMMON_SECURITY_KEY: /bpam/volumes/ssl/vault_key.pem GRPC_COMMON_SECURITY_CA_CERT: /bpam/volumes/ssl/ca_cert.pemИли укажите их в конфигурационном файле.
Включите использование mTLS на
rdpctl, указав настройки в конфигурации:grpcHost = {{ control_domain_name }} grpcPort = 9080 grpcUseSsl = 1 grpcUseMtls = 1 grpcPemRootCertsPath = /opt/bpam/worker-rdp/etc/cert/ca.pem grpcPemCertChainPath = /opt/bpam/worker-rdp/etc/cert/rdpctl_cert.pem grpcPemPrivateKeyPath = /opt/bpam/worker-rdp/etc/cert/rdpctl_key.pemУкажите настройки mTLS в конфигурации
worker-ssh:CONTROL_GRPC_ADDRESS: "{{ control_domain_name }}:9080" CONTROL_GRPC_AUTH_USE_MTLS: true CONTROL_GRPC_AUTH_USE_TLS: true CONTROL_GRPC_AUTH_CLIENT_CERT: /etc/bpam/worker-ssh/certs/worker_ssh_cert.pem CONTROL_GRPC_AUTH_CLIENT_KEY: /etc/bpam/worker-ssh/certs/worker_ssh_key.pem CONTROL_GRPC_AUTH_CA_CERT: /etc/bpam/worker-ssh/certs/ca_cert.pem
Обратите внимание, что у сертификатов воркеров должны быть соответствующие клиентские флаги:
X509v3 Extended Key Usage: TLS Web Client Authentication X509v3 Key Usage: critical Digital Signature, Key Encipherment, Key Agreement
Шаг 12. Дополнительные типы событий в Keycloak
Добавление типов необходимо для корректной регистрации событий аудита: операций входа, выхода и ошибок этих операций в PAM.
Версия PAM 2.5.
Откройте Keycloak → Realm
pam→ Realm Settings → Events → User events settings.В Event saved types добавьте типы событий:
Login error
Logout error
В итоге, в списке событий должны получиться Login, Login error, Logout, Logout error.