sestatus は SELinux ステータスを表します。
このコマンドは、システムで実行されている SELinux の現在のステータスを表示するために使用されます。
このチュートリアルでは、以下について説明します:
<オール>
1. sestatus コマンド出力の説明
sestatus コマンドは、SELinux が有効か無効かを表示します。ここで説明されている SELinux 設定の一部に関する追加情報も表示されます。
以下は、CentOS 7 システムでの sestatus コマンドです。 CentOS / RedHat の古いバージョンでは、この出力は若干異なります。
# 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
注:上記の出力で、「現在のモード」は注意を払う必要がある最も重要な行です。これについては以下で説明します。
SELinux ステータス: これは、システムで SELinux モジュール自体が有効か無効かを示します。これは有効と表示されていても、SELinux が技術的に有効 (強制) ではない可能性があることに注意してください。これは、以下で説明する「現在のモード」行によって実際に示されます。
SELinuxfs マウント: これは、SELinux 一時ファイルシステムのマウント ポイントです。これは、SELinux によって内部的に使用されます。この SELinux ファイルシステムで ls を実行すると、このようになります。実際には、このディレクトリは SELinux によって内部的に管理されているため、このディレクトリでは何も操作できません。
# ls -l /sys/fs/selinux total 0 -rw-rw-rw-. 1 root root 0 Jun 4 22:16 access dr-xr-xr-x. 2 root root 0 Jun 4 22:16 avc dr-xr-xr-x. 2 root root 0 Jun 4 22:16 booleans -rw-r--r--. 1 root root 0 Jun 4 22:16 checkreqprot .. .. -r--r--r--. 1 root root 0 Jun 4 22:16 policy -rw-rw-rw-. 1 root root 0 Jun 4 22:16 relabel -r--r--r--. 1 root root 0 Jun 4 22:16 status -rw-rw-rw-. 1 root root 0 Jun 4 22:16 user
SELinux ルート ディレクトリ: これは、すべての SELinux 構成ファイルが配置されている場所です。デフォルトでは、次のファイルとディレクトリが表示されます。このディレクトリには、SELinux の操作に必要なすべての設定ファイルが含まれています。これらのファイルは変更できます。
# ls -l /etc/selinux total 8 -rw-r--r--. 1 root root 546 May 1 19:08 config drwx------. 2 root root 6 May 1 19:09 final -rw-r--r--. 1 root root 2321 Jan 17 18:33 semanage.conf drwxr-xr-x. 7 root root 215 May 1 19:09 targeted drwxr-xr-x. 2 root root 6 Jan 17 18:33 tmp
読み込まれたポリシー名: これは、現在ロードされている SELinux ポリシーのタイプを示します。ほとんどすべての一般的な状況では、SELinux ポリシーとして「ターゲット」が表示されます。これがデフォルトのポリシーであるためです。以下は利用可能な可能な SELinux ポリシーです:
- targeted – これは、対象のプロセスのみが SELinux によって保護されることを意味します
- minimum – これは、対象となるポリシーをわずかに変更したものです。この場合、選択された少数のプロセスのみが保護されます。
- mls – マルチレベル セキュリティ保護用です。 MLS は非常に複雑で、ほとんどの状況ではほとんど使用されていません。
現在のモード: これは、SELinux が現在ポリシーを適用しているかどうかを示します。つまり、技術的には、SELinux が現在システムで有効になっていて実行されているかどうかがわかります。
以下は可能な SELinux モードです:
- enforcing – これは、SELinux セキュリティ ポリシーが適用されている (つまり、SELinux が有効になっている) ことを示します
- permissive – これは、SELinux が強制ではなく警告を表示することを示します。これは、SELinux ログを見て、SELinux がブロックする可能性のあるものを (実際にはブロックせずに) 知りたい場合のデバッグ目的で役立ちます。
- 無効 - SELinux ポリシーは読み込まれません。
私たちの実用的な目的では、強制は有効に等しいです。 permissive と disabled は、disabled と同じです。
ポリシー MLS ステータスは、MLS ポリシーの現在のステータスを示します。デフォルトでは有効になっています。
ポリシーの deny_unknown ステータスは、ポリシーの deny_unknown フラグの現在のステータスを示します。デフォルトでは、これは許可に設定されます。
最大カーネル ポリシー バージョンは、現在の SELinux ポリシーのバージョンを示します。この例では、バージョン 28 です。
以下は、CentOS および RedHat 6 での sestatus の出力です。
# sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 24 Policy from config file: targeted
システムで SELinux を無効にする場合は、次のいずれかの方法を使用できます:SELinux を一時的または永続的に無効にする 4 つの効果的な方法
2.選択したオブジェクトのセキュリティ コンテキストを sestatus に表示
オプション -v を通常の selinux ステータスと共に使用すると、選択したファイルとプロセスの SELinux コンテキストを表示することもできます。
以下は、sestatus -v オプションのデフォルトの出力です:
# sestatus -v 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 Process contexts: Current context: unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 Init context: system_u:system_r:init_t:s0 /usr/sbin/sshd system_u:system_r:sshd_t:s0-s0:c0.c1023 File contexts: Controlling terminal: unconfined_u:object_r:user_devpts_t:s0 /etc/passwd system_u:object_r:passwd_file_t:s0 /etc/shadow system_u:object_r:shadow_t:s0 /bin/bash system_u:object_r:shell_exec_t:s0 /bin/login system_u:object_r:login_exec_t:s0 /bin/sh system_u:object_r:bin_t:s0 -> system_u:object_r:shell_exec_t:s0 /sbin/agetty system_u:object_r:getty_exec_t:s0 /sbin/init system_u:object_r:bin_t:s0 -> system_u:object_r:init_exec_t:s0 /usr/sbin/sshd system_u:object_r:sshd_exec_t:s0
上記の出力では:
- プロセス コンテキスト セクションには、選択したいくつかのプロセスの SELinux コンテキストが表示されます。 /etc/sestatus.conf ファイルにプロセスを追加することで、このリストに独自のプロセスを追加できます。ご覧のとおり、sshd プロセスのセキュリティ コンテキストが表示されます。
- ファイル コンテキスト セクションには、選択したいくつかのファイルの SELinux コンテキストが表示されます。独自のカスタム ファイルを /etc/sestatus.conf ファイルに追加することで、このリストに追加できます。上記の出力からわかるように、パスワード、シャドウ、およびその他のいくつかのファイルのセキュリティ コンテキストが表示されます。
- また、指定したファイルがシンボリック リンクの場合は、ターゲット ファイルのコンテキストも表示されます。
このセクションには、現在のプロセス、init プロセス、および制御のセキュリティ コンテキストが常に表示されます。端末ファイルのコンテキスト
以下は、/etc/sestatus.conf ファイルのデフォルト設定です。カスタム ファイルを [files] セクションに追加し、カスタム プロセスを [process] セクションに追加します。
# cat /etc/sestatus.conf [files] /etc/passwd /etc/shadow /bin/bash /bin/login /bin/sh /sbin/agetty /sbin/init /sbin/mingetty /usr/sbin/sshd /lib/libc.so.6 /lib/ld-linux.so.2 /lib/ld.so.1 [process] /sbin/mingetty /sbin/agetty /usr/sbin/sshd
3. sestatus にブール値を表示
-b オプションを使用すると、ブール値の現在の状態を以下のように表示できます。
以下に示すように、典型的な sestatus 出力とは別に、「Policy booleans:」セクションに、すべてのパラメーターの現在の SELinux ブール値が表示されます。
# sestatus -b | more 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 Policy booleans: abrt_anon_write off abrt_handle_event off abrt_upload_watch_anon_write on antivirus_can_scan_system off antivirus_use_jit off auditadm_exec_content on authlogin_nsswitch_use_ldap off authlogin_radius off authlogin_yubikey off awstats_purge_apache_log_files off boinc_execmem on cdrecord_read_content off ... ... ... xend_run_blktap on xend_run_qemu on xguest_connect_network on xguest_exec_content on xguest_mount_media on xguest_use_bluetooth on xserver_clients_write_xshm off xserver_execmem off xserver_object_manager off zabbix_can_network off zarafa_setrlimit off zebra_write_config off zoneminder_anon_write off zoneminder_run_sudo off
上記の出力は通常、getsebool コマンドの出力に表示される内容を示しています。つまり、上記の「sestatus -b」コマンドは、次の 2 つのコマンドを実行した場合と同じです:
sestatus getsebool -a