Мой опыт состоит в том, что независимо от ОС, выполняющей базу данных под VMware (или другая виртуализация), равняется sloooooooooooow вводу-выводу. Более новые версии VMware улучшают ситуацию вполне немного, но это все еще не то же, чем чистый металл установка ОС.
Лично у меня были бы оговорки, чтобы разрешить обработке CGI получать данные из сети (мне просто неудобно), но вы можете включить это с помощью следующей политики:
policy_module(localhttpd_script_t, 1.0.0)
gen_require(`
type httpd_sys_script_t;
type http_port_t;
')
gen_tunable(`httpd_script_can_http_connect', `false')
tunable_policy(`httpd_script_can_http_connect', `
allow httpd_sys_script_t self:tcp_socket rw_socket_perms;
corenet_tcp_connect_http_port(httpd_sys_script_t)
corenet_tcp_sendrecv_http_port(httpd_sys_script_t)
')
Вы необходимо установить policycoreutils-python , если это еще не сделано.
Для этого запустите
make -f /usr/share/selinux/devel/Makefile load
Это скомпилирует и установит модуль. Я скомпилировал Fedora 15, но не думаю, что существует какая-то особая политика, уникальная для этой системы.
Чтобы включить (временно), выполните команду setsebool httpd_script_can_http_connect 1 и сделайте постоянным setsebool -P httpd_script_can_http_connect 1 .
Унаследованы ли разрешения SELinux от родительского процесса?
Да, если правило не приводит к переходу в новый домен.
Как сделать так, чтобы оно было включено только для сценария и не для всего httpd?
Вам нужно будет создать новый домен, разрешающий доступ к сети, и написать правило, которое вызывает переход домена при вызове интерпретатора сценария. Обратите внимание, что это приведет к тому, что любой сценарий, вызываемый этим интерпретатором при вызове httpd, будет следовать этому переходу; гораздо менее тривиально вызвать переход домена для конкретного сценария.