• 2009-01-17

    利用SAMBA做PDC - [Linux service]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://junger.blogbus.com/logs/34006548.html

    利用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的最新版可以从
    ftp://ftp.samba.org/pub/samba/

    http://us4.samba.org/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 =
    [url=file://%L/profiles/%U]file://%L/profiles/%U[/url]
    ,会于下面我们要说的 [profiles] 共享成对应关系。
    logon home =
    [url=file://%L/%U/.profile]file://%L/%U/.profile[/url]
    logon drive = H:
    logon path =
    [url=file://%L/profiles/%U]file://%L/profiles/%U[/url]
    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
    [email=list=@mis,jona]list=@mis,jona[/email]
         允许写入的是属于群组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的超级用户。à成功加入域后会要求重新启动计算机。


    历史上的今天:


    收藏到:Del.icio.us