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


但如果计划在网络上使用多个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,以提供不同子网间的Localmaster Browser相互交换浏览信息 。
如果远程网络中的计算机不使用本地的Samba作名字服务器,该网络中的Domain master Browser也不与本地网络的Local Master Browser交换信息,那么那个网络上的Brower就无法了解本地上的资源列表 。作为本地Browser的Samba服务器能使用一种折衷的方法来通知远程网络上的Browser,告诉它本地网络提供的资源服务,这就称为remote announce,并能用于远程网络中的浏览信息与本地网络同步 。为了使用remote announce,需要设置remote announce和remote browse 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]中增加设置为:
encrypt passwords = yesnull passwords = yessmbpasswd file = /usr/local/private/smbpasswd然后使用命令smbpasswd -a user,将用户user及其口令加入指定的口令文件smbpasswd文件中,这样在进行认证时,就能通过这个smbpasswd文件中的设置,通过口令的加密认证方式进行认证了 。然而此时将绕过系统标准认证过程,原有的用户数据必须重新一个一个加入smbpasswd文件中才能完成认证,没有添加到这个文件中的用户就无法完成认证以使用系统资源 。其中null passwords的设置不是必须的,只是WindowsNT中一般许可用户使用空口令,这项设置用来与Windows NT的设置保持一致 。加密口令文件smbpasswd在FreeBSD系统下缺省位于/usr/local/private目录中 。

推荐阅读