LINUX.ORG.RU
решено ФорумAdmin

Как настроить SELinux чтобы он дал работать VSFTPd с файлами Apache?

 , ,


1

2

Хочу что бы vsftpd мог писать в /var/www/sites/($USER)/... . Почитал маны, полазил по инету, в общем настроил vsftpd на использование виртуальных пользователей.

НО... Пробую зайти (Totalcomander-oм) и получаю 550 и 553 ошибки ( http://ur1.ca/dirrw - 51 и 61 строки). Как я понял - это проблема SELinux ( http://ur1.ca/dirur ). Сносить/отключать мне его не хотелось бы.

Кто-нибудь может подсказать или послать по адресу?

посылаю

Вероятно, ещё нужно будет расставить метки для содержимого /var/www/sites/ точно такие же, как в /home : в рахате6 это «user_home_dir_t».

Как-то так:

chcon -R -t user_home_dir_t /var/www/sites/

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

Включил setsebool -P httpd_enable_homedirs on... поставил user_home_dir_t на сайты ... и перестали открываться страницы ( 25.04.2013 15:52:29 httpd system_u:system_r:httpd_t:s0 6 file getattr unconfined_u:object_r:user_home_dir_t:s0 denied 607).

Так как ftp второстепенно его даже не пробовал. Вернул httpd_sys_content_t - все вернулось «на круги своя».

AvegaTM
() автор топика

он там сам пишет что сделать нужно, просто разреши

sudo grep (что он пишет) /var/log/audit/audit.log | audit2allow -M mypol

sudo semodule -i mypol.pp

dark_dance
()

2 fjoe:

httpd_user_content_t ничего не меняет. (httpd - работает, vsftpd - только читает).

2 dark_dance:

Вариант с audit2allow подойдет для нескольких сайтов, а если будет расширение? По моему это не решение, а костыль.

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

vsftpd - только читает

Раньше и этого не мог. read ... denied

16. 25.04.2013 11:52:18 vsftpd system_u:system_r:ftpd_t:s0-s0:c0.c1023 0 dir read unconfined_u:object_r:httpd_sys_content_t:s0 denied 440

Флаг для vsftpd тоже включен?

# setsebool -P ftp_home_dir on
# getsebool -a | fgrep 'ftp_home_dir'
ftp_home_dir --> on
Ну и содержание audit.log, чтобы понять где не пускают, не помешает:
tail -f /var/log/audit/audit.log | fgrep 'avc'

Вариант с audit2allow подойдет для нескольких сайтов

Подойдёт для всех сайтов. Только перед загрузкой нового модуля нужно просмотреть сгенерённый им код, не разрешил ли он чего лишнего - такое часто бывает. Но лучше сначала попробовать без доп. костылей т.к. в стандартной поставке политик всё достаточно неплохо продумано и настраивается. Особенно для распространных сервисов типа httpd и vsftpd.

а если будет расширение?

О каком расширении речь?

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

1) # getsebool -a | fgrep 'ftp_home_dir' | fpaste

ftp_home_dir --> on
tftp_home_dir --> on 
2) # tail /var/log/audit/audit.log | fpaste

http://ur1.ca/dj3gf

3) Как я понял audit2allow создает правила для каждой директории и если несколько сайтов то это можно сделать, а если несколько десятков - то уже напряжно.

4) У меня пока «крутится» несколько сайтов, но надеюсь, что со временем, их будет больше.

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

P.S.

Кажется «сам дурак» при копировании остались права root:root. Как я понял, именно они пол дня не давали писать.

Спасибо, что уделили время.

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