O Apache é configurado pela colocação de diretivas nos arquivos de configuração de texto simples. O principal arquivo de configuração normalmente é httpd.conf. Quando você compila o Apache, pode indicar a localização deste arquivo. As diretivas podem ser colocadas em quaisquer destes arquivos de configuração para alterar o comportamento do Apache. Quando você efetua mudanças nos arquivos de configuração principais, precisa iniciar ou reiniciar o Apache para que as mudanças sejam reconhecidas.
As diretivas de hosts virtuais controlam se as solicitações que contêm informações de nome de caminho à direita, após um nome de arquivo real (ou arquivo não existente em um diretório existente), são aceitas ou rejeitadas. Para obter a documentação do Apache sobre diretivas de hosts virtuais, consulte http://httpd.apache.org/docs-2.0/mod/core.html#virtualhost
A tecla de configuração específica de change_hat é ImmDefaultHatName e é usada da mesma maneira que ImmHatName, por exemplo, ImmDefaultHatName My_Funky_Default_Hat.
A opção de configuração é na realidade baseada em uma diretiva de servidor, que lhe permite usar a palavra-chave para outras opções, desta maneira configurando-a para o servidor padrão. Hosts virtuais são considerados internamente no Apache como “servidores” separados, de maneira que você pode configurar um nome de hat padrão para o servidor padrão, assim como um para cada host virtual, se desejar.
Quando chega uma solicitação, as seguintes etapas refletem a seqüência em que mod-apparmor tenta aplicar hats.
Um hat de localização ou diretório conforme especificado pela palavra-chave ImmHatName.
Um hat nomeado por todo o caminho do URI.
Um hat de servidor padrão conforme especificado pela palavra-chave ImmDefaultHatName.
DEFAULT_URI (e se não existir nenhum, volta para o hat “pai” do Apache).
Diretivas de localização e diretório especificam nomes de hat no arquivo de configuração de programa, de maneira que o programa chama o hat relativo à sua segurança. Para o Apache, é possível encontrar documentações sobre diretivas de localização e diretório em http://httpd.apache.org/docs-2.0/sections.html.
O exemplo de diretiva de localização abaixo especifica que, para um determinado local, mod-apparmor deve usar um hat específico:
<Location /foo/>
ImmHatName MY_HAT_NAME
</Location>
Tenta usar MY_HAT_NAME para qualquer URI iniciando com /foo/ (/foo/, /foo/bar, /foo/cgi/path/blah_blah/blah, etc.).
A diretiva de diretório funciona da mesma maneira que a diretiva de localização, salvo que se refere a um nome de caminho no sistema de arquivos, no exemplo a seguir:
<Directory "/srv/www/www.immunix.com/docs"> # Note lack of trailing slash
ImmHatName immunix.com
</Directory>Exemplo: O programa phpsysinfo é usado para ilustrar uma diretiva de localização no exemplo a seguir. O tarball pode ser descarregado de http://phpsysinfo.sourceforge.com.
Após descarregar o tarball, instale-o em /srv/www/htdocs/sysinfo/.
Crie /etc/apache2/conf.d/sysinfo.conf e adicione o texto a seguir a ele:
<Location "/sysinfo">
ImmHatName sysinfo
</Location>O hat a seguir deve, então, funcionar para phpsyinfo:
^sysinfo {
#include <program-chunks/base-files>
/bin/df ix,
/bin/bash ix,
/dev/tty rw,
/etc/SuSE-release r,
/etc/fstab r,
/etc/hosts r,
/etc/mtab r,
/proc/** r,
/sbin/lspci ix,
/srv/www/htdocs/sysinfo/** r,
/sys/bus/pci/devices r,
/sys/devices/** r,
/usr/bin/who ix,
/usr/share/pci.ids r,
/var/log/apache2/{access,error}_log w,
/var/run/utmp r,
}
Recarregue perfis do Novell AppArmor digitando rcapparmor restart na janela de terminal como Root.
Conectado como Root, reinicie o Apache digitando rcapache2 restart na janela de terminal.
Digite http://hostname/sysinfo/ em um browser para receber as informações do sistema enviadas por phpsysinfo.
Para rastrear os erros de configuração, vá para /var/log/syslog ou execute dmesg e procure quaisquer rejeições na saída.