Plan security hardening for SharePoint Server

적용 대상:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

보안 서버 스냅숏

서버 팜 환경에서 개별 서버에는 특정 역할이 있습니다. 이러한 서버에 대한 보안 강화 요구 사항은 각 서버가 수행하는 역할에 따라 달라집니다. 이 문서에서는 두 가지 범주의 서버 역할에 대한 보안 스냅숏에 대해 설명합니다.

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

특정 역할에 대한 서버 강화 외에도 팜 서버와 외부 요청 간에 방화벽을 배치하여 SharePoint 팜을 보호하는 것도 중요합니다. 이 문서의 지침에 따라 방화벽을 구성할 수 있습니다.

SharePoint 서버

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

범주 특성
서비스 MMC 스냅인에 나열된 서비스
다음 서비스를 사용하도록 설정합니다.
ASP.NET 상태 서비스(InfoPath Forms Services 또는 Project Server 2016 사용 중인 경우)
상태 서비스 보기(InfoPath Forms Services 사용하는 경우)
World Wide Web Publishing 서비스
다음 서비스가 사용하지 않도록 설정되지 않았는지 확인합니다.
Windows Token Service에 대한 클레임
SharePoint 관리
SharePoint Timer Service
SharePoint Tracing Service
SharePoint VSS 작성기
다음 서비스가 해당 역할을 호스팅하는 서버에서 사용하지 않도록 설정되지 않았는지 확인합니다.
AppFabric 캐싱 서비스
SharePoint User Code Host
SharePoint Search 호스트 컨트롤러
SharePoint Server Search
포트 및 프로토콜
TCP 80, TCP 443(SSL)
기본값이 아닌 포트에서 파일 공유 또는 웹 사이트 크롤링 등을 위한 검색 크롤링을 위한 사용자 지정 포트(구성된 경우)
검색 인덱스 구성 요소에 사용되는 포트 - TCP 16500-16519(팜 간 전용)
AppFabric 캐싱 서비스에 필요한 포트 - TCP 22233-22236
Windows Communication Foundation 통신에 필요한 포트 - TCP 808
SharePoint 서버와 서비스 애플리케이션 간의 통신에 필요한 포트(기본값은 HTTP)입니다.
HTTP 바인딩: TCP 32843
HTTPS 바인딩: TCP 32844
net.tcp 바인딩: TCP 32845(타사에서 서비스 응용 프로그램에 대해 이 옵션을 구현한 경우만 해당)
컴퓨터 네트워크 환경에서 Windows Server 2012, Windows Server 2008, Windows Server 2008 R2, Windows 7 또는 Windows Vista를 Windows Server 2012 및 Windows Vista 이전 버전의 Windows와 함께 사용하는 경우 다음 포트 범위에서 연결을 사용하도록 설정해야 합니다.
49152부터 65535까지의 높은 포트 범위
1025부터 5000까지의 낮은 포트 범위
SQL Server 통신을 위한 기본 포트 - TCP 1433, UDP 1434. 이러한 포트가 SQL Server 컴퓨터에서 차단되고 데이터베이스가 명명된 인스턴스에 설치된 경우 명명된 인스턴스에 연결하기 위해 SQL Server 클라이언트 별칭을 구성합니다.
Microsoft SharePoint Foundation 사용자 코드 서비스(샌드박스 솔루션용) - TCP 32846. 분산 캐시 서버를 사용하는 모든 프런트 엔드 및 프런트 엔드에서 아웃바운드 연결을 위해 이 포트를 열어야 합니다. 이 포트는 이 서비스가 켜져 있는 분산 캐시 서버가 있는 프런트 엔드 및 프런트 엔드의 인바운드 연결에 대해 열려 있어야 합니다.
사용자가 액세스할 수 있는 웹 응용 프로그램에 대해 포트가 계속 열려 있는지 확인합니다.
중앙 관리 사이트에 사용되는 포트에 대한 외부 액세스를 차단합니다.
전자 메일 통합을 위한 SMTP - 기본이 아닌 포트를 사용하도록 아웃바운드 전자 메일을 구성한 경우 TCP 25 또는 사용자 지정 TCP 포트입니다.
레지스트리
추가 지침 없음
감사 및 로깅
로그 파일을 다시 배치하는 경우 로그 파일 위치가 일치하도록 업데이트합니다. 디렉터리 ACL(액세스 제어 목록)도 업데이트합니다.
Web.config
설치 프로그램을 실행한 후 만들어지는 각 Web.config 파일에 대해 다음 권장 사항을 따릅니다.
PageParserPaths 요소를 통한 데이터베이스 페이지 컴파일 또는 스크립팅을 허용하지 않습니다.
SafeMode> CallStack="false" 및 AllowPageLevelTrace="false"를 확인<합니다.
영역당 최대 컨트롤 수에 대한 웹 파트 제한이 낮은 수치로 설정되어 있는지 확인합니다.
SafeControls 목록이 사이트에 필요한 최소 컨트롤 집합으로 설정되어 있는지 확인합니다.
워크플로 SafeTypes 목록이 필요한 최소한의 SafeTypes 수준으로 설정되어 있는지 확인합니다.
customErrors가 켜져 있는지 확인합니다(<customErrors mode="On"/>).
필요에 따라 웹 프록시 설정(<system.net>/<defaultProxy)을 고려합니다>.
Upload.aspx 제한을 사용자가 업로드할 것으로 예상되는 가장 높은 크기로 설정합니다. 업로드 크기가 100MB를 초과하면 성능에 영향을 줄 수 있습니다.

