반응형

Ver 1.1 2023/02/09 - Exchange Server 2019. Deployment (2) 구성 (CU12, Jan23SU 기준) - CU12, Jan23SU 기준으로 수정, 인증서 설정, 가상디렉터리 설정등 대폭 수정

Ver 1.0 2020/12/09 - Exchange Server 2019. 설치 (1) -초판


지난 포스팅에 이어서 새부설정을 진행하겠습니다.

2020.12.11 - [Exchange] - Exchange Server 2019. 설치 (2) 세부설정

 

I. 송신커넥터 설정 (Must)
II. 가상 디렉터리 설정 (Recommend)
III. DNS 설정 (Must)
IV. 인증서 설치 (Must)
V. DB 관리 (Optional)
VI. 메일 송수신 로그 활성화 및 경로 변경 (Optional)
VII. IIS 로그 경로 변경 (Optional)
VIII. http to https redirection 설정 (Optional)
IX. 큐 DB 위치 변경 (Optional)
X. OAB 지정 (Optional)

I. 송신커넥터 설정 (Must)

수신은 별도의 설정 없이도 가능하지만, 송신은 반드시 커넥터 설정을 진행해야 합니다.

 

Mail flow -> send connectors -> New (+)

 

Connector 이름 지정 -> Type: Internet -> Next

 

Next

 

Add

 

FQDN 지정 -> Save

 

Next

 

Add -> Source Server 지정 -> Finish

테스트 환경은 3대의 서버로 구성하였습니다.

 

송신 커넥터 생성 확인

 

II. 가상 디렉터리 설정 (Recommend)

Outlook 여러 Client 연결을 위해서 가상 디렉터리 설정을 진행합니다.

 

Exchange Management Shell 실행합니다.

#공통으로 지정할 URL 입력
$url = "https://mail.wingtiptoys.kr"
$autodiscover = "https://autodiscover.wingtiptoys.kr"
 
#Virtual Directory 내외부 동일하게 변경
#ECP
Get-EcpVirtualDirectory | Set-EcpVirtualDirectory -InternalUrl "$url/ecp"  -ExternalUrl "$url/ecp"
#EWS
Get-WebservicesVirtualDirectory | Set-WebservicesVirtualDirectory -InternalUrl "$url/ews/Exchange.asmx"  -ExternalUrl "$url/ews/Exchange.asmx"
#MAPI
Get-MapiVirtualDirectory | Set-MapiVirtualDirectory -InternalUrl "$url/mapi"  -ExternalUrl "$url/mapi"
#EAS
Get-ActiveSyncVirtualDirectory | Set-ActiveSyncVirtualDirectory -InternalUrl "$url/Microsoft-Server-ActiveSync"  -ExternalUrl "$url/Microsoft-Server-ActiveSync"
#OAB
Get-OabVirtualDirectory | Set-OabVirtualDirectory -InternalUrl "$url/oab"  -ExternalUrl "$url/oab"
#OWA
Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -InternalUrl "$url/owa"  -ExternalUrl "$url/owa"


#Autodiscover
Get-ClientAccessService | Set-ClientAccessService -AutodiscoverServiceInternalUri "$autodiscover/autodiscover/autodiscover.xml"


#각각의 서버에서 아래의 명령어 진행
IISReset

 

 

III. DNS 설정 (Must)

내부 DNS 서버, 외부 DNS 서버에 Autodiscover, OWA, SPF, MX 레코드에 대한 값을 입력합니다.

 

예시) 내부 DNS

 

예시) 외부 DNS

 

IV. 인증서 설치 (Must)

처음에는 Exchange Server UI에서 인증서 요청을 작성하였으나, 최근에는 Digicert에서 제공하는 Tool 간편해서 해당 Tool 이용해서 생성하고 있습니다.

실무에서는 대부분 인증서 판매업체에서 대부분의 과정을 진행해줍니다.

 

Create CSR

 

저는 Multi SAN 구매하여, 기준으로 작성하였습니다.

 

CSR 복사

 

구매한 인증서 사이트에서 발급 과정 진행

 

발급 받은 인증서를 Import

 

파일을 지정

 

이름 지정 -> Finish

인증서 설치됨 확인

 

#설치된 인증서 조회
Get-ExchangeCertificate

#인증서 바인딩
Enable-ExchangeCertificate -Thumbprint <지문값> -Services IIS,SMTP -DoNotRequireSsl

#IIS 서비스 재시작 (Exchange Management Shell을 관리자 권한으로 실행 필요)
IISReset

 

V. DB 관리 (Optional)

실제 환경에서 DB 위치와 설치경로를 동일하게 하는 경우는 거의 없습니다.

D 드라이브로 이동해 보도록 하겠습니다.

 

