macOS客户端通过VPN访问SMB协议文件系统

更新时间:
复制为 MD 格式

如果您想在本地macOS客户端中挂载NAS,则必须连通NAS所在地域VPC的网络。本文档介绍macOS客户端如何通过VPN挂载SMB协议文件系统以及如何使用macOS客户端通过Kerberos协议访问SMB协议文件系统。

前提条件

  • 已创建SMB协议文件系统。具体操作,请参见创建文件系统

  • 已添加专有网络类型的挂载点。具体操作,请参见添加挂载点

macOS客户端挂载SMB协议文件系统

  1. 通过VPN网关建立VPCmacOS客户端的远程连接。具体操作,请参见Mac客户端远程连接

    其中,在创建SSL服务端中,客户端网段本端网段不能重复,本端网段VPC的网段。您可以登录专有网络管理控制台,在专有网络详情查看VPC网段信息。在编辑SSL服务端对话框中,设置名称ssl-india,选择目标VPN网关,设置本端网段172.31.0.0/16客户端网段192.168.1.0/24。客户端网段不能和VPC内交换机网段冲突。单击确定完成配置。

  2. 验证macOS客户端和SMB协议文件系统挂载点的连通性。

    • 验证网络连通性

      VPN网关连接后,通过ping命令ping VPCSMB协议文件系统挂载点,验证通信是否正常。

      IT-C02WW0JRG8WN:Volumes      $ ping xxx.nas.aliyuncs.com
      PING xxx.nas.aliyuncs.com (172.31.16.146): 56 data bytes
      64 bytes from 172.31.16.146: icmp_seq=0 ttl=101 time=211.562 ms
      64 bytes from 172.31.16.146: icmp_seq=1 ttl=101 time=199.784 ms
      64 bytes from 172.31.16.146: icmp_seq=2 ttl=101 time=173.240 ms
      ^C
      --- xxx.nas.aliyuncs.com ping statistics ---
      3 packets transmitted, 3 packets received, 0.0% packet loss
      round-trip min/avg/max/stddev = 173.240/194.862/211.562/16.027 ms
      说明

      如果挂载点无法ping通,则需要通过一台与SMB协议文件系统在同一VPC下的ECS云服务器ping挂载点得到挂载点IP,使用挂载点IPmacOS上进行挂载操作。

    • 验证服务端口连通性

      telnet [SMB协议文件系统挂载点] 445
  3. 挂载SMB协议文件系统。

    • 通过macOS客户端图形界面化操作

      1. macOS客户端桌面顶部的Finder栏,单击

      2. Connect to Server对话框,输入挂载点,单击Connect。在 Server Address 栏输入 SMB 挂载地址,格式为 smb://挂载点域名/myshare,然后单击 Connect

      3. 在对话框Connect As区域,选中Guest,单击Connect

      4. macOS客户端桌面顶部的Finder栏,单击,选中myshare页签查看已挂载的SMB协议文件系统。

        说明

        挂载完成后,macOS客户端会去读取挂载的NAS中所有文件。文件读取过程中,myshare可能显示为空,请您耐心等待。

    • 通过macOS客户端命令行操作

      执行mount_smbfs命令行挂载SMB协议文件系统。示例如下:

      mount_smbfs '//gue**@nas-mount-point.nas.aliyuncs.com/myshare' /Volumes/myshare/

      其中nas-mount-point.nas.aliyuncs.comSMB协议文件系统的专有网络挂载点,请根据实际值替换。

      如返回如下类似信息,说明挂载成功。

      IT-C02WW0JRG8WN:Volumes (xxx)$ mount_smbfs '//xxx.nas.aliyuncs.com/myshare' /Volumes/myshare
      IT-C02WW0JRG8WN:Volumes xxx$ mount
      /dev/disk1s1 on / (apfs, local, journaled)
      devfs on /dev (devfs, local, nobrowse)
      /dev/disk1s4 on /private/var/vm (apfs, local, noexec, journaled, noatime, nobrowse)
      map -hosts on /net (autofs, nosuid, automounted, nobrowse)
      map auto_home on /home (autofs, automounted, nobrowse)
      /dev/disk1s3 on /Volumes/Recovery (apfs, local, journaled, nobrowse)
      //xxx@xxx.nas.aliyuncs.com/myshare on /Volumes/myshare (smbfs, nodev, nosuid, mounted by xxx)

macOS客户端通过Kerberos协议访问SMB协议文件系统

