Apple 服务使用各种端口和连接,在公司网络上使用时可能无法立即访问这些端口和连接。以下是在企业网络上访问它们的方法。
使用设备连接到 Apple 服务时,安全性是一个大问题,尤其是对于企业网络。
在企业中,由于公司和组织不断受到黑客、勒索软件、拒绝服务 (DoS)、僵尸网络和其他攻击的外部压力,因此安全性是首要关注的问题。
Apple 设备与远程服务器上的各种服务进行通信。Apple 推送通知 (APNs) 就是这样一种通信渠道。
例如,如果您看到“信息”或“FaceTime 通话”提醒,则表示您看到的是 Apple 推送通知。
与其他一些网络服务不同,APN需要服务器上的服务,然后与Apple的APN服务器进行通信。
Apple 和第三方 app 知道如何通过这些渠道发送和接收 APNs 以进行实时通信。
UNIX、端口和协议
在 UNIX 和 Linux 操作系统中,网络层和应用程序通过端口和套接字进行通信。
将套接字视为数据在计算机之间流动的网络管道。UNIX 中的套接字可以使用不同的网络协议,但大多数 Internet 消息传递通信使用 TCP/IP 或 UDP。
TCP/IP 使用发送-确认网络数据包模型,而 UDP 协议在不接收确认的情况下发送数据。TCP/IP 中的确认或“确认”允许可靠的通信 – 如果网络层在发送数据包时没有收到确认,它会等待一定的时间间隔,然后重新发送。
在 TCP 中,重新发送会一直持续到收到确认,或者直到应用层软件告诉套接字停止。例如,这可能是在超时之后。
TCP的设计是美国国防部ARPANET项目的一部分,该项目的任务是创建一个能够承受核战争的可靠军事通信网络。因此,TCP/IP 协议知道如何在通信失败时自动重新路由数据。
这种设计确保了即使没有人类操作员,军事硬件也可以继续通信。
另一方面,UDP 不会等待确认 – 它在某些端口上以流形式广播数据,但它不关心某些目的地是否收到数据包。因此,UDP 被称为“流协议”,因为它本质上是在某个端口上广播连续的数据流。
UDP 侦听器只需侦听指定的端口即可接收数据包流。大多数互联网视频和音乐流媒体服务都使用 UDP 进行广播。
其他类型的协议用于其他类型的通信。例如,Web 流量使用 HTTP 或 HTTPS。
Web 安全由 TLS/SSL 和其他安全更高版本提供。HTTPS中的“s”代表SSL(安全套接字层)中的“S”。SSL在几年前被重命名为TLS,即传输层安全性。
因此,HTTPS协议实际上是使用传输或套接字安全性(加密)的HTTP。
每个服务或协议都使用一个编号端口。端口告诉操作系统在何处侦听传入数据。
例如,标准 HTTP 使用端口 80。现在很少使用的 FTP 协议使用端口 22。
TCP 和 UDP 是较低级别的数据包协议,而 HTTP/HTTPS、FTP 等是较高级别的协议。
每个“服务”或数据类型都有一个预定义的端口号,因此网络流量在到达时不会混淆。
可以将默认端口更改为自定义端口号。使用自定义端口号是一种安全措施,因为黑客经常在已知端口上寻找特定类型的流量。
如果更改标准类型流量的端口号,黑客将无法在标准端口上看到该数据,因此将更难拦截它。
当你运行使用网络通信的应用时,它通常会在代码中在特定端口上创建一个网络套接字,然后开始在该端口上传输和接收网络数据包。在 UNIX 网络层,当数据到达或发送时,传入和传出流量将路由到应用程序层的每个网络套接字。
为了提高速度,大多数 UNIX 网络“堆栈”都是用 C 编程语言编写的,而且由于第一个完整的 UNIX 套接字实现 – Berkeley Sockets Distribution 或 BSD 是用 C 语言编写的。苹果目前的大多数操作系统都是基于苹果公司开发的名为XNU的BSD的修改版本。
从技术上讲,数据包在数据链路层被进一步分解为帧,最后在物理层或“phy”层被分解为字节,然后由网络设备发送。但在大多数情况下,您不需要担心数据链路或物理层。
之所以使用帧,是因为每种物理网络技术(以太网、光纤等)可能使用不同的帧类型。
在连接的另一端,字节和帧被重新组合成数据包,并被传递到网络层,最后传递到应用层,在那里读取和使用它们的数据。
代理服务器
出于多种原因,大多数组织都使用代理服务器作为其网络拓扑的一部分。代理服务器是充当数据转发服务器或出于安全原因作为防火墙一部分的服务器。
代理服务器可用于接收请求,然后将这些请求转发到其他服务器(通常是内容服务器)。代理服务器有时也用于负载平衡系统。
代理服务器通常(但并非总是)在物理上分布在远离内容服务器的地方。
负载均衡器充当缓冲区,以便内容服务器不会因高流量负载而过载或停止工作。典型的组织网络拓扑将包括多个代理服务器、内容服务器和负载平衡服务器。
一些公司(如 Barracuda、Citrix、Cisco 等)专门销售负载平衡设备,这些设备可以在机架或银行中配置,然后接收外部流量并将其重新路由到内容服务器目标。大型公司通常整个房间都装满了负载平衡器,以便在服务器之间分配网络负载。
内容服务器可以进一步分布在一个或多个 CDN 或内容分发网络上。CDN 是有效的分布式负载均衡器,可确保在地理位置和性能方面尽可能高效地路由流量。
Apple 服务
Apple 提供了许多网络服务,为此,它运行了许多自定义服务器和 CDN 来处理网络流量。为此,它通常为其服务器使用标准或自定义端口。
现在每天有数十亿台 Apple 设备在使用,Apple 服务器和服务上的网络负载非常大,为了确保一切继续顺利运行,它必须仔细设计其网络流量的处理方式。
Apple 还使用许多域进行设备管理。Apple 设备的企业部署可能太大而无法手动处理,因此 Apple 提供 MDM 或移动设备管理 – 该术语现在涵盖所有 Apple 设备。
Apple 不直接提供 MDM 服务器或服务 – 它只定义如何配置和部署它们 – 实现留给第三方处理。
一些 Apple 服务域支持代理和强制门户,但有些则不支持。
强制网络门户是为各种组织服务提供身份验证(登录)的服务器或网页。如果您曾经去过星巴克并且必须登录其免费WiFi,那么您正在使用强制门户。
对于企业内部使用,Apple 的 MDM 定义了注册的概念,这实质上是在特定组织的网络上注册 Apple 设备。注册用于确定哪些设备在组织网络上已知和识别,哪些设备不是。
注册可帮助安全和网络管理员检测内部和虚拟专用网络 (VPN) 上的恶意设备。
Apple 提供的其他服务与 MDM 和注册结合使用,以提供时间/区域设置、更新和设备终止等其他功能。
例如,域 time.apple.com 和 time-ios.apple.com 用于使用网络时间协议 (NTP) 为全球所有时区/位置的注册设备设置日期/时间甚至语言。
MDM 服务
如果要使用 MDM 解决方案在企业网络上注册或部署设备,则至少需要访问 APNs、注册、外部服务和软件更新。
对于 APN,您需要访问端口 80、443、2197 和 5223 上的 *.push.apple.com,并且您的第三方 APN 服务器解决方案或代理必须能够不受限制地通过 TCP 在这些端口上进行通信。
如果无法访问这些端口,则已注册的用户可能无法收到实时通知,例如“信息”、“FaceTime 通话”、“网页”或软件更新。请记住,许多组织喜欢使用自动软件更新,因为这样做可以大大减少手动更新软件的需要。
如果无法访问 APN 端口,则可能无法进行自动软件更新。
如果您使用的是使用 Apple 设备配置文件的 Apple 校园教务管理或 Apple 商务管理,那么您还需要访问 iprofiles.apple.com。
若要确保所有 MDM 服务都能正常工作,请与 MDM 管理员或 MDM 服务提供商联系,以确保所有服务器和软件都已正确配置。
全局 HTTP 代理 MDM 有效负载
某些组织仅允许 Web 流量通过预定义的代理服务器进入或退出组织。此拓扑可确保通过代理服务器配置跟踪、监控或阻止所有 Web 流量。
例如,代理服务器可以配置为阻止某些端口上的所有流量,或者只允许特定端口上的流量,而拒绝其他端口上的所有流量。这减少了攻击面,并最大限度地减少了黑客闯入网络的方式。
代理服务器还可用于转发或限制发送到其他服务器的流量 – 有时出于安全原因、可观察性或内容交付。
就 APNs 而言,第三方服务器本质上充当 Apple 推送通知服务的代理服务器。
在 APN 模型中,应用首先向自己的 APN 服务器发送或侦听,然后转发和接收来自 Apple 的 APN 服务的通知。
对于组织 HTTP 流量,如果您使用的是 MDM 解决方案,则需要了解 MDM 控制设备的全局 HTTP 代理 MDM 有效负载设置。
“全局 HTTP 代理 MDM”有效负载告诉 Apple 设备如何在代理服务器上发送和接收 HTTP 数据以及在何处发送和接收 HTTP 数据。
对于具有手动认证(即用户名和密码)的设备,您需要确保代理服务器可以接收全局 HTTP 代理 MDM 有效负载。对于具有自动登录功能的设备,您需要能够为需要访问的每个服务器或端口提供 PAC 文件。
每个 HTTP 代理 MDM 有效负载都包含有关名称和 ID、支持的操作系统、注册类型以及是否允许重复项的信息。
HTTP 代理 MDM 有效负载支持数百个 Apple 域,您的设备必须确保它们能够为所需的服务提供正确的有效负载。
有关 HTTP MDM 有效负载的完整信息,请参阅 Apple 网站上 Apple 平台部署指南中的“查看 Apple 设备的 MDM 有效负载”部分。
CloudKit、App Store 和 TestFlight
如果你是组织的开发者或软件部署管理员,你还需要了解任何使用 Apple 的 iCloud、CloudKit 或 TestFlight App 的软件。
CloudKit 是 Apple 用于与 iCloud 数据库服务进行通信的 API。如果某个 App 使用 CloudKit 访问托管在 Apple 服务器上的远程数据库,则需要确保这些网络服务和端口配置正确。
大多数(但不是全部)Apple 的 CloudKit API 在端口 443 上进行通信,这是标准的 https 端口。
如果没有端口 443 访问权限,除非定义了自定义端口,否则软件无法发送和接收 HTTPS Web 数据。
事实上,您需要注意十几个 Apple 托管的 CloudKit 域。
Apple 的应用程序验证、收据以及公证服务和安全也使用端口 443,因此为确保大多数 App Store 应用程序正常工作,您的所有企业服务器也需要端口 443。
App Store 下载使用 ASN.1(抽象语法表示法 One)安全性,App Store 中未使用 ASN.1 进行验证的软件将无法在 Apple 设备上运行。ASN.1本身就是一个广阔的话题,所以我们不会在这里详细介绍。
可以说,当您从App Store下载或部署软件到Apple设备时,会发生各种加密握手,该握手使用ASN.1来交换和验证与每个应用程序绑定的收据。
如果没有此收据验证,App Store App 将无法在 iOS 设备上运行。
对于 Mac 设备,公证的工作方式与此类似——Apple 公证的应用程序也需要验证才能运行。
所有这些安全检查都是通过 Internet 执行的,因此必须将企业网络配置为允许它们工作。
触控 ID 和面容 ID 也使用端口 443 上的 TCP 进行验证,网址为 *.appattest.apple.com。
Apple 的开发人员 TestFlight 测试版分发服务也使用端口 443。
其他服务和防火墙
还有几十种其他 Apple 服务,我们在这里没有提到。这些包括但不限于:
- Apple 诊断
- 苹果身份证
- 苹果支付
- 加密的 DNS
- 证书验证
- Siri 和搜索
- 关联域
某些企业网络支持防火墙,这些防火墙可以仅基于域名允许或拒绝网络流量。此配置对管理员来说更易于管理,但它对客户端可以与之通信的服务器提供了不太精细的控制。
如果组织的防火墙允许域级访问和过滤,您可以允许访问所有 Apple 远程服务。这是通过允许所有 Apple 子域使用 *.apple.com 通配符域通过防火墙来完成的。
这是因为所有 Apple 远程服务都使用以“apple.com”结尾的域上的服务器。
如果您的防火墙不允许域级过滤,并且仅支持 IP 级配置,则可以允许在 17.0.0.0/8 上与 Apple 服务器的所有出站连接,因为整个 17.0.0.0/8 块已分配给 Apple。
有关 Apple 域、服务、端口、协议和支持设备的完整列表,请参阅支持页面在企业网络上使用 Apple 产品。
此页面列出了大多数面向公众的服务、域、它们使用的端口和协议,以及每个端口和协议支持哪些设备和操作系统。
并非所有服务都支持所有 Apple 设备。
其他文档
您还需要查看 Apple 的其他几个部署和网络文档。这些包括:
如果您是开发者,则还需要阅读 Apple 开发者文档的“用户通知”部分中的“向 APNs 注册应用”和“向 APNs 发送通知请求”部分。
该文档还包含有关如何设置 APN 服务器的信息。
要安全地部署 Mac App,请阅读 Apple 开发者安全文稿中的在分发前对 macOS 软件进行公证。
企业网络和设备管理都是复杂的主题。我们只介绍了在企业网络上使用 Apple 设备所需了解的部分内容。
我们在这里也没有涉及配置文件 – Apple设备用于验证和安装软件以及提供网络安全的文件。
未经允许不得转载:表盘吧 » 如何在企业网络上使用 Apple 的服务