GNU/Linux >> Linux の 問題 >  >> Cent OS

SELinux ファイルのラベル付けと SELinux コンテキストについて

SELinux ファイルのラベル付け

すべてのファイル、ディレクトリ、デバイス、およびプロセスには、関連付けられたセキュリティ コンテキスト (またはラベル) があります。ファイルの場合、このコンテキストはファイル システムの拡張属性に格納されます。 SELinux の問題は、多くの場合、ファイル システムのラベルが誤っていることが原因で発生します。 file_t を含むエラー メッセージが表示される場合 、これは通常、ファイル システムのラベル付けに問題があることを示す良い指標です。

ファイル システムのラベルを変更するには、いくつかの方法があります:

  • /.autorelabel ファイルを作成して再起動します。
  • SELinux GUI のステータス ビューには、次回の再起動時にラベルを変更するオプションがあります。
  • 3 つのコマンドライン ユーティリティ、restorecon、setfiles、fixfiles、ファイルの再ラベル付け

SELinux コンテキスト

SELinux コンテキストには、SELinux ユーザー、ロール、タイプ、レベルなどの追加情報が含まれています。プロセス、Linux ユーザー、およびファイルに対するアクセス制御の決定は、このコンテキスト情報に基づいています。アクセス制御は以下の情報に基づいています:

  • SELinux ユーザー :Linux ユーザーは SELinux ユーザーにマッピングされます。
  • 役割 :ドメインと SELinux ユーザーの間の仲介者として機能する RBAC の属性
  • タイプ :プロセスのドメインを定義する TE の属性
  • レベル : 追加情報; MLS と MCS の属性

SELinux コンテキスト情報の表示

ファイルに関する SELinux コンテキスト情報を表示する
コマンド ラインからファイル システムのコンテキスト情報を表示するには、「ls –Z」を使用します。 ” コマンド:

# ls -Z
-rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg
-rw-r--r--. root root system_u:object_r:admin_home_t:s0 initial-setup-ks.cfg
注意 :この情報は /etc/selinux/[SELINUXTYPE]/contexts/files ディレクトリにも保存されます。

プロセスに関する SELinux コンテキスト情報を表示する
プロセスに関する SELinux コンテキスト情報を表示するには、「ps –Z」を使用します ” コマンド:

# ps -Z
LABEL                              PID TTY          TIME CMD
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 6617 pts/0 00:00:00 sudo
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 6623 pts/0 00:00:00 su
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 6624 pts/0 00:00:00 bash
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 8188 pts/0 00:00:00 ps

ユーザーに関する SELinux コンテキスト情報の表示
Linux ユーザーに関連付けられている SELinux コンテキストを表示するには、「id –Z」を使用します ” コマンド:

# id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

SELinux コンテキストは、次の構文を使用して表示されます:

user:role:type:level

コンテキスト ファイル タイプの変更

KVM 仮想マシンのディスク イメージは /var/lib/libvirt/images に作成されます デフォルトではディレクトリ。 SELinux では、イメージ ファイルに virt_image_t が含まれている必要があります それらに適用されるラベル。 「ls –dZ」コマンドを使用して、このラベルが /var/lib/libvirt/images ディレクトリに適用されていることを確認できます:

# ls -dZ /var/lib/libvirt/images
drwx--x--x. root root system_u:object_r:virt_image_t:s0 /var/lib/libvirt/images

仮想マシン イメージに別のディレクトリを使用できますが、新しいディレクトリを SELinux ポリシーに追加し、最初にラベルを付け直す必要があります。次の手順を使用して、/kvmimages ディレクトリを対象の SELinux ポリシーに追加し、ディレクトリのラベルを変更します:

# semanage fcontext -a -t virt_image_t "/kvmimages(/.*)?"

上記のコマンドは、次のファイルに行を追加することで、/kvmimages ディレクトリを SELinux ポリシーに追加します:

# cat /etc/selinux/targeted/contexts/files/file_contexts.local
/kvmimages(/.*)?    system _u:object_r:virt_image_t:s0

ディレクトリとディレクトリ内のすべてのファイルに新しいセキュリティ コンテキストを設定する必要があります。次のコマンドのいずれかを使用して、/kvmimages ディレクトリの SELinux コンテキストを変更できます:

  • 修正ファイル :ファイル システムのセキュリティ コンテキストを修正します
  • restorecon :1 つ以上のファイルのセキュリティ コンテキストをリセットします
  • セットファイル :1 つ以上のファイルのセキュリティ コンテキストを初期化します

これらの各コマンドは、/etc/selinux/targeted/contexts/files 内のファイルを読み取ります ディレクトリ。次の例は、restorecon コマンドを実行する前の SELinux コンテキストを示しています。

# ls -dZ /kvmimages
drwx--x--x. root root system_u:object_r:unlabeled_t:s0 /var/lib/libvirt/images

SELinux タイプが unlabeled_t に設定されていることに注意してください .次の例では、restorecon コマンドを実行して、/etc/selinux/targeted/contexts/files/file_contexts.local で定義されているタイプを変更します。 ファイル:

# restorecon -R -v /kvmimages
# ls -dZ /var/kvmimages
drwx--x--x. root root system_u:object_r:virt_image_t:s0 /kvmimages

libvirt によって起動されたときに KVM に影響を与える SELinux ブール値もあります。これらのブール値のうち 2 つを次に示します。

  • virt_use_nfs :virt が NFS ファイルを管理できるようにします。
  • virt_use_samba :virt が CIFS ファイルを管理できるようにします。

これらのブール値は、仮想マシンのディスク イメージを格納するために NFS または SAMBA 共有をそれぞれ使用する場合に有効にする必要があります。 KVM に影響を与える追加の SELinux ブール値があります。これらの一部を以下に示します:

# getsebool -a | grep virt
staff_use_svirt --> off
unprivuser_use_svirt --> off
virt_read_qemu_ga_data --> off
virt_rw_qemu_ga_data --> off
virt_sandbox_use_all_caps --> on
virt_sandbox_use_audit --> on
virt_sandbox_use_fusefs --> off
virt_sandbox_use_mknod --> off
virt_sandbox_use_netlink --> off
virt_sandbox_use_sys_admin --> off
virt_transition_userdomain --> off
virt_use_comm --> off
virt_use_execmem --> off
virt_use_fusefs --> off
virt_use_nfs --> on
virt_use_rawip --> off
virt_use_samba --> off
virt_use_sanlock --> off
virt_use_usb --> on
virt_use_xserver --> off
SELinux ユーザーとは何か、および Linux ユーザーを SELinux ユーザーにマップする方法


Cent OS
  1. リダイレクトとパイプ出力?

  2. Tc QdiscとIperfを理解していますか?

  3. vsFTPDのインストールと構成

  1. SELinux ブール値について

  2. Linux での SELinux ポリシーについて

  3. SELinux ファイルのラベル付けと SELinux コンテキストについて

  1. Linux – Unixのアクセス許可とファイルタイプを理解していますか?

  2. ファイルのアクセス許可と保存?

  3. ログローテーションユーティリティを理解する