晴耕雨読

working in the fields on fine days and reading books on rainy days

CIS Benchmarkを元にSELinuxの設定をする

CIS BenchmarkとはCISが開発した情報システムを安全に構成するためのベストプラクティス集です。 ここでは CIS_CentOS_Linux_8_Benchmark_v1.0.1.pdf を参考に、SELinuxの設定の確認と修正について説明します。

PDFは CIS Benchmark Downloads からダウンロードできます。

以下、SELinuxの設定についてです。

SELinuxがインストール済み

確認方法:以下のコマンドでバージョンが出力されること

~]# rpm -q libselinux
libselinux-<version>

修正方法:

~]# dnf install libselinux

ブートローダーの設定でSELinuxが有効 (CentOS7)

確認方法:以下のコマンドで出力がないこと

~]# grep -E 'kernelopts=(\S+\s+)*(selinux=0|enforcing=0)+\b' /boot/grub2/grubenv

修正方法:/etc/default/grubファイルの変数 GRUB_CMDLINE_LINUX_DEFAULT や GRUB_CMDLINE_LINUX から selinux=0enforcing=0 の文字列を削除した後、以下のコマンドを実行する。

~]# grub2-mkconfig -o /boot/grub2/grub.cfg

ブートローダーの設定でSELinuxが有効 (CentOS6)

確認方法:以下のコマンドで出力がないこと

~]# [ -f /boot/efi/EFI/*/grub.conf ] && grep '^\s*kernel' /boot/efi/EFI/*/grub.conf | grep -E '(selinux=0|enforcing=0)' || grep '^\s*kernel' /boot/grub/grub.conf | grep -E '(selinux=0|enforcing=0)'

修正方法:/boot/efi/EFI/*/grub.confファイルから selinux=0enforcing=0 の文字列を削除した後、システムの再起動をします。

SELinuxポリシーが設定済み

確認方法:以下のコマンドで出力されること

~]# grep -E '^\s*SELINUXTYPE=(targeted|mls)\b' /etc/selinux/config

修正方法:/etc/selinux/configファイルを編集して SELINUXTYPE=targeted を設定する(再起動が必要)。

Enforceモードで有効

確認方法:以下のコマンドで出力されること

~]# grep -E '^\s*SELINUX=enforcing' /etc/selinux/config

修正方法:/etc/selinux/configファイルを編集して SELINUX=enforcing を設定する(再起動が必要)。

制限のないサービスが未稼働

確認方法:以下のコマンドで出力がないこと

~]# ps -eZ | grep unconfined_service_t

修正方法:実行するファイルにSELinuxコンテキストの bin_t が割り当てられないように chcon や semanage fcontext で実行ファイルのタイプを修正する。

bin_t や unconfined_service_t については、SELinuxによるコマンドに対する制限を完全に無くす を参照してください。

SETroubleshootが未インストール

SELinuxのトラブルシューティング機能。

確認方法:以下のコマンドでバージョンが出力されないこと

~]# rpm -q setroubleshoot
package setroubleshoot is not installed

修正方法:

~]# dnf remove setroubleshoot

MCS Translation Service (mcstrans) が未インストール

SELinux において MCS (Multi Category Security) をユーザ向けに分かりやすく表示する機能。

確認方法:以下のコマンドでバージョンが出力されないこと

~]# rpm -q mcstrans
package mcstrans is not installed

修正方法:

~]# dnf remove mcstrans

以上です。

参考文献