FreeBSD连载(68):根据Windows网络设置Samba

发表于:2007-07-01来源:作者:点击数: 标签:
根据Windows网络设置Samba 使用SMB协议实现的网络的情况非常不同,有的网络仅仅由几台Windows计算机组成,只需要提供计算机之间最简单的资源共享,并不需要一个中心控制点 ── 文件 服务器 提供服务,而有的网络由多个物理网络通过路由器连接而成,网络中拥

根据Windows网络设置Samba

  使用SMB协议实现的网络的情况非常不同,有的网络仅仅由几台Windows计算机组成,只需要提供计算机之 间最简单的资源共享,并不需要一个中心控制点 ── 文件服务器提供服务,而有的网络由多个物理网络通过路由器连接而 成,网络中拥有多种文件/打印服务器,网络中的操作系统也各不相同,包括Windows和Unix

  Samba服务器能适应这些不同要求的网络的不同要求,然而由于网络的需要各不相同,因此对Samba的设置 也不相同。如何根据需要来规划网络、设置Samba是一个灵活但复杂的问题,同时存在各种各样的设置方式都能满足用户 的需要,这里给出的只是一种可行性建议。

  • 小型网络,无NT服务器

  这种网络的特征是网络资源的使用程度不大,通常所有的计算机都位于一个局域网内,几乎没有专用文件/打印服务 器。所有的计算机均使用工作组方式相互访问。此时使用Samba服务器的目的是为了更好的利用网络资源,提供方便的文 件/打印服务。

  在这样的网络中,仅仅需要最简单的文件/打印共享服务。虽然共享级认证方式能够满足此时的需要,但是最好使用 用户级认证方式,因为只有这样才能充分发挥服务器提供服务的优势。需要为每个使用者在FreeBSD服务器上分别建立 帐户,这样缺省设置就自动为用户共享其个人目录,用做私人数据的保存。为了网络用户之间的相互交换数据,可以设定一个 公用共享目录,例如上面例子中的[public]共享目录。

  由于Samba服务器具有优秀性能,最好将Samba服务器设置为本地的Browser,仅需要设置local master参数,并给os leverl一个较大的值就能达到目的。可以不使用nmbd的名字解析能力用做名字 服务器,因为此时都在一个物理网络内,b-node广播方式能够提供正确的解析。

  当为Windows 98或者Windows NT SP3提供认证的时候,它们将使用加密过的口令进行认证 ,这能提供更大的网络安全性。Samba服务器也能提供这种认证,然而对于这样的小型网络,使用原有的非加密口令认证 方式就足够了,因为口令不会跨越网络传输,安全问题限制于本地网络内部。在Samba的文档中,提供了将Windows 98或Windows NT SP3设置为原有认证方式的注册表信息,分别为/usr/local/share/examples/samba 目录下的Win95_PlainPassword.reg和NT4_PlainPasswor.reg文件。

  • 小型网络,与NT服务器相互协作

  这种网络中存在一个或几个Windows NT服务器,因此网络中的关键问题是认证的策略问题。有的网络中使 用分散式的认证策略,即各个服务器各自认证使用自己资源的客户,适合网络上服务器属于不同管理者的情况,另一种情况是 希望在访问多个服务器时使用一致的认证,无论是在NT服务器还是在Samba服务器,对于同一个用户只需要使用一个口 令就能使用网络资源。

  当使用分散认证策略的时候,Samba服务器可以使用缺省设置security=user,当要求Samba 服务器和NT服务器认证同样的用户的时候,可以使用security=server,让NT服务器来认证用户,此时还 需要设置password server的名字,以设置提供认证的NT服务器的名字。

  由于是使用NT服务器对用户进行认证,然而NT上的用户与FreeBSD用户的名字可能不同,为了将NT用户 重新映射到FreeBSD上的Samba用户,就需要进行用户名的映射。这需要使用username map参数,这 个参数设置一个用于用户名映射的文件名,在这个指定的文件中,可以设置FreeBSD用户(或用户组)等价于哪个NT 用户(或用户组)。

  • 具备多个物理网段的网络

  如果用户的网络跨越了多个物理网络,为了实现浏览,最重要的问题就是设置使用名字服务器进行名字解析。此时可 以选择使用Samba的nmbd作为名字服务器,也可以使用Windows NT的WINS服务器作为名字服务器。

  但如果计划在网络上使用多个NetBIOS服务器,以提供相互备份的能力,就只能使用多个Windows NT 来运行WINS,WINS的一项功能是具备相互复制的能力,而nmbd不能和其他WINS服务器相互复制数据。WINS 使用这个功能主要是用于克服系统操作本身的故障,以提高可靠性。对于一般的网络,使用一个名字服务器,尤其是运行 在高稳定性的FreeBSD系统之上的Samba,可靠性就能满足网络的需要。当然偶然发生的物理故障是无法避免的, 这样将使用分布在不同地点的多个服务器会有一定的帮助。

  当选择好了名字服务器的设置策略,就可以决定Samba是用作名字服务器,还是普通的使用名字服务器的客户机 。Samba可以同时设置为名字服务器和客户,这并不冲突。还可以设置Samba为wins proxy和dns proxy ,为不能使用wins和dns进行名字解析的NetBIOS客户提供b-node方式的代理解析。

  当网络使用的是分散式的工作组方式的时候,要实现跨越子网的浏览,Samba服务器就担任了重要的角色。因为 不存在域控制器,此时Samba要设置成为Domain master Browser,以提供不同子网间的Local master Browser相互交换浏览信息。

  如果远程网络中的计算机不使用本地的Samba作名字服务器,该网络中的Domain master Browser 也不与本地网络的Local Master Browser交换信息,那么那个网络上的Brower就无法了 解本地上的资源列表。作为本地Browser的Samba服务器能使用一种折衷的方法来通知远程网络上的Browser ,告诉它本地网络提供的资源服务,这就称为remote announce,并能用于远程网络中的浏览信息与本地网 络同步。为了使用remote announce,需要设置remote announce和remote brow se sync参数,使用的设置值为远程网络的广播地址,如192.168.1.255,可以同时设置多个地址,以同 步多个远程Browser。

  如果网络中使用NT域认证方式,就不要让Samba和域控制器争夺Domain master Browser 的权利,Samba还不能设置为PDC为整个域服务。因此需要设置domain master=no,但可以让Samba 服务器在没有PDC的子网中担当Local master Browser的任务,即设置local master=yes。

  当前NT服务器使用SAM数据库用于保存认证信息,但是下一代NT服务器将转向kerberos认证方式,这 种认证方式本来就是在Unix上开发的,更有利于与Samba软件集成在一起。

  此时也可以使用NT的域控制器提供认证(设置security=server,并将password server 设置为PDC或BDC),以使得Samba服务器能承认域控制器认证过的用户。这样客户技术就可以使用加密认证 方式,因为Samba服务器不进行认证,仅仅是把认证信息转发给相应的NT服务器进行认证。

  • 支持加密口令认证

  前面提到过为了适应Windows 98和Windows NT 4.0 SP3之后的客户使用加密过的口令 认证方式,可以将客户计算机再次设回使用普通口令认证方式来解决认证问题,然而当客户可能跨越子网进行认证的时候,就 应该使用加密认证,以防止口令明文跨越子网传输,提供更高的安全性。

  为了支持加密口令认证,就需要使用独立于FreeBSD系统口令文件之外的认证系统,需要在smb.conf 中的[globals]中增加设置为:

clearcase/" target="_blank" >cccccc width=100%>
encrypt passwords = yes null passwords = yes smbpasswd file = /usr/local/private/smbpasswd

原文转自:http://www.ltesting.net