728x90

INF 템플릿을 이용한 Lync 인증서 생성 하는 방법에 대해서 작성합니다.

이방법은 exchange/iis 등도 사용하면 될 듯합니다.

일단 장점이라면 UI보다는 빠르네요.

 

순서

1. 템플릿 생성

2. Certreq 명령을 통한 req 파일 생성

3. AD 인증웹을 통한 인증서 발급

4. 생성 된 인증서를 F/E에 설치

5. F/E 인증서 배포

 

시작

1. 템플릿 생성(확장자는 INF)   예) cert.inf

   빨간색 부분만 수정하시면 됩니다.

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=LyncPool01.mani4u.com"
Exportable = true
ExportableEncrypted = true
HashAlgorithm = sha1
KeyLength = 4096
KeySpec = AT_KEYEXCHANGE
KeyUsage = "CERT_DIGITAL_SIGNATURE_KEY_USAGE | CERT_KEY_ENCIPHERMENT_KEY_USAGE"
KeyUsageProperty = "NCRYPT_ALLOW_DECRYPT_FLAG | NCRYPT_ALLOW_SIGNING_FLAG"
MachineKeySet = true
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
SMIME = false
RequestType = CMC
FriendlyName = "LyncPool01.mani4u.com"

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "dns=LyncPool01.mani4u.com&"
_continue_ = "dns=LyncWeb01.mani4u.com&"
_continue_ = "dns=LyncExtWeb01.mani4u.com&"
_continue_ = "dns=JoinLync01.mani4u.com&"
_continue_ = "dns=FE01.mani4u.com&"
_continue_ = "dns=FE02.mani4u.com&"
_continue_ = "dns=FE03.mani4u.com&"
_continue_ = "dns=FE04.mani4u.com&"
_continue_ = "dns=lyncdiscover.mani4u.com&"
_continue_ = "dns=lyncdiscoverinternal.mani4u.com"

 

2.5.29.37 = "{text}"
_continue_ = "1.3.6.1.5.5.7.3.2,"
_continue_ = "1.3.6.1.5.5.7.3.1" 

 

2. Certreq 명령을 통한 req 파일 생성

#주의(명령프롬프트창을 관리자 권한으로 실행 해야 합니다.) 

 명령어 certreq.exe -new cert.inf cert.req

 

3. AD 인증웹을 통한 인증서 발급 

 a.인증서 url에 접속

 b.인증서 요청

 c.Base 64 인코딩 CMC 또는 PKCS #10 파일을 사용하여...갱신 요청을 제출 합니다.

 d.2번에서 생성 된 cert.req 파일을 오픈하여 모든 txt를 복사한 다음 저장된 요청의 box에 붙여 넣습니다.

    인증서 템플릿 종류는 "웹서비스"로 선택하여 제출

 e.인증서 다운로드 저장

 

4. 생성 된 인증서를 F/E에 설치

 mmc를 사용하여 인증서스냅인을 추가하여 발급 받은 인증서를 설치

 

 

5. F/E 인증서 배포

 a.Deployment Wizard 실행>Install or Update Lync...>Step3:Request,Install or Assign Certficates

 b.defaykt certificate 선택 후 Assign

 c.새로설치 된 인증서로 활당

 

캡쳐를 못해 죄송...^^

 

끝.

728x90
728x90

해당 쿼리는 BackEnd Server에서 실행 합니다.

 

 USE LCSCDR
 
declare @SipAddress nvarchar(200),
  @StartDate datetime,  -- 검색 날자 시작 변수
  @EndDate datetime,   -- 검색 날자 끝 변수
  @CurrPage int  --  페이지처리 변수
