auth_pam_set_pam_env
Директива `auth_pam_set_pam_env` включает экспорт переменных NGINX в окружение PAM во время аутентификации.
Описание
Директива auth_pam_set_pam_env используется в контексте PAM-аутентификации NGINX для указания, должны ли переменные окружения из NGINX передаваться в стек PAM при аутентификации пользователя. Если эта директива установлена в 'on', модуль экспортирует переменные HOST и REQUEST, что позволяет модулям PAM получать информацию о входящем запросе. Это особенно полезно для модулей, которым нужен контекст входящего запроса для принятия решений об аутентификации, например при использовании pam_exec.so для запуска пользовательских скриптов, проверяющих доступ пользователя на основе деталей запроса.
Параметр директивы — булев флаг и может быть установлен в 'on' или 'off'. По умолчанию, если явно не задано, флаг равен 'off', что означает, что окружение PAM не будет получать переменные NGINX. Пользователям следует учитывать последствия экспорта этих переменных с точки зрения безопасности и производительности, поскольку раскрытие большего объёма информации механизмам аутентификации может потенциально увеличить поверхность атаки. Директиву можно размещать в контекстах http, server, location или limit_except, что позволяет гибко настраивать поведение в зависимости от потребностей организации в аутентификации.
Пример конфига
location /pam_exec_protected {
auth_pam "Exec Zone";
auth_pam_service_name "nginx_exec";
auth_pam_set_pam_env on;
}Не забудьте проверить разрешения модулей PAM, поскольку они должны иметь соответствующий доступ без привилегий root.
Убедитесь, что environment variables не раскрывают конфиденциальную информацию и не создают уязвимостей.
Если PAM environment variables не нужны, рекомендуется оставить эту директиву в положении 'off' по соображениям производительности и безопасности.