Mac OS X Leopard与目录服务(AD/OD)集成宝典(10)-完
10. 利用AD为其它Mac OS X服务前面介绍了如何在Mac OS X服务器上提供目录服务,以及通过AD提供更大的控制用户和计算机. 在管理计算机和组之上,Mac OS X服务器可以提供多个服务利用AD的用户账号. Mac OS X服务器不仅可以利用AD认证用户,而且通过绑定服务器和AD的Kerberos realm, 可以扩展SSO到其它的Mac OS X服务器服务.
这一节, 将学习利用AD提供OD服务的SSO.
A. 绑定到AD加入Kerberos
为了利用AD的认证用户使用服务器服务, 需要绑定服务器到AD域并加入到Kerberos realm. 绑定允许服务器使用AD认证请求,而加入Kerberos为一些服务打开SSO.
这里不重复过程,参见第7节(A的1-4步).
B. 文件服务:AFP
你应该希望Mac用户登录后自动得到存取文件共享的认证.
苹果文件服务不需要任何额外配置来使用AD认证. 只需绑定AFP服务器到AD并加入Kerberos realm.
利用下面的步骤来验证AFP服务.
1. 用AD用户登录
2. 确认初始化了Kerberos票据, (复习4节的B部分)
3. 在Finder中, 从"Go"菜单选择"Connect to Server...",键入服务器地址, 应该不用认证就可以得到共享列表.
4. 同样, 检查Kerberos票据, 应该有另一个afpserver服务票据.
在登录时有多个方法自动安装网络共享, 如果客户机绑定到主OD然后是AD服务器, 你可以在Login偏好中为OD用户组和计算机添加共享.
http://docs.google.com/File?id=dfm3jbw9_58cf5rwxd5_b
也可以运行登录脚本来初始化连接:
1. 使用本地管理员登录客户端
2. 在Terminal中, 在/Library/Management/login.sh文件中加入:open afp://services.apple.edu/Users
3. 是这个脚本可执行sudo chmod a+x /Library/Management/login.sh
4. 使它在登录时运行(一行代码)
sudo defaults write /var/root/Library/Preferences/com.apple.loginwindow LoginHook “/Library/Management/login.sh”
5. 使用Ad用户登陆,系统会自动安装这个网络共享,而不需要用户参与.
C. 文件服务: SMB
SMB服务可以在Server Admin的SMB中打开. 和AFP类似. 不需要额外的配置才能使用AD认证和SSO.绑定SMB到AD并加入Kerberos realm,然后在Server Admin中打开Windows服务.只要是用户使用AD账号登录就可以做到SSO存取文件服务.
http://docs.google.com/File?id=dfm3jbw9_60fw69zzk8_b
为了检验Windows服务使用SSO, 重复上面的步骤,把相应的部分改为:smb://your.server.edu
D. 文件服务: FTP
FTP文件服务可以在Server Admin中打开. 与AFP和SMB服务类似, 无须特殊配置. 简单地绑定FTP服务器到AD和加入Kerberos realm, 然后打开FTP服务.
Mac OS X没有内置的Kerberos化的FTP客户端. 软件Fetch支持GSSAPI到FTP. 而且Fetch和Mac OSX的KDC工作很好, 目前在xftpd中有一个错误,当FTP用户使用从AD得到的一个可前递的票据时连接会失败.如果希望使FTP用户可以得到SSO,使用Kerberos应用(/System/Library/CoreServices/Kerberos.app)改变默认的Kerberos的偏好为不使用可前递的票据. 参考第8节的C部分如何从目录服务强制这个偏好.
也可以参考下面的"安全Shell"的关于SFTP的部分. SFTP是FTP的一个安全的替代, 而且可以使用AD和OD的KDC的SSO.
E. 文件服务: WebDAV
利用Mac OS X服务器上的Apache, 可以提供WebDAV文件服务. 利用绑定到AD和加入AD Kerberos的realm, 可以让这个服务成为SSO.
为了打开SSO存取WebDAV服务, 需要在服务器上创建SSL的web网站.
1. 在Server Admin中, 找到Web>Sites并选择默认wen站点.
2. 编辑默认的站点,改变以下设置:
General:
. 域名: 你的服务器的FQDN(或者是服务器的CNAME)
Port: 443
Options:
. 打开WebDAV.
Security:
. 打开SSL
. 证书: 选择默认的自签字的证书.(self-signed certificate).
3. 保存并运行网站服务.
4. 使用AD用户登录到客户机并检查你的初始的Kerberos票据.
5. 在Finder中, 从"Go"菜单选择"Connect toServer..."输入服务器地址"https://your.server.edu". 必须使用全域名.你会得到一个从服务器来的证书失效的警告信息(因为那个自签字的证书). 点击"Continue”后,共享应该被自动安装而不需要认证.
6. 再检验Kerberos票据, 应该*没*有多出来一个票据, 因为现在使用仅仅浏览权限访问站点.
7. 在服务器上, 在/Library/WebServer/Documents/里创建一个新目录Secret. 复制一个文件或者创建一个子目录(为了可以看到访问成功).
8. 在Terminal里, 改变它的访问权限以使可以让WebDAV管理:sudo chown www /Library/WebServer/Documents/Secret
9. 进入Server Admin > Web >Sites> Your Site > Realms, 点击"+"按钮生成一个新realm. 给它一个名字,设置认证到"Kerberos", 并设置全路径到那个目录(译者注:/Library/WebServer/Documents/Secret).注意, 基本的认证方法总是可用的不支持SSO, 但是AD不支持摘要认证.
http://docs.google.com/File?id=dfm3jbw9_61gmctk82x_b
10. 点击"Users & Groups"按钮添加一个AD用户或者组到Users表, 给它Browse和读/写权利, 保存.
11. 返回到客户机, 如果WebDAV共享已经安装了, 就重新连接WebDAV, 找到"Secret"目录, 目录中的内容应该显示, 而且一个http票据会出现在kerberos里.
12. 删除Kerberos票据, 解除WebDAV共享, 然后重新安装WebDAV, 确认无法看到Secret目录的内容(因为没有Kerberos TGT).
F. 安全的Shell
对于多数服务器, 你可能想限制SSH访问, 而不是打开SSO访问. 对于簇的头节点, 可能有数百的基于目录服务的用户需要shell访问服务器.
Kerberos认证在Mac OS X中是默认禁止的, 因为它强迫用户等待Kerberos TGT认证登录. 为了使SSH客户打开Kerberos认证:
1. 编辑/etc/ssh_config文件:
sudo nano /etc/ssh_config
2. 去掉注释下面一行并改变值为 "yes".
GSSAPIAuthentication yes
3. 按Control+X退出编辑器, 键入y来保存.
SSH在Mac OS X服务器上默认打开,这个服务可以打开或关闭它: Server Admin > > Settings > General.
为了检验SSH服务允许SSO访问, 做下面的AD绑定:
1. 用AD用户登录, 检查初始的Kerberos票据(4节, B部分)
2. 在Terminal里, 从File菜单选择"Connect to Server..."
(译者注: 应该是菜单Shell > New Remote Connection...)
3. 在Service中, 选择"Secure Shell(ssh)"
4. 在Server列表中, 找到你的Secure Shell服务器.
5. 填入AD用户的短名(shortname), 然后点击连接. 无须进一步认证就可以连接成功. 在Kerberos中应该可以看到"host"服务票据.
http://docs.google.com/File?id=dfm3jbw9_62gj9f96cz_b
Mac OS X服务器的Secure Shell也默认提供Secure FTP(sftp), 不需要附加的设置。
为了验证,实施下面步骤:
1. 用AD用户登录, 检查初始的Kerberos票据(4节, B部分)
2. 在Terminal里, 从File菜单选择"Connect to Server..."
(译者注: 和前面一样,应该是菜单Shell > New Remote Connection...)
3. 在Service中, 选择"色簇热File Transfer (sftp)"
4. 在Server列表中, 找到你的Secure Shell服务器.
5. 填入AD用户的短名(shortname), 检查选择"SFTP(Automatic)"作为连接协议, 然后点击连接. 无须进一步认证就可以连接成功. 在Kerberos中应该可以看到"host"服务票据.
http://docs.google.com/File?id=dfm3jbw9_638hm4vtgv_b
G. 邮件服务
Email可能使最常使用的基于服务器的仵了, 而且它在很多机构中都是相当重要的. 不幸的是,它也是通过数据包嗅探非法获取密码最普遍使用的服务.通过SSL获得安全的客户-服务连接可以解决这个问题, 强制高强度密码也是一个好办法. 通过实施支持SSO的Kerberos的KDC,可以完全避免用户的密码在网上传输. Mac OS X服务器提供基于Postfix和Cyrus(SMTP, POP和IMAP)的邮件服务,而且内置的SPAM和病毒控制.
用户的邮件信息都储存在每个用户的目录服务记录中. Mac OSX服务器对一个给定用户寻找"apple-user-mailattribute"来确定用户是否可以访问服务器上的邮件服务.因为这是一个Apple特殊的属性, 一般地需要扩展AD架构来利用AD认证使用Mac OS X的邮件服务.但是如果你在邮件服务器上实施了SACL(Sevice Access Control List),SACL将覆盖mailAttribute.所以添加用户和组到邮件的SACL并赋予访问权限就可以了.
依照下面的步骤配置Mac OS X服务器的邮件服务来获得AD服务器支持的SSO:
1. 在Server Admin > mail > Settings, 激活"POP, IMAP, 和SMTP"
2. 在高级和Security项中, 打开为POP, IMAP, 和SMTP的kerberos认证, 保存并激活服务.
3. 在Server Admin > > Settings > Access里, 选择"For Seleted ervice below".
4. 点击Mail服务, 点击"Allow only user and groups below".
5. 点击”+“按钮在Users/Groups抽屉里, 把希望的用户和组拖到"Name"栏下, 完成后保存.
6. 在客户端使用Ad账号登录并运行Mail程序. 生成一个POP账号配置成AD用户. 空出要求填入密码的地方.当Mail尝试配置的时候会自动从Kerberos认证填入. 对于向外服务器, 选择"Use Authentication",同样只填用户名而空出密码.
7. 在退出之前, 在Kerberos程序里检查有一个pop和smtp服务票据.
8. 在Mail程序的偏好 > Acounts里, 生成另外一个账号使用IMAP. 检查是否得到一个IMAP票据.
提示: 查看最后的资源部分参考相关文章看如何创建邮件账号捆棒. 邮件账号捆棒对于部署用户邮件提供方便.
H. VPN
VPN提供给用户在家里或者其它地方以任何一个网络连接,包括Internet, 建立安全连接到LAN. 从用户的角度,VPN就象一个专用的私有连接. VPN技术同时允许企业和分公司通过Internet建立安全的连接通讯.通过Internet的VPN连接就如同不同地点间的广域网.
Mac OS X提供VPN, DHCP和DNS服务--所有网关需要的服务. Mac OSX服务器的VPN同时支持Kerberos认证(仅限于L2TP). 所以在Mac客户端可以对SSO支持.下面举例来说名在一个绑定到AD并加入Kerberos realm的Mac OS X服务器上如何配置VPN支持SSO.
1. 配置VPN: Server Admin > > VPN > Settings > L2TP. 例如:
. 打开L2TP over IPSec
. 开始IP: 10.0.4.50
. 结束IP: 10.0.4.59
. PPP认证: kerberos
. IPsec认证: Shared Secret
http://docs.google.com/File?id=dfm3jbw9_645kz44qfj_b
2. 在"Client Information"标签下, 设置如下:
DNS服务器: 10.0.4.1
搜索域: apple.edu
网络路由定义:
[*]Address: 10.0.4.0
[*]Mask: 255.255.255.0
[*]Type: Private
3. 保存设置并启动服务.
4. 使用AD用户登录客户机, 在System Preference中打开Newtork.
5. 按"+"添加一个网络界面, 选择"VPN"和"L2TP over IPsec"作为VPN类型. 点击"Create"按钮。
http://docs.google.com/File?id=dfm3jbw9_65dwmrcpvx_b
6. 提供服务器地址, 可以在用户名处留空. 点击"Authentication Settings"按钮并按如下设置:
[*]User Authentication: Kerberos
[*]Machine Authentication: Shared Secret (type in the shared secret)
http://docs.google.com/File?id=dfm3jbw9_66gjt9wfdh_b
7. 点击OK关闭Authentication Settings面板. 点击"Apply"来保存, 点击连接按钮. 这个连接应该不用任何额外的认证, 一个"vpn"票据会出现在Kerberos程序中.
I. Xgrid
Xgrid是一种使部署和管理网格计算简化的工具, 只在Mac OS X和Mac OS X服务器上有.Xgrid准许管理把一组计算机分组或分簇, 并允许用户把复杂计算任务方便地分配到一组计算机(本地或/和远程),或者是临时的网格或者是中央管理的簇.
在一个网格中, 认证发生会好多次: 当一个代理加入到一个网格时, 在代理和控制器之间发生; 当客户端发送一个任务请求时,发生在客户和控制器之间; 当控制器把任务分配到代理时, 发生在控制器和所有代理之间. Kerberos认证可以使这些工作都对用户透明而且安全.利用Mac OS X服务器和一群客户端, 可以方便快速地形成强大的计算阵容并仅仅使用现有技术投资和AD架构.
注: 这个练习需要你安装有Xcode 3.0或者更高.
跟着下面的步骤看如何配置SSO:
1. 运行Server Admin并选中服务器的Xgrid服务, 点击工具栏中的"General"按钮.
2. 点击右下方的”Configure Xgrid Service...“按钮,跟着向导来生成一个网格. 当显示配置网络文件时, 在目录服务管理员的用户名和密码处留空.
http://docs.google.com/File?id=dfm3jbw9_67d4rjn9cz_b
3. 点击继续来结束向导安装. Xgrid服务(代理和控制器)会被打开.
4. 在客户端绑定到AD并登录AD用户.
5. 在Sharing偏好里, 打开Xgrid服务, 然后点击Configuration按钮. 选择你的服务器作为控制器, 并且总是接受任务. 点击OK后, 选择"Single Sign On"作为认证方法. 关闭系统偏好.
6. 打开在/Application/Server/里的Xgrid Admin程序.如果客户端和服务器在同一个子网中,应该自动显示连接到你的Xgrid服务器. 否则点击"Add Controller"按钮把你的服务器地址填入,点击连接, 选择"Single Sign On"作为认证方法.
http://docs.google.com/File?id=dfm3jbw9_68f223jcdh_b
7. 在概览标签中,可以看到当前所有可供使用的处理. 在Agents标签中, 可以看到客户端和服务器. 现在最小化Xgrid Admin程序.
8. 在客户端, 找到"/Developer/Examples/Xgrid/GridMandelbrot/"并双击Gridmandelbrot.xcode文件来打开这个Xcode工程文件. 点击"Build and Go"按钮.
9. 它会自动提示连接到一个控制器. 选择你的Xgrid控制器, 然后选择使用Single Sign On证件. 它将自动开始提交任务到控制器. 然后, 控制器会把任务发布给每一个代理, 回收结果, 然后把结果返回到你的库护短程序显示.
http://docs.google.com/File?id=dfm3jbw9_69f5vrc7gj_b
10. 返回到Xgrid Admin程序查看CPU的使用情况和代理的状态以及任务状态.
http://docs.google.com/File?id=dfm3jbw9_70c5xj99g9_b
11. 在Kerberos程序中检查票据, 应该有Xgrid服务票据. 认证发生了好多次, 在你的代理和控制器之间, 控制器和代理之间,客户端和控制器之间, 还有Xgrid Admin程序和控制器之间. 你一次密码也不用输入, 而这些都是Kerberos控制的.
J. 控制服务的访问
绑定目录服务的一个负面影响是, 一旦绑定到服务器, 那么任何DS用户都可以马上使用所有的服务. 显然这不受欢迎, 而这就是SACLs(service Access Control List)的用途.
SACLs区分对待不同的用户和组是否允许使用什么服务. SACLs可以在Server Admin里配置, 并且在本地目录存储中形成组.每一个SACL组(命名为com.apple.access_service)包括有权使用服务的本地或者DS用户和组的一个列表.你可以实施同样的限制到所有服务, 或者对于没有服务分别设置.
SACLs也可以实施到客户机,来限制什么用户可以在机器上登录. 有关详细情况, 查看资源部分.
1. 在Server Admin > > Access > Services里, 选择"For the selected services below"单选项.
2. 点击那个要被限制的服务.
3. 选择"Allow only users and groups below"单选项.
4. 点"+"按钮并在弹出的抽屉里拖动有权限的用户和组到"Name"列上.
5. 完成后点"Save"按钮.
http://docs.google.com/File?id=dfm3jbw9_71cxnhncdn_b
6. 在另外一个Mac OS X机器上, 尝试使用一个没有被允许的用户访问该服务, 它将不会被允许访问. 对于不同的服务, 客户可能得到一个错误信息或者是连接失败的提示.
页:
[1]