Table of Contents

Gerenciamento do AppArmor - Nível Básico

Nível Básico

sudo nano /etc/apparmor.d/usr.sbin.mysqld
  1. Exemplo de permissão:
    /var/log/mysql/** rw,
    /var/run/mysqld/mysqld.pid rw,
  1. 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

sudo aa-notify -p /etc/apparmor.d/usr.sbin.mysqld
  1. Mostra uma lista detalhada de todos os arquivos monitorados e protegidos pelo perfil MySQL.
sudo nano /etc/apparmor.d/usr.sbin.mysqld
  1. Adicionar a permissão de rede:
    network inet stream,
    network inet dgram,
  1. Adiciona permissões para permitir que o serviço utilize conexões INET (TCP e UDP).
sudo nano /etc/apparmor.d/usr.sbin.mysqld
  1. Remover as permissões de rede:
    # network inet stream,
    # network inet dgram,
  1. 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

sudo nano /etc/apparmor.d/usr.local.bin.custom
  1. 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,
    }
  1. Cria manualmente um perfil AppArmor para o binário `/usr/local/bin/custom`, definindo permissões detalhadas de leitura, execução e acesso à rede.
sudo docker run --security-opt apparmor=profile_name container_image
  1. Aplica um perfil específico do AppArmor ao iniciar um container Docker, garantindo que ele siga as regras de segurança definidas.
sudo nano /etc/apparmor.d/usr.sbin.mysqld

<br>

  1. 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,
  1. Adiciona permissões avançadas para o serviço MySQL, permitindo escuta em portas específicas e o uso de capacidades de rede.
sudo nano /etc/apparmor.d/usr.local.bin.custom

<br>

  1. 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,
  1. Permite que o processo bloqueie arquivos e use memória de forma controlada, garantindo que essas operações sejam monitoradas.
sudo nano /etc/apparmor.d/usr.sbin.mysqld

<br>

  1. Restringir capacidades avançadas:<br>
    # Restringir o uso de capacidades do sistema
    deny capability sys_admin,
    deny capability sys_ptrace,
  1. 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.
sudo apparmor_parser -p -W /etc/apparmor.d/usr.sbin.mysqld > mysqld_profile.txt
  1. Importar o perfil no novo servidor:
sudo apparmor_parser -r mysqld_profile.txt
  1. Exporta e importa perfis AppArmor entre servidores, permitindo que políticas de segurança sejam compartilhadas entre diferentes ambientes.