25.3. selinux RHEL システムロールを使用したポートの管理


selinux RHEL システムロールを使用すると、複数のシステムにわたる一貫した SELinux でのポートアクセス管理を自動化できます。これは、たとえば、Apache HTTP サーバーを別のポートでリッスンするように設定する場合に役立ちます。これを実行するには、特定のポート番号に http_port_t SELinux タイプを割り当てる selinux RHEL システムロールを使用して Playbook を作成します。管理対象ノードで Playbook を実行すると、SELinux ポリシーで定義された特定のサービスがこのポートにアクセスできるようになります。

SELinux でのポートアクセス管理は、seport モジュール (ロール全体を使用するよりも高速) を使用するか、selinux RHEL システムロール (SELinux 設定で他の変更も行う場合に便利) を使用することで自動化できます。これらの方法は同等です。実際、selinux RHEL システムロールは、ポートを設定するときに seport モジュールを使用します。どちらの方法も、管理対象ノードでコマンド semanage port -a -t http_port_t -p tcp <port_number> を入力するのと同じ効果があります。

前提条件

  • コントロールノードと管理対象ノードの準備が完了している
  • 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
  • 管理対象ノードへの接続に使用するアカウントに、そのノードに対する sudo 権限がある。
  • オプション: semanage コマンドを使用してポートの状態を確認するには、policycoreutils-python-utils パッケージをインストールする必要があります。

手順

  • 他の変更を加えずにポート番号だけを設定するには、seport モジュールを使用します。

    - name: Allow Apache to listen on tcp port <port_number>
      community.general.seport:
        ports: <port_number>
        proto: tcp
        setype: http_port_t
        state: present

    <port_number> は、http_port_t タイプを割り当てるポート番号に置き換えます。

  • SELinux のその他のカスタマイズを伴うより複雑な設定を管理対象ノードに行う場合は、selinux RHEL システムロールを使用します。Playbook ファイル (例: ~/playbook.yml) を作成し、次の内容を追加します。

    ---
    - name: Modify SELinux port mapping example
      hosts: all
      vars:
        # Map tcp port <port_number> to the 'http_port_t' SELinux port type
        selinux_ports:
          - ports: <port_number>
            proto: tcp
            setype: http_port_t
            state: present
    
      tasks:
        - name: Include selinux role
          ansible.builtin.include_role:
            name: rhel-system-roles.selinux

    <port_number> は、http_port_t タイプを割り当てるポート番号に置き換えます。

検証

  • ポートが http_port_t タイプに割り当てられていることを確認します。

    # semanage port --list | grep http_port_t
    http_port_t                	tcp  	<port_number>, 80, 81, 443, 488, 8008, 8009, 8443, 9000

関連情報

  • /usr/share/ansible/roles/rhel-system-roles.selinux/README.md ファイル
  • /usr/share/doc/rhel-system-roles/selinux/ ディレクトリー
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.