Как предоставить пользователю веб-сервера разрешение на чтение файла / etc / shadow?

, что я хотел бы, чтобы локальный пользователь Linux мог пройти аутентификацию (вход в систему) с помощью модуля Nginx PAM. Я использую сервер CentOS 7. В частности, я пытаюсь сделать следующее ...

В README для модуля ngx http auth pam говорится:

Обратите внимание, что модуль запускается как пользователь веб-сервера, поэтому PAM используемые модули должны иметь возможность аутентифицировать пользователей, не будучи root; это означает, что если вы хотите использовать модуль pam_unix.so для аутентификации пользователей, вам необходимо разрешить пользователю веб-сервера читать файл / etc / shadow, если это вас не пугает (в системах, подобных Debian, вы можете добавить www-data пользователя в теневую группу).

Мой первый вопрос: является ли в данном случае nginx пользователем веб-сервера? Мой второй вопрос: как я могу установить разрешения для пользователя веб-сервера на чтение файла / etc / shadow? Кто-нибудь может предоставить мне шаги, которые сработали для них. Я следил за многими учебниками, которые нашел в Интернете, но безуспешно. В настоящее время при доступе к сайту, на который я хочу, чтобы локальный пользователь Linux мог войти, я получаю запрос на аутентификацию (для ввода имени пользователя и пароля), но при вводе учетных данных локального пользователя Linux это безуспешно, и просто предлагает мне ввести его снова.

Спасибо, любая помощь приветствуется, и при необходимости я могу предоставить дополнительную информацию.

Редактировать:

Я настроил PAM в nginx, сначала построив nginx из исходного кода, выполнив шаги здесь . В моем файле nginx.conf я добавил следующую строку вверху, чтобы включить модуль PAM ...

load_module /etc/nginx/modules/ngx_http_auth_pam_module.so;

Я также включил две строки ниже в свою директиву местоположения в nginx.conf ...

auth_pam "Secure area";
auth_pam_service_name "nginx";

В каталог '/etc/pam.d' для служебного файла nginx у меня есть следующие две строки ...

auth required /usr/lib/security/pam_unix.so
account required /usr/lib/security/pam_unix.so

Глядя на README для модуля ngx http auth pam, я вижу, что у меня есть чтобы дать пользователю веб-сервера разрешение на чтение файла / etc / shadow. Для этого я сначала создал новую группу под названием «тень». Затем я назначил пользователя веб-сервера (предполагаю, что это nginx) в «теневую» группу. Затем я изменил разрешения для файла / etc / shadow. Команды, которые я выполнил для этого, приведены ниже ...

groupadd shadow
usermod -a -G shadow nginx
chown root:shadow /etc/shadow
chmod g+r /etc/shadow

После этого я проверил разрешения для файла / etc / shadow с помощью команды

ls -l /etc/shadow

, и вот какой результат был ...

----r-----. 1 root shadow 1390 Aug 30 12:51 /etc/shadow

I также установите пароль для пользователя nginx. И, чтобы повторить, при доступе к сайту, на котором я хочу пройти аутентификацию, когда я ввожу имя пользователя и пароль nginx, он снова предлагает мне ввести его.

0
задан 30 August 2021 в 18:50
1 ответ

Полагаю, вы уже установили nginx-module-auth-pam, а также настроили /etc/pam.d/nginx.

Если нет: установите файл rpm, так как все будет настроено за вас. Другими словами: вам не нужно вручную настраивать параметры доступа /etc/shadow. На самом деле вы не должны настраивать /etc/shadow, если вы используете pam. Этот файл содержит (хэшированные) пароли для ваших пользователей, поэтому, кроме того, вы не хотите предоставлять никаким процессам или программам (кроме pam) или пользователям (кроме root) доступ к этому файлу по соображениям безопасности.

Если у вас есть подписка:

yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install nginx-module-auth-pam

Если нет: возьмите или соберите из https://github.com/jfut/nginx-module-auth-pam-rpm

Почему бы не отвечать только на ваши вопрос? Поскольку примеры, которые вы привели, предназначены для систем, подобных Debian, но способ его настройки немного отличается для систем, подобных Redhat, таких как CentOS 7.

Вы найдете дополнительные примеры конфигурации для этого модуля в GitHub .

Также посетите https://nginx-extras.getpagespeed.com/ для получения дополнительных примеров конфигурации.

0
ответ дан 30 August 2021 в 19:06

Теги

Похожие вопросы