第3回 SELinuxのお行儀を監視する――MRTG/Nagios編
面 和毅
サイオステクノロジー株式会社
OSSテクノロジーセンター
開発支援グループ
グループマネージャー
2007/8/29
SNMP+MRTGでSELinuxが問題になる場合
ここで、SELinuxが問題になる事例として考えられることは、snmpd.confなどのファイルのコンテキスト情報がおかしくなった場合に、snmpdがきちんと動作しなくなるケースです。
例として、いったんクライアント上でSELinuxを無効にしてから、snmpdの設定ファイル(/etc/snmp/snmpd.conf)のコンテキスト“snmpd_etc_t”を別のコンテキストに変更し、再度SELinuxを有効にして、
# service snmpd restart |
としてsnmpdを再起動してみましょう。今回、コンテキストを“httpd_config_t”に変更してみました。どのようなことになるでしょうか。
SELinuxをいったん無効にし、snmpd.confファイルのコンテキストを変更する [root@plone2 snmp]# setenforce 0 [root@plone2 snmp]# chcon system_u:object_r:httpd_config_t snmpd.conf [root@plone2 snmp]# ls -lZ -rw-r--r-- root root system_u:object_r:httpd_config_t snmpd.conf [root@plone2 snmp]# setenforce 1 [root@plone2 snmp]# getenforce Enforcing --------------------------------------------------------------- snmpd を再起動する [root@plone2 snmp]# service snmpd restart Stopping snmpd: [ OK ] Starting snmpd: [ OK ] |
リスト4 snmpd.confのコンテキストを変更し、再起動 |
一見すると、snmpdは動作しているように見えますが、クライアント上や監視サーバ上からsnmpwalkを用いてMIBツリー情報を取得しようとすると「Timeout: No Response from localhost」などとなってタイムアウトしてしまい、情報が得られなくなっています。
snmpd のコンテキストを確認してみる。 一見するときちんと動作しているように見える [root@plone2 snmp]# ps axZ | grep snmp root:system_r:snmpd_t 20894 ? S 0:00 /usr/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd.pid -a --------------------------------------------------------------- snmpwalkの結果が返ってこなくなる [マシンA(監視サーバ)] [root@plone2 snmp]# snmpwalk -Os -c private -v 1 localhost system Timeout: No Response from localhost [マシンB(監視対象クライアント)] [omok@nagios ~]$ snmpwalk -c public -v 1 plone2 system Timeout: No Response from plone2 |
リスト5 コンテキストが異なると情報が取得できない |
このように、snmpdの設定ファイルなどのコンテキストが本来のものと異なってしまった場合には、SELinuxによりsnmpdがきちんと動作しなくなることがあるようです。このようなケースが起きる場合は、
- SELinuxを有効/無効で切り替えて作業をしているときに、snmpd.confファイルのコンテキストに不整合が起きた
- 新たにsnmpd.confを別の場所からコピーしたときに、付加されたコンテキストが望んだものと異なってしまった
- バックアップからリストアする際に、コンテキスト情報がきちんとリストアされなかった(第2回参照)
など、さまざまな原因が考えられます。
コンテキスト情報が「おかしくなっているかな?」と感じたときには、 /etc/selinux/targeted/contexts/files/file_contextsファイルに、システム内のすべてのファイルのコンテキスト情報が格納されていますので、こちらを参考にするとよいでしょう。ただし、このファイルのコンテキスト情報はSELinuxポリシーで決定されているもので、chconコマンドなどで手動で直したコンテキスト情報については反映されませんので注意が必要です。
Nagios+NRPEによる監視
次に、これも運用監視で広く使われている「Nagios」を例に、SELinuxの動作に対してどう影響するかを見てみましょう。
MRTGの場合と同様に、すでにNagiosが動作しているマシンBで運用監視をしているシステムに、新たにSELinuxが有効になったクライアントマシンAを付け加えたという状況を考えます。
図3 Nagios+NRPEでのシステム構成 |
Nagiosのインストールや設定については、@ITの連載記事で詳しく説明されていますので、そちらを参考にしてください。
【関連記事】 連載:24×365のシステム管理 第5回 Webサーバの24×365監視を実現する 〜その2 URL監視用のツールをインストールする〜http://www.atmarkit.co.jp/fnetwork/rensai/netman05/netman01.html |
監視対象クライアントの情報を取得するために、クライアント上にNagios PluginsとNRPEをインストールします。NRPEとNagiosの関係を図4に示します。
図4 NagiosとNRPEの関係 |
- Nagiosサーバはnagios.cfgファイルにより動作します。
- nagios.cfgファイルは別の設定ファイル(今回の例ではmynetwork.cfgファイル)を参照しています。
- mynetwork.cfgファイルでは、監視対象のクライアントに対してcheck_nrpeを通して通信を行います。
- クライアントではxinedを通してNRPEが起動されます。
- NRPEはnrpe.cfgファイルを参照し、check_nrpeにより引き渡されたコマンドをプラグインに変換して実行します。
- 実行結果と終了ステータスがNRPEからNagiosサーバに返され、画面に表示されます。
CentOS 4.5用のRPMはyumで提供されていないため、ソースをダウンロードしてコンパイル/インストールします。NRPE.pdfに記載されているインストール手順に従って、Nagios PluginとNRPEをインストールします。
2/3 |
Index | |
SELinuxのお行儀を監視する――MRTG/Nagios編 | |
Page1 「SELinuxはトラブルの元」は都市伝説です SNMP+MRTGによる監視 SNMP+MRTGの結果 |
|
Page2 SNMP+MRTGでSELinuxが問題になる場合 Nagios+NRPEによる監視 |
|
Page3 Nagios Pluginsのインストール NRPEのインストール nrpe.cfgファイルの編集 Nagiosサーバ上での設定ファイルの変更 Nagios+NRPEシステムでの結果 |
スイッチ・オン! SELinux 連載インデックス |
- Windows起動前後にデバイスを守る工夫、ルートキットを防ぐ (2017/7/24)
Windows 10が備える多彩なセキュリティ対策機能を丸ごと理解するには、5つのスタックに分けて順に押さえていくことが早道だ。連載第1回は、Windows起動前の「デバイスの保護」とHyper-Vを用いたセキュリティ構成について紹介する。 - WannaCryがホンダやマクドにも。中学3年生が作ったランサムウェアの正体も話題に (2017/7/11)
2017年6月のセキュリティクラスタでは、「WannaCry」の残り火にやられたホンダや亜種に感染したマクドナルドに注目が集まった他、ランサムウェアを作成して配布した中学3年生、ランサムウェアに降伏してしまった韓国のホスティング企業など、5月に引き続きランサムウェアの話題が席巻していました。 - Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは (2017/7/10)
代表的なマルウェア解析方法を紹介し、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説する - 侵入されることを前提に考える――内部対策はログ管理から (2017/7/5)
人員リソースや予算の限られた中堅・中小企業にとって、大企業で導入されがちな、過剰に高機能で管理負荷の高いセキュリティ対策を施すのは現実的ではない。本連載では、中堅・中小企業が目指すべきセキュリティ対策の“現実解“を、特に標的型攻撃(APT:Advanced Persistent Threat)対策の観点から考える。
|
|