第5回 トラブルシューティングはCentOS 5におまかせ
面 和毅
サイオステクノロジー株式会社
OSSテクノロジーセンター
開発支援グループ
グループマネージャー
2007/11/15
CentOS 5も2007年4月にリリースされてから、早くも半年が過ぎました。そろそろ導入を検討されている方もいらっしゃるのではないでしょうか?
CentOS 5からはSELinuxの設定方法などが以前のバージョンよりも格段に簡単になり、設定のためのさまざまなツールもそろってきています。今回から、CentOS 5でのSELinuxの使い方を、実例を基に説明していきましょう。
CentOS 5でのSELinux――RHEL 5との違いは?
CentOS 5はRed Hat Enterprise Linux 5(RHEL 5)のクローンになります。RHEL 5でのSELinuxの新機能に関しては、@ITの記事ですでに紹介していますので詳しい内容はそちらを参照してください。
【関連記事】 Red Hat Enterprise Linux 5で始めるSELinux http://www.atmarkit.co.jp/fsecurity/special/97rhel/rhel01.html |
大まかな機能変化としては、
- 「Reference Policy」の採用により、ポリシーを修正する際にもポリシーソース全部を必要としなくなった。
- セキュリティコンテキストに新たに「Multi Level Security」(MLS)を加えた。これにより、MLSによるアクセス制御もできるようになった。
- GUIツールが拡充され、プログラムの動作に支障があった場合でも、SELinuxが原因で起きているのかをリアルタイムで把握できるツールが入った。また、対処の指針も出してくれるツールが入った。
- デフォルトのポリシーでもドメイン分けされているサービスが増えた。これにより、よく知られているようなアプリケーションであれば、インストールしただけでドメインが分離されてセキュリティが保てるようになった。
というところでしょう。
1、2に関しては、「Red Hat Enterprise Linux 5で始めるSELinux」ですでに紹介していますので、3、4について実際にCentOS 5上にアプリケーションを導入して、CentOS 4との違いを見ていきましょう。
GUIツール、SELinuxトラブルシューターを試してみる
CentOS 5ではSELinuxの管理ツールとして、GUIから、
- SELinuxトラブルシューター
- SELinux Manager(semanagement)
の2つが使用できます。CentOS 4でのSELinuxログはアクセスがあるたびに出力されていたため、非常に大量となるログに悩まされたものでした。また、ログの内容自体も、どの部分のアクセス権で処理が拒否されて、どう直していけばよいのかを判断するのが非常に難しいものでした。
「SELinuxトラブルシューター」は、これらのログを分類してまとめ、かつ分かりやすい形で出力してくれるものです。また、SELinuxに起因しているエラーを解消するための方法もメッセージとして(ある程度までになりますが)出力してくれます。
今回、例としてリスト1のようなCGIスクリプトとリスト2のようなHTMLファイルを用意しました。
#!/usr/bin/perl use CGI; use Net::Ping; open(STDERR, ">&STDOUT"); $|=1; $cgi = new CGI; print "Content-Type: text/html\r\n\r\n"; print "<HTML><BODY><PRE>"; $host = $cgi->param('hostname'); $timeout=0.1; my $p = Net::Ping->new('tcp'); $p->tcp_service_check(1); $port = 22; $p->{'port_num'} = $port; print "Port $port on $host is ", ($p->ping($host) ? "up" : "down"), ".\n"; $p->close(); print "</PRE></BODY></HTML>"; |
リスト1 ポート22番が空いているかどうかを確認するサンプルCGIスクリプト |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <title>ping</title> </head> <body> <h1> SSH check page</h1> <form action=cgi-bin/test.cgi method=POST> Host <input type=text size=20 name=hostname><br> <input type=submit value="Check SSH now!!"> </form> </body> </html> |
リスト2 サンプルHTMLファイル |
空欄にIPアドレスを入力してボタンを押すと、そのIPアドレスのホスト上でSSHが動作しているかどうか(より正確にはポート22番がOpenになっているかどうか)をテストしてくれるCGIとHTMLになります。
図1 サンプルプログラムの実行画面 |
CentOS 5にyumでApacheをインストールし、このCGIをテストします。このサンプルはそのままではうまく動きませんが、SELinuxトラブルシューターを利用するとどのように対応ができるかを体験してみましょう。
1/3 |
Index | |
トラブルシューティングはCentOS 5におまかせ | |
Page1 CentOS 5でのSELinux――RHEL 5との違いは? GUIツール、SELinuxトラブルシューターを試してみる |
|
Page2 早速、トラブルシューティングしてみよう |
|
Page3 SELinux Managerを試してみる |
スイッチ・オン! 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)対策の観点から考える。
|
|