select @SipAddress = 'test@mani4u.com', @CurrPage = 1, @StartDate = cast('2015-01-01' as datetime), @EndDate = cast('2015-05-30' as datetime)
select @SipAddress, @CurrPage, @StartDate, @EndDate
; WITH ConnectionLog AS
(
 SELECT  ROW_NUMBER() OVER(ORDER BY reg.RegisterTime desc) AS rownum
    , DATEADD(minute, DATEDIFF(minute, sysutcdatetime(), sysdatetime()), reg.SessionIdTime) AS SessionIdTimeS 
    , reg.SessionIdSeq
    , usr.UserUri AS SipAddress 
    , DATEADD(minute, DATEDIFF(minute, sysutcdatetime(), sysdatetime()), reg.RegisterTime) AS LoginTime 
    , DATEADD(minute, DATEDIFF(minute, sysutcdatetime(), sysdatetime()), reg.DeRegisterTime) AS LogoutTime 
    , reg.IpAddress 
    ,CASE WHEN reg.[DeRegisterTypeId] = 1 THEN N'정상종료' 
      WHEN reg.[DeRegisterTypeId] = 2 THEN N'접속만료' 
      WHEN reg.[DeRegisterTypeId] = 3 THEN N'비정상종료' 
      WHEN reg.[DeRegisterTypeId] = 4 THEN N'사용자속성변경' 
      WHEN reg.[DeRegisterTypeId] = 5 THEN N'POOL변경' 
      WHEN reg.[DeRegisterTypeId] = 6 THEN N'Client버전문제' 
      ELSE N'알수없음' END AS LogoutReason 
    ,CASE WHEN reg.[RegistrarId] = 1 THEN N'Lync 2013 Client' 
      WHEN reg.[RegistrarId] = 1003 THEN N'Lync 2013 Client' 
      WHEN reg.[RegistrarId] = 1002 THEN N'MSPL' 
      WHEN reg.[RegistrarId] = 2002 THEN N'MSPL'  
      WHEN reg.[RegistrarId] = 2003 THEN N'MSPL'  
      ELSE N'ETC' END AS ClientVer 
    , REPLACE(ser.ServerFQDN,'.adatum.com','') AS ServerFQDN 
    , REPLACE(poo.PoolFQDN,'.adatum.com','') AS PoolFQDN 
    , reg.EdgeServerId 
    , CASE WHEN reg.IsInternal = 1 THEN N'내부' ELSE N'외부' END AS IsInternal 
    , reg.IsUserServiceAvailable 
    , reg.IsPrimaryRegistrar 
    , reg.IsPrimaryRegistarCentral 
    , reg.ResponseCode 
    , reg.DiagnosticId 
    , reg.DeviceId 
    , reg.EndpointId 
    , reg.EndpointEra 
    , (SELECT top 1 [Version]  FROM [LcsCDR].[dbo].[ClientVersions] where reg.ClientVersionId=[VersionId])  as VersionName
 FROM  Registration reg 
   INNER JOIN Users usr  
    ON reg.UserId = usr.UserId 
    INNER JOIN Pools poo  
    ON reg.PoolId = poo.PoolId  
    INNER JOIN Servers ser  
    ON reg.RegistrarId = ser.ServerId  
   INNER JOIN (
     SELECT [VersionId]  FROM [LcsCDR].[dbo].[ClientVersions]
     where 1=1
     and (charindex('Android', Version) > 0
      or charindex('iPhone', Version) > 0
      or charindex('iPad', Version) > 0)
   ) VER
   ON VER.[VersionId] = reg.ClientVersionId
 WHERE  (1 = 1)  
 --AND   (usr.UserUri = @SipAddress)  
    AND   dateadd(minute, datediff(minute, sysutcdatetime(), sysdatetime()), reg.[RegisterTime])  
    BETWEEN DATEADD(day,0,CONVERT(VARCHAR(10), @StartDate,23))  
 AND DATEADD(day,1,CONVERT(VARCHAR(10), @EndDate,23)) 
)
SELECT * FROM ConnectionLog
 --WHERE rownum BETWEEN (@CurrPage-1) * 50 + 1 AND @CurrPage * 50

 

728x90
728x90

Lync/Lync Server 2013 방화벽포트 정리

 

