2.8. SELinux の設定


SELinux は、デフォルトで HTTP サーバーへの標準以外のアクセスを制限します。カスタムポートを定義する場合は、SELinux がアクセスを付与できる設定を追加する必要があります。

Puppet には、ブール値やモジュールなどの一部の SELinux 機能を管理するリソースタイプが含まれます。ただし、semanage コマンドを実行してポート設定を管理する必要があります。このツールは policycoreutils-python パッケージの一部で、Red Hat Enterprise Linux システムにはデフォルトではインストールされていません。

mymodule::httpd クラス内に以下のコードを追加します。

Copy to Clipboard Toggle word wrap
  exec { 'semanage-port':
    command => "semanage port -a -t http_port_t -p tcp ${httpd_port}",
    path => "/usr/sbin",
    require => Package['policycoreutils-python'],
    before => Service['httpd'],
    subscribe => Package['httpd'],
    refreshonly => true,
  }
  package { 'policycoreutils-python':
    ensure => installed,
  }

このコードは、以下を実行します。

  • require ⇒ Package['policycoreutils-python'] 属性は、コマンドの実行前に policycoreutils-python がインストールされていることを確認します。
  • Puppet は httpd_port を変数として使用して semanage を実行し、Apache のリッスンが許可される TCP ポートのリストにカスタムポートを追加します。
  • before ⇒ Service ['httpd'] により、httpd サービスを起動する前にこのコマンドが実行されます。SELinux コマンドの前に httpd が起動すると、SELinux はポートへのアクセスを拒否し、サービスの起動に失敗します。
  • SELinux 実行可能ファイルリソースのコードには refreshonly ⇒ true および subscribe ⇒ Package['httpd'] の属性が含まれます。これにより、SELinux コマンドは、httpd のインストール後にのみ実行されます。これらの属性がないと、その後実行に失敗します。これは、ポートがすでに有効化されていることを SELinux が認識し、エラーを報告するためです。

puppet apply コマンドを再度実行して、モジュールへの変更をテストします。

Copy to Clipboard Toggle word wrap
# puppet apply mymodule/tests/init.pp --noop
...
Notice: /Stage[main]/Mymodule::Httpd/Package[policycoreutils-python]/ensure: current_value absent, should be present (noop)
...
Notice: /Stage[main]/Mymodule::Httpd/Exec[semanage-port]/returns: current_value notrun, should be 0 (noop)
...
Notice: /Stage[main]/Mymodule::Httpd/Service[httpd]/ensure: current_value stopped, should be running (noop)
...

Puppet は、最初に policycoreutils-python をインストールしてから、httpd サービスを起動する前にポートアクセスを設定します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat, Inc.