Windows Media Server 2008 R2 referer 차단

| 2017년 1월 29일 | 0 Comments

WMV 파일을 스트리밍 할 경우  가장 많이 사용하는 미디어 서버는 Windows Media Server 입니다

예전 2003 버전까지는 OS상에 포함되어 있어 프로그램/추가에서 해당 서버 체크후에 사용이 가능 했지만

2008 버전부터는 역할추가에 기본적으로 포함되어 있지 않으며 업데이트를 설치해야지만 

서버관리자 -> 역할 추가에 나타나게 된다

아래 url은 2008 용 미디어서버 다운로드 페이지 입니다

https://www.microsoft.com/ko-kr/download/details.aspx?id=20424

 

리눅스 기반용의 스트리밍 솔루션이나 유료로 구매가 가능한 Wowza 등의 솔루션은 보안관련된 기능이 포함되어 있어서

스트리밍 운영시 간단한 도메인 제한 같은 보안등을 손쉽게 처리를 할 수 있습니다

 

그런데 윈도우 미디어 서버의 경우에는 미디어서버 에서 처리하기가 어려운 부분이 있다

아래 설명하는 방법은 RTSP방식으로는 차단이 안되며  WMS HTTP 서버 제어 프로토콜로 해야 정상적으로 차단이 가능함

 

  1. 설정 방법

 

  • 미디어서버실행 ->  속성 -> 제어프로토콜 -> HTTP 제어프로토콜을 사용으로 변경

※ IIS등을 이용할 경우 포트가 중복되어 불가능 하니 포트를 변경하거나 해야함

 

  • test.vbs 파일생성후 아래 스크립트 내용 복사

Dim strMyServer
‘Change the www.contoso.com value to the DNS name of your site.
strMyServer = “smilecdn.com”

Dim LogFile

Sub CreateLog
Dim fso
Set fso = CreateObject(“Scripting.FileSystemObject”)
Set LogFile = fso.CreateTextFile(“c:\wmpub\wmroot\AuthorizationLog.txt”, True)
End Sub

Sub TraceInformation( strTraceText )
LogFile.WriteLine( strTraceText )
End Sub

Sub OnWMSPluginInitialize ( ServerCtx )
CreateLog
tempStr = “OnWMSPluginInitialize ” & Now
TraceInformation( tempStr )
End sub

Sub OnWMSPluginShutdown ()
tempStr = “OnWMSPluginShutdown ” & Now
TraceInformation( tempStr )
LogFile.Close
End sub

Function OnWMSEAuthorizeOpen (UserCtx, PresCtx, CmdCtx)
Dim strReferer
‘Turning off error checking temporarily while getting the user context. If there is no
‘referer context value then we do not want to end here with an error. If there is no
‘referer context value we will fail at the first if statement and return the access denied.
On Error Resume Next
strReferer = UserCtx(“WMS_USER_REFERER”).Value
On Error Goto 0

tempStr = “Validating ” & strReferer & ” on ” & Now
Dim DomainName
DomainName = GetLowerFQDN (strReferer)

if DomainName = LCase(strMyServer) then
OnWMSEAuthorizeOpen = &H00000000
tempStr = tempStr & ” – Access Granted”
else
OnWMSEAuthorizeOpen = &H80070005
tempStr = tempStr & ” – Access Denied”
end if
TraceInformation( tempStr )
End Function

Function GetLowerFQDN(strURL)
‘Strips off the initial http:// or https://
tempDNS = Mid(strURL, InStr(strURL, “://”) + 3)

‘Checks to see if a port number is used after the DNS name and strips that off.
if Mid(tempDNS, 1, InStr(tempDNS, “:”)) <> “” then
tempDNS = Mid(tempDNS, 1, InStr(tempDNS, “:”)-1)
end if

‘Removes everything after and including the first slash. What remains should be
‘the DNS name.
if Mid(tempDNS, 1, InStr(tempDNS, “/”)) <> “” then
tempDNS = Mid(tempDNS, 1, InStr(tempDNS, “/”)-1)
end if
GetLowerFQDN = LCase(tempDNS)
End Function

 

위 스크립트에서 도메인과 로그파일은 서버환경에 맞게 변경

 

 

  • 테스트할 게시지점으로 이동후  -> 속성  -> 이벤트 알림 -> WMS 액티브 스크립트 이벤트 처리기 속성을 들어간후

위에서 생성한 test.vbs 파일을 등록 -> 사용으로 변경

 

위와같이 설정하면 기본적인 설정은 완료가 된다

 

모든 설정이 완료되었으니 mms 를 호출해보면 리퍼러 도메인이 차단되어서 등록된 도메인외에는 재생이 불가능 하다

로그파일을 확인하면 아래와 같이 Access Denied 표시가 기록된다

 

Validating http://test.ivyro.net/mms.html on 2017-01-25 오후 4:30:55 – Access Denied
Validating http://test.ivyro.net/mms.html on 2017-01-25 오후 4:30:57 – Access Denied

 

위방법은 RTSP방식은 불가능 하며 HTTP방식으로만 차단이 가능한 방법입니다

Tags: , , , , , , , ,

Category: 동영상/CDN

About the Author ()