#각 서버에서 진행

#DB 이름 변경
Get-MailboxDatabase -Identity "DB명"|Set-Mailboxdatabase -Name "새DB명"

#DB 경로 이동
Move-DatabasePath "새DB명" -EdbFilePath "D:\EDB01\EDB01.edb" -LogFolderPath "D:\EDB01\"

 

#주의사항

처음 설치시 생성되는 DB에는 System Mailbox 존재하므로 삭제하면 안됩니다.

 

그리고 DB 로그의 용량은 상당하기 때문에, 백업 솔루션 사용여부에 따라서 순환 로깅 사용을 설정합니다.

 

VI. 메일 송수신 로그 활성화 및 경로 변경 (Optional)

SMTP 관련된 로그가 일부 영역만 활성화 되어 있습니다.

Mail Flow 분석이 필요한 경우를 대비하여 관련 로그를 활성화하고, 경로 또한 별도로 관리하는 것을 권장합니다.

 

다음 명령어로 변경합니다.

 
#Exchange 메일 송수신 Log 위치 변경
$path= "D:\ExchangeLogs"

#Frontend Transport Service
Get-FrontendTransportService | Set-FrontendTransportService -ConnectivityLogPath "$path\Frontend\Connectivity" -ReceiveProtocolLogPath "$path\Frontend\ProtocolLog\SmtpReceive" -SendProtocolLogPath "$path\Frontend\ProtocolLog\SmtpSend" -AgentLogPath "$path\Frontend\AgentLog" -DnsLogPath "$path\Frontend\DNSLog" -DnsLogEnabled $true
Get-FrontendTransportService | Set-FrontendTransportService -IntraOrgConnectorProtocolLoggingLevel Verbose
 
#Transport Service
Get-Transportservice | Set-TransportService -ConnectivityLogPath "$path\Hub\Connectivity" -MessageTrackingLogPath "$path\MessageTracking" -IrmLogPath "$path\IRMLogs" -ActiveUserStatisticsLogPath "$path\Hub\ActiveUsersStats" -ServerStatisticsLogPath "$path\Hub\ServerStats" -ReceiveProtocolLogPath "$path\Hub\ProtocolLog\SmtpReceive" -SendProtocolLogPath "$path\Hub\ProtocolLog\SmtpSend" -QueueLogPath "$path\Hub\QueueViewer" -WlmLogPath "$path\Hub\WLM" -PipelineTracingPath "$path\Hub\PipelineTracing" -AgentLogPath "$path\Hub\AgentLog" -DNSLogEnabled $true -DnsLogPath "$path\Hub\DNSLog"
Get-TransportService | Set-TransportService -IntraOrgConnectorProtocolLoggingLevel Verbose
 
#Mailbox Transport Service
Get-MailboxTransportService | Set-MailboxTransportService -ConnectivityLogPath "$path\Mailbox\Connectivity" -ReceiveProtocolLogPath "$path\Mailbox\ProtocolLog\SmtpReceive" -SendProtocolLogPath "$path\Mailbox\ProtocolLog\SmtpSend" -MailboxDeliveryThrottlingLogPath "$path\Mailbox\ProtocolLog\Delivery" -MailboxDeliveryAgentLogPath "$path\Mailbox\AgentLog\Delivery" -MailboxSubmissionAgentLogPath "$path\Mailbox\AgentLog\Submission"
Get-MailboxTransportService | Set-MailboxTransportService -MailboxDeliveryConnectorProtocolLoggingLevel Verbose

#Enable Logging about Send & ReceiveConnector
Get-SendConnector | Set-SendConnector -Protocollog Verbose
Get-ReceiveConnector | Set-ReceiveConnector -Protocollog Verbose

 

VII. IIS 로그 경로 변경 (Optional)

Exchange 에서 가장 리소스를 많이 차지하는 영역 하나는 IIS 입니다.

IIS Log 별도로 관리하지 않으면, C 드라이브 용량이 부족해 있으므로 별도의 경로로 관리하는 것을 권장합니다.

 

IIS Manager - [서버] - Logging

 

아래와 같이 변경 적용

 

IISReset 진행한 , 아래와 같이 로그가 저장되는 것을 확인합니다.

 

VIII. http to https redirection 설정 (Optional)

실제 기업환경은 대부분 http(80) 입력을 하였을 , https(443) 리디렉션 하는 설정을 진행합니다.

 

MS 기술자료에서 진행하는 방법이 자세히 설명되어 있으며, 아래의 자료를 기준으로 진행합니다.

Exchange Server에서 웹용 Outlook에 대 한 http 리디렉션을 구성 합니다.

https://docs.microsoft.com/ko-kr/exchange/clients/outlook-on-the-web/http-to-https-redirection?view=exchserver-2019

 

