AppArmorの基本操作をまとめます。
記事の目次
動作確認をした環境を確認する!
動作確認した環境を確認します。
$ hostnamectl Static hostname: vmswps01 Icon name: computer-vm Chassis: vm Machine ID: 71bb07e8b0b241a7b80c0ffc45302ee2 Boot ID: 0c944ead31fd4098a50494eb25a79e50 Virtualization: oracle Operating System: Ubuntu 22.04.2 LTS Kernel: Linux 5.15.0-78-generic Architecture: x86-64 Hardware Vendor: innotek GmbH Hardware Model: VirtualBox
AppArmorの状態を確認する!
AppArmorの状態を確認します。
$ systemctl status apparmor ● apparmor.service - Load AppArmor profiles Loaded: loaded (/lib/systemd/system/apparmor.service; enabled; vendor preset: enabled) Active: active (exited) since Tue 2023-08-22 21:29:25 UTC; 25min ago Docs: man:apparmor(7) https://gitlab.com/apparmor/apparmor/wikis/home/ Process: 524 ExecStart=/lib/apparmor/apparmor.systemd reload (code=exited, status=0/SUCCESS) Main PID: 524 (code=exited, status=0/SUCCESS) CPU: 33ms
AppArmorを無効化する!
AppArmorを無効化して停止します。
$ sudo systemctl disable --now 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 Tue 2023-08-22 21:56:41 UTC; 36s ago Docs: man:apparmor(7) https://gitlab.com/apparmor/apparmor/wikis/home/ Process: 1225 ExecStop=/bin/true (code=exited, status=0/SUCCESS) Main PID: 524 (code=exited, status=0/SUCCESS) CPU: 871us
AppArmorを有効化する!
AppArmorを有効化して起動します。
$ sudo systemctl enable --now apparmor Synchronizing state of apparmor.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable apparmor Created symlink /etc/systemd/system/sysinit.target.wants/apparmor.service → /lib/systemd/system/apparmor.service. $ systemctl status apparmor ● apparmor.service - Load AppArmor profiles Loaded: loaded (/lib/systemd/system/apparmor.service; enabled; vendor preset: enabled) Active: active (exited) since Tue 2023-08-22 21:58:17 UTC; 12s ago Docs: man:apparmor(7) https://gitlab.com/apparmor/apparmor/wikis/home/ Process: 1336 ExecStart=/lib/apparmor/apparmor.systemd reload (code=exited, status=0/SUCCESS) Main PID: 1336 (code=exited, status=0/SUCCESS) CPU: 28ms
プロファイルを操作するためのコマンドをインストールする!
$ sudo apt install apparmor-utils -y Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: python3-apparmor python3-libapparmor Suggested packages: vim-addon-manager The following NEW packages will be installed: apparmor-utils python3-apparmor python3-libapparmor 0 upgraded, 3 newly installed, 0 to remove and 75 not upgraded. ...
プロファイルの状態を確認する!
AppArmorのプロファイルの状態を確認します。
$ sudo apparmor_status apparmor module is loaded. 31 profiles are loaded. 31 profiles are in enforce mode. /snap/snapd/18357/usr/lib/snapd/snap-confine /snap/snapd/18357/usr/lib/snapd/snap-confine//mount-namespace-capture-helper /snap/snapd/19457/usr/lib/snapd/snap-confine /snap/snapd/19457/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/dhclient lsb_release man_filter man_groff nvidia_modprobe nvidia_modprobe//kmod 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 0 profiles are in complain mode. 0 profiles are in kill mode. 0 profiles are in unconfined mode. 0 processes have profiles defined. 0 processes are in enforce mode. 0 processes are in complain mode. 0 processes are unconfined but have a profile defined. 0 processes are in mixed mode. 0 processes are in kill mode.
プロファイルを追加する!
AppArmorのプロファイルを追加します。
$ sudo apt install apparmor-profiles Reading package lists... Done Building dependency tree... Done Reading state information... Done The following NEW packages will be installed: apparmor-profiles 0 upgraded, 1 newly installed, 0 to remove and 75 not upgraded. ...
プロファイルが追加されたことを確認します。
$ sudo apparmor_status apparmor module is loaded. 48 profiles are loaded. 31 profiles are in enforce mode. /snap/snapd/18357/usr/lib/snapd/snap-confine /snap/snapd/18357/usr/lib/snapd/snap-confine//mount-namespace-capture-helper /snap/snapd/19457/usr/lib/snapd/snap-confine /snap/snapd/19457/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/dhclient lsb_release man_filter man_groff nvidia_modprobe nvidia_modprobe//kmod 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 17 profiles are in complain mode. avahi-daemon dnsmasq dnsmasq//libvirt_leaseshelper identd klogd mdnsd nmbd nscd php-fpm ping samba-bgqd smbd smbldap-useradd smbldap-useradd///etc/init.d/nscd syslog-ng syslogd traceroute 0 profiles are in kill mode. 0 profiles are in unconfined mode. 0 processes have profiles defined. 0 processes are in enforce mode. 0 processes are in complain mode. 0 processes are unconfined but have a profile defined. 0 processes are in mixed mode. 0 processes are in kill mode.
すべてのプロファイルを「complain」モードに変更する!
AppArmorのすべてのプロファイルを「complain」モードに変更します。
$ sudo aa-complain /etc/apparmor.d/*
すべてのプロファイルを「enforce」モードに変更する!
AppArmorのすべてのプロファイルを「enforce」モードに変更します。
$ sudo aa-enforce /etc/apparmor.d/*
特定のプロファイルをリロードする!
AppArmorの特定のプロファイルをリロードします。以下の「profile.name」をプロファイル名に変更して実行します。
$ sudo apparmor_parser -r /etc/apparmor.d/profile.name
すべてのプロファイルをリロードする!
AppArmorのすべてのプロファイルをリロードします。
$ sudo systemctl reload apparmor.service
おわりに
AppArmorの基本操作をまとめました。
参考情報
関連記事