在一些安全要求比较高点的企业中使用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="
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