说明:本文为LINUX加入WINDOWS域的具体情况作一些说明,关于如何加入到域,本文不再详述,仅提供一个配置样板,如果有不了解的,可以再查看相关文章。
*-====================-*
* Linux To Windows AD
*-====================-*
- 基本概念
* PDC - 主域控制器
* BDC - 备份域控制器
* KDC - 密钥颁发中心,Kerberos服务器
* PAM - 可插拨认证模块
* SRV - DNS服务资源记录
- 域模式
* PRC - LINUX以Windows2000/NT4样式加入到域中
* ADS - 活动目录,Windows2003,WindowsXP
* 混合 - 有最好的兼容性
- 软件包Sw
* Samba: yum install samba.* samba-common.* samba-winbind-client.*
* Winbind: yum install samba-winbind.*
* Samba4: yum install samba4.* ;A newer version of samba
* Kerberos5: yum install pam_krb5.* krb5-workstation.* krb5-libs.*
* ldconfig
* ldconfig -v | grep winbind
* ls /usr/lib/libnss_winbind.so
- 配置文件
- NSS: /etc/nsswitch.conf
; 指示系统如何查找系统配置文件
; ACTION=Modify
* password: files winbind
* group: files winbind
- Samba: /etc/smb.conf
; 与共享文件夹相关的配置
; DomainMode = ActiveDirectory
*-------------------------------*
[global]
client use spnego = no
server signing = auto
workgroup = CAMPUS
# The SHORT-DOMAIN name of your domain, you need to modify
wins support = yes
wins server = 10.0.0.4
# Controller of the domain, You need to modify it to your own
wins proxy = yes
security = ADS
# or AD,ADS,domain, DOMAIN is the RPC mode
acl compatibility = win2k
idmap uid = 16777216-33554431
# Set based on your user count
idmap gid = 16777216-33554431
password server = 10.0.0.4
# Domain Controller
map to guest = bad user
guest ok = no
realm = CAMPUS.COM
# You need to keep the same with file krb5.conf defined
# encrypt psswords = yes
# Encrypt PASS, not supported by some version of samba
winbind use default domain = yes
# winbind separator = %
template homedir = /home/%D/%U
# A mode 777 should be set on /home/%D
template shell = /bin/bash
[homes]
comment = %S
path =/home/%D/%S
writeable = yes
browsable = yes
; valid users = %S
valid users = CAMPUS/%S
*-------------------------------*
* Kerberos: /etc/krb5.conf
*-------------------------------*
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = CAMPUS.COM
dns_lookup_realm = false
dns_lookup_kdc = false
[realms]
CAMPUS.COM = {
kdc = ADS.CAMPUS.COM:88
admin_server = ADS.CAMPUS.COM:749
default_domain = campus.com
}
# This is a REALMS to DOMAIN MAPPING, REALMS Format is uppercase
[domain_realm]
.campus.com = CAMPUS.COM
campus.com = CAMPUS.COM
# Build the mapping
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
*-------------------------------*
* 重启samba: service smb restart
* 重启Winbind: service winbind restart
* 初始化KDC: net ads kerberos kinit
* 加域: net rpc join -S ADS.CAMPUS.COM -U Administrator%
* 查看信息: net rpc info; net ads testjoin; net ads
* 退域: net ads leave -S ADS.CAMPUS.COM -U Administrator%
* 查看用户信息: wbinfo -u, wbinfo -t
* 查看本机用户: getent passwd K-id, getent group K-id
* 获取SID: net rpc getsid -U Administrator% -I x.x.x.x
* NTLM-AUTH: ntlm_auth --username=$USER
- 通过AD认证SSH
* 用户名如下: ADU/admin/DOMAINNAME => root/admin/CAMPUS
* 如果只进行网络认证,仅用户名也可以登录如 ssh imwk2011@SYS
* PAM认证文件,仅网络认证
*-------------------------------*
#%PAM-1.0
#AUTHENTICATION
auth sufficient pam_winbind.so
#AM
account sufficient pam_winbind.so
#SM
session required pam_limits.so
session required pam_mkhomedir.so
session optional pam_console.so
*-------------------------------*
- 总结#LINUX ADS#部署过程
* 安装软件包
* 依次对配置文件进行修改
/etc/nsswitch.conf
/etc/samba/smb.conf
/etc/krb5.conf
* 模板见上,修改的重要地方已标出
- 排错
* 检查服务是否正常运行
* 检查配置文件是否正确
* 检查日志
* 检查DNS设置: 应该为Windows域主DNS
* 检查防火墙配置与SELINUX配置
# 调错
* "BAD SIG"
注释掉smb.conf中的"client use spnego = no"选项
* “DNS UPDATE FAILED”
检查DNS设定
检查DNS上的更新权限
* nsupdate
> Server x.x.x.x
> Add CMS.CAMPUS.COM 10 A 10.0.0.2
> Send
* Kerberos 密钥初始化问题
kinit xxx@CAMPUS.COM ;申请用户xxx在域CAMPUS中的票据
时钟问题,域控与客户端时钟差距过大
密码问题,用户或者密码错误
域名问题,KINIT找不到域控制器,也即KDC,注意检查DNS配置
* PAM模块中的认证问题
使用 tail -f /var/log/secure 追踪其认证问题
确认在"smb.conf"文件中打开"winbind use default domain=yes"选项,系统会自动传入域名
* 加域并不需要SMB服务运行,WINBIND需要"smb.conf"文件
* 旧的主机(含LINUX、UNIX等)登录域的用户名为: CAMPUS\cc,前为域名,后为用户名
# 数据查询
* net ads search '(objectCategory=group)' sAMAccountName ;查询系统组
* net ads search '(objectCategory=user) sAMAccountName ;查询用户
* net ads search '(sAMAccountName=cc)' ;查询用户CC相关信息
* ldapsearch -x -b "dc=CAMPUS,dc=COM" -D "CAMPUS\cc" -w "PASSWD" -h ADS.CAMPUS.COM
# 常用数据结构
* 用户: "CN=users,DC=CAMPUS,DC=COM"
* 计算机: "CN=Computers,DC=CAMPUS,DC=COM"
* 组织单位: "OU=GRPS,DC=CAMPUS,DC=COM"
# 认证
* wbinfo -a USER%PASS
* wbinfo -K USER%PASS
* wbinfo -m
* ntlm_auth --username=CC
*-====================-*
* Linux To Windows AD
*-====================-*
- 基本概念
* PDC - 主域控制器
* BDC - 备份域控制器
* KDC - 密钥颁发中心,Kerberos服务器
* PAM - 可插拨认证模块
* SRV - DNS服务资源记录- 域模式
* PRC - LINUX以Windows2000/NT4样式加入到域中
* ADS - 活动目录,Windows2003,WindowsXP
* 混合 - 有最好的兼容性
- 软件包Sw
* Samba: yum install samba.* samba-common.* samba-winbind-client.*
* Winbind: yum install samba-winbind.*
* Samba4: yum install samba4.* ;A newer version of samba
* Kerberos5: yum install pam_krb5.* krb5-workstation.* krb5-libs.** ldconfig
* ldconfig -v | grep winbind
* ls /usr/lib/libnss_winbind.so
- 配置文件
- NSS: /etc/nsswitch.conf ;指示系统如何查找系统配置文件
; 修改以下内容password: files winbind
group: files winbind
- Samba: /etc/smb.conf
; 与共享文件夹相关的配置 [global]
client use spnego = no
server signing = auto
workgroup = CAMPUS
# The SHORT-DOMAIN name of your domain, you need to modify
wins support = yes
wins server = 10.0.0.4
# Controller of the domain, You need to modify it to your own
wins proxy = yes
security = ADS
# or AD,ADS,domain, DOMAIN is the RPC mode
acl compatibility = win2k
idmap uid = 16777216-33554431
# Set based on your user count
idmap gid = 16777216-33554431
password server = 10.0.0.4
# Domain Controller
map to guest = bad user
guest ok = no
realm = CAMPUS.COM
# You need to keep the same with file krb5.conf defined
# encrypt psswords = yes
# Encrypt PASS, not supported by some version of samba
winbind use default domain = yes
# winbind separator = %
template homedir = /home/%D/%U
# A mode 777 should be set on /home/%D
template shell = /bin/bash
[homes]
comment = %S
path =/home/%D/%S
writeable = yes
browsable = yes
; valid users = %S
valid users = CAMPUS\%S
* Kerberos配置文件: /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = CAMPUS.COM
dns_lookup_realm = false
dns_lookup_kdc = false
[realms]
CAMPUS.COM = {
kdc = ADS.CAMPUS.COM:88
admin_server = ADS.CAMPUS.COM:749
default_domain = campus.com
}
# This is a REALMS to DOMAIN MAPPING, REALMS Format is uppercase
[domain_realm]
.campus.com = CAMPUS.COM
campus.com = CAMPUS.COM
# Build the mapping
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
* 重启samba: service smb restart
; 汪: 如果只作认证,SMB服务可以不启动,但smb.conf必须配置好
* 重启Winbind: service winbind restart
* 初始化KDC: net ads kerberos kinit
* 加域: net rpc join -S ADS.CAMPUS.COM -U Administrator%
* 查看信息: net rpc info; net ads testjoin; net ads
* 退域: net ads leave -S ADS.CAMPUS.COM -U Administrator%
* 查看用户信息: wbinfo -u, wbinfo -t
* 查看本机用户: getent passwd K-id, getent group K-id
* 获取SID: net rpc getsid -U Administrator% -I x.x.x.x* NTLM-AUTH: ntlm_auth --username=$USER
- 总结#LINUX ADS#部署过程
* 安装软件包
* 依次对配置文件进行修改
/etc/nsswitch.conf
/etc/samba/smb.conf
/etc/krb5.conf
* 模板见上,修改的重要地方已标出
- 排错
* 检查服务是否正常运行
* 检查配置文件是否正确
* 检查日志
* 检查DNS设置: 应该为Windows域主DNS
* 检查防火墙配置与SELINUX配置
# 调错
* "BAD SIG"
注释掉smb.conf中的"client use spnego = no"选项
* “DNS UPDATE FAILED”
检查DNS设定
检查DNS上的更新权限
* nsupdate
> Server x.x.x.x
> Add CMS.CAMPUS.COM 10 A 10.0.0.2
> Send
* Kerberos 密钥初始化问题
kinit xxx@CAMPUS.COM ;申请用户xxx在域CAMPUS中的票据
时钟问题,域控与客户端时钟差距过大
密码问题,用户或者密码错误
域名问题,KINIT找不到域控制器,也即KDC,注意检查DNS配置
* PAM模块中的认证问题
使用 tail -f /var/log/secure 追踪其认证问题
确认在"smb.conf"文件中打开"winbind use default domain=yes"选项,系统会自动传入域名
* 加域并不需要SMB服务运行,WINBIND需要"smb.conf"文件
* 旧的主机(含LINUX、UNIX等)登录域的用户名为: CAMPUS\cc,前为域名,后为用户名
# 数据查询
* net ads search '(objectCategory=group)' sAMAccountName ;查询系统组
* net ads search '(objectCategory=user) sAMAccountName ;查询用户
* net ads search '(sAMAccountName=cc)' ;查询用户CC相关信息
* ldapsearch -x -b "dc=CAMPUS,dc=COM" -D "CAMPUS\cc" -w "PASSWD" -h ADS.CAMPUS.COM ;列出CAMPUS.COM域的所有记录,其中LDAP服务器为ADS.CAMPUS.COM,查询所使用的用户为
# 常用数据结构
* 用户: "CN=users,DC=CAMPUS,DC=COM"
* 计算机: "CN=Computers,DC=CAMPUS,DC=COM"
* 组织单位: "OU=GRPS,DC=CAMPUS,DC=COM"
# 认证测试
* wbinfo -a USER%PASS
* wbinfo -K USER%PASS ;采用Kerberos方式测试KDC是否正常
* wbinfo -m ;查看配置的域(工作组)
* ntlm_auth --username=CC ;使用CC测试,如果认证成功,可从另一个方面说明系统加域已经成功
https://blog.51cto.com/cc2011/641471