通过Solaris与Active Directory的集成,Solaris可以使用Windows 2003 R2/ 2008 Active Directory来进行用户登录验证。以下是简要配置过程。
需要说明的是,系统上最好配置NTP时间同步。当系统时间差异过大时会导致AD用户无法登录Solaris的问题。
测试环境
域控制器1: Windows 2003R2 SP2 Hostname = win2003r2dc1 IP Address = 10.0.22.20 Domain = test.local
域控制器2: Windows 2003R2 SP2 Hostname = win2003r2dc2 IP Address = 10.0.22.30 Domain = test.local
Solaris10客户端: Solaris10 U10 Hostname = solaris10 IP Address = 10.0.22.40
1. Win2003R2活动目录安装
1.1 域控制器1(win2003r2dc1)安装活动目录
击“开始”-“运行”,输入dcpromo。单击“确定”,弹出活动目录安装向导:
点“下一步”
选择“新域的域控制器”/“在新林中的域”
选择“否,只在这台计算机上安装并配置DNS”/ 输入域名:test.local
接受缺省值,点“下一步”
接受缺省值/ 根据情况选择权限
输入密码 / 选择“下一步”
插入win 2003 r2安装光盘,按提示完成AD安装。
1.2 域控制器2(win2003r2dc1)安装活动目录
与域控制器安装配置活动目录类似,击“开始”-“运行”,输入dcpromo。单击“确定”,弹出活动目录安装向导:
域控制器类型选择“现有域的额外域控制器”,然后会提示配置DNS客户端。
在 开始-> 控制面板->网络连接->本地连接->属性 处配置DNS,首选DNS:10.0.22.30备用DNS:10.0.22.20,然后回到Active Directory安装向导点 下一步。
输入administrator及密码 / 输入域名test.local
接受缺省值,
输入密码,然后插入win2003r2安装光盘,直到Active Directory安装配置完成。
2. 安装配置DNS
2.1 安装DNS
域控制器1 在安装配置Active Directory时已经安装了DNS,下面需要在域控制器2上安装DNS。
在 开始->控制面板->添加删除程序->添加删除windows组件->网络服务->详细信息 中选择 DNS,然后插入window2003R2光盘安装DNS.
2.2 配置DNS
2.2.1 域控制器1(win2003r2dc1)上配置DNS
-
在DNS上创建一个反向查找域
开始->控制面板->DNS 打开DNS操作界面,然后 反向查找区域->新建区域
选择 主要区域,
选择 至所有所有域控制器 / 输入网络ID 10.0.22
选择 安全动态更新,完成反向域创建。
-
配置DNS区域属性
在_msdcs.test.local, test.local, 10.0.22.x Subnet上修改属性如下:
检查 常规属性/ 增加名称服务器 win2003dc2.test.local
在 区域复制/通知 中选择 在“名称服务器”选项卡中列出的服务器。
-
配置DNS客户端
开始-> 控制面板->网络连接->本地连接->属性 处配置DNS,首选DNS:10.0.22.20, 备用DNS:10.0.22.30
2.2.2 域控制器2(win2003r2dc2)上配置DNS
正常情况下,DNS信息已经自动复制到域控制器2上。只需按照 2.2.1步骤2 修改区域属性即可。
3. 安装Identity management for unix
在域控制器1和域控制器2上安装Identity management for unix:
开始->控制面板->添加删除程序->添加删除windows组件
在Active Directory服务的详细信息中选择Identity Management for UNIX, 然后插入win2003r2安装光盘安装。
4. Active Directory 配置
以下操作只在域控制器1上操作即可。
4.1 创建UnixServers组织单位
在 Active Directory 用户和计算机 界面,test.local->新建->组织单位 UnixServers.
4.2 UnixServers中创建Solaris客户端用户
在UnixServers中创建以Solaris客户端主机名为用户名的用户。注意此处创建的是用户而不是计算机。
test.local->UnixServer->新建->用户
用户名 host-solaris主机名,输入密码 ERGpass01,选择 密码永不过期。
4.3 创建Unix Users用户组
test.local->Users->新建->组, 新建 Unix Users用户组,修改用户组Unix Attributes, NIS Domain: test, GID: 10001
4.4 创建Proxy用户
test.local->Users->新建->用户,
输入密码 Proxypass01,修改用户密码为永不过期。
5. 为Solaris客户端创建kerberos keytab
5.1安装windows server 2003 SP2 Support Tools
从windows网站下载support tools,按提示安装。
5.2创建kerberos keytab文件
C:\Program Files (x86)\Support Tools>ktpass.exe -princ HOST/solaris10.test.local@TEST.LOCAL -mapuser TEST\host-solaris10 -crypto DES-CBC-MD5 +DesOnly -pass ERGpass01 -ptype KRB5_NT_PRINCIPAL -out c:\solaris10.keytab Targeting domain controller: win2003dc1.test.local Using legacy password setting method Successfully mapped HOST/solaris10.test.local to host-solaris10.
Key created. Output keytab to c:\solaris10.keytab: Keytab version: 0x502 keysize 63 HOST/solaris10.test.local@TEST.LOCAL ptype 1 (KRB5_NT_PRINCIPAL) vno 5 etype 0x3 (DES-CBC-MD5) keylength 8 (0x91bc01fd073d8fbc) Account host-solaris10 has been set for DES-only encryption.
密码为创建Solaris主机用户时的密码:ERGpass01
6. 配置Solaris10客户端
6.1 配置DNS
- /etc/resolv.conf文件
root@solaris10 # more /etc/resolv.confdomain test.localsearch test.localnameserver 10.0.22.20nameserver 10.0.22.30
- /etc/hosts文件
root@solaris10 # more /etc/hosts## Internet host table#::1 localhost 127.0.0.1 localhost 10.0.22.40 solaris10.test.local solaris10 loghost
- /etc/defaultdomain
root@solaris10 # more /etc/defaultdomaintest.local
6.2 配置Kerberos
6.2.1 把5.2创建的keytab文件传输到Solaris客户端/etc/krb5目录下,并重命名为krb5.keytab.
6.2.2修改/etc/krb5/krb5.conf文件
root@solaris10 # more /etc/krb5/krb5.conf[libdefaults] default_realm = TEST.LOCAL dns_lookup_kdc = true verify_ap_req_nofail = false[realms] TEST.LOCAL = { kdc = win2003r2dc1.test.local kdc = win2003r2dc2.test.local admin_server = win2003r2dc1.test.local }[domain_realm] .test.local = TEST.LOCAL[logging] default = FILE:/var/krb5/kdc.log kdc = FILE:/var/krb5/kdc.log kdc_rotate = { period = 1d version = 10 }[appdefaults] kinit = { renewable = true forwardable= true }
6.3 配置LDAP Client
6.3.1 初始化LDAP Client
在Solaris Client上执行以下命令,红色部分根据实际配置修改。
6.3.2 修改/etc/nsswitch.conf文件
执行ldapclient manual命令时,系统会自动更新nsswitch.conf文件,将ldap加入到文件中。由于我们只用LDAP做用户验证,因此需要修改nsswitch.conf文件如下:
root@solaris10 # cp /etc/nsswitch.files /etc/nsswitch.conf 修改/etc/nsswitch.conf: passwd: files ldap group: files ldap hosts: files dns ipnodes: files dns
其它不变
6.3.3 重启ldap client服务
root@solaris10 # svcadm restart ldap/client
6.4 配置PAM
修改/etc/pam.conf文件如下:
......## Default definitions for Authentication management# Used when service name is not explicitly mentioned for authentication#other auth requisite pam_authtok_get.so.1other auth required pam_dhkeys.so.1other auth required pam_unix_cred.so.1other auth required pam_unix_auth.so.1......## Default definition for Account management# Used when service name is not explicitly mentioned for account management#other account requisite pam_roles.so.1......
6.5配置SSH
此步骤是为了避免可能出现的配置LDAP后SSH登录慢的问题。
在/etc/ssh/sshd_config文件中增加:LookupClientHostnames no然后重启SSH:# svcadm restart ssh
7. 配置solaris11客户端
Solaris11客户端配置与Solaris10配置相似。如未特殊说明,请参考Solaris10配置。
7.1 配置网络相关参数
IP地址:# netadm enable -p ncp DefaultFixed# ipadm create-ip net0# ipadm create-addr -T static -a 10.0.22.50/24 net0/v4defaultdomain:# domainname test.localdefaultrouter:# route -p add default 10.0.22.253dns client:# svccfg -s svc:/network/dns/client setprop config/domain=test.local# svccfg -s svc:/network/dns/client setprop config/search=test.local# svccfg -s svc:/network/dns/client setprop config/nameserver=net_address:'(10.0.22.20 10.0.22.30)'# svcadm enable dns/client
7.2 配置Kerberos
与Solaris10完全相同
7.3 配置LDAP Client
与Solaris10不同之处在于执行ldapclient manual命令后,修改nsswitch的方法不同。Solaris11采用以下方式:
svccfg -s svc:/system/name-service/switch delcustsvccfg -s svc:/system/name-service/switch setprop config/host='"files dns"'svccfg -s svc:/system/name-service/switch setprop config/password='"files ldap"'svccfg -s svc:/system/name-service/switch setprop config/group='"files ldap"'svcadm refresh svc:/system/name-service/switch
7.4 配置PAM
Solaris11与Solaris10的PAM配置略有不同。在Solaris11上,缺省情况下/etc/pam.conf文件中已经没有任何配置信息,相关配置信息已经移到/etc/pam.d目录下,每个服务一个文件。但PAM配置信息仍然可以在/etc/pam.conf文件设置,Solaris11上PAM信息使用顺序是:
/etc/pam.conf forentries /etc/pam.d/ /etc/pam.conf for "other" entries /etc/pam.d/other
Solaris11上可以通过修改/etc/pam.d/other文件配置PAM:
# Default definitions for Authentication management# Used when service name is not explicitly mentioned for authentication#auth definitive pam_user_policy.so.1auth requisite pam_authtok_get.so.1auth required pam_dhkeys.so.1auth required pam_unix_auth.so.1auth required pam_unix_cred.so.1......# Default definition for Account management# Used when service name is not explicitly mentioned for account management# pam_tsol_account(5) returns PAM_IGNORE if the system is not configured# with Trusted Extensions (TX) enabled. In TX environments some PAM services# run in the Trusted Path where pam_tsol_account(5) isn't applicable so in# those cases, like gdm(1m) or xscreensaver(1), PAM stacks are delivered# in /etc/pam.d which exclude pam_tsol_account(5). pam_tsol_account(5) does# need to run in the Trusted Path for ensuring remote hosts connecting to the# global zone have a CIPSO host type.#account requisite pam_roles.so.1account definitive pam_user_policy.so.1account required pam_tsol_account.so.1
8. 测试
在域控制器1上建立一个用户,测试使用此用户登录Solaris系统。
test.local->Users->新建->用户,
输入用户密码,指定用户密码永不过期。
修改用户UNIX Attributes。
如果配置正确,在AD中创建用户后,即可以以此用户登录Solaris客户端。
测试LDAP client配置:
root@solaris10 # getent passwd jyujyu:x:10000:10000:yujun:/export/home/jyu:/bin/bash
root@solaris10 # kinit jyu
Password for :
输入密码后,无任何输出即为成功。