#IIS 관리자를 사용하여 기본 웹 사이트에서 SSL 필요 설정을 제거
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:access -sslFlags:None -commit:APPHOST
 

 

#IIS 관리자를 사용하여 기본 웹 사이트의 다른 가상 디렉터리에 SSL 필요 설정 복원

%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/api" -section:Access -sslFlags:Ssl,Ssl128 -commit:APPHOST
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/aspnet_client" -section:Access -sslFlags:Ssl,Ssl128 -commit:APPHOST
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/Autodiscover" -section:Access -sslFlags:Ssl,Ssl128 -commit:APPHOST
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/ecp" -section:Access -sslFlags:Ssl,Ssl128 -commit:APPHOST
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/EWS" -section:Access -sslFlags:Ssl,Ssl128 -commit:APPHOST
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/mapi" -section:Access -sslFlags:Ssl,Ssl128 -commit:APPHOST
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/OAB" -section:Access -sslFlags:Ssl,Ssl128 -commit:APPHOST
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/owa" -section:Access -sslFlags:Ssl,Ssl128 -commit:APPHOST
 

 

#IIS 관리자를 사용 하 여 기본 웹 사이트가/owa 가상 디렉터리로 리디렉션하도록 구성 합니다.

%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:httpredirect -enabled:true -destination:"https://mail.wingtiptoys.kr/owa" -childOnly:true

  • 표시된 부분은 실제 구성한 URL 입력합니다.

 

#하위 가상 디렉터리에 대한 http 리디렉션 제거

%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/API" -section:httpredirect -enabled:false -destination:"" -childOnly:false
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/aspnet_client" -section:httpredirect -enabled:false -destination:"" -childOnly:false
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/ecp" -section:httpredirect -enabled:false -destination:"" -childOnly:false
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/ews" -section:httpredirect -enabled:false -destination:"" -childOnly:false
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/mapi" -section:httpredirect -enabled:false -destination:"" -childOnly:false
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/owa" -section:httpredirect -enabled:false -destination:"" -childOnly:false
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/powershell" -section:httpredirect -enabled:false -destination:"" -childOnly:false
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/rpc" -section:httpredirect -enabled:false -destination:"" -childOnly:false
 

 

#IIS 다시시작

IISRESET

 

#만약 운영서버가 여러대라면, 모든서버에서 동일하게 진행합니다.

 

작동 여부는 어떻게 확인하나요?

  • 클라이언트 컴퓨터에서 웹 브라우저를 열고 URL http://를 입력 합니다 <ServerName> . 로컬 서버에서 값 또는를 사용할 수 있습니다 http://127.0.0.1 http://localhost .
  • Https에서 웹의 Outlook으로 리디렉션되어 있는지 확인 하 고 로그인 할 수 있는지 확인 합니다.
  • URL http:// <ServerName> /owa 또는 또는를 엽니다 http://127.0.0.1/owa http://localhost/owa) .
  • Https에서 웹의 Outlook으로 리디렉션되어 있는지 확인 하 고 로그인 할 수 있는지 확인 합니다.

 

#그리고 당연한 얘기이지만, 80 포트에 대한 포워딩 설정이 Exchange 가리켜야 합니다.

아래와 같이 입력후 엔터 입력시

 

아래와 같이 리디렉션 됩니다.

 

IX. 큐 DB 위치 변경 (Optional)

기술자료: Change the location of the queue database | Microsoft Learn

 

일반적으로는 아래의 경로에 DB 존재합니다.

C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue

 

큐에 메일이 쌓이면, Mail.que 파일이 커지게 됩니다. 디스크 용량이 부족해지는 수준에 도달하면 Transport 서비스가 중지됩니다. 이러한 서비스 장애를 사전에 예방하기 위해서 DB 위치를 변경하여 관리하는 경우가 많습니다.

 

새로 지정할 DB 폴더를 생성합니다.

 

명령 프롬프트를 관리자 권한으로 실행합니다.

다음 명령어를 실행합니다.

Notepad %ExchangeInstallPath%Bin\EdgeTransport.exe.config

 

다음 위치를 찾습니다.

<add key="QueueDatabasePath" value="<LocalPath>" />

<add key="QueueDatabaseLoggingPath" value="<LocalPath>" />

 

아래와 같이 변경합니다.

<add key="QueueDatabasePath" value="E:\Queue" />

<add key="QueueDatabaseLoggingPath" value="E:\Queue" />

 

Microsoft Exchange Transport 서비스를 재시작 합니다.

 

아래와 같이 변경되는 것을  확인할 있습니다.

 

X. OAB 지정 (Optional)

DB 대해서 OAB 지정합니다.

 

 

 

반응형

+ Recent posts