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