服务器 频道

用Samba实现Solaris与Windows资源共享

    【IT168 专稿】简而言之,Samba就是一组程序,可以使用Windows作为访问远程资源的客户本地支持,来访问非Windows服务器上的文件和打印机。可以在Samba的Web主页http://Samba.org上找到完整的镜像站点列表。

    Samba的核心是两个守护进程smbd和nmbd,服务器启动到停止期间持续运行。smbd监听139 TCP端口;nmbd监听137和138 UDP端口。smbd和nmbd使用的全部配置信息全都保存在smb.conf文件中。smb.conf向smbd和nmbd两个守护进程说明输出什么、共享输出给谁及如何进行输出以便共享。smbd进程的作用是处理到来的SMB数据包,为使用该数据包的资源与Unix 进行协商,nmbd进程使其他主机(或工作站)能浏览Unix服务器。

一、Samba的应用环境

    图1是一个使用Samba 服务器的网络结构图。在此环境中,运行Samba服务器的Solaris 10系统为所有的Windows 客户提供文件服务器和打印服务器的功能。当Samba服务器在Unix计算机上运行以后,Unix 计算机在Windows 上的网上邻居中看起来如同一台Windows计算机。另外,Samba还可以被配置成为WINS名字服务器、Windows NT/2000/2003的域控制器等。Samba可以取代Windows“网络邻居”的文件及打印机共享功能,Samba也可以完全取代NT PDC(Primary Domain Controler)成为NT网域主控者管理NT网域;若是在同一台Server架设Samba及Apache,则在办公室或校园环境内,使用者可用自己的账号及密码从Windows登入网域,再由“网络上的芳邻”进入使用者个人账号下放置网页的目录,进行编辑个人网页(传统的方式是先在个人计算机上编辑网页,再使用FTP上传)。


    图1 使用Samba 服务器的网络结构
二、Solaris 10 配置Samba

    Solaris 10 下已经包括Samba软件包,也可以下载源代码安装。如果在系统安装的时候已经包含了 SAMBA,只需要简单的配置就可以使用了。

    1 Samba文件服务器的四个安全级别:

    共享级别安全机制
    当security参数设置为share时,Samba服务器执行共享级别的安全操作。用户不需要账户及密码即可登入Samba服务器。

    用户级别安全机制
    当security参数设置为user时,Samba服务器执行用户级别的安全操作。由提供服务的Samba服务器负责检查账户及密码(是Samba默认的安全等级)。

    服务器级别安全机制
    当security参数设置为server时,Samba服务器执行服务器级别安全机制的安全操作。检查账户及密码的工作指定由另一台Windows NT/2000 或Samba 服务器负责。

    域级别安全机制
    当security参数设置为Domain,Samba服务器执行域级别安全机制的安全操作。指定Windows NT/2000域控制服务器来验证用户的账户及密码。域级别安全机制和服务器级别安全机制的不同之处:

 Samba服务器不维持和密码服务器的专用连接。只要在需要时才连接到远程的验证服务器,平时断开连接。这对密码服务器是好的, 因为Windows2000/NT是根据用户连接数量来决定发放访问许可的。

 Samba服务器可以利用Windows2000/NT的诸如信任域特征的域约束性能。

    2 配置共享级别

 #cp /etc/sfw/smb.conf-example /etc/sfw/smb.conf

    说明:samba的配置文件是smb.conf,该文件默认应该被放置在 /etc/sfw/ 目录下,默认情况下/etc/sfw/目录下有一个名为 smb.conf-example 的文件,该文件是Solaris系统提供给用户的一个配置例子。

 用文本编辑工具编辑,输入以下内容: 

[global] workgroup = hust netbios name = W1Q server string = Solaris Samba Server TestServer security = share log file =/var/log/samba/%m.log max log size = 50 [home] path = /mnt/samba writeable = yes browseable = yes guest ok = yes

    参数说明:

    [global]这段是全局配置,是必段写的。其中有如下的几行;
    workgroup 就是Windows中显示的工作组;
    netbios name 就是在Windows中显示出来的计算机名;
    server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;
    security 这是验证和登录方式,这里我们用了share ;验证方式有好多种,这是一种;
    另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;
    [home] 这个在Windows中显示出来是共享的目录;
    path = 可以设置要共享的目录放在哪里;
    writeable 是否可写,这里我设置为可写;
    browseable 是否可以浏览,可以;
    guest ok 匿名用户以guest身份是登录;

 建立共享目录

    # mkdir -p /mnt/samba

    再建立一个文件,便于测试

    # touch /mnt/samba/cjh.txt
    # chmod 777 /mnt/samba

 启动smbd和nmbd服务器

    # /etc/init.d/samba start

    下面是关闭命令
    #/etc/init.d/samba stop
    或者使用其他启动命令 : # svcadm enable samba

    查看smbd进程,确认Samba 服务器是否运行起来了,分别使用netstat和ps命令检查服务器进程情况,和端口使用情况,见图2。

    图2查看smbd进程

    看到了相关的进程号,说明samba服务器已经在工作了。也可以所有命令:svcs | grep samba 查看。

 修改 smb.conf的[global]节,加上:
