GNU/Linux >> Znalost Linux >  >> Linux

Úvod do Ubuntu Apparmor a jak konfigurovat profily Apparmor

AppArmor je systém povinného řízení přístupu neboli MAC.

Používá Linux Security Module k omezení programů. AppArmor nastavuje kolekci výchozích aplikačních profilů pro ochranu služeb Linuxu.

Můžete také chránit jakékoli další aplikace spuštěné ve vašem systému vytvořením souborů profilu sami.

V Ubuntu je AppArmor ve výchozím nastavení nainstalován a povolen. Profily apparmor se načtou při spuštění systému.

AppArmor funguje v následujících dvou typech profilových režimů:

  1. Vynutit – V režimu vynucení začne systém vynucovat pravidla a hlásit pokusy o porušení v syslog nebo auditd (pouze pokud je nainstalován auditd) a operace nebude povolena.
  2. Stížnost – V režimu stížností systém nevynucuje žádná pravidla. Zaznamená pouze pokusy o porušení.

Další profily lze nalézt v balíčku apparmor-profiles.

Zobrazit stav Apparmoru

Můžete si prohlédnout aktuální stav apparmoru a všech načtených profilů, jak je ukázáno níže:

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

Pokud zkontrolujeme výše uvedený výstup, uvidíme, že 5 profilů je v režimu Enforce.

To také naznačuje, že dva procesy aktuálně běží v režimu vynucení (kvůli profilům). Například /sbin/dhclient s PID 585 běží v režimu vynucení.

Změnit režim profilu

Chcete-li nastavit profil v režimu stížnosti, nejprve nainstalujte balíček apparmor-utils, pokud ještě není nainstalován.

apt-get install apparmor-utils

Použijte příkaz aa-complain k nastavení profilu v režimu stížnosti. Chcete-li například aktivovat režim stížnosti pro mysqld, proveďte následující.

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

Nyní, když spustíte apparmor_status, uvidíte mysqld v režimu stížnosti.

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

Profil můžete změnit zpět na vynucovací režim pomocí příkazu aa-enforce, jak je ukázáno níže.

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

Soubory profilu AppArmor

Profily AppArmor jsou textové soubory umístěné v adresáři /etc/apparmor.d/.

Soubory jsou pojmenovány podle úplné cesty ke spustitelnému souboru, který profilují, ale místo „/“ se nahradí „.“.

Například příkaz ping se nachází v /bin/ping. Ekvivalentní soubor profilu AppArmor bude pojmenován jako bin.ping

Následuje soubor profilu Apparmor pro usr.sbin.mysqld. /usr/sbin/mysqld je absolutní cesta k binárnímu souboru, kde se tento profil použije.

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

V souboru profilu komentáře vždy pokračují znakem #. #include lines načte soubor.

Níže jsou uvedeny různé typy pravidel, které se používají v profilech.

  1. Položky cesty:Obsahuje informace o tom, ke kterým souborům má aplikace povolen přístup.
  2. Položky schopností:Určuje oprávnění, která smí omezený proces používat.
  3. Položky sítě:Určuje typ připojení. Například:tcp. V případě sítě s analyzátorem paketů může být síť raw nebo paketová atd.

Ve složených závorkách {} máme další příkazy include a také zahrnuje přístupová oprávnění/režimy [čtení(r)/zápis (w)/spouštění (x) (k) zámek (vyžaduje r nebo w, AppArmor 2.1 a novější)] k různé soubory a adresáře, které zahrnují globování regulárních výrazů a příkazy include ve složených závorkách {}, pomáhají načíst komponenty profilů Novell AppArmor.

Zakázat AppArmor

Pokud nějaký proces funguje podle očekávání a chcete-li ladit, zda jsou toho důvodem profily apparmor, možná budete chtít dočasně zakázat apparmor pro ladění.

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

Provedením výše uvedeného příkazu se pouze vymaže mezipaměť profilů. Pro uvolnění profilu spusťte následující příkaz.

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

Linux
  1. Jak nainstalovat a nakonfigurovat Redis na Ubuntu 18.04

  2. Jak nainstalovat a nakonfigurovat Fail2ban na Ubuntu?

  3. Jak nainstalovat a nakonfigurovat Elasticsearch na Ubuntu 18.04

  1. Jak nainstalovat a nakonfigurovat Redmine na Ubuntu 18.04

  2. Jak nainstalovat a nakonfigurovat Sambu na Ubuntu 18.04

  3. Jak nainstalovat a nakonfigurovat Redis na Ubuntu 20.04

  1. Jak nainstalovat a nakonfigurovat Jenkins na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat Askbot na Ubuntu 16.04

  3. Jak nainstalovat a nakonfigurovat MongoDB na Ubuntu 14.04