SELinux は「Security-Enhanced Linux」の略です 」。標準の Linux セキュリティは、随意アクセス制御 (DAC) に基づいています。 DAC を使用すると、ファイルとデバイスへのアクセスは、ユーザー ID と所有権のみに基づいて行われます。各ファイルは、ファイルの所有者、グループ、および他のユーザーに対して、読み取り、書き込み、および実行のアクセス許可を持つことができます。
SELinux は、システム内のファイル、プロセス、ユーザー、およびアプリケーションをよりきめ細かく制御するために、米国国家安全保障局によって作成されました。これは Linux カーネルの拡張機能であり、Mandatory Access Control (MAC) と呼ばれる別のタイプのセキュリティを実装しています。 MAC ポリシーは、ユーザーによって管理されるのではなく、集中管理されます。
SELinux は次の 3 つのモードのいずれかで実行されます:
- 強制 :SELinux セキュリティ ポリシー ルールで許可されていない限り、ユーザーとプログラムへのアクセスは拒否されます。
- 許容 :セキュリティ ポリシー ルールは適用されませんが、SELinux は拒否メッセージをログ ファイルに送信します。
- 無効 :カーネルにポリシーがロードされていないため、SELinux はセキュリティ ポリシーを適用しません。アクセス制御には DAC ルールのみが使用されます。
SELinux モードを表示
sestatus を使用できます コマンドを実行して、SELinux モードと SELinux に関する追加情報を表示します。
# sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 28
getenforce を使用できます コマンドで SELinux モードを表示します。このコマンドは、現在のモードを表示します:「Enforcing」 」、「許容 「、」または「無効 「。」例:
# getenforce Enforcing
SELinux モードの変更
ほとんどの場合、ファイル/プロセスのアクセス許可に関連する問題を解決するために、「強制」モードを「許可」に変更する人を見かけます。これは適用するベスト プラクティスではありませんが、Linux で問題を解決するための最も広く使用されている最も迅速な方法の 1 つです。 setenforce コマンドを使用して、モードを「強制 (1)」のいずれかに変更できます。 」または「許可 (0)」 」。例:
# setenforce 0 # getenforce Permissive
ブール値
SELinux は「ブール値」も提供します これにより、SELinux ポリシーをリロードまたは再コンパイルすることなく、実行時に SELinux ポリシーの一部を変更できます。次のコマンドを実行すると、ブール値のリスト、状態情報、およびブール値の説明を表示できます:
# semanage boolean -l SELinux boolean State Default Description privoxy_connect_any (on , on) Allow privoxy to connect any smartmon_3ware (off , off) Allow smartmon to 3ware mpd_enable_homedirs (off , off) Allow mpd to enable homedirs xdm_sysadm_login (off , off) Allow xdm to sysadm login ....
setsebool を使用して、特定のブール値の状態をオンまたはオフに変更できます。 指図。たとえば、ftp_home_dir ブール値をオンにするには:
# setsebool ftpd_use_nfs on
getsebool を使用する 特定のブール値の状態を表示するコマンド。例:
# getsebool ftpd_use_nfs ftpd_use_nfs --> on