利用Samba做域控制器- -
Samba简介
Samba是用来实现SMB的一种软件,由澳大利亚的Andrew Tridgell开发,是一种在Linux(unix)环境下运行的免费软件。通过它,Linux和Windows之间可以进行文件的传输,实现打印机的共享。
SMB——Server Messages Block:信息服务块,是一种在局域网上共享文件和打印机的一种协议,它为局域网内的Windows和Unix系统提供文件及打印机等资源的共享服务。
其实早在samba2.2版本已经能非常好的支持samba做PDC(Primary Domain Controller),只不过到了3.0对域的支持更加好,到现在为止最新的版本3.0,已经支持AD,并且支持Microsoft Kerberos 认证、完全重写和可配置的认证子系统等新功能。Samba Serve可以完全取代 NT/2000 PDC(Primary Domain Controller)成为网域主控者管理Windows客户机。当然,Samba 也可以将目录、档案分享给其它 Unix Like、Mac、OS/2 的机器使用,更令人惊讶的是 Samba Server 也可做为WINS Server,除此之外还可以做 DHCP Server,Printer Server应用层面可以说是相当广阔。
域控制器的架设
一. Samba的安装
Samba的安装包有rpm包跟tar包两种(Samba的最新版可以从或来下载)
注:本文中的Fedora是Linux的主机名称
(1) Samba的rpm包安装方法:
[root@fedora root]#rpm -hiv samba-3.*.i386.rpm
(2) Samba的tar包的安装方法:
[root@fedora root]#tar zxvf samba-3.*.tar.gz (解压软件包)
[root@fedora root]#cd samba-3.* (转到已经解压好的资料夹)
[root@fedora root]#cd source (configure存在于source目录下)
[root@fedora root]#./configure
[root@fedora root]#make
[root@fedora root]#make install (执行安装)
二.smb.conf的配置
smb.conf是samba的主要配置文件,对smb.conf的配置可以手式配置,也可以用其它软件来配置。具体配置如下:
1. 服务器的环境设置 --> 以 [global] 开始。
2. 使用者家目录环境的设置 --> 以 [homes] 开始。
3. 使用者个人登入指令稿的位置 --> 以 [netlogon] 开始。
4. 使用者个人化设置 --> 以 [profiles] 开始。
5. 共享资料夹设置 --> 以 [共享名称]开始。
[global]
workgroup=PDCTest (域名)
netbios name=LinuxPDC (进入网上邻居可看到此名称,若没设置此项则看到的是主机(host name)的名称)
server string=Samba Server %v (服务器的说明文字,%v表示samba的版本)
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
os lever=64
preferred master=yes
local master=yes
domain master=yes (将Samba设为网域(NT网域)的主控者PDC)
security = user (设定系统安全的等级 -- 使用哪一种密码,来作为登入网域时的验证密码。 (1)security = share完全分享(2)security = user利用操作系统或Samba来验证密码(控管)。(3)security = server 或 domain 利用NT来验证密码。)
encrypt passwords = yes (对密码文件编码。)
domain logons = yes
log file = /var/log/samba/log.%m (设定记录文件的所在路径, %m代表
来源的机器名称。)
log level = 2
max log size = 50 (设定记录文件的大小,以 K 计算。)
hosts allow = (允许访问的机器,可以使用IP。)
以下是漫游设置和登录脚本,logon path = ,会于下面我们要说的 [profiles] 共享成对应关系。
logon home =
logon drive = H:
logon path =
logon script = %U.bat
[homes]
comment = Home Directories
browseable = no
writeable = yes
[profiles]
path = /home/samba/profiles
writeable = yes
browseable = no
create mask = 0600
directory mask = 0700
[netlogon]
comment = Network Logon Service
path = /home/netlogon (登录文件存放的路径)
read only = yes
browseable = no
write list= root
[Test]
comment=Test 每一个分享出来目录的简短说明
path=/home/samba/Test 该分享目录在系统中的实际路径
guest ok=yes 试用帐号可以使用
public=yes 是否提供给 guest 用
browseable=yes 在网络芳邻上是否看得到
write 允许写入的是属于群组mis的 user 和 jona
create mask=0644 建立(写入)文件的的权限模式为0644(自己可擦写,群组可读,其它user可读)
三.添加用户和机器帐户
先建立下列各组以及创建两个必要目录,并设置正确的所有权。
[root@fedora root]groupadd admin
[root@fedora root]groupadd machines
[root@fedora root]mkdir -m 0775 /home/netlogon
[root@fedora root]chown root.admin /home/netlogon
[root@fedora root]mkdir /home/samba /home/samba/profiles
[root@fedora root]chown 1757 /home/samba/profiles
对上述目录设置正确的权限和所有权是保护服务器的关键一步哦 :)
(1)手工添加机器帐号
比如我的客户端的机器名是mis120,那幺我们可以这样做
[root@fedora root]useradd -g machines -d /dev/null -c "machine id" -s /bin/false mis120$
[root@fedora root]passwd -l mis120$
不要忘记标上美元符号;这是必需的,它将该项标识为信任帐户
创建 linux 帐户后,我们现在可以将该机器添加到 /etc/samba/smbpasswd
[root@fedora root]smbpasswd -a -m mis120
(2)自动添加机器帐号
当然你也可以让系统自动添加机器帐号,用下面的方法,不过大家最好先试手动添加,成功后再试验系统自动添加
自动添加只要在[global]添加
add user script = /usr/sbin/useradd -d /dev/null -g machines -s /bin/false -M %u
添加用户帐号
首先添加的是root帐户,把root加入到smb帐户中
[root@fedora root]smbpasswd -a root
这一步很重要,因为Win2000/WinXP加入域要用到有管理员的帐号加入域的权限,否则用普通用户好象不能顺利加入域
然后添加普通用户
[root@fedora root]useradd kyle
[root@fedora root]passwd kyle
[root@fedora root]smbpasswd -a kyle
为了方便以后的管理,最好smb的用户密码和unix系统密码一样,这样我们还可以用到samba的密码同步功能
下面的选项语句将允许用户从 Windows 客户机上更改他们的 Samba 密码,这样会随即更新他们的 UNIX 密码以与新的 Samba 项相匹配。但是如果更改了 UNIX 密码,那幺同一技术不能逆向工作;必需手工同步更改 Samba 密码。也是在[global],初学者可以先不做这个工作。
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *Enter*new*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *passwd: *all*authentication*tokens*updated*successfully*
注意:上述语句中唯一值得一提的是 passwd chat 选项,不管这里如何显示它,都要将它输入成一行。还要注意有些选项使用"password",而有些使用"passwd"。
Samba PDC 的配置就这样完成了。剩下唯一要做的是将客户机加入到域中。记得重启samba服务哦!当然也可以重启动计算机来启动Samba。
四.客户端设置
我们在这里以Win98/Win2000/WinXP为例来讲解一下客户端如何加入域
(1).Win98加入域的方法:
点击"网上邻居"à"属性"à"组态"à选中"Client for Microsoft Networks"à"属性"à选中"登入Windows NT网域"复选框à在"Windows网域"文本框中输入网域名称 à确定后系统会要求重启计算机
(2).Win2000加入域的方法:
点击"我的计算机"à"属性"à"网络识别"à"内容"à"网域"à点击确定后出现超级用户密码验证框,在此输入Samba的超级用户。à成功加入域后会要求重新启动计算机。
(3).WinXP加入域的方法:
点击"我的计算机"à"属性"à"计算机名称"à"变更"à接下来跟Win200的一样"网域"à点击确定后出现超级用户密码验证框,在此输入Samba的超级用户。à成功加入域后会要求重新启动计算机。