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

 

適用先: SharePoint Foundation 2010, SharePoint Server 2010

トピックの最終更新日: 2016-11-30

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

この記事の内容 :

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

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

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

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

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

分類

特性

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

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

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

  • ASP.NET State Service (InfoPath Forms Services または Microsoft Project Server 2010 を使用している場合)

  • View State Service (InfoPath Forms Services を使用している場合)

  • 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

  • SharePoint Server Search 14

  • ディレクトリ ストアからプロファイルをインポートするサーバー上の User Profile Service アプリケーションでは、以下のサービスが必要です。

    • Forefront Identity Manager Service

    • Forefront Identity Manager Synchronization Service

ポートとプロトコル

  • 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 (サード パーティがサービス アプリケーション用にこのオプションを実装している場合のみ)

  • Forefront Identity Management エージェントを実行するサーバー上で、SharePoint 2010 Productsと Active Directory 間でプロファイルを同期するために必要なポート

    • TCP/5725

    • TCP/UDP 389 (LDAP サービス)

    • TCP/UDP 88 (Kerberos)

    • TCP/UDP 53 (DNS)

    • UDP 464 (Kerberos パスワード変更)

    他のディレクトリ ストアとの間でプロファイルを同期する方法の詳細については、この記事の「User Profile Service の強化要件」を参照してください。

  • 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 Server 2010)」を参照してください。

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

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

  • HTTP バインド: ポート 32843

  • HTTPS バインド: ポート 32844

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

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

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

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

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

一部の中核機能は、ファイルとプリンターの共有サービスと対応するプロトコルおよびポートに基づいて動作します。これらの機能の一部を次に示します。

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

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

  • インデックスの伝達   Search Service アプリケーションが、複数のサーバーに分散しているクロール コンポーネントとクエリ コンポーネントで構成されている場合、クロール コンポーネントを持つサーバーが、クエリ コンポーネントを持つサーバーに、コンテンツ インデックス ファイルをコピーします。この操作には、ファイルとプリンターの共有サービスと対応するプロトコルおよびポートが必要です。

ファイルとプリンターの共有サービスでは、名前付きパイプを使用する必要があります。名前付きパイプは、直接ホストされた 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「CP/IP を介する SMB のダイレクト ホスト」(https://go.microsoft.com/fwlink/?linkid=76143&clcid=0x411) を参照してください。

User Profile Service の強化要件

User Profile Service アプリケーションは、Forefront Identity Management エージェントを使用して、SharePoint 2010 Productsと Active Directory または LDAP (ライトウェイト ディレクトリ アクセス プロトコル) ディレクトリ サービス間でプロファイルを同期します。Forefront Identity Management エージェントは SharePoint ファーム内のすべてのサーバーにインストールされますが、ディレクトリ ストアと同期するように設定されるサーバーでのみ必要です。

Forefront Identity Management エージェントに含まれる次の 2 つのサービスは、Active Directory または他のディレクトリ ストアをクロールするように設定されるサーバー上で、有効にしておく必要があります。

  • Forefront Identity Manager Service

  • Forefront Identity Manager Synchronization Service

また、Forefront Identity Management エージェントを実行するサーバー上の TCP ポート 5725 は開いている必要があり、ディレクトリ ストアをクロールするように設定されている必要があります。

Active Directory 環境では、ディレクトリ ストアおよび Active Directory を実行しているサーバーと同期する SharePoint 2010 Productsサーバー間の通信用に、以下のポートを開いたままにしておく必要があります。

  • TCP/UDP 389 (LDAP サービス)

  • TCP/UDP 88 (Kerberos)

  • TCP/UDP 53 (DNS)

  • UDP 464 (Kerberos パスワード変更)

他のディレクトリの種類用のポート要件を含めて、Forefront Identity Management エージェントの強化要件の詳細については、「Management Agent Communication Ports, Rights, and Permissions (英語)」(https://go.microsoft.com/fwlink/?linkid=186832&clcid=0x411) (英語) を参照してください。

外部サーバーへの接続

SharePoint Server 2010 のいくつかの機能は、サーバー ファームの外部のサーバー コンピューター上のデータにアクセスするように構成できます。外部サーバー コンピューター上にあるデータへのアクセスを構成する場合は、該当のコンピューター間の通信を有効にする必要があります。ほとんどの場合、使用するポート、プロトコル、およびサービスは、外部リソースに依存します。以下に例を示します。

  • ファイル共有への接続はファイルとプリンターの共有サービスを使用します。

  • 外部 SQL Server データベースへの接続は、SQL Server 通信の既定のポートまたはカスタマイズされたポートを使用します。

  • Oracle データベースへの接続は一般に OLE DB を使用します。

  • Web サービスへの接続は HTTP と HTTPS の両方を使用します。

次の表は、サーバー ファーム外のサーバー コンピューター上に存在するデータにアクセスするように構成できる機能を示します。

機能

説明

コンテンツ クロール

クロール ルールを構成して、Web サイト、ファイル共有、Exchange パブリック フォルダー、ビジネス データ アプリケーションなどの外部リソース上に存在するデータをクロールすることができます。外部データ リソースをクロールするときは、クロールの役割がこれらの外部リソースと直接通信します。

詳細については、「コンテンツのクロールを計画する (Office SharePoint Server)」(https://technet.microsoft.com/ja-jp/library/cc262926.aspx) を参照してください。

Business Data Connectivity 接続

Web サーバーやアプリケーション サーバーは、Business Data Connectivity 接続が構成されているコンピューターと直接通信します。

詳細については、「ビジネス データ カタログでビジネス データ接続を計画する」(https://technet.microsoft.com/ja-jp/library/cc263252.aspx) を参照してください。

Microsoft Office Excel ブックを受信する

Excel Services アプリケーションで開かれたブックが外部データ ソース (Analysis Services、SQL Server など) に接続する場合は、これらの外部データ ソースに接続するために該当する TCP/IP ポートが開かれている必要があります。詳細については、「Excel Services の外部データ接続を計画する 」(https://technet.microsoft.com/ja-jp/library/cc262899.aspx) を参照してください。

汎用名前付け規則 (UNC) パスを Excel Services アプリケーションの信頼される場所として構成した場合、Excel Calculation Services アプリケーションの役割はファイルとプリンターの共有サービスで使用されるプロトコルとポートを使用して、UNC パスを経由して Office Excel ブックを受信します。

ユーザーがコンテンツ データベースに格納するブックやサイトからアップロードまたはダウンロードするブックはこの通信の影響を受けません。

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

電子メール統合では、次の 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 が使用するアカウントへの書き込みアクセスは、この組織単位のみに許可する必要があります。

セッション状態のサービス要件

Project Server 2010 と InfoPath Forms Services は、どちらもセッション状態を保持します。サーバー ファーム内にこれらの機能または製品を展開する場合は、ASP.NET State Service を無効にしないでください。また、InfoPath Forms Services を展開する場合は、View State Service を無効にしないでください。

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) を参照してください。