The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Как сменить корень документов в Apache/nginx в CentOS 7 и RHEL 7 с SELinux
По умолчанию для Apache, nginx  и других http-серверов при использовании
SELinux в CentOS 7 и RHEL 7 область видимости ограничена директорией /var/www.
Для смены корня документов на /home/site следует включить новые директории в
правила httpd_sys_content_t и httpd_sys_script_exec_t.


Включаем временно:
   chcon -R -t httpd_sys_content_t /home/site
   chcon -R -t httpd_sys_script_exec_t /home/site/cgi-bin

Включаем постоянно:
   semanage fcontext -a -t httpd_sys_content_t "/home/site(/.*)?"
   semanage fcontext -a -t httpd_sys_script_exec_t "/home/site/cgi-bin(/.*)?"
   restorecon -r -v /home/site


Отслеживаем возможные проблемы в /var/log/audit/audit.log и при необходимости
строим свои правила обхода. В качестве шаблона можно использовать результат
работы утилиты audit2allow:

   audit2allow -M policy_name -i /var/log/audit/audit.log 
   semodule -i policy_name.pp


Не забываем открыть доступ к сетевым портам на межсетевом экране:
   firewall-cmd --permanent --add-port=80/tcp
   firewall-cmd --permanent --add-port=443/tcp
 
04.09.2015
Ключи: centos, rhel, selinux, apache, httpd / Лицензия: CC-BY
Раздел:    Корень / Безопасность / Помещение программ в chroot

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Продавец_кирпичиков_из_говна (?), 13:10, 04/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    audit2allow -M policy_name -i /var/log/audit/audit.log
    Никогда так не делай, а если делаешь - не советуй такое нигде кроме лисяры и опеннета.
     
     
  • 2.2, Alexander (ok), 13:24, 04/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А в чем проблема? Редхэт официально так советует:
    https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/
     
     
  • 3.4, Stax (ok), 22:49, 04/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    В том, что не советуют они так просто делать - и по этой ссылке упомянуто несколько довольно важных нюансов. Не говоря уж о других решениях, типа setroubleshoot, который дает иногда осмысленные рекомендации об отсутствующих контекстах или boolean'ах.
     
  • 3.5, Алексей (??), 11:23, 05/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема в том, что этой командой вы разрешите ВСЁ без разбора.
     
     
  • 4.6, Alexander (ok), 12:29, 07/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Проблема в том, что этой командой вы разрешите ВСЁ без разбора.

    Да, согласен, автору стоило это отметить

     
  • 3.9, PnDx (ok), 17:14, 10/09/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Я бы примерно так делал (на примере nsd):
    # Пока отлаживаем
    setenforce Permissive
    grep nsd /var/log/audit/audit.log | audit2allow -m nsd_ns1
    # Читаем, что вышло. Осмысливаем, там _иногда_ разумно про setsebool советуют.
    # По итогам, втыкаем политику ("nsd" уже есть, так что меняем имя)
    grep nsd /var/log/audit/audit.log | audit2allow -M nsd_ns1 ; semodule -i nsd_ns1.pp
    #Всё, проверяем
    setenforce Enforcing
     

  • 1.7, manofring (?), 13:36, 07/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    следовало бы еще добавить
    firewall-cmd --reload
    А то ведь люди (нубы) буду страдать :)
     
     
  • 2.15, leap42 (ok), 19:38, 03/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    не надо так делать, это противоречит самой сути firewalld
    firewall-cmd --add-port=80/tcp
    firewall-cmd --add-port=80/tcp --permanent
     

  • 1.8, manofring (?), 13:39, 07/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И вообще раз уж вы хотите что бы юзеры могли свой контент делать в хомяках через Apache, есть готовая фича в индейце user_dirs по моему. Включаешь в конфиге Апача эту фичу и вперед, у selinux там есть булева переменная для разрешения.
     
  • 1.10, pavlinux (ok), 02:46, 14/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > ... при использовании SELinux

    Ви таки считаете, что поделка от АНБ защитит вас лучше, чем sys_chdir() вызываемая из апача?

     
     
  • 2.14, Аноним (-), 16:41, 02/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Просто обычные грабли уже приелись, хотят новых, вот и пишут мануалы по операциям, которые обычно даже не упомянаются ввиду абсолютной очевидности и тривиальности.
     

  • 1.12, гость (?), 09:46, 23/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    простите, а для чего вообще изначально вся эта затея?
     
  • 1.13, manofring (?), 22:34, 29/09/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    3 последних комментатора - ни очем, спамеры.
    Кстати никакой разницы для какого веб-сервера вы меняете root, хоть NginX хоть Apache, тип контекста selinux у них одинаковы.
    Pavlinux - если начал договаривай, сказал как в тазик с водой пернул, слышно и пахнет но известно откуда оно?
    последний ваще высер написал.
     
  • 1.16, Sw00p aka Jerom (?), 17:56, 09/10/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    setenforce Disabled анбнегодует )
     
  • 1.17, bagas (ok), 20:26, 31/10/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Жуть!, зачем так все усложнять!
    Видать разроботчики хотят выпендрется, что типа они идут по другому пути развития, а в этоге просто палки в колеса сами себе вставляют.
    rpm системы ужасны до неузноваемости! Не логичны!
     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру