Chris PeBenito 164772
.TH  "httpd_selinux"  "8"  "17 Янв 2005" "dwalsh@redhat.com" "httpd Selinux Policy documentation"
Chris PeBenito 164772
.de EX
Chris PeBenito 164772
.nf
Chris PeBenito 164772
.ft CW
Chris PeBenito 164772
..
Chris PeBenito 164772
.de EE
Chris PeBenito 164772
.ft R
Chris PeBenito 164772
.fi
Chris PeBenito 164772
..
Chris PeBenito 164772
.SH "НАЗВАНИЕ"
Chris PeBenito 164772
httpd_selinux \- Политика Security Enhanced Linux для демона httpd
Chris PeBenito 164772
.SH "ОПИСАНИЕ"
Chris PeBenito 164772
Chris PeBenito 164772
Security-Enhanced Linux обеспечивает защиту сервера httpd при помощи гибко настраиваемого мандатного контроля доступа.  
Chris PeBenito 164772
.SH КОНТЕКСТ ФАЙЛОВ
Chris PeBenito 164772
SELinux требует наличия у файлов расширенных атрибутов, определяющих тип файла. 
Chris PeBenito 164772
Политика управляет видом доступа демона к этим файлам.
Chris PeBenito 164772
Политика SELinux для демона httpd позволяет пользователям настроить web-службы максимально безопасным методом с высокой степенью гибкости.
Chris PeBenito 164772
.PP 
Chris PeBenito 164772
Для httpd определены следующие контексты файлов:
Chris PeBenito 164772
.EX
Chris PeBenito 164772
httpd_sys_content_t 
Chris PeBenito 164772
.EE 
Chris PeBenito 164772
- Установите контекст httpd_sys_content_t для содержимого, которое должно быть доступно для всех скриптов httpd и для самого демона.
Chris PeBenito 164772
.EX
Chris PeBenito 164772
httpd_sys_script_exec_t  
Chris PeBenito 164772
.EE 
Chris PeBenito 164772
- Установите контекст httpd_sys_script_exec_t для cgi-скриптов, чтобы разрешить им доступ ко всем sys-типам.
Chris PeBenito 164772
.EX
Chris PeBenito 164772
httpd_sys_script_ro_t 
Chris PeBenito 164772
.EE
Chris PeBenito 164772
- Установите на файлы контекст httpd_sys_script_ro_t если вы хотите, чтобы скрипты httpd_sys_script_exec_t могли читать данные, и при этом нужно запретить доступ другим не-sys скриптам.
Chris PeBenito 164772
.EX
Chris PeBenito 164772
httpd_sys_script_rw_t 
Chris PeBenito 164772
.EE
Chris PeBenito 164772
- Установите на файлы контекст httpd_sys_script_rw_t если вы хотите, чтобы скрипты httpd_sys_script_exec_t могли читать и писать данные, и при этом нужно запретить доступ другим не-sys скриптам.
Chris PeBenito 164772
.EX
Chris PeBenito 164772
httpd_sys_script_ra_t 
Chris PeBenito 164772
.EE
Chris PeBenito 164772
- Установите на файлы контекст httpd_sys_script_ra_t если вы хотите, чтобы скрипты httpd_sys_script_exec_t могли читать и добавлять данные, и при этом нужно запретить доступ другим не-sys скриптам.
Chris PeBenito 164772
.EX
Chris PeBenito 164772
httpd_unconfined_script_exec_t  
Chris PeBenito 164772
.EE 
Chris PeBenito 164772
- Установите на cgi-скрипты контекст httpd_unconfined_script_exec_t если вы хотите разрешить
Chris PeBenito 164772
им исполняться без какой-либо защиты SELinux. Такой способ должен использоваться только для
Chris PeBenito 164772
скриптов с очень комплексными требованиями, и только в случае, если все остальные варианты настройки не дали результата. Лучше использовать скрипты с контекстом httpd_unconfined_script_exec_t, чем выключать защиту SELinux для httpd.
Chris PeBenito 164772
Chris PeBenito 164772
.SH ЗАМЕЧАНИЕ
Chris PeBenito 164772
Вместе с некоторыми политиками, вы можете определить дополнительные контексты файлов, основанные
Chris PeBenito 164772
на ролях, таких как user или staff. Может быть определен контекст httpd_user_script_exec_t, который будет иметь доступ только к "пользовательским" контекстам.
Chris PeBenito 164772
Chris PeBenito 164772
.SH СОВМЕСТНОЕ ВЛАДЕНИЕ ФАЙЛАМИ
Chris PeBenito 164772
Если вы хотите организовать между несколькими доменами (Apache, FTP, rsync, Samba) совместный
Chris PeBenito 164772
доступ к файлам, то вы можете установить контекст файлов в public_content_t и public_content_rw_t.
Chris PeBenito 164772
Данный контекст позволяет любому из выше перечисленных демонов читать содержимое.
Chris PeBenito 164772
Если вы хотите, чтобы конкретный домен имел право записи в домен public_content_rw_t, вы должны
Chris PeBenito 164772
установить соответствующий переключатель allow_ДОМЕН_anon_write. Таким образом, для httpd вы должны выполнить команду:
Chris PeBenito 164772
Chris PeBenito 164772
.EX
Chris PeBenito 164772
setsebool -P allow_httpd_anon_write=1
Chris PeBenito 164772
.EE
Chris PeBenito 164772
Chris PeBenito 164772
или 
Chris PeBenito 164772
Chris PeBenito 164772
.EX
Chris PeBenito 164772
setsebool -P allow_httpd_sys_script_anon_write=1
Chris PeBenito 164772
.EE
Chris PeBenito 164772
Chris PeBenito 164772
.SH ПЕРЕКЛЮЧАТЕЛИ (BOOLEANS)
Chris PeBenito 164772
Политика SELinux настроена исходя из принципа наименьших привилегий. Таким образом,
Chris PeBenito 164772
по умолчанию SELinux препятствует работе некоторых http-скриптов. Политика httpd весьма
Chris PeBenito 164772
гибка, и существующие переключатели управляют политикой, позволяя httpd выполняться
Chris PeBenito 164772
с наименее возможными правами доступа.
Chris PeBenito 164772
.PP
Chris PeBenito 164772
Если вы хотите, чтобы httpd мог исполнять cgi-скрипты, установите переключатель httpd_enable_cgi
Chris PeBenito 164772
.EX
Chris PeBenito 164772
setsebool -P httpd_enable_cgi 1
Chris PeBenito 164772
.EE
Chris PeBenito 164772
Chris PeBenito 164772
.PP
Chris PeBenito 164772
По умолчанию демону httpd не разрешен доступ в домашние дерикториии пользователей. Если вы хотите разрешить доступ, вам необходимо установить переключатель httpd_enable_homedirs и изменить контекст
Chris PeBenito 164772
тех файлов в домашних директориях пользователей, к которым должен быть разрешен доступ.
Chris PeBenito 164772
Chris PeBenito 164772
.EX
Chris PeBenito 164772
setsebool -P httpd_enable_homedirs 1
Chris PeBenito 164772
chcon -R -t httpd_sys_content_t ~user/public_html
Chris PeBenito 164772
.EE
Chris PeBenito 164772
Chris PeBenito 164772
.PP
Chris PeBenito 164772
По умолчанию демон httpd не имеет доступ к управляющему терминалу. В большинстве случаев такое
Chris PeBenito 164772
поведение является предпочтительным. Это связанно с тем, что злоумышленник может попытаться
Chris PeBenito 164772
использовать доступ к терминалу для получения привилегий. Однако, в некоторых ситуациях демон
Chris PeBenito 164772
httpd должен выводить запрос пароля для открытия файла сертификата и в таких случаях нужен доступ
Chris PeBenito 164772
к терминалу. Для того, чтобы разрешить доступ к терминалу, установите переключатель httpd_tty_comm.
Chris PeBenito 164772
.EX
Chris PeBenito 164772
setsebool -P httpd_tty_comm 1
Chris PeBenito 164772
.EE
Chris PeBenito 164772
Chris PeBenito 164772
.PP
Chris PeBenito 164772
httpd может быть настроен так, чтобы не разграничивать тип доступа к файлу на основании контекста.
Chris PeBenito 164772
Иными словами, ко всем файлам, имеющим контекст httpd разрешен доступ на чтение/запись/исполнение. 
Chris PeBenito 164772
Установка этого переключателя в false, позволяет настроить политику безопасности таким образом,
Chris PeBenito 164772
что одина служба httpd не конфликтует с другой.
Chris PeBenito 164772
.EX
Chris PeBenito 164772
setsebool -P httpd_unified 0
Chris PeBenito 164772
.EE
Chris PeBenito 164772
Chris PeBenito 164772
.PP
Chris PeBenito 164772
Имеется возможность настроить httpd таким образом, чтобы отключить встроенную поддержку 
Chris PeBenito 164772
скриптов (PHP). PHP и другие загружаемые модули работают в том же контексте, что и httpd.
Chris PeBenito 164772
Таким образом, если используются только внешние cgi-скрипты, некоторые из правил политики
Chris PeBenito 164772
разрешают httpd больший доступ к системе, чем необходимо. 
Chris PeBenito 164772
Chris PeBenito 164772
.EX
Chris PeBenito 164772
setsebool -P httpd_builtin_scripting 0
Chris PeBenito 164772
.EE
Chris PeBenito 164772
Chris PeBenito 164772
.PP
Chris PeBenito 164772
По умолчанию httpd-скриптам запрещено устанавливать внешние сетевые подключения. 
Chris PeBenito 164772
Это не позволит хакеру, взломавшему ваш httpd-сервер, атаковать другие машины.
Chris PeBenito 164772
Если вашим скриптам необходимо иметь возможность подключения, установите переключатель
Chris PeBenito 164772
httpd_can_network_connect
Chris PeBenito 164772
Chris PeBenito 164772
.EX
Chris PeBenito 164772
setsebool -P httpd_can_network_connect 1
Chris PeBenito 164772
.EE
Chris PeBenito 164772
Chris PeBenito 164772
.PP
Chris PeBenito 164772
Для управления настройками SELinux существует графическая утилита system-config-selinux.
Chris PeBenito 164772
.SH АВТОРЫ	
Chris PeBenito 164772
Эту страницу руководства написал Dan Walsh <dwalsh@redhat.com>.
Chris PeBenito 164772
Перевод руководства - Андрей Маркелов <andrey@markelov.net>, 2007г.
Chris PeBenito 164772
Chris PeBenito 164772
.SH "СМОТРИ ТАКЖЕ"
Chris PeBenito 164772
selinux(8), httpd(8), chcon(1), setsebool(8)
Chris PeBenito 164772
Chris PeBenito 164772