보안 강화 계획(SharePoint Foundation 2010)

 

적용 대상: SharePoint Foundation 2010

마지막으로 수정된 항목: 2016-11-30

이 문서에서는 Microsoft SharePoint Foundation 2010 웹 서버, 응용 프로그램 서버 및 데이터베이스 서버 역할의 보안 강화에 대해 설명하고 Microsoft SharePoint 2010 제품의 포트, 프로토콜 및 서비스에 대한 특정 보안 강화 요구 사항과 관련된 자세한 지침을 제공합니다.

이 문서의 내용

보안 서버 스냅숏

서버 팜 환경에서 개별 서버는 특정 역할을 수행합니다. 이러한 서버에 대한 보안 강화 권장 사항은 각 서버가 수행하는 역할에 따라 달라집니다. 이 문서에는 두 가지 서버 역할 범주에 대한 보안 스냅숏이 포함됩니다.

스냅숏은 일반적인 구성 범주로 분류됩니다. 각 범주에 대해 정의된 특성은 Microsoft SharePoint 2010 제품에 대한 최적의 보안 강화 상태를 나타냅니다. 이 문서에는 환경의 다른 소프트웨어에 대한 보안 강화 지침은 포함되어 있지 않습니다.

웹 서버 및 응용 프로그램 서버 역할

이 섹션에서는 웹 서버 및 응용 프로그램 서버의 보안 강화 특성을 식별합니다. 일부 지침은 특정 서비스 응용 프로그램에 적용되며, 이러한 경우 해당 특성은 지정된 서비스 응용 프로그램과 연결된 서비스를 실행하는 서버에서만 적용되어야 합니다.

범주

특징

서비스 MMC 스냅인에 나열된 서비스

다음 서비스를 사용하도록 설정합니다.

  • 파일 및 프린터 공유

  • World Wide Web Publishing Service

다음 서비스가 사용하지 않도록 설정되지 않았는지 확인합니다.

  • Windows 토큰 서비스에 대한 클레임

  • SharePoint 2010 Administration

  • SharePoint 2010 Timer

  • SharePoint 2010 Tracing

  • SharePoint 2010 VSS 작성기

다음 서비스가 해당 역할을 호스팅하는 서버에서 사용하지 않도록 설정되지 않았는지 확인합니다.

  • SharePoint 2010 User Code Host

  • SharePoint Foundation Search V4

포트 및 프로토콜

  • TCP 80, TCP 443(SSL)

  • 파일 및 프린터 공유 서비스 - 검색 역할에서 사용되는 다음 중 하나:

    • 직접 호스팅되는 SMB(TCP/UDP 445) - 권장되는 포트입니다.

    • NetBT(NetBIOS over TCP/IP)(TCP/UDP 포트 137, 138, 139) - 이 포트를 사용하지 않는 경우 사용하지 않도록 설정합니다.

  • 웹 서버와 서비스 응용 프로그램 간의 통신(기본적으로 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 - 이 포트는 모든 웹 서버에서 아웃바운드 연결을 위해 열려 있어야 하고, 이 서비스가 설정된 웹 서버나 응용 프로그램 서버에서 인바운드 연결을 위해 열려 있어야 합니다.

  • 사용자가 액세스할 수 있는 웹 응용 프로그램에 대해 포트가 계속 열려 있는지 확인합니다.

  • 중앙 관리 사이트에 사용되는 포트에 대한 외부 액세스를 차단합니다.

  • TCP/25(전자 메일 통합용 SMTP)

레지스트리

추가 지침 없음

감사 및 로깅

로그 파일을 다시 배치하는 경우 로그 파일 위치가 일치하도록 업데이트합니다. 디렉터리 ACL(액세스 제어 목록)도 업데이트합니다.

코드 액세스 보안

웹 응용 프로그램에 대해 최소한의 코드 액세스 보안 권한 집합을 사용하도록 설정되어 있는지 확인합니다. 각 웹 응용 프로그램의 Web.config 파일에 있는 <trust> 요소는 WSS_Minimal(WSS_Minimal의 기본 하한값은 14\config\wss_minimaltrust.config에 정의되어 있거나 최소한으로 설정되는 사용자 지정 정책 파일에 의해 정의됨)로 설정해야 합니다.

Web.config

설치 프로그램을 실행한 후 만들어지는 각 Web.config 파일에 대해 다음 권장 사항을 따릅니다.

  • PageParserPaths 요소를 통한 데이터베이스 페이지 컴파일 또는 스크립팅을 허용하지 않습니다.

  • <사이트 모드> CallStack=""false"" 및 AllowPageLevelTrace=""false""를 확인합니다.

  • 영역당 최대 컨트롤 수에 대한 웹 파트 제한이 낮은 수치로 설정되어 있는지 확인합니다.

  • SafeControls 목록이 사이트에 필요한 최소 컨트롤 집합으로 설정되어 있는지 확인합니다.

  • 워크플로 SafeTypes 목록이 필요한 최소 수준의 SafeTypes로 설정되어 있는지 확인합니다.

  • customErrors가 설정되어 있는지 확인합니다(<customErrors 모드=""On""/>).

  • 필요한 경우 웹 프록시 설정을 고려합니다(<system.net>/<defaultProxy>).

  • Upload.aspx 제한을 사용자가 업로드할 수 있는 적절한 최고 크기(기본값은 2GB)로 설정합니다. 업로드 크기가 100MB를 초과하면 성능에 영향을 줄 수 있습니다.

데이터베이스 서버 역할

SharePoint 2010 제품에 대한 기본 권장 사항은 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=0x412)을 참조하십시오.