Lync/Lync서버는 다양한 실시간 통신기능을 제공합니다. 이에 따라 사용되는 포트도 다양하여 시스템 구축시 방화벽요청을 위하여 정리하기가 어렵습니다. 아래의 도구를 이용하시면 손쉽게 사용포트를 확인하실 수 있어 도움이 되실 것 같습니다.

1. Lync 2013 Protocol Poster v6.7
 설명: 기존 Lync/Lync Server 2010용 Protocol Poster를 Lync 2013에 맞추어 다시 재작한 문서입니다. 각 기능별 흐름 및 사용포트를 한눈에 확인하실 수 있습니다.
URL : http://www.lync-solutions.com/Documents/Lync_2013_protocol_poster_v6_7.pdf

 

2. Lync Firewall Rules Viewer
 설명: 각 요소(서버/클라이언트)간 사용되는 포트를 확인하실 수 있는 Tool입니다.
URL : http://www.lync-solutions.com/Documents/LyncFirewallViewer.zip

 

 

 

 

 

 

https://support.kemptechnologies.com/hc/en-us/articles/203861745-MS-Lync-2013-Server-Security-Guide

728x90
728x90

 

Lync2013 Server 모듈 설치 명령어

 

 

http://technet.microsoft.com/en-us/library/gg398103.aspx

http://technet.microsoft.com/en-us/library/gg412871.aspx

Install-WindowsFeature RSAT-ADDS

 

 

 

 

Import-Module ServerManager

 

 

 

 

Add-WindowsFeature Web-Server, Web-Static-Content, Web-Default-Doc, Web-Http-Errors, Web-Asp-Net, Web-Net-Ext, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Http-Logging, Web-Log-Libraries, Web-Request-Monitor, Web-Http-Tracing, Web-Basic-Auth, Web-Windows-Auth, Web-Client-Auth, Web-Filtering, Web-Stat-Compression, Web-Dyn-Compression, NET-WCF-HTTP-Activation45, Web-Asp-Net45, Web-Mgmt-Tools, Web-Scripting-Tools, Web-Mgmt-Compat, Desktop-Experience, BITS -Source f:\sources\sxs

728x90
728x90

sp_columns @table_name='테이블명'

728x90
728x90

특정 테이블 필드에서 공통된 문자열을 기준으로 오른쪽 값만 표시 할 일이 생겨.

삽질 끝에 완성했다.

 

실제데이터

Name

============================

urn:upc:tmkim@domain.com

urn:confs:testh005@domain.com

urn:confs:testkp002@domain.com
urn:hcd:testkp002@domain.com
urn:confs:testkp007@domain.com

urn:hcd:testkp007@domain.com

 

자 시작해보자

 

 

실행 쿼리

select Right(D.Name,LEN(D.Name)-CHARINDEX(':t',D.Name)) As PName from Document

 

결과 값

Name

============================

tmkim@domain.com
testh005@domain.com
testkp002@domain.com
testkp002@domain.com
testkp007@domain.com
testkp007@domain.com

 

해설

Name 값의 "총 문장길이값"를 ":t"까지의 길이 뺀 후 숫자만큼 뒤에서 부터 출력하여 빼도록 하였다.

왜냐면 메일주소의 길이가 가변적이때문에 공통된 :t까지를 기준으로 잡았다.

 

끝.

728x90
728x90

https://insidemstech.com/2015/07/31/skype-for-business-server-2015-databases/

 