SMB协议文件系统默认只支持NTLM鉴权协议,无论macOS客户端以什么身份挂载,鉴权后得到的身份均为Everyone,默认拥有所有权限。而阿里云NAS SMB协议文件系统支持基于AD域的用户身份认证和文件系统级别的权限访问控制。您可以通过以下步骤控制不同用户访问SMB协议文件系统的权限。

  1. 搭建AD域。具体操作,请参见使用Windows实例搭建AD

  2. 建立SMB协议文件系统挂载点与AD域的连接。具体操作,请参见SMB协议文件系统挂载点接入AD

  3. 添加VPN SSL网段到安全组。具体操作,请参见添加安全组规则

    请您在ECS实例的安全组中添加如下端口权限,确保macOS客户端的DNS请求和SMB请求在AD域中可执行。

    • DNS端口:UDP 53

    • Kerberos端口:TCP 88

    • LDAP端口:TCP 389

    • LDAP Global Catalog端口:TCP 3268

    以 DNS 端口规则为例,在编辑安全组规则对话框中,设置网卡类型内网规则方向入方向授权策略允许协议类型自定义 UDP端口范围53优先级1授权类型IPv4地址段访问授权对象192.168.1.6/24,单击确定。其余端口(TCP 88、TCP 389、TCP 3268)参照此方式添加对应规则。

  4. 设置macOS客户端的DNSAD域服务器。

    1. 通过ipconfig命令在AD域服务器上查询内网IP。

    2. macOS客户端桌面顶部的Finder栏,单击

    3. Network对话框,将macOS客户端的DNS设置为AD域服务器内网IP。

  5. 验证macOS客户端与AD域的连接。

    使用ping命令连接AD域,以下示例即为连接成功。

    IT-C02WW0JRG8WN:Volumes xxx$ ping smb-hk.com
    PING smb-hk.com (172.31.59.36): 56 data bytes
    64 bytes from 172.31.59.36: icmp_seq=0 ttl=127 time=172.032 ms
    64 bytes from 172.31.59.36: icmp_seq=1 ttl=127 time=173.217 ms
    64 bytes from 172.31.59.36: icmp_seq=2 ttl=127 time=176.154 ms
    ^C
    --- smb-hk.com ping statistics ---
    3 packets transmitted, 3 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 172.032/173.801/176.154/1.733 ms
    IT-C02WW0JRG8WN:Volumes xxx$
  6. 配置macOS客户端通过Kerberos协议挂载SMB协议文件系统。

    1. 执行kinit,验证AD域身份安全性。示例如下:

      kinit user@MYDOMAIN.COM
    2. 执行klist命令,查看AD域身份。示例如下:

      klist
    3. 执行kinit命令,启动AD域身份。示例如下:

      kinit
    4. 执行命令,挂载SMB协议文件系统。示例如下:

      mount_smbfs //administrator@nas-mount-point.nas.aliyuncs.com/myshare /Volumes/myshare
      说明

      若出现如mount_smbfs: server rejected the connection: Authentication error的报错信息,请执行kinit命令,验证AD域身份后再次执行挂载。

      挂载成功会返回如下信息:

      IT-C02WW0JRG8WN:Volumes xxx$ kinit xxx@SMB-HK.COM
      xxx@SMB-HK.COM's password:
      IT-C02WW0JRG8WN:Volumes xxx$ klist
      Credentials cache: API:25A9ACD7-9930-499C-81DF-3EF76C83EE36
              Principal: xxx@SMB-HK.COM
        Issued                Expires               Principal
      Apr 15 03:49:18 2020  Apr 15 13:49:12 2020  xxx              xxx@SMB-HK.COM
      IT-C02WW0JRG8WN:Volumes xxx$ mount_smbfs '//xxx.nas.aliyuncs.com/myshare' /Volumes/myshare
      IT-C02WW0JRG8WN:Volumes xxx$ mount
      /dev/disk1s1 on / (apfs, local, journaled)
      devfs on /dev (devfs, local, nobrowse)
      /dev/disk1s4 on /private/var/vm (apfs, local, noexec, journaled, noatime, nobrowse)
      map -hosts on /net (autofs, nosuid, automounted, nobrowse)
      map auto_home on /home (autofs, automounted, nobrowse)
      /dev/disk1s3 on /Volumes/Recovery (apfs, local, journaled, nobrowse)
      //xxx@xxx.nas.aliyuncs.com/myshare on /Volumes/myshare (smbfs, nodev, nosuid, mounted by xxx)
      IT-C02WW0JRG8WN:Volumes xxx$
      挂载成功后执行klist命令,会显示两个服务主体,如下所示:
      $ klist
      Credentials cache: API:25A9ACD7-9930-4xxx
              Principal: xxxr@SMB-HK.COM
        Issued                Expires               Principal
      Apr 15 03:49:18 2020  Apr 15 13:49:12 2020  krbtgt/SMB-HK.COM@SMB-HK.COM
      Apr 15 03:49:27 2020  Apr 15 13:49:12 2020  cifs/xxx.cn-hongkong.nas.aliyuncs.com@SMB-HK.COM

      说明

      macOS客户端不会显示SMB ACL,但实际AD域身份已生效。您在对任何文件进行操作时,SMB协议文件系统都会先验证ACL,然后允许或禁止该操作。如需设置ACL,请您在AD域服务器挂载该SMB协议文件系统时进行配置。