这一回介绍如何为XenDesktop网络环境设置一个安全的访问入口。当然,花钱购买路由和防火墙设备也能实现。Citrix Access Gateway(CAG)的VPX版问世了,它提供了一个不用花钱也能构筑安全访问入口的方式。正确的说,CAG是由两个产品结合而成的。CAG本来是一个VPN产品,Secure Gateway(SG)的功能是后来被加到CAG里面去的。但是CAG一直没能真正的替代SG,因为CAG是一个硬件产品而SG是一个软件产品。SG是免费的,而CAG需要花钱购买硬件设备。现在CAG的VPX版面世了,只要把它导入XenServer就可以拥有自己的CAG。
CAG可以为局域网提供两种不同的入口。一个是VPN模式,另一个就是SG模式。用VPN模式的时候,客户端需要安装Access Gateway plug-in,最新版4.6.2可以从这里http://www.citrix.com/English/ss/downloads/results.asp?productID=15005下载。也可以用IE等互联网浏览器访问CAG来下载Access Gateway plug-in。Access Gateway plug-in和CAG间的VPN连接通道建立后,包括文件共有的所有访问都可以通过VPN连接来实现。VPN连接需要Access Gateway user license。而SG模式可以实现从外部对局域网内的Citrix Web Interface、 XenApp和XenDesktop服务器的SSL安全访问。客户端不需要安装Access Gateway plug-in只要有online plug-in就可以了。而且这种访问不需要Access Gateway user license,是免费的。有关license的详细说明,可以参照这里http://www.citrix.com/English/ss/downloads/results.asp?productID=15005
下面我们就来看一下建立CAG的步骤吧

1.      首先从这里下载Access Gateway VPX https://www.citrix.com/English/ss/downloads/details.asp?downloadId=1862108&productId=15005

2.      然后在XenCenter里将它导入XenServer。用过XenServer的人都会知道,导入虚拟机的时候需要选择虚拟网卡和XenServer上的物理网卡对应关系。CAG支持两块网卡。如果想用CAG做局域网入口需要把两块网卡都用上,一块面向外部网络,另一块面向内部局域网。导入过程注意把network 0设定为外部网,network 1内部局域网。因为当network 1设置为有效以后,它会自动地成为内部网卡,而管理工具也只能通过network1来设置。

3.      
导入结束后,在XenCenter的Console标签可以直接访问console。CAG的Console只提供一个简单的设定菜单,用它设定第一块网卡的IP地址,剩下的需要找台Windows安装专用的Admin Tool来设置。Console的设定不难。root用户的默认密码是rootadmin,登录后按0选择Express Setup然后按照提示输入IP地址,network mask和default gateway就可以了。这里设置的是network 0的IP地址。
4.      设置完CAG的network 0的IP地址,在network 0所在的网络里找一台Windows计算机。用IE访问CAG的IP地址https://<CAG_IP>:9001/,忽视证明书错误。用root用户登录后,点击Install the Access Gateway Administration Tool链接下载Admin Tool安装包。然后在本地安装它。
5.      安装后启动Admin Tool,输入CAG的IP地址,root用户的密码就能连接到CAG。

6.      用这个Admin Tool设定的内容比较多,首先设定第2块网卡的IP地址和FQDN名。点击This Gateway选择 GeneralNetworking标签。在画面上选择Use both interfaces然后为第2块网卡network 1设置IP地址,network mask和External FQDN等信息。有点TCP/IP常识就知道,default gateway只能有一个,如果已经设置network 0时设置了default gateway这里就不要设定了。还有要注意的是,设定完第2块网卡后它就自动成为内部局域网的网卡,而network 0就不再接受Admin Tool的访问了。这个设计浪费了我不少时间,设定了第2块,重启以后Admin Tool就连接不上了。后来才搞明白,需要把Admin Tool的PC转移到network 1的网络去访问第2块网卡network 1的IP地址。

7.      第2块网卡的IP地址设定好以后。可以为CAG设定DNS,Time Zone等信息。这些设定项目可以在Name Service Providers和Date标签里找到。如果你有CAG的user license可以在Licensing标签内设置License Server的IP地址。

8.      CAG给系统提供SSL通信入口,而对SSL来说证书设定必不可少。接下来就要导入证书了。首先要导入根证书,根证书的入手方法和选择的颁发机构有关。我是在Windows 2008 R2的域控上自己搭建的证书颁发机构,根证书可以从http://<域控地址>/certsrv得到。格式要选择Base 64。然后在CAG Admin Tool的Administration标签里按 Manage trusted root certificates,在弹出的小窗口里选择Manage标签,按Upload Trusted Root Certificate按键把刚刚入手的根证书文件上传到CAG

9.      接下来为CAG申请自己的证书。在Certificate Signing Request标签里输入CAG的FQDN及其他信息,生成证书申请文件把它保存到本地。然后访问http://<域控地址>/certsrv在网页上Request certificate > advanced certificate request > Submit a certificate request by using a Base 64-encode….。用notepad打开刚刚生成的证书申请文件,把里面的内容都复制&粘贴到Base-64-encoded request里。Certificate Template选择Web Server。下载证书时选择Base 64 encoded。

10.  在CAG的Admin Tool的Administration标签下按Upload a .crt signed certificate按键,把下载的证书导入CAG。

11.  接下来设定CAG和域控活动目录的连接,实现用域用户来认证CAG连接。认证设定在Admin Tool最上面的Authentication标签里。首先要把Default Realm删除掉,然后重新建立,在Realm name里输入Default,Authentication Type选择LDAP authentication。在刚刚建立的Default Realm里面,首先在Authentication标签里面设定下列内容
-         IP address or FQDN: 域控的FQDN名或IP地址

-         Port: 389 如果不知道如何设定的话保持默认值

-         Administrator bind DN: 这里设定捆绑活动目录时用的管理员帐号。用户名Administration域名test.local的话写成cn=administrator,cn=users,dc=test,dc=local

-         Administrator password: 这个不用我翻译了吧

-         Base DN: 这里设定用户组,这个组里的用户将有权限访问CAG。test.local的users用户组的话写成cn=users,dc=test,dc=local

-         Server logon name attribute: 如果不知道如何设定的话保持默认值

切换到Authorization标签,type改成LDAP authorization。把上述设定再写一遍。

到这里CAG的基本设定就基本完成了,用Access Gateway Plug-in连接的话应该能够建立VPN连接了,但是SG模式还要设定一些东西。因为还想给不熟悉SG的人讲解一下SG的动作原理,篇幅会比较长,我们下回讲SG的设定吧。

这里是CAG的产品信息http://www.citrix.com/English/ps2/products/product.asp?contentID=15005。eDocs http://support.citrix.com/proddocs/index.jsp 上有CAG的AdminGuide,可惜还没有中文的。

2010年3月26日

崔嵩