###### tags: `Mail Server`
Exchange可學的很深,市場價值也高
# Exchange 3/1
**Exchange 重要功能**
1. AutoDiscover
2. 共用通訊錄
3. Outlook Anywhere
上課用2016,最新為2019,下版預計為2025
13 16 19將在25推出後停更
[談談Exchange二十年來架構進化](https://www.twblogs.net/a/5c4bed40bd9eee6e7e06e08f)
Exchange架構極大,竹科某上市櫃今年才要從10升16版
5.5,2K,2K3是合的過程,一台Ex Server
2003 只有1個MBX角色
為32位元架構、Ram只有4GB,重開機需半小時~1小時,但大型公司仍愛用
所以2007、2010時架構拆成5個角色
但效能更差...因角色分散後要HA時各角色皆需2~3台HA,將共會需9台實機(虛擬化未普及)
CAS、MBX、Hub Transport、UM、Edge
LB為L7
Edge為一獨立Server置於DMZ區
2010開始有DAG(資料庫可用性群組)
兩台本機即可互抄寫,不需ShareStorage那樣的大架構
所以2010大賣且一直沿用至今
2013
整合剩3個角色
CAS、MBX、Edge(Hub整合進CAS,UM整合進MBX)
LB為L4
2016
CAS和MBX又整合成一起
LB為L4、L7皆可
**Outlook Anywhere**
傳統上,Outlook才支援Exchange收信
使用自家協定MAPI,故效能較高,功能較多
2007的MAPI為80埠,需架前端Server才可於外部用MAPI收發信(否則要改POP3收信)
2010的MAPI為443,並主打Outlook Anywhere,無需架前端Server
2016後只需MBX做DAG,並可用Exchange Online雲地整合
上雲缺點:過去大陸會擋微軟與Google,造成收發信異常
因而有許多企業上雲後又下雲,約2021此問題才有改善

19架構與16相同
刪了UM並建議改用其它語音功能,Edge雖仍在,但一樣沒人要用
ExCgange升級版本,需考慮Win Server版本與Outlook版本
(使用ExChange Mode MAPI時,若只用POP3與IMAP則不需考慮)
最多只能低兩個版本,否則需跨版分兩次升級
Ex:ExChange 2003升2016(WinS2003)
WinS2003需先升2010,EX也升2010
WinS2010再升2016,EX再升2016
Outlook也需升到2012以上
費用估算
WinServer $3W
ExChange 標準版$6W(企業版更貴)
Outlook $150W($3000*500個User)
Win10連線AD或EX都要收費$150W (各1條連線$3000*500條,企業版更貴)
:::success
ExChange [**2016需求**](https://learn.microsoft.com/zh-tw/exchange/plan-and-deploy/system-requirements?view=exchserver-2016)
**MailBox最少8G**(8G為Lab測試環境)
Win S2008

:::
:::danger
ExChange [**2019需求**](https://learn.microsoft.com/zh-tw/exchange/plan-and-deploy/system-requirements?view=exchserver-2019)
**MailBox最少128G**
128G以下有問題MS不會理你

:::
# 安裝
ExchangeServer2016-x64-CU20.ISO
4C,16G,60+100GB,NATx2
S2016需使用有更新過的版本
Ex呂老師的**Win_Srv_2016_Molp_CHT_1607(2018.2)-001.ISO**
(或用更新檔*AMD64-all-windows10.0-kb3206632-x64b2e20b7e1aa65288007de21e88cd21c3ffb05110.msu*)
:w
要先設好主機名稱:Exchange(:warning:安裝後無法改主機名稱:warning:)

設定IP(DNS要指向AD)

加入網域(先前的AD)

S2016 版本、組建

# 安裝前置準備
此前置準備可避免GUI過程異常與數次重開機
需以網域登入Admin
依文件*EX2016*貼到PowerShell以指令進行安裝,**前兩個指令**(如同用GUI新增伺服器角色)

再依序安裝後3個應用程式

.NET Framework 4.8(裝完需重啟)

C++

UCMA

將Exchange更新至CU20版本
此為安裝檔+更新檔包一起
由Host上掛載ISO檔

切到E槽執行
AD擴增Schema與同意授權等

告知AD設定組織名稱(非網域或主機名稱,所以也不會顯示)

Domian/AllDomain擇一執行
Domian:多子網域時指定Domain避免其它子網域也更新到
AllDomain:樹系中其它子網域都會更新

:::warning
案例:某客戶使用GUI由2010升16,但GUI不會替你下指令將2010權限移轉到16上,一重開就權限就跑掉
:::
# 安裝Exchange
實務上要檢查更新(LAB不檢查)


信箱角色+自動安裝

**安裝路徑需記住**,日後常需去找東西

停用惡意碼掃描(通常會另外裝防毒軟體)

檢查皆通過即可安裝(約需半小時)
(若未做前置準備則會一直需安裝欠缺的元件)

步驟14/13會跑最久

# 3/8
開機先開AD再開EX
檢查Ex相關服務是否有啟動

Exchange PowerShell指令
能做到全部的功能,含Web做不到的

進管理中心頁面:https://192.168.200.15/ecp
第一次登會較久


登入後

Outlook:https://192.168.200.15


AD使用者和電腦中也會有EX相關群組
分權:大架構AD與EX分權管理

EX安裝後只有Admin

AD既有的user需手動新增-**現有的使用者**




由EX新增User可同步於AD建立
若從AD新增User,EX要再手動加入

AD會自動建立User與Mail的Schema


測試寄信:
第一次失敗
檢查Toolbox

信件不在Queue裡

多網卡需停用只留使用的那張


EX刪除時也AD也會一起刪
AD刪時EX也會刪
AD誤刪User再重加時EX不會建立,即使同名,新User的SID也不同了
連線信箱-誤刪時重連結舊有的信箱
停用User信箱,AD仍在
連線信箱可重新連結原信箱或別的信箱
:::danger
2010版的停用會問是否要**刪除**
:::
Toolbox
透過微軟從外部檢查EX設定是否正常,EX需為有正式發佈的


寄外部會失敗,需設定連接器


也可從Toolbox查看Q

## 傳送連接器
網際網路

沒智慧主機(Edge Server)



完成

成功寄出

**群組信箱**
通訊群組
單純通訊聯絡而己


安全性群組
此才有資料夾等安全性權限功能



**動態通訊群組**

AD的部門輸入IT,設定部門IT為一個DyIT群,即可以部門欄位為IT的成為


AD內容

**資源**
會議室信箱(可用來Booking等用途)
設備(借用,如麥克風等)

## 聯絡人
郵件*聯絡人*:
在AD中只是聯絡人,郵件伺服器為外部的,如上下游廠商的mail,並可自行管理
郵件*使用者*:
在AD中會是使用者,有被分派權限,如**駐點人員**的外部mail

**共用**
客服部人員共用1個信箱mail地址

成員需**新增共用信箱**才收的到共用信箱的Mail
並能以共用信箱回覆Mail,而非個人的信箱



OWA(Web Mail)要手動改寄件者,MUA(Outlook)不用

---
**伺服器**
可集中管理公司所有的EX Server

授權碼

信箱資料庫(Mailbox Database)
標準版支援5個,企業版100個

Exchange 2010開始皆需走憑證
公開憑證或自建憑證,現常購第3方憑證

**Outlook Anywhere**
可讓人員在外可能連到EX Server

內部也可改成與外部相同mail.lab10.com

(需搭配DNS加入A記錄)

**虛擬目錄**
與IIS有關聯


建議每一項都將內外部正規化統一

雖然不改也能不走虛擬目錄去找到EX Server
但出錯時難排查,且用MUA(Outlook)時也會出錯



---
# Win10-Domian
加入網域以一般user登入,安裝Office 2016


**自動發現**
Outlook搭配使用Exchange Mode時
網域User新增Outlook會帶出對應的設定



全域通訊錄也會自動帶入(其它mail Server沒有)

---
但每次開啟Outlook時皆需點擊確認憑證
需在AD新增AD憑證服務,功能:*憑證授權單位*、*網頁註冊*
:::spoiler 安裝AD CS








建議SHA-1024以上(4096)
不可使用~~SHA1與MD5~~,由其是自建憑證






:::
:::success
設定
控制台-網際網路-內容-憑證-受信任根憑證-匯出
再到PC匯入

或
EX連AD
http://192.168.200.128/certsrv


安裝???




:::
並使用ex1.lab10.com連
以IP連會紅色
在EX上
建REQ檔向AD兌換憑證

此時AD連ex1.lab10.com仍是紅色,因AD上沒有EX的那張憑證
需在EX新增取憑證要求
EX-CA名
EX1伺服器
選主體名稱:mail.lab10.com
POP,IMAP也增加mail.lab10.com
儲存到下列檔案(EX上CIFS開共用分享)
\\192.168.200.15\Share\EXCA.REQ
(實務會用Domain,LAB只能用IP)
EX連AD
http://192.168.200.128/certsrv
要求











再要求來的用REQ去兌換憑證

進階

Base64

再把憑證文字內容貼上
範本:Web伺服器
提交


下載憑證存在EX裡的分享夾(share夾)

上週做完-擱置的要求-點完成

要再去兌換憑證匯入回給我的EX


擱置則會變有效(無效是因為EX尚無根應證,尚未重機開過不會向AD取根憑證,也可直接去下載放入受信任的根)
(客端Browser更新時也會更新第三方的憑證)
(也可用GPO派發更新憑證)

---
驗證憑證是否有效
此時Win10開Outlook仍需點憑證
開Web(用IE)
申請的憑證合法位置是?
Web開https://mail.lab10.com 仍紅色
打開看憑證仍吃舊的Microsoft Exchange這張

因未指派吃新的憑證,
重指派選IMAP POP SMTP IIS,就能吃這張新的憑證




Win10用Web開https://mail.lab10.com 憑證己為合法有上鎖頭的

由AD-CA發給 mail.
若漏申請了EX1,開Outlook自動發現找EX1.lab10.com人仍會紅X

自建派出的憑證效期是2年,到期需再做一次進行更新
(根憑證才可自設500年)
# GPO派送憑證
:::success
Default Domain Policy
套用所有Domain網域的規則
Default Domain Controllers Policy
套用DC網域控制站的規則

:::
路徑:**Default Domain Policy**
Win設定-安全性設定-公開金鑰-受信任的根
(預設也會自動執行,或網路不穩等因素造成未派發可使用GPO來派發)
:::spoiler AD先下載憑證

下載CA憑證

可另取名稱(避免預設同名易混淆)

:::



選取憑證





---
# Outlook Anywhere
未加Domian的外部PC透過443經過FW連到EX Server
(AD、EX皆改到FW的LAN端,受FW保護)
**pfSense 架一台軟體的防火牆做NAT**
適合用來學習,有開源也有企業版,主流仍為各大FW
**pfSense-CE-2.6.0-RELEASE-amd64.iso**
Other-64Bit
2C,2G,NAT+Lan Segment,50GB

皆以預設值下一步安裝

不手動設定-接著重開機


Win10的Lan Segment改到同個Lan1
不用定即是DHCP的NAT可透過Lan端ip連到FW

**admin/pfsense**
初始化FW(皆用預設值)


WAN-DHCP可不改
最下方RFC1918與Block要取消勾選,皆不擋


**變更密碼!qaz....**



再次登入會顯示DashBoard

---
**變更Domain網段**
將AD、EX、Win10(Domain)改到FW內網(Lan 1)

AD:

原.200網段改.1網段

EX:


FW:**設定DHCP的DNS**
沒改PC解析不到mail的Domain位址


PC

Ping mail,EX1成功


Web開mail,EX1也正常


FW下規則
使用Port Forward讓外部PC Local.200能NAT到.1裡的EX
(先開AD的RDP,並測試由內部PC RDP到AD是通的)

先用RDP3389驗證再設443

白話文就是~
任何透過連到WAN介面的WAN IP的3389埠

重導向轉到
Single Host 192.168.1.128 的Other-3389

Apply

綠色


PC Local可透過FW的WAN進行RDP到AD

**先將FW埠更改為4443**
因目前443為Https與FW管理使用,讓出443給EX使用


FW設定


Local能以FW IP連至EX

**Outlook**
正常是架DNS伺服器(此為模擬有DNS伺服器解析)

接著新增Outlook郵件帳號





在右下角Outlook圖示上按Ctrl+右鍵

此代表透過FW走443埠
(OWA,EPC皆可透過443連至EX使用,另需再餵根憑證)

FW裡System log firewall normal
Exchange預設是使用Exchange Mode
而IMAP、POP3皆是關閉的若需要,可在服務中手動啟動


Outlook新增POP3,IMAP帳戶
(Domain PC,Local PC則另需FW有開對應的埠)




其它設定:勾外寄SMTP,埠995+987(IMAP:993)


測試通過

User2為POP3類型

也可使用無加密的POP3或IMAP
設定改為基本驗證後,POP3或IMAP的2項服務需重啟
Outlook新增帳戶時對應的埠需正確

:::success
**無法加密應用場景**
工業4.0需要接收各設備資料,許多工業設備較舊無法發送資料,經常透過郵件來發送資訊,但系統老舊只能寄送無加密郵件
:::
# Exchange HA 3/29
開機AD,EX,FW,Win10 Domain
做HA備援前先將*exchange與AD做快照*(方便失敗時直接還原)
也需再建一台S2016做Exchange
**接收連接器**(郵件流程)

不同服務是對應到架構圖中使用了不同的埠
圖:*2021-08-09000247.png*

收內部信件時(黃線),收進Hub Selector(25),再分發到SMTP Receive(Proxy 587)
收外部信件時(紫線),從Hub Selector(25)-SMTP Send-

主要會注意到(會修改的)的只有Client Frontend(587)、Default Frontend(25)這兩個
其它皆是EX內的處理機制,不會有感覺
修改安全性的重點在權限群組
(例Client Frontend中安全性的Exchange使用者,走587)
Default Frontend中安全性的
傳統EX可用在組織中的EX有新舊版(例EX2010,EX2016版混用時)也避免匿名使用者來找到我EX的架構
## HA (Database)
MailBox Database可改名稱
資料庫路徑名稱不會變,可另外改(副檔名.edb)

## 新增DB
EX1**新增DB2**放D槽
EX1與EX2的磁碟槽名稱也要相同(例:不可EX1是*CD*槽,EX2是*CE*槽)

會重啟服務


其它為資料庫的交易記錄檔

實務上建議將EX、DB、DB交易記錄檔放於3顆不同實體磁碟機中(非Partion而己)
## 移動DB
在EMS中下指令移動DB1,並且DB會暫時卸載離線(*ex2016.txt*)
參考指令集:*EMS.pdf*

分別將DB1、DB1交易檔移動同時變更檔名
移動:Y,暫時卸載:Y

DB移動成功

## DB參數設定(限制)
限制:每個使用者的限制
使用者在那個DB就會套用其DB的設定,
此DB是預設值,使用者若單獨設定的優先權大於DB預設限制

Outlook(或OWA)刪除後會暫時保存在伺服器上,使用者仍可直接再*從伺服器復原*
若再從伺服器刪除,則需由郵件管理員由Exchange還原且過程複雜

*新增使用者時可指定DB*,套用其不同的預設值

也可將現有使用者移轉到不同的DB去,也可做地端與雲端間移轉
(很慢)




己完成

---
**郵件仲裁**
郵件流程-*規則*

例:U1寄U2,需由U3審核

---
**日誌規則**
合規性管理
此日誌若記錄每個Log資料量會很大,需注意磁碟空間規劃
也可記錄使用者行為異常的Log
---
**信箱委派**
1人使用2個信箱
例:U1離職U2接手收信,無法直接在Outlook開U1與U2兩個信箱,需由代理設定
完整存取權預設有2個,不可刪除

其它設定

OWA可用不同分頁開
Outlook
---
**安裝第二台Exchange**

:::spoiler 過程同第一台
PS下2條指令

```
Install-WindowsFeature RSAT-ADDS
Install-WindowsFeature NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation, RSAT-ADDS
```

安裝.NET 4.8

安裝C++

安裝UCMA

PS下指令安裝(掛載Exchange 2016 CU20並切到E:)
```
.\setup /PrepareSchema /IAcceptExchangeServerLicenseTerms
.\setup /Preparealldomains /IAcceptExchangeServerLicenseTerms
```
點擊setup.exe安裝(需有管理者權限)
ex2016.txt的第2第3條不用下
原因:
第2條:第2台不用新增Org Name
第3、4條相同擇1即可
```
.\setup /Preparead /IAcceptExchangeServerLicenseTerms /OrganizationName:"Enter Exchange Org Name"
.\setup /Preparedomain /IAcceptExchangeServerLicenseTerms
```
:::
**Load Balancer**
EX1、EX2為Load Balancer在控制
*此Lab以DNS的Round-robin輪循替代LB*
AD DNS再新增1筆A記錄,透過DNS循環
連Mail.lab10.com時DNS會自動指派EX1或EX2
實務上是以Load Balancer主機做(EX2016後需為獨立主機,不可與EX同一台)



nslookup

清DNS後測Ping *Mail.lab10.com*觀查DNS指派到那台EX
`ipconfig /flushdns`

即使某User的DB在EX2,被指派EX1仍會導到EX2的DB裡
伺服器

EX2上加伺服器、加虛擬目錄、加憑證
各項設完後EX2才是正常完整的上線
其它各項設定需與EX1相同接手才不會異常(接收連接器、傳送連接器、POP3等)
*加憑證*並指派服務:
未匯而被指派到EX2會有憑證紅字
1.另建新憑證
2.或由EX1滙出給EX2匯入
EX1匯入

EX2
匯入



*虛擬目錄*
ecp

mapi





---
**HA DAG(可用性群組)**
以前走Share Storage架構
現DAG走抄寫(背景是走Win的Cluster)
最多16台EX,延遲低於250ms,獨立網路
此架構加上AD共3台,仲裁磁碟做在AD上
兩台EX增設獨立網路:
VM-WS的NIC走另一個Lan Segment


取消勾選DNS登錄:不要註冊到DNS,讓全世界都找不到這張網卡

AD要付予能在EX寫入權限
在管理群組(Administrators)中加入*Exchange Trusted Subsystem*權限

Exchange Trusted Subsystem成員

Exchange Trusted Subsystem屬於

以ecp到EX中新增*可用性群組*(DAG)
不特別寫出IP位址(在資安上也較安全)


AD的C槽也會自動產生見證資料夾

加入成員


過程中會在兩台EX安裝Win*叢集元件*



Win系統管理工具裡也會有*容錯移轉管理員*


:warning:重要:warning:最後記得做*新增信箱資料庫副本*
各EX間的DB會互相抄寫



剛抄寫完狀態良好,但索引還沒跑完會出現失敗,需再多等一下


*EX伺服器與DB備援都做完才是完整的DAG*