Рейтинг:0

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

флаг in

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

ПРОЧТИ МЕНЯ для модуля 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 "Защищенная область";
auth_pam_service_name "nginx";

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

требуется авторизация /usr/lib/security/pam_unix.so
требуется учетная запись /usr/lib/security/pam_unix.so

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

группадобавить тень
usermod -a -G тень nginx
корень chown: тень /etc/shadow
chmod g+r /etc/тень

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

ls -l /etc/тень

и вот что получилось...

----р-----. 1 корневая тень 1390, 30 августа, 12:51 /etc/shadow

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

флаг in
Привет @Nebek Вы можете уточнить этот вопрос, предоставив точные сведения о том, как вы настроили Pam. (например, файлы, которые вы добавили/настроили в `/etc/pam.d/nginx*`), так как это позволит ответить на вопрос, почему доступ не был предоставлен.
Рейтинг:0
флаг in

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

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

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

yum -y установить https://extras.getpagespeed.com/release-latest.rpm
yum -y установить nginx-module-auth-pam

Если нет: захватите или создайте из https://github.com/jfut/nginx-module-auth-pam-rpm

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

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

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

Nebek avatar
флаг in
Привет @Lutz Willek, не могли бы вы рассказать мне, как получить и собрать rpm nginx-module-auth-pam, и если есть какие-либо другие шаги, которые мне нужно предпринять. Благодарю вас!
флаг in
Уже предоставлено в моем ответе. Скачать: https://github.com/jfut/nginx-module-auth-pam-rpm/releases и Readme https://github.com/jfut/nginx-module-auth-pam-rpm/blob/master/README .мд

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.