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

CentOSでselinuxを設定する方法

はじめに

Security Enhanced LinuxまたはSELinuxは、最新のLinuxディストリビューションに組み込まれている高度なアクセス制御メカニズムです。これは当初、コンピュータシステムを悪意のある侵入や改ざんから保護するために米国国家安全保障局によって開発されました。時が経つにつれて、SELinuxはパブリックドメインでリリースされ、それ以来、さまざまなディストリビューションがSELinuxをコードに組み込んでいます

多くのシステム管理者は、SELinuxがやや未知の領域であると感じています。このトピックは気が遠くなるように思えるかもしれませんし、時にはかなり混乱することもあります。ただし、適切に構成されたSELinuxシステムは、セキュリティリスクを大幅に減らすことができ、それについて少し知っていると、アクセス関連のエラーメッセージのトラブルシューティングに役立ちます。このチュートリアルでは、SELinuxの背後にある概念(パッケージ、コマンド、構成ファイル)について学習します

SELinuxパッケージのインストール

SELinuxでは多くのパッケージが使用されています。一部はデフォルトでインストールされます。 RedHatベースのディストリビューションのリストは次のとおりです。

  • policycoreutils (SELinuxを管理するためのユーティリティを提供します)
  • policycoreutils-python (SELinuxを管理するためのユーティリティを提供します)
  • selinux-policy (SELinuxリファレンスポリシーを提供します)
  • selinux-policy-targeted (SELinuxターゲットポリシーを提供します)
  • libselinux-utils (SELinuxを管理するためのいくつかのツールを提供します)
  • setroubleshoot-server (監査ログメッセージを解読するためのツールを提供します)
  • setools (監査ログの監視、クエリポリシー、およびファイルコンテキスト管理のためのツールを提供します)
  • setools-console (監査ログの監視、クエリポリシー、およびファイルコンテキスト管理のためのツールを提供します)
  • mcstrans (さまざまなレベルをわかりやすい形式に変換するためのツール)

これらのいくつかはすでにインストールされています。 CentOS 7システムにインストールされているSELinuxパッケージを確認するには、次のようないくつかのコマンドを実行します(grepの後に異なる検索語を使用します)。 )rootユーザーとして:

rpm -qa | grep selinux

出力は次のようになります。

libselinux-utils-2.2.2-6.el7.x86_64
libselinux-2.2.2-6.el7.x86_64
selinux-policy-targeted-3.12.1-153.el7.noarch
selinux-policy-3.12.1-153.el7.noarch
libselinux-python-2.2.2-6.el7.x86_64

以下のコマンドを使用して、すべてのパッケージをインストールできます(yumは、既に持っているパッケージを更新するだけです)。または、システムに不足しているパッケージだけをインストールします。

yum install policycoreutils policycoreutils-python selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans

これで、すべてのSELinuxパッケージがロードされたシステムができあがりました。

SELinuxモード

SELinuxで遊んでみる時が来たので、SELinuxモードから始めましょう。 SELinuxはいつでも、次の3つのモードのいずれかになります。

  • 実施
  • 許容
  • 無効

強制モードでは、SELinuxは強制します Linuxシステムでのポリシーを確認し、ユーザーとプロセスによる不正アクセスの試みが拒否されていることを確認します。アクセス拒否は、関連するログファイルにも書き込まれます。 SELinuxポリシーと監査ログについては後で説明します。

パーミッシブモードは、セミイネーブル状態のようなものです。 SELinuxはポリシーを許容モードで適用しないため、アクセスが拒否されることはありません。ただし、ポリシー違反は引き続き監査ログに記録されます。実施する前にSELinuxをテストするのに最適な方法です。

無効化されたモードは一目瞭然です。システムは強化されたセキュリティで実行されません。

SELinuxのモードとステータスの確認

getenforceを実行できます 現在のSELinuxモードを確認するコマンド。

getenforce

SELinuxは現在無効になっているはずなので、出力は次のようになります:

Disabled

sestatusを実行することもできます コマンド:

sestatus

SELinuxが無効になっている場合、出力には次のように表示されます。

SELinux status:        disabled

SELinux構成ファイル

SELinuxの主な設定ファイルは/etc/ selinux/configです。次のコマンドを実行して、その内容を表示できます。

cat /etc/selinux/config

出力は次のようになります:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

このファイルには2つのディレクティブがあります。 SELINUXディレクティブはSELinuxモードを指示し、前に説明したように3つの可能な値を持つことができます。

SELinuxの有効化と無効化

SELinuxの有効化はかなり簡単です。ただし、無効にするのとは異なり、2段階のプロセスで実行する必要があります。 SELinuxは現在無効になっており、前のセクションのすべてのSELinuxパッケージをインストールしたと想定しています。

最初のステップとして、/etc/selinux/configを編集する必要があります SELINUXディレクティブをパーミッシブモードに変更するファイル。

vi /etc/sysconfig/selinux
...
SELINUX=permissive
...

ステータスを許容に設定する SELinuxを適用する前に、システム内のすべてのファイルにコンテキストのラベルを付ける必要があるため、最初に必要です。すべてのファイルに適切なラベルが付けられていない場合、制限されたドメインで実行されているプロセスは、正しいコンテキストでファイルにアクセスできないために失敗する可能性があります。これにより、起動プロセスが失敗したり、エラーで開始したりする可能性があります。 コンテキストを紹介します およびドメイン チュートリアルの後半。

次に、システムを再起動します:

reboot

再起動プロセスでは、SELinuxコンテキストでラベル付けされたサーバー内のすべてのファイルが表示されます。

2番目のフェーズでは、設定ファイルを編集して、SELINUXディレクティブをpermissiveから変更する必要があります。 強制 /etc/sysconfig/selinuxにあります ファイル:

...
SELINUX=enforcing
...

次に、サーバーを再起動します。

reboot

サーバーがオンラインに戻ったら、sestatusを実行できます SELinuxステータスを確認するコマンド。サーバーに関する詳細が表示されます:

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          error (Success)
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

Cent OS
  1. CentOS7にBugzilla5.0をインストールする方法

  2. SmarterMailでグレイリストを構成する方法

  3. CentOSでSELinuxを無効にする方法は?

  1. SSLを使用してIMAPを設定する方法

  2. CentOS7でOpenSSHを構成する方法

  3. CentOS/RHEL に「setroubleshootd」をインストールして構成する方法

  1. CentOS7でSElinuxを無効にする方法

  2. CentOS8でSELinuxを無効にする方法

  3. CentOS7でSELinuxを無効にする方法