특정 포트, 프로토콜 및 서비스 지침

이 문서의 나머지 부분에서는 SharePoint 2010 제품의 특정 보안 강화 요구 사항에 대해 자세히 설명합니다.

이 섹션의 내용

표준 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는 "Slammer" 웜 바이러스를 비롯한 버퍼 오버런 공격 및 DoS(Denial-Of-Service) 공격의 표적이 되어 왔습니다. SQL Server를 업데이트하여 SQL Server Resolution Service의 보안 문제를 완화한다 해도 포트가 잘 알려져 있기 때문에 여전히 공격의 대상이 됩니다. 둘째로, 데이터베이스가 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 클라이언트 별칭 구성

서버 팜에서 모든 프런트 엔드 웹 서버와 응용 프로그램 서버는 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)를 참조하십시오.

서비스 응용 프로그램 통신

기본적으로 팜 내에서 웹 서버와 서비스 응용 프로그램 간의 통신은 포트 32843에 바인딩된 HTTP를 사용하여 이루어집니다. 서비스 응용 프로그램을 게시하는 경우 다음과 같이 바인딩된 HTTP 또는 HTTPS를 선택할 수 있습니다.

  • HTTP 바인딩: 포트 32843

  • HTTPS 바인딩: 포트 32844

또한 서비스 응용 프로그램을 개발하는 타사에서 제 3의 선택안을 구현할 수 있습니다.

  • net.tcp 바인딩: 포트 32845

각 서비스 응용 프로그램의 프로토콜과 포트 바인딩을 변경할 수 있습니다. 중앙 관리의 서비스 응용 프로그램 페이지에서 서비스 응용 프로그램을 선택한 다음 게시를 클릭합니다.

서비스 응용 프로그램과 SQL Server 간의 통신은 SQL Server 통신을 위해 구성한 표준 SQL Server 포트를 통해 이루어집니다.

파일 및 프린터 공유 서비스 요구 사항

파일 및 프린터 공유 서비스와 해당하는 프로토콜 및 포트에 따라 여러 가지 핵심 기능이 달라집니다. 다음은 이러한 기능 중 일부입니다.

  • 검색 쿼리   모든 검색 쿼리에는 파일 및 프린터 공유 서비스가 필요합니다.

  • 콘텐츠 크롤링 및 인덱싱   크롤링 구성 요소가 포함된 서버는 콘텐츠를 크롤링하기 위해 프런트 엔드 웹 서버를 통해 요청을 보냅니다. 프런트 엔드 웹 서버는 콘텐츠 데이터베이스와 직접 통신하여 결과를 다시 크롤링 구성 요소가 포함된 서버로 보냅니다. 이러한 통신에 파일 및 프린터 공유 서비스가 필요합니다.

파일 및 프린터 공유 서비스는 명명된 파이프를 사용해야 합니다. 명명된 파이프는 직접 호스팅되는 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를 사용하지 않도록 설정합니다.

