カーネル 2.6 の時代には、アクセス制御セキュリティ ポリシーのメカニズムを提供するために新しいセキュリティ システムが導入されました。このシステムは、米国国家安全保障局 (NSA) によって提供された Security Enhanced Linux (SELinux) です。Linux カーネル サブシステムに堅牢な強制アクセス制御アーキテクチャを導入します。 これまで Linux を使い続けて SELinux を無効にしたり無視したりしてきた方にとって、この記事は役に立つでしょう。Linux デスクトップまたはサーバーの下位に存在し、権限を制限し、脆弱なプログラムやデーモンが損害を引き起こす可能性を排除する SELinux システムの概要を説明します。 始める前に、SELinux は主に Red Hat Linux とその派生ディストリビューションで利用できるツールであることを知っておく必要があります。同様に、Ubuntu と SUSE (およびその派生製品) は AppArmor を使用します。 SELinux と AppArmor は大きく異なります。 SELinux は SUSE、openSUSE、Ubuntu などにインストールできますが、Linux に非常に精通していない限り、非常に困難です。 それでは、SELinux について紹介したいと思います。 DAC 対 MAC Linux における従来のアクセス制御標準は、任意アクセス制御 (DAC) です。この形式では、ソフトウェアまたはデーモンはユーザー ID (UID) またはセット所有者ユーザー ID (SUID) として実行され、オブジェクト (ファイル、ソケット、およびその他のプロセス) に対するそのユーザーの権限を持ちます。これにより、悪意のあるコードが特定の権限で実行され、重要なサブシステムにアクセスすることが容易になります。 一方、強制アクセス制御 (MAC) は、機密性と整合性に基づいて情報の分離を強制し、損害を制限します。この制限ユニットは、従来の Linux セキュリティ メカニズムとは独立して動作し、スーパーユーザーの概念はありません。 SELinuxの仕組み SELinux に関連する概念について考えてみましょう。
サブジェクト (プログラムなど) がターゲット オブジェクト (ファイルなど) にアクセスしようとすると、カーネル内の SELinux セキュリティ サーバーがポリシー データベースからチェックを実行します。現在のモードに基づいて、SELinux セキュリティ サーバーが権限を付与すると、プリンシパルはターゲットにアクセスできます。 SELinux セキュリティ サーバーが権限を拒否した場合、拒否メッセージが /var/log/messages に記録されます。 比較的簡単そうに聞こえますね。実際のプロセスはより複雑ですが、紹介を簡略化するために重要な手順のみを記載します。 モデル SELinux には 3 つのモード (ユーザーが設定可能) があります。これらのモードは、SELinux がプリンシパル要求に応答する方法を決定します。これらのモードは次のとおりです。
図 1: getenforce コマンドは、SELinux が Enforcing 状態にあることを示します。 デフォルトでは、ほとんどのシステム上の SELinux は Enforcing に設定されています。システムが現在どのモードになっているかはどうすればわかりますか?これは、簡単なコマンド getenforce で確認できます。このコマンドの使い方は非常に簡単です (SELinux のモードを報告するだけなので)。このツールを使用するには、ターミナル ウィンドウを開いて getenforce コマンドを実行します。このコマンドは、Enforcing、Permissive、または Disabled を返します (上記の図 1 を参照)。 SELinux モードの設定は実際には非常に簡単です。設定するモードによって異なります。注意: SELinux を無効にすることは決して推奨されません。なぜ?これを実行すると、ディスク上のファイルに誤った権限ラベルが付けられる可能性があり、修正するには権限ラベルの再設定が必要になる場合があります。また、無効モードで起動されたシステムのモードを変更することはできません。最適なモードは、Enforcing または Permissive です。 SELinux モードは、コマンドラインまたは /etc/selinux/config ファイルから変更できます。コマンドラインからモードを設定するには、setenforce ツールを使用できます。強制モードを設定するには、次の手順を実行します。
図 2: SELinux モードを Enforcing に設定する。 モードを Permissive に設定するには、次の手順を実行します。
図 3: SELinux モードを Permissive に設定する。 注意: コマンドラインでモードを設定すると、SELinux 構成ファイルの設定が上書きされます。 SELinux コマンド ファイルでモードを設定する場合は、お気に入りのエディターでそのファイルを開き、次の行を見つけます。 SELINUX=許容 好みに応じてモードを設定し、ファイルを保存できます。 SELinux モードを変更する 3 番目の方法 (ブートローダー経由) もありますが、新しいユーザーにはこれをお勧めしません。 戦略タイプ SELinux ポリシーには 2 種類あります。
/etc/selinux/config ファイルでポリシー タイプを変更できます。お気に入りのエディターでこのファイルを開き、次の行を見つけます。 SELINUXTYPE=ターゲット ニーズに合わせてこのオプションをターゲットまたは厳格に変更します。 完全なSELinuxステータスを確認する SELinux 対応システムの詳細なステータス レポートを取得するために使用できる便利な SELinux ツールがあります。このコマンドはターミナルで次のように実行されます: セステータス -v 図 4 のような出力が表示されます。 図 4: sestatus -v コマンドの出力。 皮膚だけ ご想像のとおり、私は SELinux についてはまだ表面的な部分しか触れていません。 SELinux は確かに複雑なシステムであり、その仕組みとデスクトップやサーバーでより適切に動作させる方法をよりしっかりと理解するには、より深い調査が必要です。トラブルシューティングとカスタム SELinux ポリシーの作成についてはまだ説明していません。 SELinux は、すべての Linux 管理者が知っておくべき強力なツールです。 SELinux について紹介したので、Linux.com に戻るか (このトピックに関する記事がさらに公開されています)、より詳細なガイドについては NSA SELinux ドキュメントを確認することを強くお勧めします。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Mac インストール mysqlclient プロセス分析
>>: Navicat の MySQL へのリモート接続の実装手順の分析
<br />しばらくの間、多くの人が XHTML の使い方を知らないことに気付きました。...
vsftpd の概要vsftpd は「very secure FTP daemon」の略称で、セキ...
達成される効果は次のとおりです。 マウスがボタン内に移動すると、ネオンライトのような効果が生成され、...
隠れる前に:隠れた後: CS: ...コードをコピーコードは次のとおりです。オーバーフロー:非表示;...
MySQL 5.0 は、いくつかの「高度な機能」があるため定番となっています。これは、Windows...
IE6 と IE7 では CSS の解釈に多くの違いがあります。今日はそのうちの 1 つである高さに...
1. 組み込み関数1. 数学関数ランド()丸め(数値) ceil(数値)階数(数値)ランダム丸め切り...
序文以前の非MKレコードを再編成するためのMySQLの学習説明する有効になっていない場合、データベー...
1. コマンドの紹介gzip (GNU zip) コマンドは、ファイルの圧縮と解凍に使用されます。こ...
1. インストールディレクトリにzipパッケージを解凍します。まず、mysql-8.0.11-win...
最近、VMware Horizon を導入してテストしましたが、そのコンソールにはデフォルトで ...
目次1. 監視ポート関係の説明操作する2. 監視サービス関係の説明操作する3. テンプレートのインポ...
目次1. 4つのコンセプト1. JavaScriptはシングルスレッドです2. タスクキュー3. 同...
目次序文1. scp2をインストールする2. テスト/本番環境サーバーのSSHリモートログインアカウ...
目次1. 効果の実証2. 実装チュートリアル3. 最後に、完全なコードを添付します4. その他の右ク...