linux加入windows域之完美方案

linux 加入windows 域之完美方案 ,笔者这几天在研究samba 服务通过ad 域进行用户验证。在查资料的过程中发现。关于linux 加入windows 域,网上

linux 加入windows 域之完美方案

,

笔者这几天在研究samba 服务通过ad 域进行用户验证。在查资料的过程中发现。关于linux 加入windows 域,网上资料不少,但是按着网上的说法做大多不成功,甚至很多人估计都不知道自己在说什么,最后一个net ads join就认为已经成功加入到域了,可是然后呢?作为域内的一个成员, 普通的机器要可以提供域内的用户登陆;作为samba 服务要把共享加入到目录中,这样才起到加入域的作用嘛。笔者经过反复实验,终于把linux 加入到windows 域一些细节记录下来,不敢独享,特拿出。

笔者用的linux 为centos5.3。ad 域为win2k3 sp2。域为:Rainbird.net Win2k3:

Name:ad1

Ip:192.168.1.241

Dns:192.168.1.241

Centos5.3:

Name:Filesrv

Ip:192.168.1.246

Dns:192.168.1.241

Ok,let ’s go!

1.samba 服务器软件需求

krb5-workstation-1.2.7-19

pam_krb5-1.70-1

krb5-devel-1.2.7-19

krb5-libs-1.2.7-19

samba-3.0.5-2

[root@filesrv CentOS]# rpm -qa|grep krb5

krb5-auth-dialog-0.7-1

krb5-libs-1.6.1-25.el5

krb5-devel-1.6.1-25.el5

pam_krb5-2.2.14-1

krb5-workstation-1.6.1-25.el5

[root@filesrv CentOS]# rpm -qa|grep samba

samba-swat-3.0.28-0.el5.8

samba-common-3.0.28-0.el5.8

samba-client-3.0.28-0.el5.8

samba-3.0.28-0.el5.8

,

如果

centos 在安装的时候没有取消默认选中的”Base”,则krb5的包是默认全部安装 如果没有选择安装samba 可以这样安装

[root@filesrv CentOS]# rpm -ivh xinetd-2.3.14-10.el5.i386.rpm

[root@filesrv CentOS]# rpm -ivh --aid samba*.rpm

2. 配置kerberos 和samba

因为笔者用的系统为centos 所以为保证一次成功的准确率,这里就使用字符界面下的图形工具来配置了。

运行setup 工具

认证配置

,

选择:

“use winbind” “use kerberos”

“use winbind authertication”

,

删除admin server

其余的改成真实情况 Realm 为域名,KDC 为域服务器的ip

配置winbind

Domain 为你的域的,左面第一个”.”前面的东东

,

选择”join domain”,提示是否先保存配置信息,肯定是yes 了。

嘿嘿,看到这个画面是不是想到了xp 机器加入到域的情景?没错就是那个!输入ad 域的管理员密码吧

,

不出意外的话,你就到达了最后一个界面,肯定

ok, 然后退出了。

一般来说,只要两台机器的时间上下不差五分钟,且项都配置正确的话,你就会看到下面这个图片。看到这个图片说明你的linux 成功加入到ad 域啦!

,

OK, 用图形的好处就是方便快捷,但是这样只适合rh 系统。别的linux 系统咋办呢?别急。这个工具其实就是编辑以下三个配置文件:

/etc/nsswitch.conf

passwd: files winbind(就是先读files 然后再通过winbind 认证)

shadow: files winbind

group: files winbind

/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 = RAINBIRD.NET(默认的域名)

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

}

RAINBIRD.NET = {

kdc = 192.168.1.241:88(域服务器)

kdc = 192.168.1.241

}

[domain_realm]

.example.com = EXAMPLE.COM

example.com = EXAMPLE.COM

rainbird.net = RAINBIRD.NET

.rainbird.net = RAINBIRD.NET

[appdefaults]

pam = {

debug = false

ticket_lifetime = 36000

renew_lifetime = 36000

forwardable = true

krb4_convert = false

}

/etc/samba/smb.conf

workgroup = RAINBIRD//域名

password server = 192.168.1.241//域服务器 realm = RAINBIRD.NET

security = ads//必须启用

idmap uid = 16777216-33554431

idmap gid = 16777216-33554431

,

template shell = /bin/bash

winbind use default domain = false (改成true)

winbind offline logon = false(改成true)

template homedir = /home/U

winbind separator = /

winbind enum users = Yes

winbind enum groups = Yes

红色部分就是工具自动修改的了,但是smb.conf 修改的不彻底,还不能满足我们的要求,怎么办呢?手动把蓝色部分加上,并把那两个false 改成ture, 然后设置samba 的开机自动启动chkconfig smb on,service smb on启动服务,然后就是手工把linux 加入到windows 了

[root@filesrv ~]# net ads join -U administrator@RAINBIRD.NET

administrator@RAINBIRD.NET's password:

The workgroup in /etc/samba/smb.conf does not match the short

domain name obtained from the server.

Using the name [RAINBIRD] from the server.

You should set "workgroup = RAINBIRD" in /etc/samba/smb.conf.

Using short domain name -- RAINBIRD

Joined 'FILESRV' to realm 'RAINBIRD.NET'

提示“Joined”哟,不是这个提示就是有问题,再仔细检查。

OK, 重启linux ,这时候用一个域用户登陆linux 如果提示用户或密码验证失败,说明你重启之前的东西没配置对。仔细检查一下哪里不对呢?

标签: