セキュリティ強化を計画する (Windows SharePoint Services)

 

適用先: SharePoint Foundation 2010

この記事では、Microsoft SharePoint Foundation 2010 の Web サーバー、アプリケーション サーバー、およびデータベース サーバーの各ロールのセキュリティ強化について説明し、Microsoft SharePoint 2010 製品 におけるポート、プロトコル、およびサービスの固有の強化要件について詳しく説明します。

この記事の内容

セキュリティで保護されたサーバー スナップショット

サーバー ファーム環境では、個々のサーバーは特定の役割を果たします。これらのサーバーのセキュリティ強化に関する推奨事項は、各サーバーが果たす役割によって異なります。この記事では、2 つのカテゴリのサーバー ロールの、セキュリティで保護されたスナップショットについて説明します。

スナップショットは、一般的な構成カテゴリに分類されます。各カテゴリに対して定義された特性が、Microsoft SharePoint 2010 製品の最適な強化状態を表します。この記事では、環境内の他のソフトウェアの強化ガイダンスについては説明しません。

Web サーバー ロールとアプリケーション サーバー ロール

ここでは、Web サーバーとアプリケーション サーバーの強化特性について説明します。ガイダンスの一部は、特定のサービス アプリケーションに適用されます。その場合、対応する特性は、指定のサービス アプリケーションに関連付けられたサービスを実行しているサーバーにのみ適用される必要があります。

カテゴリ

特性

サービス MMC スナップインにリストされるサービス

以下のサービスを有効にします。

  • ファイルとプリンターの共有

  • World Wide Web 発行サービス

以下のサービスが無効になっていないことを確認します。

  • Claims to Windows Token Service

  • SharePoint 2010 Administration

  • SharePoint 2010 Timer

  • SharePoint 2010 Tracing

  • SharePoint 2010 VSS Writer

対応するロールをホストするサーバー上で以下のサービスが無効でないことを確認します。

  • SharePoint 2010 User Code Host

  • SharePoint Foundation Search V4

ポートとプロトコル

  • TCP 80、TCP 443 (SSL)

  • ファイルとプリンターの共有サービス。以下のどちらかであり、検索ロールが使用します。

    • 直接ホストされた SMB (TCP/UDP 445) ― 推奨ポートです。

    • NetBIOS over TCP/IP (NetBT) (TCP/UDP ポート 137、138、139) ― 使用しない場合は無効にします。

  • Web サーバーとサービス アプリケーション間の通信で必要なポート (既定は HTTP)

    • HTTP バインド: 32843

    • HTTPS バインド: 32844

    • net.tcp バインド: 32845 (サード パーティがサービス アプリケーション用にこのオプションを実装している場合のみ)

  • UDP ポート 1434 および TCP ポート 1433 ― SQL Server 通信用の既定のポート。SQL Server コンピューター上のこれらのポートをブロックし (推奨)、データベースを名前付きインスタンス上にインストールしている場合は、名前付きインスタンスに接続するための SQL Server クライアント エイリアスを構成します。

  • Microsoft SharePoint Foundation User Code Service 用の TCP/IP 32846 (サンドボックス ソリューション用) ― このポートは、すべての Web サーバー上で送信接続用に開いている必要があります。このポートは、このサービスがオンになっている Web サーバーまたはアプリケーション サーバー上で、受信接続用に開いている必要があります。

  • ユーザーがアクセスできる Web アプリケーションのために、ポートが開かれたままになるようにします。

  • サーバーの全体管理サイトで使用されるポートへの外部アクセスをブロックします。

  • TCP/25 (電子メール統合の SMTP)

レジストリ

追加のガイダンスなし

監査とログ記録

ログ ファイルを移動した場合は、それに合わせてログ ファイルの位置が更新されていることを確認します。ディレクトリ アクセス制御リスト (ACL) も更新します。

コード アクセス セキュリティ

Web アプリケーションに対して有効にされたコード アクセス セキュリティ権限の最小限度のセットを保有していることを確認します。それぞれの Web アプリケーションのために作成された Web.config 内の <trust> 要素は、WSS_Minimal に設定されている必要があります (WSS_Minimal の既定値は 14\config\wss_minimaltrust.config で定義されているように、または、最小限に設定された専用のカスタム ポリシー ファイルによって低くなっています)。

Web.config

セットアップの実行後に作成される各 Web.config ファイルについて、次の推奨事項に従います。

  • PageParserPaths 要素によるデータベース ページのコンパイルやスクリプトは許可しないでください。

  • <SafeMode> CallStack=""false"" および AllowPageLevelTrace=""false"" が記述されていることを確認します。

  • 各ゾーンのコントロールの最大数に関連して、Web パーツの制限数が低く設定されていることを確認します。

  • SafeControls リストが、サイトに最小限必要な一連のコントロールに設定されていることを確認します。

  • Workflow SafeTypes リストが SafeTypes で必要な最小限度のレベルに設定されていることを確認します。

  • customErrors がオン (<customErrors mode=""On""/>) にされていることを確認します。

  • 必要に応じて Web プロキシ設定を検討します (<system.net>/<defaultProxy>)。

  • Upload.aspx の制限値を、ユーザーが無理なくアップロードできると考えられる最大サイズに設定します (既定は 2 GB です)。アップロードのサイズが 100 MB を越えるとパフォーマンスに影響が生じる可能性があります。

データベース サーバー ロール

SharePoint 2010 Productsの第一の推奨事項は、Microsoft SQL Server 通信で使用される既定のポートをブロックし、代わりにこの通信のカスタム ポートを確立することによって、ファーム間の通信をセキュリティ保護することです。SQL Server 通信のポートを構成する方法の詳細については、この記事の「標準の SQL Server ポートをブロックする」を参照してください。

カテゴリ

特性

ポート

  • UDP ポート 1434 をブロックします。

  • TCP ポート 1433 をブロックすることを検討します。

この記事では、SQL Server を保護する方法については説明しません。SQL Server を保護する方法の詳細については、「SQL Server の保護」(https://go.microsoft.com/fwlink/?linkid=186828&clcid=0x411) を参照してください。

特定のポート、プロトコル、およびサービスのガイダンス

この記事の以降の部分では、SharePoint 2010 Productsの特定の強化要件について詳しく説明します。

このセクションの内容

標準の SQL Server ポートをブロックする

SQL Server への接続に使用される特定のポートは、データベースが SQL Server の既定のインスタンスにインストールされるか、SQL Server の名前付きインスタンスにインストールされるかによって異なります。SQL Server の既定のインスタンスは、TCP ポート 1433 でクライアント要求をリッスンします。SQL Server の名前付きインスタンスは、ランダムに割り当てられたポート番号でリッスンします。さらに、名前付きインスタンスのポート番号は、インスタンスが再起動された場合に再度割り当てることができます (以前割り当てられたポート番号が使用可能かどうかに応じて決まります)。

既定では、SQL Server に接続するクライアント コンピューターはまず TCP ポート 1433 を使用して接続します。この通信が失敗した場合、クライアント コンピューターは UDP ポート 1434 をリッスンしている SQL Server Resolution Service をクエリして、データベース インスタンスがリッスンしているポートを判断します。

SQL Server の既定のポートと通信の動作は、サーバーのセキュリティ強化に影響を与えるさまざまな問題を生じます。第一に、SQL Server で使用されるポートは広く知られているポートであり、SQL Server Resolution Service は "スラマー" ワーム ウイルスなど、バッファー オーバーラン攻撃やサービス拒否攻撃の標的となってきました。SQL Server Resolution Service でのセキュリティの問題を緩和するために SQL Server に修正プログラムを適用した場合でも、広く知られているポートは引き続き標的になります。第二に、データベースが SQL Server の名前付きインスタンスにインストールされた場合、対応する通信ポートはランダムに割り当てられ、変更されることがあります。この動作は、セキュリティが強化された環境では、サーバー間通信を妨げる可能性があります。どの TCP ポートを開くか、ブロックするかを制御する機能は、環境をセキュリティ保護するうえできわめて重要です。

したがって、サーバー ファームでは、SQL Server の名前付きインスタンスに静的ポート番号を割り当てることと、UDP ポート 1434 をブロックして、潜在的な攻撃者による SQL Server Resolution Service へのアクセスを防止することをお勧めします。さらに、既定のインスタンスが使用するポートを割り当て直して、TCP ポート 1433 をブロックすることを検討してください。

ポートをブロックするには、複数の方法を使用できます。ファイアウォールを使用することで、これらのポートをブロックできます。ただし、ネットワーク セグメント内へのルートが他にないこと、およびネットワーク セグメントへのアクセス権を持つ悪意のあるユーザーがいないことが明確な場合を除き、SQL Server サーバーをホストするサーバー上で直接これらのポートをブロックすることをお勧めします。これは、コントロール パネルの [Windows ファイアウォール] を使用して実行できます。

標準以外のポートでリッスンするように SQL Server データベース インスタンスを構成する

SQL Server には、既定のインスタンスや任意の名前付きインスタンスによって使用されているポートを再割り当てする機能が用意されています。SQL Server 2005 および SQL Server 2008 では、SQL Server 構成マネージャーを使用してポートを再割り当てします。

SQL Server クライアント エイリアスを構成する

サーバー ファームでは、すべてのフロントエンド Web サーバーおよびアプリケーション サーバーは SQL Server クライアント コンピューターです。SQL Server コンピューター上の UDP ポート 1434 をブロックした場合や既定のインスタンスの既定のポートを変更した場合は、SQL Server コンピューターに接続するすべてのサーバー上で SQL Server クライアント エイリアスを構成する必要があります。

SQL Server 2005 または SQL Server 2008 のインスタンスに接続するには、ターゲット コンピューターに SQL Server クライアント コンポーネントをインストールし、SQL Server 構成マネージャーを使用して SQL Server クライアント エイリアスを構成する必要があります。SQL Server クライアント コンポーネントをインストールするには、セットアップを実行し、以下のクライアント コンポーネントのみを選択してインストールします。

  • 接続コンポーネント

  • 管理ツール (SQL Server 構成マネージャーを含みます)

標準 SQL ポートをブロックするための具体的なセキュリティ強化手順については、「SharePoint 環境用に SQL Server のセキュリティを強化する (SharePoint Foundation 2010)」を参照してください。

サービス アプリケーション通信

既定では、Web サーバーとサービス アプリケーション間の通信は、HTTP とポート 32843 へのバインドを使用して行われます。サービス アプリケーションを公開するときに、HTTP または HTTPS と以下のバインドを選択できます。

  • HTTP バインド: ポート 32843

  • HTTPS バインド: ポート 32844

さらに、サービス アプリケーションを開発するサード パーティは、3 番目の選択肢を実装できます。

  • net.tcp バインド: ポート 32845

サービス アプリケーションごとに、プロトコルとポート バインドを変更できます。サーバーの全体管理の [サービス アプリケーション] ページで、サービス アプリケーションを選択し、[公開] をクリックします。

サービス アプリケーションと SQL Server 間の通信は、標準の SQL Server ポート、または、SQL Server 通信用に構成するポートで行われます。

ファイルとプリンターの共有サービスの要件

いくつかのコア機能は、ファイルとプリンターの共有サービスおよび対応するプロトコルとポートに依存しています。その代表的な機能には、以下のものがあります。

  • 検索クエリ すべての検索クエリには、ファイルとプリンターの共有サービスが必要です。

  • コンテンツのクロールとインデックス作成 コンテンツをクロールするために、クロール コンポーネントを含むサーバーはフロントエンド Web サーバー経由で要求を送信します。フロントエンド Web サーバーはコンテンツ データベースと直接通信して、クロール コンポーネントを含むサーバーに結果を返します。この通信には、ファイルとプリンターの共有サービスが必要です。

ファイルとプリンターの共有サービスでは、名前付きパイプを使用する必要があります。名前付きパイプは、直接ホストされた SMB プロトコルまたは NetBT プロトコルのどちらかを使用して通信できます。セキュリティ保護された環境の場合、NetBT ではなく直接ホストされた SMB を使用することをお勧めします。この記事に示している強化の推奨事項では、SMB の使用を前提としています。

次の表では、ファイルとプリンターの共有サービスへの依存によって生じるセキュリティ強化の要件について説明します。

カテゴリ

要件

メモ

サービス

ファイルとプリンターの共有

名前付きパイプを使用する必要があります。

プロトコル

直接ホストされた SMB を使用する名前付きパイプ

NetBT の無効化

名前付きパイプは、直接接続された SMB ではなく NetBT を使用できます。ただし NetBT は、直接ホストされた SMB ほどセキュリティに優れているとは見なされていません。

ポート

以下のどちらか:

  • 直接ホストされた SMB (TCP/UDP 445) ― 推奨

  • NetBT (TCP/UDP ポート 137、138、139)

NetBT (ポート 137、138、139) を使用していない場合は無効にする

NetBT を無効にする方法の詳細については、マイクロソフト サポート技術情報の記事 204279「TCP/IP を介する SMB のダイレクト ホスト」(https://go.microsoft.com/fwlink/?linkid=76143&clcid=0x411) を参照してください。

電子メールの統合のサービス要件

電子メールの統合のためには、以下の 2 つのサービスを使用する必要があります。

SMTP サービス

電子メールの統合のためには、サーバー ファーム内の少なくとも 1 台のフロントエンド Web サーバーで、簡易メール転送プロトコル (SMTP) サービスを使用する必要があります。SMTP サービスは、受信電子メールのために必要です。送信メールの場合は、SMTP サービスを使用するか、Microsoft Exchange Server コンピューターなどの組織内の専用電子メール サーバー経由で、送信メールをルーティングできます。

Microsoft SharePoint Directory Management Service

SharePoint 2010 Productsには、電子メール配信グループを作成する内部サービス、Microsoft SharePoint Directory Management Service があります。電子メール統合を構成するときは、Directory Management Service 機能を有効にするオプションがあり、配信リストを作成できます。SharePoint グループを作成し、配信リストを作成するオプションを選択すると、Microsoft SharePoint Directory Management Service は対応する Active Directory ディレクトリ サービス配信リストを Active Directory 環境に作成します。

セキュリティ強化環境では、Microsoft SharePoint Directory Management Service に関連するファイル、SharePointEmailws.asmx をセキュリティ保護することで、このサービスへのアクセスを制限することをお勧めします。たとえば、このファイルへのアクセスをサーバー ファーム アカウントのみに許可します。

さらに、このサービスでは、Active Directory 配布リスト オブジェクトを作成するために Active Directory 環境での権限が必要になります。Active Directory 内に、SharePoint 2010 Productsオブジェクト用の組織単位 (OU) を個別に作成することをお勧めします。Microsoft SharePoint Directory Management Service が使用するアカウントへの書き込みアクセスは、この OU のみに許可する必要があります。

SharePoint 2010 製品サービス

SharePoint 2010 Productsでインストールされたサービス (前述のスナップショットにリストされています) を無効にしないでください。

現在の環境でローカル システムとして実行されるサービスが許可されていなければ、SharePoint 2010 Administration Service を無効にすることの影響を理解しており、それらに対処できる場合のみ、このサービスを無効にすることを検討できます。このサービスは、ローカル システムとして実行される Win32 サービスです。

このサービスは、インターネット インフォメーション サービス (IIS) Web サイトの作成、コードの展開、サービスの停止および開始など、サーバーでの管理者特権が必要とされる操作を実行するために、SharePoint 2010 Timer Service によって使用されます。このサービスを無効にすると、サーバーの全体管理サイトから、展開に関連する作業を実行できません。Windows PowerShell を使用して Start-SPAdminJob コマンドレットを実行 (または、Stsadm.exe コマンド ライン ツールを使用し、execadmsvcjobs 操作を実行) して、SharePoint 2010 Productsの複数サーバーの展開を完了し、その他の展開に関連する作業を実行する必要があります。

Web.config ファイル

.NET Framework、特に ASP.NET は、アプリケーションを構成するために XML 形式の構成ファイルを使用します。.NET Framework は、構成ファイルに依存して構成オプションを定義します。構成ファイルは、テキスト ベースの XML ファイルです。1 つのシステム上に複数の構成ファイルが存在することができ、通常は、それらのファイルが複数存在します。

.NET Framework のシステム全体の構成設定は、Machine.config ファイルで定義されています。Machine.config ファイルは、%SystemRoot%\Microsoft.NET\Framework\%VersionNumber%\CONFIG\ フォルダーにあります。Machine.config ファイルに含まれている既定の設定を変更すれば、システム全体で .NET Framework を使用するアプリケーションの動作に影響を与えることができます。

アプリケーションのルート フォルダー内に Web.config ファイルを作成すると、1 つのアプリケーションの ASP.NET 構成設定を変更できます。このようにすると、Web.config ファイル内の設定は、Machine.config ファイル内の設定より優先されます。

サーバーの全体管理を使用して Web アプリケーションを拡張すると、SharePoint 2010 Productsはその Web アプリケーション用の Web.config ファイルを自動的に作成します。

この記事で前に示した Web サーバーとアプリケーション サーバーのスナップショットには、Web.config ファイルを構成する場合の推奨事項が一覧されています。これらの推奨事項は、サーバーの全体管理サイト用の Web.config ファイルを含めて、作成されたそれぞれの Web.config ファイルに適用するためのものです。

ASP.NET 構成ファイルと Web.config ファイルの編集の詳細については、「ASP.NET の構成」(https://go.microsoft.com/fwlink/?linkid=73257&clcid=0x411) を参照してください。