📄 1571.html
字号:
</FORM>
<TABLE cellSpacing=0 cellPadding=0 width="95%"
border=0><TBODY>
<TR>
<TD background="images/bgi.gif" tppabs="http://www.linuxhero.com/docs/images/bgi.gif"
height=30></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=3 width="95%"
align=center border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width="100%"
border=0>
<TBODY>
<TR>
<TD vAlign=top>
<p><FONT class=normalfont><B><font color=blue>samba2.2配置成PDC</font></B></FONT><BR><FONT class=smallfont color=#ff9900>2004-04-23 15:18 pm</FONT><BR><FONT class=normalfont>作者:作者<br>来自:Linux知识宝库<br>联系方式:无名<br><br>6.1. 说明<br>
6.2. 配置Samba域控制器<br>
6.3. 建立机器信任账号并把客户添加到域中<br>
6.4. 常见问题及错误<br>
6.5. 系统策略及配置文件<br>
6.6. 其它可获得的帮助<br>
6.6.1. 链接及类似资源<br>
6.6.2. 邮件列表<br>
6.7. DOMAIN_CONTROL.txt:Samba & Windows NT域控制<br>
<br>
<br>
6.1. 说明<br>
注意,作者提示:本文是David Bannon的Samba 2.2 PDC HOWTO和Samba NT Domain FAQ的结合。<br>
<br>
Samba 2.2之前的版本已实现了少量的Windows NT 4.0主域控制器功能。而2.2版还完成了下面这些功能:<br>
<br>
Windows NT 4.0/2000客户进行域登录<br>
<br>
在用户安全级中加入Windows 9x客户<br>
<br>
从Samba主域控制器中接收Windows客户的用户及组列表<br>
<br>
漫游用户设置<br>
<br>
Windows NT 4.0风格的系统策略<br>
<br>
但还有这些功能没有实现:<br>
<br>
Windows NT 4域信任<br>
<br>
Windows NT 4.0域控制器的安全账号数据库复制(如,Samba主域控制器与NT备份域控制器进行复制,或反之)<br>
<br>
通过用户管理器向域中添加用户账号<br>
<br>
实现Windows 2000域控制器功能(如Kerberos和活动目录)<br>
<br>
请注意,在本文所描述的Windows 9x客户并不是域中的真正成员。因此,支持Windows 9x域登录风格的协议与NT4域登录是完全不同的,而且这个功能早就被正式支持了。<br>
<br>
从 Samba 2.2.0开始,正式支持了NT4风格的域登录,适用于Windows NT 4.0和Windows 2000 (包括SP1)客户。本文描述了把Samba配置成PDC所必须的步骤。开始之前请先确保它正常工作,否则请参考UNIX_INSTALL.html以及smb.conf(5)的手册页。<br>
<br>
具体实现基本上分为两步:<br>
<br>
配置Samba作为PDC<br>
<br>
<br>
建立机器信任账号并把客户加入到域中来<br>
<br>
另外还有一些次要的东西如用户配置、系统策略等。但这些并不是必须的,而且,这和Windows NT的网络概念是差不多的,这里只简单地提一下了。<br>
<br>
<br>
--------------------------------------------------------------------------------<br>
<br>
6.2. 配置Samba域控制器<br>
首先是服务器工作所必须的smb.conf选项,在此就不详细解释了,详情请参见smb.conf(5)的手册页。为方便读者,我们已经把这些选项链接到smb.conf中实际的描述上了(译者注:如果你是单独获得这个文件的,请把它放到html版的手册页目录中去)。<br>
<br>
以下是实现PDC的样本配置文件:<br>
<br>
[global]<br>
; 基本服务器设定<br>
netbios name = POGO<br>
workgroup = NARNIA<br>
<br>
; 成为域及本地主浏览器<br>
os level = 64<br>
preferred master = yes<br>
domain master = yes<br>
local master = yes<br>
<br>
; 安全性设定(必须使用security = user)<br>
security = user<br>
<br>
; PDC必须使用加密口令<br>
encrypt passwords = yes<br>
<br>
; 支持域登录<br>
domain logons = yes<br>
<br>
; 指定保存用户配置的目录<br>
logon path = \%Nprofiles\%u<br>
<br>
; 指定用户的主目录及相应的映射盘符<br>
logon drive = H:<br>
logon home = homeserver\%u<br>
<br>
; 为所有用户指定一个通用登录脚本并使用[netlogon]共享项的相对DOS路径<br>
logon script = logon.cmd<br>
<br>
; 域控制器必须的共享项<br>
[netlogon]<br>
path = /usr/local/samba/lib/netlogon<br>
writeable = no<br>
write list = ntadmin<br>
<br>
; 存放用户配置的共享项<br>
[profiles]<br>
path = /export/smb/ntprofile<br>
writeable = yes<br>
create mask = 0600<br>
directory mask = 0700<br>
<br>
对上面的配置,有几点需要强调一下:<br>
<br>
必须使用加密口令,工作原理请参见ENCRYPTION.html文件。<br>
<br>
服务器必须支持域登录并具有[netlogon]共享项。<br>
<br>
为了使Windows客户查找域控制器,Samba服务器必须成为域主浏览器。<br>
<br>
由于Samba 2.2并未真正实现NT组账号和UNIX组账号间的映射(原因一言难尽),所以你应该参考smb.conf文件中的domain admin users和domain admin group两个选项来建立域管理员之类的账号。<br>
<br>
<br>
--------------------------------------------------------------------------------<br>
<br>
6.3. 建立机器信任账号并把客户添加到域中<br>
机器信任账号就是计算机账号。它的口令则是域控制器进行可靠通信所必须而且共享的机密。Windows 9x无法成为真正的域成员就是因为它不拥有机器信任账号,从而无法和域控制器协同工作。<br>
<br>
机器信任账号的口令是保存在NT主域控制器的注册表中的。而Samba主域控制器则把它们与用户的LanMan和NT散列口令(通常是smbpasswd文件)保存在同一个目录中。但机器信任账号只使用NT散列口令。<br>
<br>
要建立机器信任账号有两种方法:<br>
<br>
在把客户加入到域之前,通过手工方式建立。如果用这种方法,那么这个机器信任账号的口令就是已知值 -- 小写的机器netbios名。<br>
<br>
在客户加入到域时建立机器账号。如果用这种方法,就把用于添加客户的管理账号的会话关键字作为产生随机口令值的密钥。<br>
<br>
为了产生Windows NT的SID,Samba需要让机器账号占有一个UNIX的uid,所以,所有机器账号都要在/etc/passwd和smbpasswd中有相应的项存在。在将来的版本中将无须在/etc/passwd中建立相应项。<br>
<br>
在/etc/passwd文件中,机器账号的名称应该是机器名后加$符号,而且没有口令、登录shell及主目录等项。例如名为‘doppy’的计算机的账号应该是:<br>
<br>
doppy$:505:501:NTMachine:/dev/null:/bin/false<br>
<br>
如果你使用手工方式来建立机器账号,那么必须先在/etc/passwd(或NIS口令表)中建立相应项,然后再用如下命令格式在smbpasswd文件中添加机器账号:<br>
<br>
root# smbpasswd -a -m machine_name<br>
<br>
其中的machine_name为计算机的netbios名。<br>
<br>
此时,请马上把该计算机加到域中去。入侵者可以利用这种开放的账号访问域中的用户信息。<br>
<br>
如果你用的是在客户机加入域时自动建立其机器账号这种方法,那么需要在smb.conf中使用add user script选项并为其指定适当的值。以下示例可用于RedHat 6.2 Linux系统:<br>
<br>
add user script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M %u<br>
<br>
在Samba 2.2中,只有root账号才可以用这种方法来建立机器账号。因此在smbpasswd文件中还要root账号。但出于安全性考虑,最好为其另设口令,而不要使用同/etc/passwd中相同的口令。<br>
<br>
<br>
--------------------------------------------------------------------------------<br>
<br>
6.4. 常见问题及错误<br>
机器账号后无法添加‘$’符号。<br>
<br>
FreeBSD (和其它BSD系统)无法创建带‘$’符号的用户名。上述问题只有在创建账号时才会遇到,而建立之后就该账号就可以正常工作。所以可以先创建不带‘$’符号的用户账号,再用vipw编辑账号的用户名,在后面添加‘$’。或者,索性使用vipw创建整个账号,但要注意必须使用一个唯一的uid!<br>
<br>
在建立机器账号时系统提示“你已经连接到域中”。<br>
<br>
这说明你在客户端使用了一个不合法的账号来为计算机创建机器账号。请先退出,关闭初始连接并用其它合法的用户账号再试试。<br>
<br>
另外,如果你的计算机已是一个‘组成员’,而它所属的组名与要加入的域同名的话(真是个坏主意),也会得到这样的信息。只要更换工作组名,重启后再试就可以了。<br>
<br>
系统提示“加入到域时出现错误,提供的信任与现有设置发生冲突”<br>
<br>
这和上面提到的“你已经连接到域中……”是同一个问题。<br>
<br>
“系统无法为你提供登录(C000019B)”<br>
<br>
我已经顺利加入到域中,但在更换了Samba版本后,尝试登录时就得到这样的信息:“系统无法为你提供登录(C000019B),请再试一次或与你的管理员联系”。<br>
<br>
这是因为,保存在private/WORKGROUP.SID文件中的域SID发生了改变。例如,你删除了这个文件,但smbd又自动再创建了一个;要么就是,你正在版本2.0.7、TNG和HEAD分支代码之间换来换去(不推荐这么做)。要解决这个问题只有一个办法,那就是恢复原始域SID信息,或者从域中删除该域客户并重新加入。<br>
<br>
“该计算机的机器账号不存在或不可访问”<br>
<br>
当我试着把客户机加入到域中时得到这样的信息,这是什么问题?<br>
<br>
这说明PDC上没有与当前客户机相对应的机器账号。如果你是使用add user script选项来建立账号,那么这就表示这个脚本在工作时出了问题,所以必须确保域用户管理正常进行。<br>
<br>
另外,如果你是通过手工方式来建立账号,那么这样的信息就说明建立的账号有问题。看一下/etc/passwd和smbpasswd文件中是否存在机器账号,并确保其账号名是客户机的netbios名后加一个‘$’符号(如computer_name$)。另外,据说还有人发现,如果Samba服务器与 NT客户机的子网掩码不一致,也会发生这样的问题,这样的话你应该知道怎么解决了吧。<br>
<br>
<br>
--------------------------------------------------------------------------------<br>
<br>
6.5. 系统策略及配置文件<br>
在Samba域中设置系统策略及漫游用户配置文件与在NT4域中是一样的。你应该阅读微软的白皮书Implementing Profiles and Policies in Windows NT 4.0。<br>
<br>
这里有一些额外的资料:<br>
<br>
什么是Windows NT策略编辑器?<br>
<br>
要建立或编辑ntconfig.pol文件必须使用NT服务器策略编辑器poledit.exe,NT服务器版提供了这个程序。工作站版虽然也有一个策略编辑器,但不能用来建立域策略。此外,还可以在NT工作站/服务器上安装Windows 95的策略编辑器,但它无法以NT的方式来工作。然而,在工作站版中可以使用服务器版中的一些相应文件。所需的文件是poledit.exe、common.adm和winnt.adm,只要把两个*.adm文件放到 c:winntinf目录,程序会方便地进行查找。要注意的是inf目录是‘隐藏’的。<br>
<br>
在Windows NT 4.0的 Service Pack 3(及更高版)中也提供了NT策略编辑器。只要用servicepackname /x命令解开文件就可以了,如,对于 service pack 6a就用Nt4sp6ai.exe /x。另外在Office97的策略样板文件及微软的零管理工具包中也可以找到该策略编辑器。<br>
<br>
Win95可以执行策略吗?<br>
<br>
只要在Win9x中安装组策略管理器就可以控制组策略了。该程序位于Win98光盘的 tools
eskitetadminpoledit目录中,双击grouppol.inf就可以完成安装。然后重复注册/登录数次来检查 Win98是否执行了组策略。但每台Win9x主机都要安装一套,很麻烦。<br>
<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -