|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IBM Lotus Domino Webサーバーをセキュアにする: ケース・スタディー |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Scott Rogers, Project Manager, IBM レベル:中級 原文の掲載:2006年 8月15日 2006年11月 9日更新 この記事では、ケース・スタディーを使用して、IBM Lotus Domino Webサーバーの保護に関するベスト・プラクティスと推奨事項を紹介します。 多くのお客様が、IBM Lotus DominoをイントラネットまたはインターネットWebサイトで使用しています。このような環境、特にインターネット上でLotus Dominoサーバーを保護するには、データの整合性およびWebサイトの可用性を確保することが重要です。Lotusに関する以前のdeveloperWorksの記事『Lotus Domino Web サーバーをセキュアにする』では、Lotus Dominoのセキュリティー・モデルと、Web認証、サーバー・セキュリティー、データ・セキュリティーの観点からWebサーバーを保護する方法を説明しました。この記事では、最新のお客様のケース・スタディーを使用して、これらの機能を実装する特定の構成と設定を紹介します。豊富な経験を持つLotus Dominoシステム管理者を、この記事の読者として想定しています。 この記事は、次のセクションから構成されています。
システム管理と利用このケース・スタディーでは、ユーザーを2つのグループに分けています。1つ目のグループにはWebアプリケーション・ユーザーが、2つ目のグループにはサーバー管理者が含まれています。Webアプリケーション・グループには、Webアプリケーションを使用する社内ユーザーと社外ユーザーがいます。2つ目のグループには、サーバーのオペレーティング・システムとLotus Dominoサーバーの両方を管理する内部管理者がいます。サーバー管理は、インターネットからは行いません。これをさらに徹底するため、webadmin.ntfデータベースとwebadmin.nsfデータベースを削除しました。したがって、サーバー管理はLotus Domino AdministratorクライアントおよびSecure Shell ユーティリティー (SSH)からのみ実行されます。SSHは、Linuxサーバーへのアクセスを暗号化する方法の1つで、内部管理者のみが使用できます。 このケース・スタディーでLinuxが選ばれた理由は、主に2つあります。1つ目の理由は、Linuxはウィルスの攻撃に対して他のオペレーティング・システムとは異なったレベルで対応し、保護されたリモート管理の方法を備えているためです。2つ目の理由は、Linuxにはオペレーティング・システムの不要な未使用のサービスを無効にする機能もあり、サーバー上で実行するサービスの数を減らすことによって、セキュリティー・リスクの可能性を限定することができるためです。 管理者グループをさらに2つのサブグループに分け、オペレーティング・システムを管理するグループとLotus Dominoサーバーを管理するグループに分けました。オペレーティング・システム管理グループは、オペレーティング・システムに関する職務全般を担当し、アップグレード、バックアップ、ユーザー/グループ管理、Lotus Dominoのインストールなどを行います。Lotus Dominoの管理者は、ユーザーとグループの管理、サーバー構成、サーバーのメンテナンスを担当します。
ケース・スタディーのアーキテクチャーこのお客様は、バーチャル図書館の一部として研究情報を公開するための簡単な外部Webサイトを必要としていました。コンテンツは非公開ですが、必要なデータ量と機能はLotus Domino環境に適合しており、このニーズに合わせて単一サーバーのソリューションが設計されました。 このケース・スタディーでは、1つのLotus Domino Webサーバーをネットワークの非武装地帯(DMZ)に配置し、SUSE LinuxおよびLotus Domino 7を稼働させます。この記事で紹介する方法は任意のオペレーティング・システムで動作しますが、ウィルスやハッキングのターゲットとしての脆弱性という観点から、Microsoft WindowsではなくLinuxを選択しました。SSHを使用した理由は、リモートLinuxサーバーへのアクセスを安全に暗号化できるためです。これにより、単一のアプリケーション・データベースへのアクセスが行われます。図1は、ケース・スタディーのアーキテクチャーを表しています。 図1. ケース・スタディーのアーキテクチャー インターネットからはポート80とポート443のみアクセス可能とすることにより、サーバーが危険にさらされるのを防ぎます。また、内部ネットワーク(通常、信頼できるネットワークとして定義されます)からアクセスできるポートは、ポート22、80、443、1352だけです。これは、サーバーが内部からの有害な操作にさらされることを制限します。表1はこれらのポートの一覧です。 表1. ネットワーク・ポート定義
メモ: 対象となるサーバーは、2つのファイアウォールの間に配置されています。この構成は、信頼できるネットワークからのアクセスか、信頼できないインターネットからのアクセスかによって、異なる許可とアクセス・レベルを割り当てる機能を備えています。
Lotus Dominoサーバーの構成このセクションでは、セキュリティーと密接に関連するLotus Dominoのサーバー文書およびサーバー設定文書の設定など、ケース・スタディーで使用するLotus Dominoサーバーの構成について説明します。最初に、Lotus Dominoのサーバー文書から見ていきます。Lotus Domino 7には、外部ドメインの管理に役立つ新しいオプションが2つあります(必ずしもWebサーバーへ適用されるわけではありません)。「パブリックキーの比較」オプションと「パブリックキー不一致の記録」オプションです。 通常、組織の管理者は、内部のIDと外部ドメインとの相互認証を行います。この2つのオプションにより、公開鍵の認証が強化されます。IDが漏えいした場合は、新しいIDを作成することによって新しい公開鍵を生成し、システムから旧IDをロックアウトします。最高レベルのセキュリティーを備えたこの新しい設定を、図2に示します。 図2. パブリック・キーのチェック
サーバーとのHTTP通信はすべて、SSLプロトコルを使用するように設定されています。すべてのHTTP要求をSSLにリダイレクトするようLotus Dominoのサーバー文書を構成すると、すべてのHTTP接続に対してSSLの使用が強制されます。サーバーへの匿名のSSL接続もすべてブロックされます。サーバーは、ユーザーの認証が終わるまで、ユーザーに対して情報を表示しません。サーバー文書の設定を図3に示します。 図3. パブリック・キーのチェック
SSL証明書は、developerWorks Lotusの『Trust Yourself: Become your own Certification Authority(US)』の記事で説明されている手順の後に生成されます。 Notes.iniのNABWebLookupViewパラメーターを指定すると、さらに強固なインターネット認証の設定を強制することができます。このパラメーターは、検索に使用されるビューの最初の列にリストされているユーザー名以外のすべての名前をロックアウトします。このケース・スタディーでは、ユーザーの共通名(例えば、Matthew Milza)を指定した場合のみ認証を許可しています。ユーザーが、インターネットの電子メール・アドレスなど、ユーザー名以外の名前を使用した場合、システムへのアクセスは許可されません。 ここで、サーバー設定文書のNotes.ini設定パラメーターを構成し、Dominoディレクトリーに"($webaccess)"というビューを作成して共通名だけによるソートを行います。ビューのサンプルを図4に、サーバー設定文書のNotes.ini設定を図5に示します。 図4. Web認証ビュー 図5. NABWebLookupView構成設定
アプリケーション構成Lotus Dominoを使用してLotus Notesパスワード用のパスワード・ポリシーの作成と管理を行うことができますが、まったく同じパスワード・ポリシーの機能がすぐに使用可能な状態でWeb認証用に提供されるわけではありません。Lotus Domino 7には、指定した期間の経過後にインターネット・パスワードの変更を強制したり、パスワード・クオリティーや長さを指定する機能が用意されています。これは、セキュリティー・ポリシーによって構成できます。Lotus Domino 7では、ユーザー・アカウントをロックアウトし、次回の認証でパスワードの変更を強制することもできます。 さらに強固なインターネット・パスワード・ポリシーを適用するには、カスタム認証のDomino Security API (DSAPI)フィルターを作成します。作成しない場合、LDAPディレクトリーに対して認証が実施されます。大部分のLDAPディレクトリーでは、適切なパスワード・ポリシーを適用することができます。 このソリューションには、さらに次のようなID管理機能の完全なセットが必要です。
メモ: IPMは、Webパスワードの管理を強化するDominoデータベースとDSAPIフィルターのカスタム・セットです。この資産の詳細については、筆者までお問い合わせください。 IPMはDominoディレクトリーに複数の設計要素を付加し、ユーザー・アカウントの有効化、無効化、拡張、リセットを手動で行うアカウント管理機能を提供します。指定したテンプレートから追加のLotus Dominoアプリケーション・データベース(NSFファイル)が作成され、ログオン、パスワード変更、電子メール通知のユーザー・インターフェース機能が利用できるようになります。パスワード管理環境に参加するパスワード管理者とサーバーを制御するための特別なグループが定義されます。 図6は、パスワード管理システムの機能を制御するDominoディレクトリーの特別な設定文書を示しています。 図6. インターネット・パスワード管理設定文書 ユーザー文書スキーマを拡張するサブフォームに、各ユーザーに追加される設定が表示されます(図7を参照)。 図7. ユーザー文書の追加のサブフォーム 主な処理は、該当のオペレーティング・システム用に開発されたDSAPIフィルターによって提供され、Lotus Dominoサーバーのプログラム・ディレクトリーに配置されます。Domino HTTPサーバーからIPMを使用できるようにするには、Authorization Extensionフィルターを構成する必要があります。参加するサーバーごとに、インストール済みのAuthorization Extension(例えば、libipwext.soなど)のDSAPIフィルター・ライブラリー名を、DSAPIフィルター・ファイル名フィールドに追加します(図8を参照)。これは、サーバー文書の「インターネット」タブ -「HTTP」サブタブのDSAPI領域に記述されています。構成が終了すると、この追加のデータベースと設定により、拡張セキュリティー機能を実施するユーザー・インターフェースとパスワード管理が有効になります。 図8. DSAPIフィルター・ファイル名 図9は、デフォルトのログオン・ページです。 図9. デフォルトのログオン・ページ サンプルとして、ユーザーが繰り返しサイトへのアクセスを試み、正しいパスワードを指定せずログオンに失敗した場合にアクセスが拒否されるというシナリオを見てみます。ログオンを試みて失敗した場合、そのユーザーは設定パラメーターに基づいてシステムからロックアウトされ、サーバー・コンソールに表示されます(図10を参照)。 図10. ログオン失敗とロックアウトのサーバー・ログ アクセス制御リスト(ACL)の設定と、プロパティー・ボックスの「基本」タブの「Webアクセス」セクションにある「URL参照を許可しない」データベース・プロパティーにより、システム・データベースへのアクセスを制限することもできます。これはLotus Domino 6で追加された機能で、データベースがWebから開かれることを防ぎます。Dominoディレクトリー(names.nsf)のプロパティーを有効にした場合でも、ユーザーは認証できます。これは、登録済みのユーザーをサーバーの他のユーザーに対して匿名にしておく必要がある場合に便利です。
Dominoドメイン・モニターDominoドメイン・モニター(DDM)は、Lotus Domino 7の新機能です。DDMは、事前に設定された調査のセットを使用し、モニター対象のサーバーに関するステータス情報やプロセス情報を収集します。これらの調査は、アプリケーション、データベース、ディレクトリー、メッセージング、複製、セキュリティー、オペレーティング・システム、サーバー、Webに関するデータを収集します。特殊なフィルターにより、調査によって記録されるデータのタイプとレベルを選択できます。収集されたデータは統合されて整理され、読みやすい要約レポートに加工されます。DDMには、すぐに使用可能なセキュリティー調査が3つ付属しています。これらの調査により、サーバー文書、サーバー設定文書、ユーザー文書が確認され、設定がベスト・プラクティスに適合しているかどうかが検査されます。また、サーバーに対して権限のないアクセスもレポートに記録されるため、Lotus Dominoサーバーのセキュリティーの監査に役立ちます。 DDMの結果は、Event Resolution Center(ERC)に自動的に収集されます。処理されてERCデータベースに格納された各イベントには、イベントを生成した特定のモニターに戻る文書リンクが付けられます。調査がエラーを検出するたびに、または特定のしきい値を超えた場合に、ERCがステータス文書によって更新されます。ERCに記録されたDDMイベントを表示すると、体系的なLotus Dominoイベントを識別(場合によっては予測することも)できます。ERCは、最初のサーバーの開始時に自動的に作成されます。ERCデータベースは、新しいテンプレートddm.ntfを基にしています。デフォルトのファイル名はddm.nsfです。図11に、Events4.nsfデータベース内でベスト・プラクティス調査を有効にする方法の例を示します。 図11. セキュリティー探索文書 セキュリティー探索文書の「詳細」タブには、この調査で検証されるサーバー設定の一覧が表示されます。次の設定があります。
次の表は、各調査によってERCに表示される情報のタイプを示したものです。ERCデータベース(ファイル名ddm.nsf)には、アクティブなDDM調査によって生成されたデータが入っています。調査が実行されると、検出された関連データがすべてERC内のレポートに記録されます(関連データが存在する場合)。このレポートには、特定の調査の結果、その結果を引き起こしたと考えられる原因、各イベントに対するソリューション案、このイベントを生成した調査へのリンクが記録されます。 メモ: この例は、調査の完全な結果を示すものではありません。 セキュリティー・ベスト・プラクティス調査 : サーバー文書 結果 : サーバー文書を分析した結果、設定の30%が推奨されるベスト・プラクティスに一致していません。「管理」セクション
「Programmability の制限」セクション
セキュリティー・ベスト・プラクティス調査 : サーバー設定文書 サーバー設定文書を分析した結果、設定の5%が推奨されるベスト・プラクティスに一致していません。 「設定」セクション
セキュリティー・ベスト・プラクティス調査 : ユーザー文書 潜在的なセキュリティー・リスクが4つのユーザー文書で見つかりました。4つの文書は中の「詳細」タブで報告されています。設定の31%が推奨されるベスト・プラクティスに一致していません。 Dominoディレクトリーの8つのユーザー文書を分析しました。潜在的なセキュリティー・リスクの数を以下に報告します。
問題、修正、トラブルシューティングによってサーバーの設定が変更される可能性があります。結果として、これが重大なセキュリティー上の問題を引き起こす可能性があります。変更管理は構成の変化の管理にある程度有効ですが、サーバー文書に明示されるような変更を必ず検出できるわけではありません。セキュリティー設定調査を作成することにより、DDMでこの変化を検出できます。DDM セキュリティー設定調査は、Lotus Dominoのサーバー文書と対象となるサーバー文書を比較して、相違点と矛盾点を報告します。このタイプのセキュリティー調査には構成可能な「詳細」タブがあり、サーバー設定と調査対象のサーバーを比較して構成の変化を検出する際に役立ちます。「調査」オプションには次のものがあります(サンプルは、図12を参照してください)。
図12. セキュリティー設定調査 ![]()
Activity LoggingActivity Loggingは、ユーザーの使用状況をユーザー別、データベース別、アクセス・プロトコル別に記録します。多くの場合、現在の監視情報と統計履歴などのアクティビティー統計を収集して保存するActivity Trendsと組み合わせて使用します。アクティビティー統計は、サーバー、データベース、ユーザー、データベースへのユーザーの接続と関連付けられていて、管理者はシステム上でアクティブなユーザーを追跡できます。データは、月ごとに見直す必要があります。過去90日間アクティブになっていないユーザーは、システムからロックアウトされます(未使用のアカウントをアクセス不能にするポリシー)。 図13は、この実装でログに記録された統計を示しています。すべてのサーバー・エージェント、HTTPセッション、SMTPセッション、SMTPメール、Lotus Notesデータベース・セッション、Lotus Notesセッション、Lotus Notesメールのトラッキングが有効になっています。
Activity Trendsによってユーザーが最後にサーバーにアクセスした時刻などの情報が記録されるため、非アクティブになっているアカウントを追跡できます(図14を参照)。このケース・スタディーでは、60日間非アクティブのアカウントをモニター対象としました。このアカウントは、30日間システムからロックアウトされます。非アクティブである期間の合計が90日間になると、このアカウントは削除されます。 図14. ユーザーの使用状況のトラッキング Activity Trendsでは、「Connections」-「By User」ビューを使って、ユーザーがアクセスしているデータベースを追跡することもできます。これにより、ユーザーが不適切なデータベースにアクセスしていないことを確認したり、後述のDomino Webサーバー・ログとともに使用してユーザー使用状況の概略をトラッキングしたりできます(HTTP要求の詳細情報は、Domino Webサーバー・ログ・データベースに格納されます)。 サーバーの活動状況とWebサーバー要求をDomino Webサーバー・ログ(DOMLOG.NSF)データベースに記録できます(図15を参照)。このオプションは、ビューとビュー・データを異なる方法で作成する場合に便利です。データベースへのログの書き込みはテキスト・ファイルと比べると若干時間がかかり、混雑したサイトでは特に遅くなります。データベースのサイズが大きくなると、メンテナンスの問題が起こる場合もあります。しかし、Domino Webサーバー・ログを使用すると、この情報を他のLotus Notesデータベースと同様に扱うことができるため、組み込み機能を使用して結果を分析できます。 図15. Domino Webサーバー・ログの例 DOMLOG.NSFデータベースは、Lotus Domino Webサーバーのすべての活動状況を記録し、各HTTP要求に関する次の情報を追跡します。
メモ: この機能を自動的に実行するサード・パーティーのDSAPIフィルターがあります。 インターネット・パスワードの管理に使用されるDSAPIフィルターには、モニター可能な統計機能もあります。ログイン失敗回数のしきい値を超えたためにユーザーがシステムからロックアウトされたときの警告は、次のように設定されます。
セキュリティー上の追加の考慮事項ポート調査は、インターネットにアクセスできるサーバー上の使用可能なすべてのポートを検索するプロセスです。サーバーへのアクセスは、ポートを限定して許可する必要があります。このサーバーで開かれているポートは、前述のとおりです。ハッカーがポート調査を行う場合は、通常、サーバー上で悪意のあるコードを実行しようとするか、ぜい弱なポートを探してサーバーを支配しようとする場合です。 オペレーティング・システムの更新とパッチは、定期的にインストールする必要があります。Lotus Dominoサーバーに影響を与えずに大部分のパッチをインストールできるという理由から、このケース・スタディーではLinuxサーバーを使用しました。カーネルにパッチを適用した場合、リブートが必要になります。TCP/IPプロトコルにパッチを適用すると、Lotus Dominoサーバーに影響を及ぼす可能性があります。必要のないパッケージやソフトウェアは、すべてサーバーから削除する必要があります。Linuxサーバーに対する更新はLotus Dominoサーバーにほとんど影響を与えないため、更新は週次でスケジュールしました。 United States Computer Emergency Readiness Team(USCERT) (下記にURLリンクあり) には、オペレーティング・システム、ファイアウォール、ネットワーク、ソフトウェアに関する新しい脆弱性の情報が投稿されます。週次レポートのほかに緊急警告レポートも発行されます。これらのレポートを参照して、潜在的な脆弱性を最小限に抑えてください。 Lotus Notes/Dominoのセキュリティー上の脆弱性に関する詳細は、developerWorks Lotusのセキュリティーに関するページ(US)を参照してください。 コンピューターのインフラストラクチャー全体を継続的に監視する必要があります。Domino Webサーバー・ログ、Activity Trends、DDM調査の結果、USCERTレポートも、毎月確認する必要があります。ハッキング攻撃を防ぐため、ログも確認してください。サーバーにアクセスしようとする同じ範囲のIPアドレスや、不正な形式の同じURLがサーバーに送信されているのを見つけた場合は、このような要求をファイアウォールやLotus Dominoサーバーでブロックする必要があります。こうした監視を継続することが、Webサーバーへの権限のないアクセスを防ぐことになります。
まとめこの記事では、単一サーバーの環境でIBM Lotus Domino Webサーバーの安全性を高める場合に推奨される特定の設定について説明しました。この記事で紹介したヒントにより、高いパフォーマンス、高い信頼性、高い操作性を保ちつつ、Lotus DominoがホストするWebサイトの安全を最大限に確保できます。
リソース学ぶ
製品/技術情報ダウンロード
議論する
筆者について(原文のまま)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||