중앙 관리 저장소의 데이터 및 로그 파일
중앙 관리 저장소 데이터베이스 파일 데이터 파일 또는 로그 용도
Xds.ldf 중앙 관리 저장소에 대한 트랜잭션 로그 파일
Xds.mdf 토폴로지 작성기에 정의 및 게시된 대로 현재 Lync Server 2013 토폴로지 구성 유지 관리
Lis.mdf 위치 정보 서비스 데이터 파일
Lis.ldf 위치 정보 서비스 데이터 파일에 대한 트랜잭션 로그 파일
사용자, 회의 및 주소록에 대한 데이터 및 로그 파일
핵심 Lync Server 2013 데이터베이스 파일 데이터 파일 또는 로그 용도
Rtc.mdf 영구적 사용자 데이터(예: ACL(액세스 제어 목록), 대화 상대, 예약된 회의)
Rtc.ldf Rtc 데이터의 트랜잭션 로그
Rtcdyn.mdf 임시 사용자 데이터(현재 상태 런타임 데이터) 유지 관리
Rtcdyn.ldf Rtcdyn 데이터의 트랜잭션 로그
Rtcab.mdf RTC(Real-Time Communications) 주소록 데이터베이스는 주소록 서비스 정보가 저장되는 SQL Server 리포지토리임
Rtcab.ldf 주소록 서비스에 대한 트랜잭션 로그
Rtclocal.mdb 회의 디렉터리 호스트
Rtcxds.mdf 사용자 데이터에 대한 백업 유지 관리
Rtcxds.ldf Rtcxds 데이터의 트랜잭션 로그
통화 대기 및 응답 그룹에 대한 데이터 및 로그 파일
응용 프로그램 데이터베이스 데이터 파일 또는 로그 용도
Cpsdyn.mdf 통화 대기 응용 프로그램에 대한 동적 정보 데이터베이스
Cpsdyn.ldf 통화 대기 응용 프로그램 데이터 파일에 대한 트랜잭션 로그
Rgsconfig.mdf 서비스 구성에 대한 Lync Server 응답 그룹 서비스 데이터 파일
Rgsconfig.ldf 응답 그룹 응용 프로그램 구성에 대한 트랜잭션 로그 파일
Rgsdyn.mdf 런타임 작업에 대한 응답 그룹 서비스 데이터 파일
Rgsdyn.ldf 응답 그룹 서비스 런타임 데이터 파일에 대한 트랜잭션 로그
보관 및 모니터링 서버에 대한 데이터 및 로그 파일
보관 및 모니터링 데이터베이스 파일 데이터 파일 또는 로그 용도
LcsCdr.mdf 모니터링 서버의 CDR(통화 정보 기록) 프로세스에 대한 데이터 저장소
LcsCdr.ldf CDR(통화 정보 기록) 데이터에 대한 트랜잭션 로그
QoEMetrics.mdf 모니터링 서버에서 저장된 체감 품질 데이터 파일
QoEMetrics.ldf 모니터링 데이터에 대한 트랜잭션 로그
Lcslog.mdf 보관 서버에 인스턴트 메시징 및 회의 데이터를 보존하기 위한 데이터 파일
Lcslog.ldf 보관 데이터에 대한 트랜잭션 로그
이 항목에서는 디스크 및 RAID 세트를 기준으로 합니다. SQL Server 리소스 구성에서 디스크란 단일 하드웨어 장치를 의미합니다. 각각 로그 파일과 데이터 파일을 유지하는 두 개의 파티션이 있는 하드 디스크 드라이브는 각각 로그 또는 데이터 파일에 전용되는 두 개의 디스크와 다릅니다.
RAID 세트의 경우 여러 공급업체의 다양한 RAID 기술이 있습니다. 또한 SAN(저장 영역 네트워크)의 증가로 인해 단일 시스템에 전용되는 RAID 세트가 드문 것이 현실입니다. 따라서 Lync Server 2013에서 SQL Server 성능을 구성할 때 RAID 또는 SAN 공급업체에 문의하여 디스크 레이아웃에 가장 적합한 구성을 확인해야 합니다.
또한 모든 디스크 드라이브가 동일하게 만들어지는 것이 아니며 그 중 성능이 나은 것이 있습니다. 같은 제조업체의 드라이브도 회전 속도, 하드웨어 캐시 크기 및 기타 요인으로 인해 성능이 다를 수 있습니다.

728x90
728x90

MSSQL 현재 데이터베이스에 접속중인 세션정보 / 아이피 확인방법

 

   SELECT P.spidP.login_timeP.last_batchP.statusP.program_nameP.cmdC.client_net_address

   FROM sys.sysprocesses AS INNER JOIN sys.dm_exec_connections AS C

   ON P.spid C.session_id

 

 - sys.sysprocesses

 

