通过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.conf
domain test.local
search test.local
nameserver 10.0.22.20
nameserver 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/defaultdomain
    test.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上执行以下命令,红色部分根据实际配置修改。

ldapclient manual \
-a credentialLevel=proxy \
-a authenticationMethod=simple \
-a proxyDN=cn=ProxyUser,cn=Users,dc=test,dc=local \
-a proxyPassword=Proxypass01 \
-a defaultSearchBase=dc=test,dc=local \
-a domainName=test.local \
-a "defaultServerList=10.0.22.20, 10.0.22.30" \
-a attributeMap=group:userpassword=userPassword \
-a attributeMap=group:memberuid=memberUid \
-a attributeMap=group:gidnumber=gidNumber \
-a attributeMap=passwd:gecos=cn \
-a attributeMap=passwd:gidnumber=gidNumber \
-a attributeMap=passwd:uidnumber=uidNumber \
-a attributeMap=passwd:homedirectory=unixHomeDirectory \
-a attributeMap=passwd:loginshell=loginShell \
-a attributeMap=shadow:shadowflag=shadowFlag \
-a attributeMap=shadow:userpassword=userPassword \
-a objectClassMap=group:posixGroup=group \
-a objectClassMap=passwd:posixAccount=user \
-a objectClassMap=shadow:shadowAccount=user \
-a serviceSearchDescriptor=passwd:dc=test,dc=local?sub \
-a serviceSearchDescriptor=group:dc=test,dc=local?sub

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.1
other auth required pam_dhkeys.so.1
other auth sufficient pam_krb5.so.1
other auth required pam_unix_cred.so.1
other 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
other account sufficient pam_unix_account.so.1
other account required pam_ldap.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/v4 defaultdomain:
# domainname test.local defaultrouter:
# route -p add default 10.0.22.253 dns 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 delcust
svccfg -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 for <service> entries
/etc/pam.d/<service>
/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.1
auth requisite pam_authtok_get.so.1
auth required pam_dhkeys.so.1
auth sufficient pam_krb5.so.1
auth required pam_unix_auth.so.1
auth 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.1
account definitive pam_user_policy.so.1
account sufficient pam_unix_account.so.1
account required pam_tsol_account.so.1
account required pam_ldap.so.1

8. 测试

在域控制器1上建立一个用户,测试使用此用户登录Solaris系统。

test.local->Users->新建->用户,

输入用户密码,指定用户密码永不过期。

修改用户UNIX Attributes。

如果配置正确,在AD中创建用户后,即可以以此用户登录Solaris客户端。

测试LDAP client配置:

root@solaris10 # getent passwd
jyu<BR>jyu:x:10000:10000:yujun:/export/home/jyu:/bin/bash

测试Kerberos验证:


root@solaris10 # kinit jyu

Password for jyu@TEST.LOCAL:

输入密码后,无任何输出即为成功。

Solaris与Windows Active Directory集成的更多相关文章

  1. 超越LLMNR /NBNS欺骗 - 利用Active Directory集成的DNS

    利用名称解析协议中的缺陷进行内网渗透是执行中间人(MITM)攻击的常用技术.有两个特别容易受到攻击的名称解析协议分别是链路本地多播名称解析(LLMNR)和NetBIOS名称服务(NBNS).攻击者可以 ...

  2. PHP 通过LDAP协议,操作Windows Active Directory

    原文地址:http://hi.baidu.com/lllangxx/item/3ccb7cdfa13b56eb3dc2cb39 一.学习如何管理Active Directory Active Dire ...

  3. How to use the windows active directory to authenticate user via logon form 如何自定义权限系统,使用 active directory验证用户登录

    https://www.devexpress.com/Support/Center/Question/Details/Q345615/how-to-use-the-windows-active-dir ...

  4. 移动服务和 Azure Active Directory 中基于角色的访问控制

    编辑人员注释:本文章由 Matthew Henderson撰写 去年 11月,我们发布了 Azure Active Directory (AAD) 预览版作为移动服务身份提供程序.此举旨在为企业开 ...

  5. 使用 Azure Active Directory 管理 Azure 中的 HPC Pack 群集

    Microsoft HPC Pack 2016 支持在 Azure 中部署 HPC Pack 群集的管理员将其与 Azure Active Directory (Azure AD) 集成. 请按照本文 ...

  6. Active Directory架构管理

    Active Directory由对象(用户,计算机,打印机,组等)及其属性(属性)组成.Schema 是Active Directory的重要组件,因为它定义了用于存储数据的所有对象和属性.Acti ...

  7. Active Directory 域服务 (AD DS) 虚拟化

    TechNet 库 Windows Server Windows Server 2012 R2 和 Windows Server 2012 服务器角色和技术 Active Directory Acti ...

  8. 介绍 Active Directory 域服务 (AD DS) 虚拟化

    TechNet 库 Windows Server Windows Server 2012 R2 和 Windows Server 2012 服务器角色和技术 Active Directory Acti ...

  9. 用JAVA 查询 Active Directory(AD)

    Required Details LDAP address (For e.g.: myjeeva.com or IP of the Domain Controller/Global Catalog[G ...

随机推荐

  1. hadoop mapreduce实现数据去重

    实现原理分析: map函数数将输入的文本按照行读取,   并将Key--每一行的内容   输出    value--空. reduce  会自动统计所有的key,我们让reduce输出key-> ...

  2. DNS安装配置

    安装Bind软件: rpm -qa | grep bind bind-utils--.x86_64 bind--.x86_64 bind-libs--.x86_64 配置named.conf , vi ...

  3. review18

    数字格式化 程序可以直接使用String类调用format方法对数字进行格式化. format方法中的“格式化模式”是一个用双引号括起的字符序列(字符串),该字符序列的字符由格式符和普通字符所构成.代 ...

  4. ​二十种实战调优MySQL性能优化的经验

    ​http://www.searchdatabase.com.cn/showcontent_58391.htm   [为查询缓存优化你的查询] 像 NOW() 和 RAND() 或是其它的诸如此类的S ...

  5. Membership如何得到当前登录的用户名称

        System.Web.Security.Membership     Membership.GetUser().UserName可以得到当前登录的用户信息.

  6. Asp.net 异步调用WebService

    //服务代码 [WebMethod] public string Test(int sleepTimes, int val) { Thread.Sleep(sleepTimes); var log = ...

  7. 使用ES6的Promise 解决回调函数。

    //创建一个Promise实例,获取数据.并把数据传递给处理函数resolve和reject.需要注意的是Promise在声明的时候就执行了. var getUserInfo=new Promise( ...

  8. jstat 简介(2)

    jstat命令可以查看堆内存各部分的使用量,以及加载类的数量.命令的格式如下: jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数] 注意:使用的jdk版本是jdk8. 类加载统 ...

  9. android sdk国内服务器下载

    推荐使用国内东软的服务器下载android sdk相关: 如果是android sdk manager: HTTP Proxy Server : mirrors.neusoft.edu.cn HTTP ...

  10. Linux命令学习(22):ss命令

    版权声明 更新:2017-05-20 博主:LuckyAlan 联系:liuwenvip163@163.com 声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 本文介绍了Linux下面的ss命令 ...