NetBT를 사용하지 않도록 설정하는 방법에 대한 자세한 내용은 Microsoft 기술 자료 문서 204279, TCP/IP를 통한 SMB 직접 호스팅(https://go.microsoft.com/fwlink/?linkid=76143&clcid=0x412)을 참조하십시오.

전자 메일 통합을 위한 서비스 요구 사항

전자 메일을 통합하려면 다음과 같은 두 서비스를 사용해야 합니다.

SMTP 서비스

전자 메일 통합 기능을 이용하려면 서버 팜의 프런트 엔드 웹 서버 중 적어도 하나에서 SMTP(Simple Mail Transfer Protocol) 서비스를 사용해야 합니다. SMTP 서비스는 받는 전자 메일에 필요합니다. 보내는 전자 메일의 경우에는 SMTP 서비스를 사용하거나, 조직의 전용 전자 메일 서버(예: Microsoft Exchange Server 컴퓨터)를 통해 보내는 전자 메일을 라우팅할 수 있습니다.

Microsoft SharePoint 디렉터리 관리 서비스

SharePoint 2010 제품에는 전자 메일 그룹을 만들기 위한 내부 서비스인 Microsoft SharePoint 디렉터리 관리 서비스가 포함되어 있습니다. 전자 메일 통합을 구성할 때는 디렉터리 관리 서비스 기능을 사용하도록 설정하여 사용자가 메일 그룹을 만들도록 허용할 수 있습니다. 사용자가 SharePoint 그룹을 만들 때 메일 그룹 만들기 옵션을 선택하면 Microsoft SharePoint 디렉터리 관리 서비스에서 Active Directory 환경에 해당하는 Active Directory 메일 그룹을 만듭니다.

보안이 강화된 환경에서는 이 서비스와 연결된 파일(SharePointEmailws.asmx)을 보호하여 Microsoft SharePoint 디렉터리 관리 서비스에 대한 액세스를 제한하는 것이 좋습니다. 예를 들어 서버 팜 계정을 통해서만 이 파일에 액세스하도록 허용할 수 있습니다.

또한 이 서비스를 사용하려면 Active Directory 환경에서 Active Directory 메일 그룹 개체를 만들 수 있는 권한이 있어야 합니다. SharePoint 2010 제품 개체용으로 Active Directory에 별도의 OU(조직 구성 단위)를 설정하는 것이 좋습니다. 그리고 이 OU에서만 Microsoft SharePoint 디렉터리 관리 서비스에서 사용하는 계정에 대해 쓰기 권한을 허용해야 합니다.

SharePoint 2010 제품 서비스

SharePoint 2010 제품에서 설치하는 서비스는 사용하지 않도록 설정하면 안 됩니다(앞에서 스냅숏에 표시됨).

작업 환경에서 서비스를 로컬 시스템으로 실행할 수 없는 경우에는 SharePoint 2010 Administration Service를 사용하지 않도록 설정하는 것을 고려할 수 있습니다. 단, 이렇게 하려면 그 결과를 알고 있으며 관련 문제를 해결할 수 있어야 합니다. 이 서비스는 로컬 시스템으로 실행되는 Win32 서비스입니다.

이 서비스는 SharePoint 2010 Timer Service에서 IIS(인터넷 정보 서비스) 웹 사이트 만들기, 코드 배포, 서비스 중지/시작 등 서버에 대한 관리 권한이 필요한 작업을 수행하는 데 사용됩니다. 이 서비스를 사용하지 않도록 설정하면 중앙 관리 사이트에서 배포 관련 작업을 실행할 수 없습니다. Windows PowerShell에서 Start-SPAdminJob cmdlet을 실행하거나 Stsadm.exe 명령줄 도구에서 execadmsvcjobs 작업을 실행하여 SharePoint 2010 제품에 대한 여러 서버 배포를 완료하고 다른 배포 관련 작업을 실행해야 합니다.

Web.config 파일

.NET Framework, 특히 ASP.NET은 XML 형식 구성 파일을 사용하여 응용 프로그램을 구성합니다. .NET Framework는 구성 파일을 사용하여 구성 옵션을 정의합니다. 구성 파일은 텍스트 기반 XML 파일입니다. 일반적으로 단일 시스템에 여러 구성 파일이 있습니다.

.NET Framework에 대한 시스템 전체 구성 설정은 Machine.config 파일에 정의됩니다. Machine.config 파일은 %SystemRoot%\Microsoft.NET\Framework\%VersionNumber%\CONFIG\ 폴더에 있습니다. Machine.config 파일에 포함되어 있는 기본 설정을 수정하여 전체 시스템에서 .NET Framework를 사용하는 응용 프로그램 동작을 변경할 수 있습니다.

응용 프로그램의 루트 폴더에 Web.config 파일을 만드는 경우에는 단일 응용 프로그램에 대해 ASP.NET 구성 설정을 변경할 수 있습니다. 이렇게 하면 Web.config 파일의 설정이 Machine.config 파일의 설정을 다시 정의합니다.

중앙 관리를 사용하여 웹 응용 프로그램을 확장하면 SharePoint 2010 제품에서 웹 응용 프로그램에 대해 Web.config 파일을 자동으로 만듭니다.

이 문서 앞부분에서 설명하는 웹 서버 및 응용 프로그램 서버 스냅숏에서는 Web.config 파일 구성을 위한 권장 사항이 나와 있습니다. 이러한 권장 사항은 중앙 관리 사이트의 Web.config 파일을 비롯하여 작성되는 각 Web.config 파일에 적용하기 위한 것입니다.

Web.config 파일을 편집하는 방법 및 ASP.NET 구성 파일에 대한 자세한 내용은 ASP.NET 구성 (영문일 수 있음)(https://go.microsoft.com/fwlink/?linkid=73257&clcid=0x412)(영문일 수 있음)을 참조하십시오.