​   SQL Server 인스턴스에서 실행 중인 프로세스에 대한 정보를 표시하는 뷰입니다.

 

 - sys.sysprocesses에서 참조한 컬럼 안내

컬럼

속성

 spid

 SQL Server 세션 아이디

 loginame

 로그인 이름

 login_time

 클라이언트 프로세스가 서버에 로그인한 시간

 last_batch

 클라이언트 프로세스가 원격 저장 프로시저 호출 또는 EXECUTE 문을 마지막으로 실행한 시간

 status

 프로세스 아이디 상태

  

   - status가 갖을 수 있는 값

  dormant = SQL Server에서 세션을 다시 설정하는 상태

  running = 세션에서 일괄 처리를 하나 이상 실행하는 상태

  background = 세션에서 백그라운드 태스크를 실행하는 상태

  rollback = 세션에서 트랜잭션 롤백을 진행하는 상태

  pending = 세션이 작업자 스레드를 사용할 수 있을 때까지 기다리는 상태

  runnable = 세션이 실행중인 상태

  sleeping = 세션이 작업을 기다리고 있는 상태

  spinloop = 세션이 스핀락에 걸려 있는 상태

  suspended = 세션이 이벤트가 발생할 때까지 대기하고 있는 상태

 program_name

 응용 프로그램의 이름

 cmd

 현재 실행 중인 명령

 

 - sys.dm_exec_connections

 

​   SQL Server 인스턴스에 대해 설정된 연결에 대한 정보와 각 연결에 대한 세부 정보를 표시하는 뷰입니다.


 - sys.dm_exec_connections 에서 참조한 컬럼 안내

컬럼

속성

 session_id

 SQL Server 세션 아이디

 client_net_address 

 서버에 연결된 클라이언트의 호스트 주소 (아이피)

 

[참고사항] 접속중인 세션정보를 확인하기 위해 sys.sysprocesses와 sys.dm_exec_connections를 조인하는 이유

 

​   sys.sysprocesses는 SQL Server 인스턴스에서 실행 중인 프로세스에 대한 정보를 표시하기 때문에 현재 접속중인 세션정보를

   확인하기 위해 반듯이 필요하나 클라이언트 프로세스와 시스템 프로세스 모두를 포함하고 있습니다.

   때문에 클라이언트 프로세스만을 갖고 있는 sys.dm_exec_connections를 조인하여 클라이언트 프로세스의 접속정보를 표시할 수

   있도록 만들어주어야 합니다.

 

 - 예제

 

   현재 접속중인 세션아이디, 로그인시간, 마지막 실행시간, 아이피를 표시하시오.

 

 

 - 예제 쿼리 실행

 

   SELECT P.spidP.login_timeP.last_batchC.client_net_address

   FROM sys.sysprocesses AS INNER JOIN sys.dm_exec_connections AS C

   ON P.spid C.session_id

 

 

spid

login_time

last_batch

client_net_address

 51

 2014-10-14 20:54:36.297

 2014-10-14 20:59:32.827

 <local machine>

 52

 2014-10-14 21:39:32.043

 2014-10-14 21:55:35.810

 <local machine>

 53

 2014-10-14 21:48:30.920

 2014-10-14 21:49:08.467

 192.168.1.2

728x90
728x90

 

MSSQL Linked Server

Link  - http://blog.naver.com/lovzip/20056016860

728x90
728x90
 

New-NetFirewallRule -DisplayName "MSSQL BROWSER UDP" -Direction Inbound -LocalPort 1434 -Protocol UDP -Action Allow

New-NetFirewallRule -DisplayName "MSSQL ENGINE TCP" -Direction Inbound -LocalPort 1433-1434 -Protocol TCP -Action Allow

New-NetFirewallRule -DisplayName "MSSQL AOAG EP TCP" -Direction Inbound -LocalPort 5022 -Protocol TCP -Action Allow

netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=yes

 

728x90

+ Recent posts