跨平台的身份集中管理
一、 环境
DNS Server(RHEL5.5): server1.example.com 192.168.32.31
DC Server (w2k3): w2k3.example.com 192.168.32.31
Samba Server (RHEL5.5):station3.example.com 192.168.32.33
Domain:example.com 192.168.32.0/24
二、 域控制器w2k3的AD配置
1、 利用Active Directory安装向导配置域
新域的域控制器—在新林中的域
新域的DNS全名:example.com
域NetBIOS名:AD
数据库文件夹:c:\windows\ntds
日志文件夹:c:\windows\ntds
Sysvol文件夹位置:c:\windows\sysvol
2、 新建域账户
管理用户和计算机中创建用户user1~user5
#用户信息
3、 安装SFU35(Windows Service for Unix)
下载:http://www.microsoft.com/downloads/info.aspx?na=41&SrcFamilyId=896C9688-601B-44F1-81A4-02878FF11778&SrcDisplayLang=en&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2fa%2f1%2fc%2fa1ca7af1-a6e3-46e7-874a-4c5d8c0fb3b7%2fSFU35SEL_EN.exe
安装:一切默认即可
三、 samba配置
1、 和AD时间同步
[root@station3 ~]# ntpdate 192.168.32.41
27 Apr 01:09:41 ntpdate[2418]: adjust time server 192.168.32.41 offset 0.002424 sec
2、 安装samba
[root@station3 ~]# yum install samba.i386
[root@station3 ~]# yum install samba-client.i386
[root@station3 ~]# yum install samba-common.i386
3、 配置系统认证基于winbind,并加入域
[root@station3 ~]# authconfig-tui
#选择基于winbind的用户信息和验证
#安全模型:ADS
#域:AD 即域控制器的NetBIOS名
#域控制器:w2k3.example.com (dns解析全名)
#ADS域:解析域
#模板shell:/bin/bash #建议选择/bin/bash
加入域
[root@station3 ~]# /usr/bin/net join -w AD -S w2k3.example.com -U Administrator
Administrator's password:
Using short domain name -- AD
Joined 'STATION3' to realm 'EXAMPLE.COM'
或者
[root@station3 ~]# net rpc join -w AD -S w2k3.example.com -U Administrator
Password:
Joined domain AD.
4、 利用authconfig-tui加入winbind认证后,系统自动从AD中复制/etc/krb5.conf文件。
[root@station3 ~]# vi /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 = EXAMPLE.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
[realms]
EXAMPLE.COM = {
kdc = kerberos.example.com:88
admin_server = kerberos.example.com:749
default_domain = example.com
kdc = w2k3.example.com
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
#AD默认验证是kerberos验证,创建AD时,会自动创建KDC服务。
5、 配置windows到unix的账户映射
[root@station3 ~]# vi /etc/ldap.conf
host w2k3.example.com
base dc=example,dc=com
binddn cn=user1,cn=Users,dc=example,dc=com
bindpw redhat@123
ssl on #为了安全必须开启ssl
#绑定查询账户为user1
# RFC 2307 (AD) mappings
nss_map_objectclass posixAccount user #linux下posiAccount映射windows下user
nss_map_objectclass shadowAccount user
nss_map_attribute uid sAMAccountName
nss_map_attribute homeDirectory msSFU30homeDirectory #家目录映射
nss_map_attibute loginshell msSFU30loginshell #shell映射
nss_map_objectclass posixGroup group
nss_map_attribute uidNumber msSFU30uidNumber
nss_map_attribute gidNumber msSFU30gidNumber
pam_login_attribute sAMAccountName #开启AD认证机制
pam_filter objectclass=User
pam_password ad
6、 配置samba
workgroup = AD
password server = w2k3.example.com
realm = EXAMPLE.COM
security = ads
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/bash #指定用户登陆shell
#以上信息时在利用authconfig-tui设置winbind认证时,自动生存的信息。
template homedir = /home/%U #指定用户家目录
winbind use default domain = true
winbind enum users = yes
winbind enum groups = yes
7、启动相关服务并测试
[root@station3 ~]# service winbind restart
关闭 Winbind 服务: [确定]
启动 Winbind 服务: [确定]
[root@station3 ~]# service smb start
启动 SMB 服务: [确定]
启动 NMB 服务: [确定]
[root@station3 ~]# getent passwd #查看用户信息
krbtgt:*:16777219:16777220:krbtgt:/home/AD/krbtgt:/home/krbtgt
user1:*:16777216:16777220:user1:/home/AD/user1:/home/user1
user2:*:16777220:16777220:user2:/home/AD/user2:/home/user2
user3:*:16777221:16777220:user3:/home/AD/user3:/home/user3
user4:*:16777222:16777220:user4:/home/AD/user4:/home/user4
user5:*:16777223:16777220:user5:/home/AD/user5:/home/use
#以上信息表示认证成功
[root@station3 ~]# su - user1
su: warning: cannot change directory to /home/user1: 没有那个文件或目录
-bash-3.2$
#利用 AD上的用户user1登陆rhel5.5成功
[root@station3 ~]# wbinfo –t #测试samba与AD的信任关系
checking the trust secret via RPC calls succeeded
[root@station3 ~]# wbinfo –u #查看域用户的映射信息
administrator
guest
krbtgt
user1
user2
user3
user4
user5
[root@station3 ~]# wbinfo –g #查看域组的映射信息
BUILTIN\administrators
BUILTIN\users
domain computers
domain controllers
schema admins
enterprise admins
domain admins
domain users
domain guests
group policy creator owners