前回、SELinuxのアクセス拒否が原因で起きる問題を、いくつかの事例を見ながら確認しました。今回はさらに進んで、SELinuxの機能により、新たにアプリケーションに特定のドメインを作成して制御する方法を紹介します。

 SELinuxで新たにドメインを作成するにはいろいろな方法がありますが、一番簡単なのは「selinux-devel」のパッケージをインストールすることです。

 ただし、このパッケージはDevパッケージで開発環境を提供するため、ポリシーの開発は開発用サーバーで行い、本番環境には出来上がったポリシーのみをコピーする方が安全に本番環境を運用できます。

 以下、実例を使ってドメインの作成方法を見ていきましょう。

logstashのテスト環境を作る

 logの集中化と安全な保存は、運用管理の中でも(特に金融系など、官庁による査察などが入る場合には)重要なタスクになります。その中でも、logを集中化して可視化し予兆検知や管理をするシステムとして、logstash+ElasticSearch+Kibana(いわゆるELK)のシステムが注目されています。

 今回は、この中でも主要なパートになるログ収集部分の「logstash」をSELinuxにより保護することにします。

 logstashはログを収集し、転送する部分になります。logstashの開発元の米Elastic Search社のサイトにインストール方法が記載されていますので、オフィシャルの手順に従いインストールします(図1)。

図1●logstashパッケージをインストールする
[画像のクリックで拡大表示]

 次にlogstashの動作を確認するために、サンプルを作成します。システムログを監視対象として設定し、出力を/var/tmp/logstash-outputというファイルとして出力します。

 logstashは「logstash」ユーザで動くため、このままですと/var/log/messagesを開くときに「Permission Denied」が表示されてアクセスできません。そのため

  • logstashをrootで動かす
  • /var/log/以下のファイルの権限を緩くする

のいずれかが必要になります。今回は、/etc/rsyslog.confを修正し、所有者をlogstashにしたログファイル「/var/log/messages_logstash」を作成します。

この先は会員の登録が必要です。今なら有料会員(月額プラン)が12月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら