LINUX.ORG.RU
ФорумAdmin

Selinux не даёт запуститься nginx

 , ,


0

1

После рестарта начались проблемы с nginx и selinux. ошибка досутпа к ssl-pem файлам

restorecon -v -r /etc/nginx/ssl вроде стало рабоать

После отработал скрипт на обновление Ocsr перегрузкой nginx

После перезапуска службы тажа самая ошибка:

DOMAIN systemd[1]: Starting Session 439 of user root. -- Subject: Unit session-439.scope has begun start-up -- Defined-By: systemd -- Unit session-439.scope has begun starting up. Jun 08 06:30:02 DOMAIN CROND[16408]: (root) CMD (/usr/local/sbin/script.sh) Jun 08 06:30:02 DOMAIN CROND[16409]: (root) CMD (/usr/local/bin/script.pl >/dev/null) Jun 08 06:31:31 DOMAIN sshd[16419]: Connection closed by 10.1.1.1 [preauth] Jun 08 06:33:47 DOMAIN run-parts(/etc/cron.daily)[16518]: starting refresh-ocsp Jun 08 06:33:56 DOMAIN systemd[1]: Stopping nginx - high performance web server...

-- Subject: Unit nginx.service has begun shutting down -- Defined-By: systemd -- Unit nginx.service has begun shutting down. Jun 08 06:33:56 DOMAIN systemd[1]: Starting nginx - high performance web server... -- Subject: Unit nginx.service has begun start-up -- Defined-By: systemd

-- Unit nginx.service has begun starting up. Jun 08 06:33:56 DOMAIN nginx[16568]: nginx: [emerg] BIO_new_file(«/etc/nginx/ssl/CLIENT-ocsp.pem») failed (SSL: error:0200100D:system library:fopen:Permission den Jun 08 06:33:56 DOMAIN nginx[16568]: nginx: configuration file /etc/nginx/nginx.conf test failed Jun 08 06:33:56 DOMAIN systemd[1]: nginx.service: control process exited, code=exited status=1 Jun 08 06:33:56 DOMAIN systemd[1]: Failed to start nginx - high performance web server. -- Subject: Unit nginx.service has failed -- Unit nginx.service has failed.

После restorecon -R -v /etc/nginx/ssl/*.pem после nginx запустился

Куда смотреть? ПРодакшн сервер, у меня первые недели на этой работе... много своих приколов Aпач и fpm на другой ВМ, на это только прокси

Общее: [root@domain etc]# ausearch -m avc -ts today | audit2allow

#============= httpd_t ==============

#!!!! WARNING 'httpd_t' is not allowed to write or create to var_run_t. Change the label to httpd_var_run_t. allow httpd_t var_run_t:file { read write };

Ответ на: комментарий от mkgeka

# setsebool -P httpd_read_user_content 1 предлагает, учитвая что апач на стороне, не совсем понимаю корректность

biowulfus ()

не очень понятно причем тут ssl если ругается на var_run_t

Перед тем как делать restorecon проверь какой selinux контекст у этих файлов был до и какой стал после.

Плюс есть вероятность что дело не в нём а просто во втором рестарте.

alpha ★★★★★ ()
Последнее исправление: alpha (всего исправлений: 1)
Ответ на: комментарий от mkgeka

В самом пиковом случаи Вы можете написать скрипт, что б после генерации выполнялось restorecon -R -v /etc/nginx/ssl/*.pem

это конечно костыль, но как временное решение пока не найдете в чем проблема.

И Вы не написали какой пользователь запускает скрипт на обновление Ocsr.

mkgeka ()
Последнее исправление: mkgeka (всего исправлений: 1)
Ответ на: комментарий от alpha

-- Unit nginx.service has begun starting up. Jun 08 06:33:56 DOMAIN nginx[16568]: nginx: [emerg] BIO_new_file(«/etc/nginx/ssl/CLIENT-ocsp.pem») failed (SSL: error:0200100D:system library:fopen:Permission den Jun 08 06:33:56 DOMAIN nginx[16568]: nginx: configuration file /etc/nginx/nginx.conf test failed Jun 08 06:33:56 DOMAIN systemd[1]: nginx.service: control process exited, code=exited status=1 Jun 08 06:33:56 DOMAIN systemd[1]: Failed to start nginx - high performance web server. — Subject: Unit nginx.service has failed — Unit nginx.service has failed. Как бы отсюда :)

Был один рестарт, после был только перезапуск Nginx'a

biowulfus ()
Ответ на: комментарий от biowulfus

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

mkgeka ()
Ответ на: комментарий от biowulfus

какой-то там подозрительный скрипт у тебя

Он копирует файлы или перекладывает?

Потому что если перекладывает, то

Files and directories keep their current SELinux context when they are moved. In many cases, this is incorrect for the location they are being moved to.

То есть если он создает ключи где-то в сторонке а потом подкладывает их nginx-у, то selinux-контекст сбивается и его придется именно что через restorecon возвращать.

А вот при копировании файлов файл получает новый контекст соответствующий пункту назначения.

alpha ★★★★★ ()
Последнее исправление: alpha (всего исправлений: 1)
Ответ на: комментарий от mkgeka

Самое смешное - ведь раньеш от рута работало и не вызывало никаких проблем.

ll /etc/nginx/ | grep ssl drwxr-xr-x. 3 root nginx 4096 Jun 8 06:33 ssl

ll -Z /etc/nginx/ssl/CLIENT-ocsp.pem -rw-r--r--. root root system_u:object_r:httpd_config_t:s0 /etc/nginx/ssl/CLIENT-ocsp.pem

biowulfus ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.