unix charset = GBK dos charset = GBK display charset = GBK
    这样可以解决中文显示是乱码问题。

 访问Samba 服务器的共享;

    在 Solaris 中您可以用下面的命令来测试;

    # /usr/sfw/bin/smbclient -L //192.168.0.2

    说明:192.168.0.2是Samba 服务器IP,或者是Samba服务器的计算机别名。 如图3 。

    图3访问Samba 服务器的共享

    让Samba服务随服务器自动启动
    在/etc/rc3.d/下创建S38samba
    vi /etc/rc3.d/S38samba
    /etc/init.d/samba start
    后存盘
    chmod 755 /etc/rc3.d/S38samba
    这样就可以省去每次手动开启Samba服务了 
三、客户端访问Samba服务器

    1 Windows Server 2003 R2访问Samba服务器

    要让Windows Server 2003 R2使用Samba,就要采取下面几个简单步骤:

 在“管理工具”的“本地安全策略”中选择“网络安全:LAN Manager 身份验证级别”如图 4 。

    图4 设置网络安全:LAN Manager 身份验证级别

 这里要选择:发送 LM & NTLM—如果协商,那么还使用 NTLMv2 会话安全:客户端使用 LM 和 NTLM 身份验证,如果服务器支持,还使用 NTLMv2 会话安全;域控制器接受 LM、NTLM 以及 NTLMv2 身份验证。

 然后在运行栏目输入: \\192.168.0.2 , 可以看到已经连接到samba上了。如图5 。


    图5 Windows Server 2003 R2访问连接到samba

    2 Vista工作站访问Samba

    Vista工作站访问Samba的步骤:
 按下“Win+R”组合键,即可打开疑似消失的运行对话框,输入“secpol.msc”。
 点击“本地策略(Local Policies)”-->“安全选项(Security Options)”。如图6 。


    图6 Vista工作站的本地安全

     找到“网络安全:局域网管理器身份验证级别(Network Security: LAN Manager authentication level)”,打开它。如图7 。

    图7 Vista工作站的LAN Manager 身份验证级别

    这里同样选择:发送 LM & NTLM—如果协商,那么还使用 NTLMv2 会话安全:客户端使用 LM 和 NTLM 身份验证,如果服务器支持,还使用 NTLMv2 会话安全;域控制器接受 LM、NTLM 以及 NTLMv2 身份验证。

 然后在运行栏目输入: \\192.168.0.2 , 可以看到已经连接到samba上了。如图8。

    图8 Windows vista工作站访问连接到samba

    3 Solaris 10 访问Windows 计算机

    使用Samba的命令,可以很方便地对Windows主机共享目录进行查询和其它操作。但是,大家已经习惯了Windows图形界面,使用命令总感觉不太方便。其实在Unix里面,也一样可以使用图形界面对Windows共享目录进行操作。这里介绍一位“幕后英雄”——Nautilus,它可算是GNOME环境里的Shell(相当于Windows下的Explorer)。Nautilus既是Unix的文件管理器,又可以充任浏览器,还可以播放多媒体文件、浏览图片等。它现在又多了一个职责,就是担当Unix下的网络邻居。要打开Nautilus窗口,只需双击GNOME桌面上的主目录图标即可。要查询Windows工作组里的主机,可以在Nautilus窗口的地址栏(Location)里输入“smb://工作组名称”,然后回车即可。如图9 。

    图9 使用Unix 下的网络邻居

    然后出现对话框如图910

    图10 登陆对话框

    通过口令认证后,由于Nautilus本身就是Unix的文件管理器,所以可以任意往Windows共享目录里拷贝文件、删除文件、创建目录等。要访问 UNIX 共享位置,请双击“Unix 网络 (NFS)”对象。文件管理器窗口中会显示您可以使用的 UNIX 共享位置的列表。

    4 添加网络邻居的步骤

    要添加网上邻居,请执行以下步骤:

    1. 打开文件管理器,选择“转到”→“网上邻居”。或在桌面背景上的网上邻居对象上双击。

    2. 双击“添加网上邻居”对象。即可显示“添加网上邻居”对话框。在对话框中输入该服务器的详细信息,如下所示:

    3 单击“确定”添加网上邻居。如图11


    图11添加网上邻居

    总结:至此一个Solaris10系统上最简单也最实用的Samba服务器架设并配置成功了,后边笔者会介绍一下Samba的高级应用,敬请关注。
0
相关文章