使用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 地址 下面言归正传,介绍如何将 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/bashsecurity = domainpassword server = 192.168.115.108 # 这里是你的安装 ad 的机器的 ipencrypt passwords = yes[homes]   comment = Home Directories   path = /home/%D/%U   browseable = no   writable = yes   valid users = %U

(2) 配置 /etc/nsswitch.conf

passwd:     files winbindshadow:     filesgroup:      files winbind

(3) 启用 samba 和 winbind 服务

service smb startservice winbind start

(4) 使用 net 加入 AD 域

[root@leeldap pam.d]# net rpc join -S lee -U administratorPassword:Joined domain LIZL.

(5) 测试是否加入成功

[root@leeldap pam.d]# net rpc testjoinJoin to 'LIZL' is OK[root@leeldap pam.d]# wbinfo -tchecking the trust secret via RPC calls succeeded[root@leeldap pam.d]# wbinfo -uLIZL/AdministratorLIZL/brownLIZL/bruceLIZL/GuestLIZL/jetLIZL/krbtgtLIZL/leeLIZL/liliLIZL/lizlLIZL/sambaLIZL/SUPPORT_<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />388945a0LIZL/test[root@leeldap pam.d]# wbinfo -gBUILTIN/System OperatorsBUILTIN/ReplicatorsBUILTIN/GuestsBUILTIN/Power UsersBUILTIN/Print OperatorsBUILTIN/AdministratorsBUILTIN/Account OperatorsBUILTIN/Backup OperatorsBUILTIN/Users[root@leeldap pam.d]# getent passwdroot:x:0:0:root:/root:/bin/bash 。。。。。。。 LIZL/administrator:x:15000:15000::/home/LIZL/administrator:/bin/bashLIZL/brown:x:15001:15000:Brown Lee:/home/LIZL/brown:/bin/bashLIZL/bruce:x:15002:15000:Bruce Lee:/home/LIZL/bruce:/bin/bashLIZL/guest:x:15003:15000::/home/LIZL/guest:/bin/bashLIZL/jet:x:15004:15000:Jet Chen:/home/LIZL/jet:/bin/bashLIZL/krbtgt:x:15005:15000::/home/LIZL/krbtgt:/bin/bashLIZL/lee:x:15006:15000:Jackie Lee:/home/LIZL/lee:/bin/bashLIZL/lili:x:15007:15000:lily:/home/LIZL/lili:/bin/bashLIZL/lizl:x:15008:15000:lizhili:/home/LIZL/lizl:/bin/bashLIZL/samba:x:15013:15000:samba:/home/LIZL/samba:/bin/bashLIZL/support_388945a0:x:15009:15000:CN=Microsoft Corporation,L=Redmond,S=Washington,C=US:/home/LIZL/support_388945a0:/bin/bashLIZL/test:x:15014:15000:test:/home/LIZL/test:/bin/bash[root@leeldap pam.d]# getent grouproot: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 选项

(2) 配置 system-auth

auth        required      /lib/security/$ISA/pam_env.soauth        sufficient    /lib/security/$ISA/pam_unix.so likeauth nullokauth        sufficient    /lib/security/$ISA/pam_winbind.so use_first_passauth        required      /lib/security/$ISA/pam_deny.soaccount     required      /lib/security/$ISA/pam_unix.so broken_shadowaccount     [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_winbind.soaccount     required     /lib/security/$ISA/pam_permit.sopassword    required      /lib/security/$ISA/pam_cracklib.so retry=3password    sufficient    /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadowpassword    sufficient    /lib/security/$ISA/pam_winbind.so use_authokpassword    required      /lib/security/$ISA/pam_deny.sosession     required      /lib/security/$ISA/pam_limits.sosession     required      /lib/security/$ISA/pam_unix.so

好了,接下来享受下用 ad 帐号登录 linux 主机的快乐吧。。如果要结合 samba 控制目录访问等权限的话,继续努力研究吧。。。

使用samba将linux主机加入AD域(二)

自从上次用 net rpc 把 linux 主机加入到 AD 域后 , 着实兴奋了几天 . 但上次也有些遗留的问题没有搞明白 , 比如和 net ads join 加入域的区别 .kerbrose 认证基本没用到 . 于是琢磨着用 net ads 再加一次 . 趁着老大去北京出差的机会 , 公司的事情又不是很忙 , 还是好好来研究一番 . 先谈下 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    }

(2) 文件配置好了 , 现在要用 kerbrose 自带的命令来操作了 .

[root@leeldap etc]# kinit [email]administrator@LIZL.COM[/email]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

又是错误 , 错误关键字 resolve, 马上想到 /etc/resolv.conf, 打开一看 , 原来用的公司的 dns, 改用自己的

1 nameserver 192.168.51.33   # ad 服务器 2 #nameserver 202.96.134.1333 #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

终于出现密码输入框了 , 一阵窃喜 , 但又蹦出个时间不同步 , 查资料 , 原来要求在 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

同步了时间 , 再次 kinit, 终于不报错了 . 谢天谢地 .(3) 修改 /etc/samba.conf 配置文件 和 net rpc join 差不多 , 只是需要更改 security = ads 就可以了 (4) 然后启动 smb 和 winbindfuwu(5) 使用 net ads join( 不用带参数 ) 加入域

[root@leeldap var]# net ads joinUsing short domain name -- LIZLJoined 'LEELDAP' to realm 'LIZL.COM'

(6) 然后用 wbinfo 和 getent 命令查看写是否加入域成功 ...

 

转载于:https://blog.51cto.com/lanfox/48085