Ubuntu 22.04 AppArmor の無効化手順

10月 9, 2023OperatingSystem,Ubuntu(WSL)

概要

  • AppArmor(Application Armor)は、Ubuntu に標準でバンドルされている Linux Security Modules の一つです。アプリケーションにセキュリティプロファイルを設定し、アクセスや操作を制限します。
  • 今回、Ubuntu 22.04 にて、AppArmor の無効化を行いました。手順を記載します。

 

apparmor の無効化

  • systemd の apparmor サービスのステータスを確認する。
$ systemctl status apparmor
● apparmor.service - Load AppArmor profiles
     Loaded: loaded (/lib/systemd/system/apparmor.service; enabled; vendor preset: enabled)
     Active: active (exited) since Mon 2023-10-09 04:32:56 UTC; 2min 48s ago
       Docs: man:apparmor(7)
             https://gitlab.com/apparmor/apparmor/wikis/home/
    Process: 294 ExecStart=/lib/apparmor/apparmor.systemd reload (code=exited, status=0/SUCCESS)
   Main PID: 294 (code=exited, status=0/SUCCESS)
        CPU: 33ms
  • aa-statusコマンドを実行し、AppArmor のステータスを確認する。プロファイルが enforce モードでロードされている。
$ aa-enabled
Yes
$ sudo aa-status
apparmor module is loaded.
33 profiles are loaded.
31 profiles are in enforce mode.
   /snap/snapd/19122/usr/lib/snapd/snap-confine
   /snap/snapd/19122/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
   /usr/bin/man
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/NetworkManager/nm-dhcp-helper
   /usr/lib/connman/scripts/dhclient-script
   /usr/lib/snapd/snap-confine
   /usr/lib/snapd/snap-confine//mount-namespace-capture-helper
   /usr/sbin/chronyd
   /{,usr/}sbin/dhclient
   lsb_release
   man_filter
   man_groff
   nvidia_modprobe
   nvidia_modprobe//kmod
   snap-update-ns.amazon-ssm-agent
   snap-update-ns.lxd
   snap.lxd.activate
   snap.lxd.benchmark
   snap.lxd.buginfo
   snap.lxd.check-kernel
   snap.lxd.daemon
   snap.lxd.hook.configure
   snap.lxd.hook.install
   snap.lxd.hook.remove
   snap.lxd.lxc
   snap.lxd.lxc-to-lxd
   snap.lxd.lxd
   snap.lxd.migrate
   snap.lxd.user-daemon
   tcpdump
2 profiles are in complain mode.
   snap.amazon-ssm-agent.amazon-ssm-agent
   snap.amazon-ssm-agent.ssm-cli
0 profiles are in kill mode.
0 profiles are in unconfined mode.
9 processes have profiles defined.
2 processes are in enforce mode.
   /usr/sbin/chronyd (480)
   /usr/sbin/chronyd (485)
7 processes are in complain mode.
   /snap/amazon-ssm-agent/6312/amazon-ssm-agent (425) snap.amazon-ssm-agent.amazon-ssm-agent
   /snap/amazon-ssm-agent/6312/ssm-agent-worker (714) snap.amazon-ssm-agent.amazon-ssm-agent
   /snap/amazon-ssm-agent/6312/ssm-session-worker (750) snap.amazon-ssm-agent.amazon-ssm-agent
   /usr/bin/dash (777) snap.amazon-ssm-agent.amazon-ssm-agent
   /usr/bin/sudo (790) snap.amazon-ssm-agent.amazon-ssm-agent
   /usr/bin/sudo (791) snap.amazon-ssm-agent.amazon-ssm-agent
   /usr/sbin/aa-status (792) snap.amazon-ssm-agent.amazon-ssm-agent
0 processes are unconfined but have a profile defined.
0 processes are in mixed mode.
0 processes are in kill mode.
  • aa-teardownコマンドを実行し、AppArmorを停止する。aa-statusコマンドからプロファイルはアンロードされたことが分かる。
$ sudo aa-teardown
Unloading AppArmor profiles
$ sudo aa-status
apparmor module is loaded.
  • systemd の apparmor サービスを停止、自動起動を無効化する。
    • ただし、この方法ではKernel のapparmor は無効されない様である。Kernel が apparmor をロードしないようにするには、Grub がKernel をロードする際のパラメータから apparmor=1 security=apparmor を削除します。
    • 上記の詳細は、こちらを参照ください。
$ systemctl status apparmor
● apparmor.service - Load AppArmor profiles
     Loaded: loaded (/lib/systemd/system/apparmor.service; enabled; vendor preset: enabled)
     Active: active (exited) since Mon 2023-10-09 04:32:56 UTC; 4min 32s ago
       Docs: man:apparmor(7)
             https://gitlab.com/apparmor/apparmor/wikis/home/
    Process: 294 ExecStart=/lib/apparmor/apparmor.systemd reload (code=exited, status=0/SUCCESS)
   Main PID: 294 (code=exited, status=0/SUCCESS)
        CPU: 33ms

Warning: some journal files were not opened due to insufficient permissions.
$ sudo systemctl stop apparmor
$ sudo systemctl disable apparmor
Synchronizing state of apparmor.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable apparmor
Removed /etc/systemd/system/sysinit.target.wants/apparmor.service.
$ systemctl status apparmor
○ apparmor.service - Load AppArmor profiles
     Loaded: loaded (/lib/systemd/system/apparmor.service; disabled; vendor preset: enabled)
     Active: inactive (dead) since Mon 2023-10-09 04:37:55 UTC; 34s ago
       Docs: man:apparmor(7)
             https://gitlab.com/apparmor/apparmor/wikis/home/
   Main PID: 294 (code=exited, status=0/SUCCESS)
        CPU: 1ms

Warning: some journal files were not opened due to insufficient permissions.

 

参考資料

  • Kernel のAppArmor を無効にする場合は、追加の手順が必要になる様です。Ubuntu のオンラインコミュニティに記載されている手順を参照ください。