GNU/Linux >> Tutoriels Linux >  >> Linux

Introduction à Ubuntu Apparmor et comment configurer les profils Apparmor

AppArmor est un système de contrôle d'accès obligatoire ou MAC.

Il utilise le module de sécurité Linux pour restreindre les programmes. AppArmor configure une collection de profils d'application par défaut pour protéger les services Linux.

Vous pouvez également protéger toutes les autres applications exécutées sur votre système en créant vous-même des fichiers de profil.

Dans Ubuntu, AppArmor est installé et activé par défaut. Les profils AppArmor sont chargés au démarrage du système.

AppArmor fonctionne dans les deux types de modes de profil suivants :

  1. Appliquer :en mode d'application, le système commence à appliquer les règles et signale les tentatives de violation dans syslog ou auditd (uniquement si auditd est installé) et l'opération ne sera pas autorisée.
  2. Réclamation – En mode réclamation, le système n'applique aucune règle. Il enregistrera uniquement les tentatives de violation.

Des profils supplémentaires peuvent être trouvés dans le paquet apparmor-profiles.

Afficher l'état de l'alarme

Vous pouvez voir l'état actuel d'apparmor et tous les profils chargés comme indiqué ci-dessous :

$ sudo apparmor_status
apparmor module is loaded.
5 profiles are loaded.
5 profiles are in enforce mode.
   /sbin/dhclient
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/connman/scripts/dhclient-script
   /usr/sbin/mysqld
   /usr/sbin/tcpdump
0 profiles are in complain mode.
2 processes have profiles defined.
2 processes are in enforce mode.
   /sbin/dhclient (585)
   /usr/sbin/mysqld (799)
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

Si nous vérifions la sortie ci-dessus, nous pourrions voir que 5 profils sont en mode Appliquer.

Cela indique également que deux processus sont actuellement en cours d'exécution en mode d'application (à cause des profils). Par exemple, /sbin/dhclient avec un PID de 585 s'exécute en mode d'application.

Modifier le mode de profil

Pour définir un profil en mode réclamation, installez d'abord le package apparmor-utils s'il n'est pas déjà installé.

apt-get install apparmor-utils

Utilisez la commande aa-complain pour définir un profil en mode plainte. Par exemple, procédez comme suit pour activer le mode plainte pour mysqld.

$ sudo aa-complain /usr/sbin/mysqld
Setting /usr/sbin/mysqld to complain mode.

Maintenant, lorsque vous exécutez apparmor_status, vous verrez mysqld en mode plainte.

$ sudo apparmor_status
apparmor module is loaded.
5 profiles are loaded.
4 profiles are in enforce mode.
   /sbin/dhclient
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/connman/scripts/dhclient-script
   /usr/sbin/tcpdump
1 profiles are in complain mode.
   /usr/sbin/mysqld
2 processes have profiles defined.
1 processes are in enforce mode.
   /sbin/dhclient (585)
1 processes are in complain mode.
   /usr/sbin/mysqld (799)
0 processes are unconfined but have a profile defined.

Vous pouvez remettre le profil en mode d'application à l'aide de la commande aa-enforce comme indiqué ci-dessous.

$ sudo aa-enforce /usr/sbin/mysqld
Setting /usr/sbin/mysqld to enforce mode.

Fichiers de profil AppArmor

Les profils AppArmor sont des fichiers texte situés sous le répertoire /etc/apparmor.d/.

Les fichiers sont nommés d'après le chemin d'accès complet à l'exécutable qu'ils profilent, mais en remplaçant le "/" par ".".

Par exemple, la commande ping se trouve dans /bin/ping. Le fichier de profil AppArmor équivalent sera nommé bin.ping

Voici le fichier de profil Apparmor pour usr.sbin.mysqld. /usr/sbin/mysqld est le chemin absolu du binaire où ce profil est appliqué.

# cat usr.sbin.mysqld
# vim:syntax=apparmor
# Last Modified: Tue Jun 19 17:37:30 2007
#include <tunables/global>
/usr/sbin/mysqld {
  #include <abstractions/base>
  #include <abstractions/nameservice>
  #include <abstractions/user-tmp>
  #include <abstractions/mysql>
  #include <abstractions/winbind>
  capability dac_override,
  capability sys_resource,
  capability setgid,
  capability setuid,
  network tcp,
  /etc/hosts.allow r,
  /etc/hosts.deny r,
  /etc/mysql/*.pem r,
  /etc/mysql/conf.d/ r,
  /etc/mysql/conf.d/* r,
  /etc/mysql/*.cnf r,
  /usr/lib/mysql/plugin/ r,
  /usr/lib/mysql/plugin/*.so* mr,
  /usr/sbin/mysqld mr,
  /usr/share/mysql/** r,
  /var/log/mysql.log rw,
  /var/log/mysql.err rw,
  /var/lib/mysql/ r,
  /var/lib/mysql/** rwk,
  /var/log/mysql/ r,
  /var/log/mysql/* rw,
  /var/run/mysqld/mysqld.pid rw,
  /var/run/mysqld/mysqld.sock w,
  /run/mysqld/mysqld.pid rw,
  /run/mysqld/mysqld.sock w,
  /sys/devices/system/cpu/ r,
  # Site-specific additions and overrides. See local/README for details.
  #include <local/usr.sbin.mysqld>
}

Dans un fichier de profil, les commentaires commencent toujours par le signe #. #include lignes charge le fichier.

Voici les différents types de règles utilisées dans les profils.

  1. Entrée de chemin :contient des informations sur les fichiers auxquels l'application est autorisée à accéder.
  2. Entrée de capacité :détermine les privilèges qu'un processus confiné est autorisé à utiliser.
  3. Entrée réseau :détermine le type de connexion. Par exemple :TCP. Pour un analyseur de paquets, le réseau peut être brut ou par paquets, etc.

Dans les accolades {}, nous avons d'autres instructions d'inclusion et inclut également les autorisations/modes d'accès [read(r)/write (w)/execute (x) (k) lock (nécessite r ou w, AppArmor 2.1 et versions ultérieures)] pour divers fichiers et répertoires, y compris regex globulant les instructions d'inclusion avec des accolades {} aident à charger les composants des profils Novell AppArmor.

Désactiver AppArmor

Si certains processus fonctionnent comme prévu et si vous souhaitez déboguer si les profils apparmor en sont la cause, vous souhaiterez peut-être désactiver temporairement apparmor pour le débogage.

# /etc/init.d/apparmor stop
 * Clearing AppArmor profiles cache  [OK]

L'exécution de la commande ci-dessus effacera uniquement le cache des profils. Pour décharger le profil, exécutez la commande suivante.

# /etc/init.d/apparmor teardown
 * Unloading AppArmor profiles [OK]

Linux
  1. Comment installer et configurer Redis sur Ubuntu 18.04

  2. Comment installer et configurer Redmine sur Ubuntu 18.04

  3. Comment installer et configurer Samba sur Ubuntu 18.04

  4. Comment installer et configurer Fail2ban sur Ubuntu ?

  5. Comment installer et configurer Elasticsearch sur Ubuntu 18.04

Comment installer et configurer Nextcloud sur Ubuntu 20.04

Comment installer et configurer Supervisor sur Ubuntu 20.04

Comment installer et configurer un serveur TeamSpeak sur Ubuntu 18.04

Comment installer et configurer un serveur Minecraft sur Ubuntu 18.04

Comment installer et configurer PHP OPcache sur Ubuntu 18.04

Comment installer et configurer Git sur Ubuntu 20.04