wiki:linux:comandos:comando_apparmor
Table of Contents
Gerenciamento do AppArmor - Nível Básico
Nível Básico
- Verificar o status do AppArmor:
sudo aa-status
- Exibe o status atual do AppArmor, listando os perfis carregados, perfis em modo enforcing (aplicação), complain (modo permissivo) e processos que não estão confinados.
- Listar os perfis ativos no sistema:
sudo apparmor_status
- Lista todos os perfis ativos e suas permissões atuais (modo enforcement ou complain), além de processos não monitorados.
- Habilitar o AppArmor temporariamente (modo enforcement):
sudo aa-enforce /etc/apparmor.d/usr.sbin.mysqld
- Coloca o perfil do MySQL em modo enforcement, onde o AppArmor aplica suas políticas de segurança ativamente.
- Habilitar o modo complain temporariamente:
sudo aa-complain /etc/apparmor.d/usr.sbin.mysqld
- Coloca o perfil do MySQL em modo complain, onde o AppArmor registra violações, mas não as impede. Útil para diagnósticos.
- Verificar logs de violações do AppArmor:
sudo dmesg | grep 'apparmor'
- Exibe logs de violações e eventos do AppArmor diretamente a partir do buffer de mensagens do kernel.
- Exibir detalhes sobre um perfil específico:
sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld
- Analisa e exibe informações sobre um perfil específico, incluindo regras e permissões aplicadas ao processo.
- Carregar um novo perfil do AppArmor manualmente:
sudo apparmor_parser -r /etc/apparmor.d/usr.bin.firefox
- Recarrega o perfil de segurança do Firefox, aplicando as novas regras sem reiniciar o sistema.
- Remover temporariamente o confinamento de um perfil:
sudo aa-disable /etc/apparmor.d/usr.sbin.mysqld
- Desativa temporariamente o perfil do MySQL, removendo o confinamento aplicado pelo AppArmor até que ele seja novamente habilitado.
- Restaurar o AppArmor para seu estado padrão:
sudo systemctl reload apparmor
- Reinicia o AppArmor e recarrega todos os perfis, útil para garantir que as alterações manuais sejam aplicadas corretamente.
- Adicionar permissões simples a um perfil:
- Editar o perfil:
sudo nano /etc/apparmor.d/usr.sbin.mysqld
- Exemplo de permissão:
/var/log/mysql/** rw,
/var/run/mysqld/mysqld.pid rw,
- Adiciona permissões de leitura e escrita ao diretório `/var/log/mysql` e ao arquivo `mysqld.pid` para o serviço MySQL.
Gerenciamento do AppArmor - Nível Intermediário
Nível Intermediário
- Gerar um perfil básico automaticamente com aa-genprof:
sudo aa-genprof /usr/sbin/apache2
- Inicia um assistente para gerar automaticamente um perfil AppArmor básico para o serviço Apache com base em seu comportamento atual.
- Modificar um perfil existente com o assistente interativo:
sudo aa-logprof
- Analisa os logs de eventos do AppArmor e permite a modificação interativa de perfis existentes com base nas violações registradas.
- Listar todos os arquivos que estão sendo monitorados por um perfil:
sudo aa-complain /etc/apparmor.d/usr.sbin.mysqld
<br>
sudo aa-notify -p /etc/apparmor.d/usr.sbin.mysqld
- Mostra uma lista detalhada de todos os arquivos monitorados e protegidos pelo perfil MySQL.
- Adicionar permissões de rede a um perfil:
- Editar o perfil do serviço:
sudo nano /etc/apparmor.d/usr.sbin.mysqld
- Adicionar a permissão de rede:
network inet stream,
network inet dgram,
- Adiciona permissões para permitir que o serviço utilize conexões INET (TCP e UDP).
- Aplicar um perfil de AppArmor a um script ou binário específico:
sudo aa-enforce /path/to/script.sh
- Aplica um perfil AppArmor em modo enforcement para um script ou binário específico, criando uma camada de proteção para execuções futuras.
- Exibir o contexto de segurança atual de um processo:
sudo ps auxZ | grep apache2
- Mostra o contexto de segurança do AppArmor aplicado ao processo Apache2 em execução, permitindo verificar a conformidade do perfil.
- Definir um perfil como permissivo permanentemente:
sudo aa-complain /etc/apparmor.d/usr.sbin.mysqld
- Coloca o perfil MySQL no modo Complain permanentemente, permitindo que violações sejam registradas, mas sem bloqueio.
- Monitorar todas as violações de perfis AppArmor em tempo real:
sudo tail -f /var/log/syslog | grep 'apparmor'
- Exibe as violações e eventos de perfis AppArmor em tempo real, diretamente do log do sistema.
- Verificar permissões detalhadas de um arquivo em um perfil:
sudo apparmor_parser -p /etc/apparmor.d/usr.sbin.mysqld
- Analisa o perfil e exibe as permissões detalhadas para cada arquivo e recurso definido no perfil do MySQL.
- Recarregar todos os perfis após uma modificação:
sudo systemctl reload apparmor
- Recarrega todos os perfis do AppArmor, aplicando as modificações feitas sem a necessidade de reiniciar o sistema.
- Remover permissões de rede de um perfil:
- Editar o perfil do serviço:
sudo nano /etc/apparmor.d/usr.sbin.mysqld
- Remover as permissões de rede:
# network inet stream,
# network inet dgram,
- Remove as permissões para impedir que o serviço faça conexões de rede TCP ou UDP.
Gerenciamento do AppArmor - Nível Avançado
Nível Avançado
- Criar um perfil de segurança AppArmor manualmente:
- Criar o arquivo de perfil:
sudo nano /etc/apparmor.d/usr.local.bin.custom
- Exemplo de perfil básico:
#include <tunables/global>
/usr/local/bin/custom {
# Permissões de leitura
/usr/local/bin/custom r,
/etc/passwd r,
# Permissões de leitura e execução
/usr/local/bin/custom ixr,
# Restringir acesso a diretórios e arquivos
/home/*/ r,
/home/*/.ssh/ rw,
# Permissões de rede
network inet stream,
}
- Cria manualmente um perfil AppArmor para o binário `/usr/local/bin/custom`, definindo permissões detalhadas de leitura, execução e acesso à rede.
- Carregar manualmente um perfil personalizado:
sudo apparmor_parser -r /etc/apparmor.d/usr.local.bin.custom
- Recarrega e aplica o perfil personalizado criado no diretório `/etc/apparmor.d/`, ativando as regras definidas no perfil.
- Aplicar perfis de segurança a containers ou máquinas virtuais:
- Para Docker (exemplo de permissões para um container):
sudo docker run --security-opt apparmor=profile_name container_image
- Aplica um perfil específico do AppArmor ao iniciar um container Docker, garantindo que ele siga as regras de segurança definidas.
- Verificar o log detalhado de eventos de segurança para um perfil:
sudo ausearch -m avc --success no -c /usr/local/bin/custom
- Exibe eventos de segurança relacionados ao perfil do AppArmor para o binário `custom`, mostrando todos os acessos negados.
- Adicionar permissões avançadas de rede a um perfil:
- Editar o perfil:<br>
sudo nano /etc/apparmor.d/usr.sbin.mysqld
<br>
- Adicionar permissões de rede específicas:<br>
# Permitir conexões TCP e UDP
network inet dgram,
network inet stream,
# Permitir escuta em portas específicas
network inet stream,
capability net_bind_service,
- Adiciona permissões avançadas para o serviço MySQL, permitindo escuta em portas específicas e o uso de capacidades de rede.
- Configurar permissões para memória e bloqueio de arquivos:
- Editar o perfil:<br>
sudo nano /etc/apparmor.d/usr.local.bin.custom
<br>
- Adicionar permissões de bloqueio e uso de memória:<br>
# Permissões de bloqueio de arquivos
capability fowner,
capability fsetid,
# Permissões de uso de memória
capability ipc_lock,
- Permite que o processo bloqueie arquivos e use memória de forma controlada, garantindo que essas operações sejam monitoradas.
- Desativar temporariamente um perfil AppArmor para testes:
sudo aa-disable /etc/apparmor.d/usr.sbin.mysqld
- Desativa temporariamente o perfil do MySQL, removendo o controle do AppArmor para permitir testes ou debugging.
- Testar permissões de perfis em modo permissivo:
sudo aa-complain /etc/apparmor.d/usr.local.bin.custom
- Coloca o perfil `custom` no modo Complain, permitindo testes de permissões sem bloquear acessos, mas registrando violações.
- Bloquear capacidades específicas de processos:
- Editar o perfil:<br>
sudo nano /etc/apparmor.d/usr.sbin.mysqld
<br>
- Restringir capacidades avançadas:<br>
# Restringir o uso de capacidades do sistema
deny capability sys_admin,
deny capability sys_ptrace,
- Impede que o serviço MySQL utilize capacidades de administração de sistema ou depuração, garantindo maior segurança ao limitar permissões avançadas.
- Migrar perfis AppArmor entre servidores:
- Exportar perfil para outro servidor:
sudo apparmor_parser -p -W /etc/apparmor.d/usr.sbin.mysqld > mysqld_profile.txt
- Importar o perfil no novo servidor:
sudo apparmor_parser -r mysqld_profile.txt
- Exporta e importa perfis AppArmor entre servidores, permitindo que políticas de segurança sejam compartilhadas entre diferentes ambientes.
wiki/linux/comandos/comando_apparmor.txt · Last modified: by Wiki Administrator
