在一些安全要求比較高點的企業中使用Office365往往有這個一個需求:
企業管理員希望部分員工(例如財務等敏感用戶)只能在公司內網使用收發郵件,離開公司網絡就不能使用郵件。這也一定程度上保護了企業的數據安全。
在本地部署的Exchange server要做到這樣的效果也不難,可以在IIS中去配置,那麼在Exchange Online上怎麼來實現這些功能呢?Exchange Online的服務器企業管理員也無法接觸到,就不用說去配置IIS了,其實也是有辦法的,針對Online用戶是有客戶端訪問策略,根據這個訪問策略去調整用戶基於網絡位置的訪問就可以實現離開公司網絡就無法收發郵件了。
首先需要連接到Exchange Online PowerShell,執行以下命令,或者把以下命令搞到一個ps1文件中通過一個腳本來執行,保存腳本也方便以後隨時遠程連接
Set-ExecutionPolicy RemoteSigned
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://partner.outlook.cn/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking
如果是國際版用戶需要將partner.outlook.cn替換成outlook.office365.com
以管理員身份打開Windows PowerShell,切換到ps腳本所在目錄,然後使用.\nameofps1.ps1來連接到Exchange Online,這時候會提示輸入用戶名密碼,注意這裏至少是Exchange Online管理員權限,一般我們都是用全局管理員登錄操作
登錄後我們就可以新建客戶端訪問策略,來控制這些用戶可以在哪裏訪問Exchange Online服務
策略的應用都要有對象,針對所有用戶我們怎麼去區分呢?最簡單的是在用戶屬性中編輯好部門,只要是這個部門的用戶都只能在公司內網使用郵件。
首先我們創建一個test賬號,配置其部門爲it
然後確定企業上網的出口IP地址。這裏以我辦公室的IP爲例
下面就開始創建規則
New-ClientAcce***ule -Name "Block" -Action DenyAccess -AnyOfProtocols ExchangeActiveSync,ExchangeAdminCenter,IMAP4,OfflineAddressBook,OutlookWebApp,POP3,PowerShellWebServices,RemotePowerShell,REST -ExceptAnyOfClientIPAddressesOrRanges 171.214.149.118 -UserRecipientFilter {Department -eq "finance"}
如果還希望Outlook客戶端在公司以外網絡也無法使用那麼還需要在AnyOfProtocols後面加上OutlookAnyWhere,如果還想禁用EWS那麼在加上ExchangeWebServices即可
如果企業有多個上網出口IP,那麼需要把所有出口公網IP地址添加上去以英文逗號“,”作爲分隔符。
ExceptAnyOfClientIPAddressesOrRanges參數指定客戶端訪問規則的例外,該規則基於客戶端的IP地址:
單個IP地址,如:192.168.1.1
IP地址範圍,如:192.168.0.1-192.168.0.200
網段,如:192.168.2.0/24
查看上面創建的規則詳細信息,來驗證創建的規則是否生效。其實可以看到好多365後臺AD的信息哦
以上命令僅支持Exchange Server 2019或Exchange Online,遺憾的是2013或2016不支持
那麼接下來我在遠程服務器上測試登錄test賬號的OWA
登錄OWA提示被禁止
而在辦公網絡中可以正常訪問
這樣就達到了我們最初的目的。
-UserRecipientFilter參數不一定非要是部門也可以是其他參數,可用的有
ü 市
ü 公司
ü 用戶國家或註冊地
ü 自定義屬性1-15
ü 部門
ü 辦公室
ü 郵政編碼
ü 省
ü 街道地址
更多的時候可以選擇配置自定義屬性來做用戶的分類,因爲可能有些部門裏面的個別用戶是需要在外網使用郵件的,來看下自定義屬性怎麼配置:
最後使用Get-Mailbox -Identity test | fl檢查自定義屬性
這樣就可以根據customattribute來篩選用戶了
由此衍生的場景是部分用戶可以內網使用有些用戶可以外網使用(僅支持Exchange Server 2019,更多信息可參考New-ClientAcce***ule命令)
------------------------------------------增加內容----------------------------------------------
增加outlookanywhere和EWS的外部訪問限制
使用以下PowerShell命令設置
Set-ClientAcce***ule -Action DenyAccess -AnyOfProtocols OutlookAnyWhere,ExchangeWebServices,ExchangeActiveSync,ExchangeAdminCenter,IMAP4,OfflineAddressBook,OutlookWebApp,POP3,PowerShellWebServices,RemotePowerShell,REST -Identity “block”
完成設置
##
上面的設置是全部重新設置了一次,如果只是想增加一兩個配置則可以使用@{Add="<Value1>","<Value2>"...; Remove="<Value1>","<Value2>"...}語法,如下:
Set-ClientAcce***ule -Identity "block" -ExceptAnyOfClientIPAddressesOrRanges @{Add="12.68.1.10"}
Set-ClientAcce***ule -Identity "block" -ExceptAnyOfClientIPAddressesOrRanges @{remove="171.214.149.118"}
##
事先在我機器上配置好outlook,然後回到家中我的上網IP已經發生變化
當IP發生變化時outlook會不斷的嘗試連接但是無法連接到Exchange Server