使用samba将linux主机加入AD域(一)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
在研究中经常看到下面这些东东,还是先了解下理论依据
PDC :主域控制器,一般用来做验证
BDC :备份域控制器,一般用于和主域做同步帐号等操作
KDC :密钥分发中心,说白了,就是 kerbrose 服务器。这个需要对 kerbrose 有一定的了解,这里不多说了
PAM :可插拔认证模块,这玩意就是使用不同的验证方法来验证你所需要的服务,比如 sshd , login , ftp 等。这些服务都对应一个配置文件,这个配置文件位于 /etc/pam.d/ 下。而支持这些验证的动态库位于 /lib/security/ 下。
SRV :服务器定位资源记录,要使活动目录正常工作, DNS 必须支持 SRV 。活动目录客户端和域控制器使用 SRV 记录决定域控制器的 ip 地址,具体请参见 [url]http://www.cnblogs.com/LCX/archive/2007/02/05/640843.html[/url]
下面言归正传,介绍如何将 samba 服务器加入到 AD 域中
(1) 配置 /etc/samba/smb.conf
PDC :主域控制器,一般用来做验证
BDC :备份域控制器,一般用于和主域做同步帐号等操作
KDC :密钥分发中心,说白了,就是 kerbrose 服务器。这个需要对 kerbrose 有一定的了解,这里不多说了
PAM :可插拔认证模块,这玩意就是使用不同的验证方法来验证你所需要的服务,比如 sshd , login , ftp 等。这些服务都对应一个配置文件,这个配置文件位于 /etc/pam.d/ 下。而支持这些验证的动态库位于 /lib/security/ 下。
SRV :服务器定位资源记录,要使活动目录正常工作, DNS 必须支持 SRV 。活动目录客户端和域控制器使用 SRV 记录决定域控制器的 ip 地址,具体请参见 [url]http://www.cnblogs.com/LCX/archive/2007/02/05/640843.html[/url]
下面言归正传,介绍如何将 samba 服务器加入到 AD 域中
(1) 配置 /etc/samba/smb.conf
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />workgroup = LIZL #
你要加入的域
# winbind
netbios name = leeldap # 你的 linux 机器名 ,samba 服务器
idmap uid = 15000-20000
idmap gid = 15000-20000
winbind enum groups = yes
winbind enum users = yes
winbind separator = /
; winbind use default domain = yes
template homedir = /home/%D/%U
template shell = /bin/bash
security = domain
password server = 192.168.115.108 # 这里是你的安装 ad 的机器的 ip
encrypt passwords = yes
[homes]
comment = Home Directories
path = /home/%D/%U
browseable = no
writable = yes
valid users = %U
# winbind
netbios name = leeldap # 你的 linux 机器名 ,samba 服务器
idmap uid = 15000-20000
idmap gid = 15000-20000
winbind enum groups = yes
winbind enum users = yes
winbind separator = /
; winbind use default domain = yes
template homedir = /home/%D/%U
template shell = /bin/bash
security = domain
password server = 192.168.115.108 # 这里是你的安装 ad 的机器的 ip
encrypt passwords = yes
[homes]
comment = Home Directories
path = /home/%D/%U
browseable = no
writable = yes
valid users = %U
(2)
配置
/etc/nsswitch.conf
passwd: files winbind
shadow: files
group: files winbind
shadow: files
group: files winbind
(3)
启用
samba
和
winbind
服务
service smb start
service winbind start
service winbind start
(4)
使用
net
加入
AD
域
[root@leeldap pam.d]# net rpc join -S lee -U administrator
Password:
Joined domain LIZL.
Password:
Joined domain LIZL.
(5)
测试是否加入成功
[root@leeldap pam.d]# net rpc testjoin
Join to 'LIZL' is OK
[root@leeldap pam.d]# wbinfo -t
checking the trust secret via RPC calls succeeded
[root@leeldap pam.d]# wbinfo -u
LIZL/Administrator
LIZL/brown
LIZL/bruce
LIZL/Guest
LIZL/jet
LIZL/krbtgt
LIZL/lee
LIZL/lili
LIZL/lizl
LIZL/samba
LIZL/SUPPORT_<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />388945a0
LIZL/test
[root@leeldap pam.d]# wbinfo -g
BUILTIN/System Operators
BUILTIN/Replicators
BUILTIN/Guests
BUILTIN/Power Users
BUILTIN/Print Operators
BUILTIN/Administrators
BUILTIN/Account Operators
BUILTIN/Backup Operators
BUILTIN/Users
[root@leeldap pam.d]# getent passwd
root:x:0:0:root:/root:/bin/bash
。。。。。。。
LIZL/administrator:x:15000:15000::/home/LIZL/administrator:/bin/bash
LIZL/brown:x:15001:15000:Brown Lee:/home/LIZL/brown:/bin/bash
LIZL/bruce:x:15002:15000:Bruce Lee:/home/LIZL/bruce:/bin/bash
LIZL/guest:x:15003:15000::/home/LIZL/guest:/bin/bash
LIZL/jet:x:15004:15000:Jet Chen:/home/LIZL/jet:/bin/bash
LIZL/krbtgt:x:15005:15000::/home/LIZL/krbtgt:/bin/bash
LIZL/lee:x:15006:15000:Jackie Lee:/home/LIZL/lee:/bin/bash
LIZL/lili:x:15007:15000:lily:/home/LIZL/lili:/bin/bash
LIZL/lizl:x:15008:15000:lizhili:/home/LIZL/lizl:/bin/bash
LIZL/samba:x:15013:15000:samba:/home/LIZL/samba:/bin/bash
LIZL/support_388945a0:x:15009:15000:CN=Microsoft Corporation,L=Redmond,S=Washington,C=US:/home/LIZL/support_388945a0:/bin/bash
LIZL/test:x:15014:15000:test:/home/LIZL/test:/bin/bash
[root@leeldap pam.d]# getent group
root:x:0:root
。。。。。
BUILTIN/System Operators:x:15009:
BUILTIN/Replicators:x:15010:
BUILTIN/Guests:x:15011:
BUILTIN/Power Users:x:15012:
BUILTIN/Print Operators:x:15013:
BUILTIN/Administrators:x:15014:
BUILTIN/Account Operators:x:15015:
BUILTIN/Backup Operators:x:15016:
BUILTIN/Users:x:15017:
Join to 'LIZL' is OK
[root@leeldap pam.d]# wbinfo -t
checking the trust secret via RPC calls succeeded
[root@leeldap pam.d]# wbinfo -u
LIZL/Administrator
LIZL/brown
LIZL/bruce
LIZL/Guest
LIZL/jet
LIZL/krbtgt
LIZL/lee
LIZL/lili
LIZL/lizl
LIZL/samba
LIZL/SUPPORT_<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />388945a0
LIZL/test
[root@leeldap pam.d]# wbinfo -g
BUILTIN/System Operators
BUILTIN/Replicators
BUILTIN/Guests
BUILTIN/Power Users
BUILTIN/Print Operators
BUILTIN/Administrators
BUILTIN/Account Operators
BUILTIN/Backup Operators
BUILTIN/Users
[root@leeldap pam.d]# getent passwd
root:x:0:0:root:/root:/bin/bash
。。。。。。。
LIZL/administrator:x:15000:15000::/home/LIZL/administrator:/bin/bash
LIZL/brown:x:15001:15000:Brown Lee:/home/LIZL/brown:/bin/bash
LIZL/bruce:x:15002:15000:Bruce Lee:/home/LIZL/bruce:/bin/bash
LIZL/guest:x:15003:15000::/home/LIZL/guest:/bin/bash
LIZL/jet:x:15004:15000:Jet Chen:/home/LIZL/jet:/bin/bash
LIZL/krbtgt:x:15005:15000::/home/LIZL/krbtgt:/bin/bash
LIZL/lee:x:15006:15000:Jackie Lee:/home/LIZL/lee:/bin/bash
LIZL/lili:x:15007:15000:lily:/home/LIZL/lili:/bin/bash
LIZL/lizl:x:15008:15000:lizhili:/home/LIZL/lizl:/bin/bash
LIZL/samba:x:15013:15000:samba:/home/LIZL/samba:/bin/bash
LIZL/support_388945a0:x:15009:15000:CN=Microsoft Corporation,L=Redmond,S=Washington,C=US:/home/LIZL/support_388945a0:/bin/bash
LIZL/test:x:15014:15000:test:/home/LIZL/test:/bin/bash
[root@leeldap pam.d]# getent group
root:x:0:root
。。。。。
BUILTIN/System Operators:x:15009:
BUILTIN/Replicators:x:15010:
BUILTIN/Guests:x:15011:
BUILTIN/Power Users:x:15012:
BUILTIN/Print Operators:x:15013:
BUILTIN/Administrators:x:15014:
BUILTIN/Account Operators:x:15015:
BUILTIN/Backup Operators:x:15016:
BUILTIN/Users:x:15017:
(5)
现在可以到
ad
机器上的活动目录中可以看到该机器了
接下来介绍加入 AD 域后的一个简单应用,要不就不知道这样加有啥子用了。既然 samba 服务器已经加入 AD 域中,那自然会想到, window 域中的本地帐号是否能访问 linux 机器呢?答案是肯定的。这就是 winbind 的作用了,当 window 域中的本地帐号需要登录 linux 主机时, winbind 服务去 ad 服务器去验证该帐号是否合法,而不是到 linux 本地的 /etc/passwd 中去验证,当然如果要用不同的验证方式,就可以用 pam 去进行复杂的设定 .
(1) 确保 /etc/samba/smb.conf 中配置了 passwd server 选项
接下来介绍加入 AD 域后的一个简单应用,要不就不知道这样加有啥子用了。既然 samba 服务器已经加入 AD 域中,那自然会想到, window 域中的本地帐号是否能访问 linux 机器呢?答案是肯定的。这就是 winbind 的作用了,当 window 域中的本地帐号需要登录 linux 主机时, winbind 服务去 ad 服务器去验证该帐号是否合法,而不是到 linux 本地的 /etc/passwd 中去验证,当然如果要用不同的验证方式,就可以用 pam 去进行复杂的设定 .
(1) 确保 /etc/samba/smb.conf 中配置了 passwd server 选项
(2)
配置
system-auth
auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth sufficient /lib/security/$ISA/pam_winbind.so use_first_pass
auth required /lib/security/$ISA/pam_deny.so
account required /lib/security/$ISA/pam_unix.so broken_shadow
account [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_winbind.so
account required /lib/security/$ISA/pam_permit.so
password required /lib/security/$ISA/pam_cracklib.so retry=3
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
password sufficient /lib/security/$ISA/pam_winbind.so use_authok
password required /lib/security/$ISA/pam_deny.so
session required /lib/security/$ISA/pam_limits.so
session required /lib/security/$ISA/pam_unix.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth sufficient /lib/security/$ISA/pam_winbind.so use_first_pass
auth required /lib/security/$ISA/pam_deny.so
account required /lib/security/$ISA/pam_unix.so broken_shadow
account [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_winbind.so
account required /lib/security/$ISA/pam_permit.so
password required /lib/security/$ISA/pam_cracklib.so retry=3
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow
password sufficient /lib/security/$ISA/pam_winbind.so use_authok
password required /lib/security/$ISA/pam_deny.so
session required /lib/security/$ISA/pam_limits.so
session required /lib/security/$ISA/pam_unix.so
好了,接下来享受下用 ad 帐号登录 linux 主机的快乐吧。。如果要结合 samba 控制目录访问等权限的话,继续努力研究吧。。。
自从上次用
net rpc
把
linux
主机加入到
AD
域后
,
着实兴奋了几天
.
但上次也有些遗留的问题没有搞明白
,
比如和
net ads join
加入域的区别
.kerbrose
认证基本没用到
.
于是琢磨着用
net ads
再加一次
.
趁着老大去北京出差的机会
,
公司的事情又不是很忙
,
还是好好来研究一番
.
先谈下 krb 那些支持的包如何装 , 还是那句老话 , 图省事 , 就默认安装吧 , 虽然用的空间多点 , 但是知识可是无价的 . 呵呵 . 如果实在不放心 , 可以用 rpm -qa | grep krb 查看下是否安装了必要的包 .
(1) 接下来的工作当然是配置 /etc/krb5.conf
先谈下 krb 那些支持的包如何装 , 还是那句老话 , 图省事 , 就默认安装吧 , 虽然用的空间多点 , 但是知识可是无价的 . 呵呵 . 如果实在不放心 , 可以用 rpm -qa | grep krb 查看下是否安装了必要的包 .
(1) 接下来的工作当然是配置 /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
ticket_lifetime = 24000
default_realm = LIZL.COM # 改成自己的
dns_lookup_realm = false
dns_lookup_kdc = true # 这个地方有改动
[realms]
LIZL.COM = {
kdc = 192.168.51.33:88 # 一个字 , 改
admin_server = 192.168.51.33:749 # 再改
default_domain = LIZL.COM # 还是改
}
[domain_realm]
.lizl.com = LIZL.COM # 改成自己的 AD
lizl.com = LIZL.COM # 改成自己的 AD
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
ticket_lifetime = 24000
default_realm = LIZL.COM # 改成自己的
dns_lookup_realm = false
dns_lookup_kdc = true # 这个地方有改动
[realms]
LIZL.COM = {
kdc = 192.168.51.33:88 # 一个字 , 改
admin_server = 192.168.51.33:749 # 再改
default_domain = LIZL.COM # 还是改
}
[domain_realm]
.lizl.com = LIZL.COM # 改成自己的 AD
lizl.com = LIZL.COM # 改成自己的 AD
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
(2)
文件配置好了
,
现在要用
kerbrose
自带的命令来操作了
.
[root@leeldap etc]# kinit [email]administrator@LIZL.COM[/email]
kinit(v5): Cannot find KDC for requested realm while getting initial credentials
kinit(v5): Cannot find KDC for requested realm while getting initial credentials
别慌
,google,baidu
一下
.
修改
krb5.conf
中的
dns_lookup_kdc = true,
继续
[root@leeldap etc]# kinit [email]administrator@LIZL.COM[/email]
Cannot resolve network address for KDC in requested realm while getting initial credentials
Cannot resolve network address for KDC in requested realm while getting initial credentials
又是错误
,
错误关键字
resolve,
马上想到
/etc/resolv.conf,
打开一看
,
原来用的公司的
dns,
改用自己的
1 nameserver 192.168.51.33 # ad
服务器
2 #nameserver 202.96.134.133
3 #nameserver 192.168.0.3
2 #nameserver 202.96.134.133
3 #nameserver 192.168.0.3
go on,
[
root@leeldap etc]# kinit [email]administrator@LIZL.COM[/email]
Password for [email]administrator@LIZL.COM[/email]:
kinit(v5): Clock skew too great while getting initial credentials
Password for [email]administrator@LIZL.COM[/email]:
kinit(v5): Clock skew too great while getting initial credentials
终于出现密码输入框了
,
一阵窃喜
,
但又蹦出个时间不同步
,
查资料
,
原来要求在
5
分钟以内
.
马上查
AD
服务器和
LINUX
服务器的时间
,faint,
居然是一样
,
那你怎么还报错
,
突然想起
linux
安装的时候有提示是否同步时间服务器的过程
,
查资料
.
最后用命令
[root@leeldap etc]# ntpdate -b 192.168.51.33 # ad
服务器
17 Aug 18:08:23 ntpdate[1959]: step time server 192.168.51.33 offset 0.080875 sec
17 Aug 18:08:23 ntpdate[1959]: step time server 192.168.51.33 offset 0.080875 sec
同步了时间
,
再次
kinit,
终于不报错了
.
谢天谢地
.
(3) 修改 /etc/samba.conf 配置文件
和 net rpc join 差不多 , 只是需要更改 security = ads 就可以了
(4) 然后启动 smb 和 winbindfuwu
(5) 使用 net ads join( 不用带参数 ) 加入域
(3) 修改 /etc/samba.conf 配置文件
和 net rpc join 差不多 , 只是需要更改 security = ads 就可以了
(4) 然后启动 smb 和 winbindfuwu
(5) 使用 net ads join( 不用带参数 ) 加入域
[root@leeldap var]# net ads join
Using short domain name -- LIZL
Joined 'LEELDAP' to realm 'LIZL.COM'
Using short domain name -- LIZL
Joined 'LEELDAP' to realm 'LIZL.COM'
(6)
然后用
wbinfo
和
getent
命令查看写是否加入域成功
...
转载于:https://blog.51cto.com/lanfox/48085