데이터베이스 서버 역할

참고

SharePoint Server 2016의 MinRole 기능 외에도 역할 개념이 변경되었습니다. 역할에 대한 자세한 내용은 SharePoint Server 2016에서 MinRole 서버 배포 계획을 참조하세요.

SharePoint Server의 기본 권장 사항은 SQL Server 통신에 사용되는 기본 포트를 차단하고 대신 이 통신에 대한 사용자 지정 포트를 설정하여 팜 간 통신을 보호하는 것입니다. SQL Server 통신을 위해 포트를 구성하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 표준 SQL Server 포트 차단을 참조하세요.

범주 특성
포트
UDP 1434를 차단합니다.
TCP 1433을 차단하는 것을 고려합니다.

이 문서에서는 SQL Server 보호하는 방법을 설명하지 않습니다. SQL Server 보호하는 방법에 대한 자세한 내용은 보안 SQL Server(https://go.microsoft.com/fwlink/p/?LinkId=186828)를 참조하세요.

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

이 문서의 나머지 부분에는 SharePoint Server에 대한 특정 강화 요구 사항이 자세히 설명되어 있습니다.

이 섹션의 내용

표준 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 해결 서비스는 "슬래머" 웜 바이러스를 포함한 버퍼 오버런 공격 및 서비스 거부 공격의 대상이 되었습니다. SQL Server Resolution Service의 보안 문제를 완화하기 위해 SQL Server 업데이트되더라도 잘 공개된 포트는 대상으로 남아 있습니다. 둘째, 데이터베이스가 명명된 SQL Server 인스턴스에 설치된 경우 해당 통신 포트가 임의로 할당되고 변경될 수 있습니다. 이러한 동작으로 인해 강화된 환경에서 서버 간 통신이 차단될 수 있습니다. 열려 있거나 차단되는 TCP 포트를 제어하는 기능은 환경을 보호하는 데 반드시 필요합니다.

참고

표준 SQL 포트를 사용하는 것이 좋지만 SQL Server 액세스해야 하는 서버와의 통신만 허용하도록 방화벽이 구성되어 있는지 확인합니다. SQL Server 액세스할 필요가 없는 서버는 TCP 포트 1433 및 UDP 포트 1444를 통해 SQL Server 연결하지 못하도록 차단해야 합니다.

포트를 차단하는 데 사용할 수 있는 몇 가지 방법이 있습니다. 방화벽을 사용하여 이러한 포트를 차단할 수 있습니다. 그러나 네트워크 세그먼트에 대한 다른 경로가 없고 네트워크 세그먼트에 액세스할 수 있는 악의적인 사용자가 없는 경우 SQL Server 호스트하는 서버에서 이러한 포트를 직접 차단하는 것이 좋습니다. 이 작업은 제어판 Windows 방화벽을 사용하여 수행할 수 있습니다.

비표준 포트에서 수신 대기하도록 SQL Server 데이터베이스 인스턴스 구성

SQL Server에서는 기본 인스턴스와 모든 명명된 인스턴스에서 사용하는 포트를 다시 할당하는 기능을 제공합니다. SQL Server SQL Server 구성 관리자 사용하여 포트를 다시 할당합니다.

SQL Server 클라이언트 별칭 구성

서버 팜에서 모든 프런트 엔드 웹 서버 및 애플리케이션 서버는 클라이언트 컴퓨터에 SQL Server. SQL Server 컴퓨터에서 UDP 1434를 차단하거나 기본 인스턴스의 기본 포트를 변경하는 경우 SQL Server 컴퓨터에 연결하는 모든 서버에서 SQL Server 클라이언트 별칭을 구성해야 합니다. 이 시나리오에서 SQL Server 클라이언트 별칭은 명명된 인스턴스가 수신 대기하는 TCP 포트를 지정합니다.

SQL Server 인스턴스에 연결하려면 대상 컴퓨터에 SQL Server 클라이언트 구성 요소를 설치한 다음 SQL Server 구성 관리자 사용하여 SQL Server 클라이언트 별칭을 구성합니다. SQL Server 클라이언트 구성 요소를 설치하려면 설치 프로그램을 실행하고 설치할 다음 클라이언트 구성 요소만 선택합니다.

  • 연결 구성 요소

  • 관리 도구(SQL Server 구성 관리자 포함)

표준 SQL Server 포트를 차단하기 위한 특정 강화 단계는 SharePoint Server에 대한 SQL Server 보안 구성을 참조하세요.

서비스 응용 프로그램 통신

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

  • HTTP 바인딩: TCP 32843

  • HTTPS 바인딩: TCP 32844

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

  • net.tcp 바인딩: TCP 32845

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

Get-SPServiceHostConfig 및 Set-SPServiceHostConfig Microsoft PowerShell cmdlet을 사용하여 HTTP/HTTPS/net.tcp 바인딩을 보고 변경할 수도 있습니다.

서비스 애플리케이션과 SQL Server 간의 통신은 표준 SQL Server 포트 또는 SQL Server 통신에 대해 구성하는 포트를 통해 이루어집니다.

외부 서버에 대한 연결

SharePoint Server의 여러 기능은 서버 팜 외부의 서버 컴퓨터에 있는 데이터에 액세스하도록 구성할 수 있습니다. 외부 서버 컴퓨터에 있는 데이터에 대한 액세스를 구성하는 경우에는 해당하는 컴퓨터 간의 통신을 사용하도록 설정해야 합니다. 대부분의 경우에는 외부 리소스에 따라 다른 포트, 프로토콜 및 서비스를 사용합니다. 예를 들면 다음과 같습니다.

  • 파일 공유에 연결하는 경우 파일 및 프린터 공유 서비스를 사용합니다.

  • 외부 SQL Server 데이터베이스에 연결하는 경우 SQL Server 통신에 기본 포트 또는 사용자 지정된 포트를 사용합니다.

  • Oracle 데이터베이스에 대한 연결에서는 보통 OLE DB를 사용합니다.

  • 웹 서비스에 대한 연결에서는 HTTP 및 HTTPS를 모두 사용합니다.

다음 표에는 서버 팜 외부의 서버 컴퓨터에 있는 데이터에 액세스하도록 구성할 수 있는 기능이 나와 있습니다.

기능 설명
콘텐츠 크롤링
웹 사이트, 파일 공유, Exchange 공용 폴더, 비즈니스 데이터 응용 프로그램 등의 외부 리소스에 있는 데이터를 크롤링하도록 크롤링 규칙을 구성할 수 있습니다. 외부 데이터 원본을 크롤링하는 경우 크롤링 역할에서 이러한 외부 리소스와 직접 통신합니다.
자세한 내용은 SharePoint Server에서 크롤링 관리를 참조하세요.
Business Data Connectivity 연결
웹 서버 및 응용 프로그램 서버는 Business Data Connectivity 연결이 구성된 컴퓨터와 직접 통신합니다.

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

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

SMTP 서비스

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

Microsoft SharePoint 디렉터리 관리 서비스

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

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

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

세션 상태를 위한 서비스 요구 사항

Project Server 2016 및 InfoPath Forms Services 세션 상태를 유지 관리합니다. 서버 팜 내에서 이러한 기능이나 제품을 배포하는 경우 ASP.NET State Service를 사용하지 않도록 설정해서는 안 됩니다. 또한 InfoPath Forms Services 배포하는 경우 상태 보기 서비스를 사용하지 않도록 설정하지 마세요.

SharePoint Server 제품 서비스

SharePoint Server에서 설치한 서비스를 사용하지 않도록 설정하지 마세요(이전에 스냅샷에 나열됨).

환경에서 로컬 시스템으로 실행되는 서비스를 허용하지 않는 경우 결과를 인식하고 해결할 수 있는 경우에만 SharePoint 관리 서비스를 사용하지 않도록 설정할 수 있습니다. 이 서비스는 로컬 시스템으로 실행되는 Win32 서비스입니다.

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

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 Server가 웹 애플리케이션에 대한 Web.config 파일을 자동으로 만듭니다.

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

구성 파일 ASP.NET Web.config 파일 편집에 대한 자세한 내용은 ASP.NET 구성 (https://go.microsoft.com/fwlink/p/?LinkID=73257)을 참조하세요.

참고 항목

개념

SharePoint Server의 보안