web-dev-qa-db-ja.com

どのLinuxセキュリティモジュール(LSM)が利用可能かどうかを判断する方法は?

どのLinuxセキュリティLSM(apparmor、selinux、grsecurity)がカーネルによって使用されているかを確認する方法はありますか?

具体的には、私がマシンの正当なrootユーザーであると仮定しましょう。

情報が入手できる場合は、さらに知っておくとよいでしょう。質問に関して、マシンが(a)ローカルコンピューター、(b)専用サーバー、および(c)仮想サーバー「vServer」であると考えることとの違いはありますか。

更新

たとえば、ユーザースペースのものをインストールできることを知っています(たとえば、debianにapt-get install apparmor)そして、特定のLSMに関連する結果が得られるかどうかを確認します。だから私はapparmorのためにできるSudo apparmor_statusこれにより、たとえば次のようになります。apparmor module is not loaded.これは私がそのオプションを除外するのに役立ちます。それでも私はほとんど/すべてのLSMをカバーするより一般的なアプローチを探していました。

update2

パスを発見しました/sys/kernel/security。多分これは答えを見つけるのに役立ちますか?

7

はい、/sys/kernel/securityで利用できるものを確認できます。

ブート設定については、dmesgまたは/proc/cmdlineも参照してください。

config.gzが利用可能な場合は、

zgrep CONFIG_SECURITY /proc/config.gz

else

grep CONFIG_SECURITY /boot/config-`uname -r`
5
user55518

もう1つできることは、/sys/moduleで組み込みモジュールを検索することです。

たとえば、apparmorが有効になっているUbuntu 16.04には、次のディレクトリが存在します。

/sys/module/apparmor/

参照: https://superuser.com/questions/287371/obtain-kernel-config-from-currently-running-linux-system

残念ながら、ls /sys/kernel/securityls /sys/module/selinuxon Android AOSP in QEM で、selinuxがあるようです。 、なぜだろうか。

カーネルがSELinuxでビルドされている場合、ブートdmesgには以下が含まれます。

SELinux:  Initializing.