GNU/Linux >> Linux Esercitazione >  >> Linux

Introduzione a Ubuntu Apparmor e come configurare i profili Apparmor

AppArmor è un sistema MAC o di controllo degli accessi obbligatorio.

Utilizza Linux Security Module per limitare i programmi. AppArmor imposta una raccolta di profili applicativi predefiniti per proteggere i servizi Linux.

Puoi anche proteggere qualsiasi altra applicazione in esecuzione sul tuo sistema creando tu stesso file di profilo.

In Ubuntu, AppArmor è installato e abilitato per impostazione predefinita. I profili apparmor vengono caricati all'avvio del sistema.

AppArmor opera nei seguenti due tipi di modalità profilo:

  1. Applica:nella modalità di applicazione, il sistema inizia a far rispettare le regole e a segnalare i tentativi di violazione in syslog o auditd (solo se auditd è installato) e l'operazione non sarà consentita.
  2. Reclamo:nella modalità reclamo, il sistema non applica alcuna regola. Registrerà solo i tentativi di violazione.

Ulteriori profili possono essere trovati nel pacchetto apparmor-profiles.

Visualizza lo stato dell'attrezzatura

Puoi visualizzare lo stato attuale di apparmor e tutti i profili caricati come mostrato di seguito:

$ 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.

Se controlliamo l'output sopra, potremmo vedere che 5 profili sono in modalità Enforce.

Ciò indica anche che due processi sono attualmente in esecuzione in modalità di applicazione (a causa dei profili). Ad esempio, /sbin/dhclient con PID 585 è in esecuzione in modalità di applicazione.

Cambia modalità profilo

Per impostare un profilo in modalità reclamo, prima installa il pacchetto apparmor-utils se non è già installato.

apt-get install apparmor-utils

Usa il comando aa-complain per impostare un profilo in modalità reclamo. Ad esempio, procedi come segue per abilitare la modalità reclamo per mysqld.

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

Ora quando esegui apparmor_status, vedrai mysqld in modalità reclamo.

$ 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.

Puoi riportare il profilo alla modalità di applicazione utilizzando il comando aa-enforce come mostrato di seguito.

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

File profilo AppArmor

I profili AppArmor sono file di testo che si trovano nella directory /etc/apparmor.d/.

I file prendono il nome dal percorso completo dell'eseguibile che profilano, ma sostituendo "/" con ".".

Ad esempio, il comando ping si trova in /bin/ping. Il file del profilo AppArmor equivalente sarà denominato bin.ping

Quello che segue è il file del profilo Apparmor per usr.sbin.mysqld. /usr/sbin/mysqld è il percorso assoluto del binario a cui viene applicato questo profilo.

# 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>
}

In un file di profilo, i commenti procedono sempre con il segno #. #include righe carica il file.

Di seguito sono riportati i diversi tipi di regole utilizzate nei profili.

  1. Voci del percorso:contiene informazioni sui file a cui l'applicazione può accedere.
  2. Voci di capacità:determina i privilegi che un processo confinato può utilizzare.
  3. Voci di rete:determina il tipo di connessione. Ad esempio:tcp. Per un analizzatore di pacchetti la rete può essere grezza o a pacchetto ecc.

All'interno delle parentesi graffe {} abbiamo altre istruzioni include e include anche autorizzazioni/modalità di accesso [read(r)/write (w)/execute (x) (k) lock (richiede r o w, AppArmor 2.1 e versioni successive)] per vari file e directory, tra cui regex globbing le istruzioni include tra parentesi graffe {} aiutano a caricare i componenti dei profili Novell AppArmor.

Disabilita AppArmor

Se alcuni processi funzionano come previsto e se desideri eseguire il debug se i profili apparmor ne sono la ragione, potresti voler disabilitare temporaneamente apparmor per il debug.

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

L'esecuzione del comando precedente cancellerà solo la cache dei profili. Per scaricare il profilo eseguire il comando seguente.

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

Linux
  1. Come installare e configurare Redis su Ubuntu 18.04

  2. Come installare e configurare Redmine su Ubuntu 18.04

  3. Come installare e configurare Samba su Ubuntu 18.04

  4. Come installare e configurare Fail2ban su Ubuntu?

  5. Come installare e configurare Elasticsearch su Ubuntu 18.04

Come installare e configurare Nextcloud su Ubuntu 20.04

Come installare e configurare Supervisor su Ubuntu 20.04

Come installare e configurare un TeamSpeak Server su Ubuntu 18.04

Come installare e configurare un server Minecraft su Ubuntu 18.04

Come installare e configurare PHP OPcache su Ubuntu 18.04

Come installare e configurare Git su Ubuntu 20.04