SELinux ポートラベルの管理

Red Hat Enterprise LinuxIntermediate
オンラインで実践に進む

はじめに

Security-Enhanced Linux (SELinux) は、Red Hat Enterprise Linux における重要なセキュリティ機構であり、強制アクセス制御(MAC)ポリシーを適用します。この重要な側面の一つが「ラベル付け」であり、これはネットワークポートにも適用されます。ポートに特定の SELinux ラベルを割り当てることで、どのサービスがそのポートにバインド(接続)できるかを制御できます。

このチャレンジでは、SELinux ポートラベルの管理を実践します。既存のポート定義の確認方法、非標準ポートでサービスを許可するための新しいラベルの追加方法、そして元のポリシーに戻すための定義の削除方法を学びます。

SELinux ポートラベルの管理

あなたはシステム管理者として、Web サーバーを非標準ポートである 8081 で動作させるように設定する必要があると仮定します。デフォルトでは、SELinux は Web サーバープロセス(例:httpd)がこのポートにバインドするのを阻止します。これは、そのポートに正しい SELinux ラベルが付与されていないためです。あなたのタスクは、semanage ユーティリティを使用して、ポート 8081 に一時的に正しいラベルを追加し、その後削除することです。

タスク

  • HTTP サービスに関連付けられている既存の SELinux ポートラベルを表示する。
  • TCP ポート 8081http_port_t タイプを割り当てる新しいルールを追加し、Web サーバーがそのポートを使用できるようにする。
  • 新しいルールを確認した後、TCP ポート 8081 のカスタムルールを削除して、変更を元に戻す。

要件

  • すべてのコマンドは labex ユーザーとして実行してください。管理者権限が必要な場合は sudo を使用してください。
  • すべての操作は /home/labex ディレクトリ内で行ってください。
  • SELinux ポートラベルの管理には semanage コマンドを使用してください。

新しいポートラベルを追加する前に http_port_t を照会すると、デフォルトのポートが表示されます:

## sudo semanage port -l | grep http_port_t
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988

ポート 8081 のルールを追加した後の出力には、新しいポートが含まれているはずです:

## sudo semanage port -l | grep http_port_t
http_port_t                    tcp      8081, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988

まとめ

このチャレンジでは、SELinux ネットワークポートラベルを管理するための基本的な操作を学びました。semanage port コマンドを使用して既存のポリシーを表示し、semanage port -a で新しいポート定義を追加し、semanage port -d で削除する練習を行いました。ポートに適切にラベルを付けることは、Red Hat Enterprise Linux のような SELinux が有効なシステムでネットワークサービスを安全に展開するために不可欠なスキルです。

✨ 解答を確認して練習