AppArmor é uma implementação do Módulo de Segurança do Linux do controle de acesso obrigatório baseado em nomes. AppArmor confina programas individuais para um grupo de arquivos e capacidade do posix 1003.1e.
O AppArmor é instalado e carregado por padrao. Ele usa perfis de uma aplicação para determinar quais arquivos e permissões a aplicaão necessita. Alguns pacotes irão instalar seus própris perfis, e perfis adicionais podem ser encontrados no pacote apparmor-profiles.
Para instalar o pacote apparmor-profiles a partir do terminal:
sudo apt-get install apparmor-profiles
Perfis do AppArmor possuem dois modos de execução:
-
Reclamando/Aprendendo: violações do perfil são permitidas e anotadas. Útil para teste e desenvolvimento de novos perfis
-
Reforçado/Confinado: reforça a política do perfil como também a anotação das violação.
O pacote apparmor-utils contém utilitários da linha de comando que podem ser usado para mudar o modo de execução do AppArmor, encontrar o estado de um perfil, criar novos perfis, etc.
-
apparmor_status é usado para ver o estado atual dos perfis do AppArmor.
sudo apparmor_status -
aa-complain coloca um perfil no modo complain.
sudo aa-complain /path/to/bin -
aa-enforce coloca um perfil no modo enforce.
sudo aa-enforce /path/to/bin -
O diretório
/etc/apparmor.dé onde os perfis do AppArmor estão localizados. Ele pode ser utilizado para manipular o modo de todos os perfis.Digite o seguinte para colocar todos os perfis no modo complain:
sudo aa-complain /etc/apparmor.d/*Para colocar todos os perfis no modo enforce:
sudo aa-enforce /etc/apparmor.d/* -
apparmor_parser para carregar um perfil no kernel. Pode também ser utilizado para recarregar um perfil utilizando a opção -r. Para carregar um perfil:
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -aPara recarregar um perfil:
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r -
/etc/init.d/apparmorpode ser utilizado para recarregar todos os perfis:sudo /etc/init.d/apparmor reload -
O diretório
/etc/apparmor.d/disablepode ser usado com a opção apparmor_parser -R para disabilitar um perfil.sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/ sudo apparmor_parser -R /etc/apparmor.d/profile.name
Para habilitar novamente um perfil desabilidado, remova o link simbólico ao perfil em
etc/apparmor.d/disable/. Depois carregue o perfil utilizando a opção -a.sudo rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
-
AppArmor pode ser desabilitada, e o módulo do kernel descarregado digitando-se o seguinte:
sudo /etc/init.d/apparmor stop sudo update-rc.d -f apparmor remove
-
Para re-habilitar o AppArmor digite:
sudo /etc/init.d/apparmor start sudo update-rc.d apparmor defaults
|
|
|
Substitua profile.name com o nome do perfil que você quer manipular. Substitua também |
Perfis do AppArmor são simples arquivos de texto localizados em /etc/apparmor.d/. Os arquivos são nomeados com o nome do caminho do executável que ele utiliza o perfil substituindo "/" por ".". Por exemplo /etc/apparmor.d/bin.ping é o perfl do AppArmor para o comando /bin/ping.
Existem dois tipos principais de regras usadas nos perfis:
-
Path entries: detalha quais arquivos uma aplicação pode acessar no sistema de arquivo.
-
Entradas de capacidade: determina quais privilégios um processo restrito tem permissão para usar.
Como exemplo, dê uma olhada em /etc/apparmor.d/bin.ping:
#include <tunables/global>
/bin/ping flags=(complain) {
#include <abstractions/base>
#include <abstractions/consoles>
#include <abstractions/nameservice>
capability net_raw,
capability setuid,
network inet raw,
/bin/ping mixr,
/etc/modules.conf r,
}
-
#include <tunables/global>: inclui declarações dos outros arquivos. Isto permite que as declarações pertencentes a múltiplas aplicações possam ser colocadas em um arquivo comum
-
/bin/ping flags=(complain): rotea para o programa do perfil, também configurando o modo para complain.
-
capability net_raw,: permite à aplicação acessar a capacidade CAP_NET_RAW Posix.1e.
-
/bin/ping mixr,: permite à aplicação ler e executar o acesso ao arquivo.
|
|
|
Depois de editar u arquivo de perfil, o perfil deve ser recarregado. Veja “Usando AppArmor” para detalhes. |
-
Desenhe um plano de testes: Tente pensar sobre como a aplicação deve ser exercitada. O plano de testes deve ser dividido em casos de uso pequenos. Cada caso de teste deve ter uma pequena descrição e deve listar os passos a seguir.
Alguns casos padrões de testes são:
-
Iniciando o programa.
-
Parando o programa.
-
Recarregando o programa.
-
Testando todos os comandos suportados pelo script de início (init).
-
-
Gere um novo perfil: Use aa-genprof para gerar um novo perfil. De um terminal:
sudo aa-genprof executablePor exemplo:
sudo aa-genprof slapd -
Para ter seu novo perfil incluído no pacote apparmor-profiles, registre um erro em Launchpad contro a pacote AppArmor:
-
Inclua seu plano de teste e de casos de teste.
-
Atribua seu novo perfil ao erro.
-
-
Veja AppArmor Administration Guide para opções de configuração avançadas.
-
Para detalhes de como usar o AppArmor com outras versões do Ubuntu, veja a página da Wiki da Comunidade AppArmor.
-
A página OpenSUSE AppArmor é outra introdução ao AppArmor.
-
Um grande lugar para pedir assistência para AppArmor e involver-se com a comunidade do Ubuntu Server é o canal IRC #ubuntu-server em freenode.

