Desabilitar a proteção de leitura do arquivo SELinux para o httpd

3

Estou usando o RHEL 6.1 e gostaria de configurar o SELinux para autorizar o httpd a ler todos os arquivos em algumas pastas (Meu objetivo é disponibilizar arquivos de log via acesso à web).

  • Isso é possível sem listar explicitamente todos os arquivos?
  • Isso é possível sem desabilitar o SELinux para o httpd?

Eu preciso de solução que possa ser persistente.

Obrigado antecipadamente.

    
por Denis R. 27.06.2011 / 15:55

1 resposta

1

Você pode configurar uma regra para permitir que httpd_t leia o tipo de arquivo com o qual seus arquivos de log estão rotulados.

Por exemplo, se eu quiser que httpd_t seja capaz de ler your_log_file_type_t , você criará um módulo de política como este (fora de minha mente). Chame de apache_read_logs.te e coloque-o em um diretório vazio:

policy_module(apache_read_logs, 1.0)

type httpd_t;
type your_log_file_type_t;
type your_log_dir_type_t;

allow httpd_t your_log_dir_type_t:dir list_dir_perms;
read_files_pattern(httpd_t, your_log_dir_type, your_log_file_type)
read_lnk_files_pattern(httpd_t, your_log_dir_type, your_log_file_type)

Isso permite que httpd_t leia arquivos com o nome your_log_file_type_t e pesquise em diretórios com o nome your_log_dir_type_t . Usa macros para brevidade. Você pode ver como as macros se parecem baixando e examinando o tarball da política de referência .

Então, do diretório em que você criou o arquivo, você executa, como root:

# make -f /usr/share/selinux/devel/Makefile
# /usr/sbin/semodule -i apache_read_logs.pp

Isso pressupõe que você tenha o selinux-policy-devel e o policycoreutils instalados. Teste isso em uma máquina não crucial primeiro! Eu escrevi este cego e não testei eu mesmo!

    
por 28.06.2011 / 10:44