在一些安全要求比較高點的企業中使用Office365每每有這個一個需求:shell
企業管理員但願部分員工(例如財務等敏感用戶)只能在公司內網使用收發郵件,離開公司網絡就不能使用郵件。這也必定程度上保護了企業的數據安全。安全
在本地部署的Exchange server要作到這樣的效果也不難,能夠在IIS中去配置,那麼在Exchange Online上怎麼來實現這些功能呢?Exchange Online的服務器企業管理員也沒法接觸到,就不用說去配置IIS了,其實也是有辦法的,針對Online用戶是有客戶端訪問策略,根據這個訪問策略去調整用戶基於網絡位置的訪問就能夠實現離開公司網絡就沒法收發郵件了。服務器
首先須要鏈接到Exchange Online PowerShell,執行如下命令,或者把如下命令搞到一個ps1文件中經過一個腳原本執行,保存腳本也方便之後隨時遠程鏈接網絡
Set-ExecutionPolicy RemoteSignedide
$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 spa
若是是國際版用戶須要將partner.outlook.cn替換成outlook.office365.com
3d
以管理員身份打開Windows PowerShell,切換到ps腳本所在目錄,而後使用.\nameofps1.ps1來鏈接到Exchange Online,這時候會提示輸入用戶名密碼,注意這裏至少是Exchange Online管理員權限,通常咱們都是用全局管理員登陸操做orm
登陸後咱們就能夠新建客戶端訪問策略,來控制這些用戶能夠在哪裏訪問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