第1回 CMSツールをよりセキュアに導入しよう


面 和毅
サイオステクノロジー株式会社
OSSテクノロジーセンター
開発支援グループ
グループマネージャー
2007/5/23
Red Hat Enterprise Linux 5でも注目されるSELinuxの機能、Linuxに精通したエンジニアでも難しい単語や概念が並ぶことから、どう活用すべきか分からず機能をオフにしてしまっている場合も多い。今回の連載ではSOHOや社内サーバ管理に直結した、実務でSELinuxを使うための事例を中心に紹介する(編集部)

 SELinuxは運用のステージへ

 2000年にSELinuxがオープンソースとして公開されてから、かなりの年月がたとうとしています。導入方法も、公開当時のころの2.4カーネルにパッチをあてる形から、現在のようにRed Hat Enterprise Linuxやそのほかの主要なディストリビューションに取り込み済みという形に変化しています。

 それに伴い、ユーザーからの質問も、「SELinuxって何なの?」「SELinuxで何が守れるの?」といった根本的なものから、「どうやって使うの?」「どうやって管理していくの?」という、より実際の運用に即したものに変わってきたと感じています(それ以前に、「SELinuxはオフにする」という認識もあるようですが……)。

 この連載では、システムを実際に運用していく際に必要な、「バックアップ」「ログの取り方/解析」などをテーマに、システム管理者側の視点に立ち、SELinuxを用いてセキュリティを高めたシステムを、実運用するためのTips的なものを紹介していきたいと思います。

 そのため、「SELinuxとは何か」「Type Enforcementとは」のような基本的な説明や、用語の説明は割愛する個所が多くなると思いますので、ご了承ください。SELinuxに関しての詳しい説明は、ITmediaエンタープライズの記事「サルでも分かるSELinuxトラブルシュート」や@ITでのSELinux関連の連載記事などを参考にされるとよいでしょう。

【参考記事】
サルでも分かるSELinuxトラブルシュート(ITmedia エンタープライズ)
http://www.itmedia.co.jp/enterprise/articles/0704/02/news021.html


SELinuxの最新動向 (@IT)
http://www.atmarkit.co.jp/fsecurity/rensai/selinux01/selinux01.html

 また、基本的に「運用」をターゲットにすると、システム的にも十分「枯れている」状態が理想的だと思いますので、対象とするシステムはCentOSベースのやや古めのバージョン(CentOS 4.4)とします。今回インストールしたシステムに関して、今後バックアップやログ取得などの運用を行っていきます。

 第1回では、「Plone/Zopeでのコンテンツ管理システムを、SELinuxを用いて保護してみよう」というテーマにしたいと思います。

 PloneをSELinuxで保護する

 Ploneとは、Zopeのコンテンツ管理フレームワークをベースにした、オープンソースのコンテンツ管理システム(CMS)です。Ploneの特徴は、「インストールが容易でそのまますぐに使える」ことです。コンテンツ管理システムを初めて使用する際には使いやすいと思います。

【参考リンク】
plone.jp ポータル
http://plone.jp/

 Ploneのインストール

 CentOS 4.4を使用します。PloneのパッケージはCentOSのExtraに入っていますので、http://centos.karan.org/からrepoファイルをダウンロードして、/etc/yum.repos.dディレクトリにコピーし、GPGキーをインポートすれば、

# yum install plone

で必要なZopeのパッケージごとインストールすることができます。

 yumでのインストールが終わりましたら、

# zopectl adduser [username] [password]

として管理ユーザーのアカウントとパスワードを作成し、

# /etc/init.d/zope start

としてZopeを起動します。デフォルトでは8080番ポートでzopeプロセスが起動しますので、WebブラウザからZope管理画面にアクセスしてploneサイトを作成します。

 インストールの詳しい手順は、ITmediaの「dev blog/CMS インストールガイド:Plone 2」を参照してください。

【参考記事】
dev blog/CMS インストールガイド:Plone 2(ITmedia エンタープライズ)
http://www.itmedia.co.jp/enterprise/articles/0412/21/news006.html

 SELinux外でのセキュリティの担保

 SELinux外でよく行われているセキュリティの担保としては、

  • ファイアウォール/IPS(侵入防止システム)などを利用したネットワーク経由の攻撃からの防御
  • ExecShieldなどを利用したバッファオーバーフローからの保護

などが考えられるでしょう。SELinuxはあくまでも「アクセス制御をきっちりと行う」というもので、それ以上のものではありません。そのため、SELinuxを有効にしても、DoS攻撃を受けるとダメですし、バッファオーバーフローを防いでくれるというわけでもありません(もちろん、バッファオーバーフローを悪用した攻撃からの2次被害を防ぐためには有効ですが)。SELinuxはあくまでもセキュリティを強化するパーツの1つだという考えで導入した方がよいと思います。

 また、SELinuxで保護する以前に、

  • 不必要なソフトはインストールしない
  • 不要なポートは閉じておく
  • ユーザー/パスワードの運用管理はしっかりしておく
  • suを使わずにsudoを使うなどで履歴を取る
  • 設定変更にはcvsなどを使用して変更履歴を取っておく
  • sshなど、外部から接続する際にはパスワードではなく証明書などを使用し、接続元のIPなどの確認も行う
  • Tripwireなどでホストの改ざん検知も行っておく

といった、通常のOS/ディストリビューションでできる範囲の、基本的な点を押えておくことも重要です。

1/3

Index
CMSツールをよりセキュアに導入しよう
Page1
SELinuxは運用のステージへ
PloneをSELinuxで保護する
Ploneのインストール
SELinux外でのセキュリティの担保
  Page2
SELinux(Targeted)でのPlone/Zope
CentOS 4.4でのポリシーの編集方法
  Page3
Zopeドメインの構成情報を考える
Zopeドメインを作成する
このポリシーの注意点


スイッチ・オン! SELinux 連載インデックス


Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間