作者:杨鹏

国内用户的中小型网络大量采用了WindowsNT作为网络操作系统(NOS),提供诸如用户管理、文件共享等基本网络服务。如果出于工作上的考虑,必须使用WindowsNT域模型来管理网络,同时出于性能、经济或者其它方面的考虑,又想放弃NT那样复杂的管理、昂贵的许可和不太高的效率,那么就请进入自由的Samba世界!Samba是一套自由的、开放源代码的软件。一位传说中的高手,依据Windows网络的基本协议——SMB(ServerMessageBlock),编写了一套将Unix系统与Windows网络完全融合的软件。因为Samba刚好包含S、M、B三个字母,所以这一整套系统被命名为Samba。

Samba与Windows网络

Windows系列操作系统通过“网上邻居”提供了便捷的网络资源访问。这实际上是Windows浏览服务(请勿与Internet上的Web浏览混淆)提供的支持。Windows浏览服务基于NetBIOS(名字),每台Windows主机都会向网络发送Windows浏览信息,并保留一份网络主机名单。这样,当打开网上邻居的时候,就可以看见所有机器的NetBIOS名字。由于这份名单定时更新,所以当某些机器关机后,我们仍然能够在网上看见它。

在域模式出现以前Windows网络是基于工作组的,每台主机都要负责维护自己的用户名/密码,以及共享资源认证。这样难于保证网络的安全和性能,而且访问不同机器的不同资源都要提供相应的密码,非常繁琐和低效。根据商业用户对安全和工作效率的要求,Windows商业网络提出了域的概念。在带有域的Windows网络中,主域控制器自动成为主浏览服务器,负责提供并维护这份名单,其它WindowsNT机器可以竞选成为辅助浏览服务器协助工作。域提供统一的安全措施,所有用户的认证和资源共享工作由主域控制器进行管理,可以实现整个域内一次认证、处处通行的目的。

Samba是一套自由的、开放源代码的软件,虽然无法公开得到应有的技术资料(因为SMB协议是私有的),但它还是逐步发展起来。现在,Samba已不是简单的Unix/Linux与Windows间的桥梁,它可以让Unix系统代替NT主域控制器管理整个Windows网络。这样,我们不需要真正的NT服务器,也可以构建真正的Windows域网络。

Samba能够模仿NTPDC向网络发送PDC竞选消息,并允许Windows客户机登录,就像一台NTPDC所做的那样。它会在启动时告诉其它Windows机器:我是主域控制器,登录认证找我好了。此时域中就不能再有其它声明为PDC的NTServer了,否则会导致PDC竞选失败,并且Samba必须提供域登录,这样Windows客户才能在启动时输入用户名、密码和域名登录到域。需要注意的是,此时的安全级别必须是user,因为server和domain级别的认证都需要其它服务器配合,而PDC却只有一个。这样,实际上使用了本地密码,最后出于安全的考虑必须使用加密密码。

服务器的配置

下面是Linux下作为PDC的Samba服务器的基本配置:

[global]

……其它全局参数……

workgroup=Samba.net

netbiosname=PDC

securety=user

domainlogons=true

encryptpasswords=true

domainmaster=true

preferredmaster=true

localmaster=true

……

domainlogin表示Samba提供客户机的域登录;encryptpasswords表示使用加密的密码;domainmaster表示Samba宣告自己是这个域的主域控制器;preferredmaster则是附加的竞选选项;localmaster让Samba不但提供域浏览,也提供本地浏览服务。

这样配置以后,根据NT域管理还要添加域用户。这个步骤很简单:

首先创建一个本地Unix账号:

useradd-rmyaccount

这条命令创建了一个名为myaccount的普通Unix用户。

然后根据它创建一个Samba用户:

smbaddusermyaccount:mysmbact

或者是:

smbpasswd-amyaccount

客户端设置

普通的Windows9X(95/ME)客户端设置非常简单,因为完全不需要设置就可以正常登录到Samba.net域。它根本不知道域控制器已经由NTServer变成了SambaServer。它可以执行登录脚本,可以应用系统策略和用户配置文件,以及其它需要在NTServer上完成的所有事情。

如果客户端是NT4.0/2000就麻烦一点,因为NT的域认证基于机器信任账号来进行。所以必须在Samba服务器上先创建机器账号。下面以一个名为w2000的计算机为例(由于这部分NT和2000差别不大,我们通称为NT):

useradd-d/dev/null-rw2000$-s/bin/false

我们创建了一个Unix本地账号,出于安全考虑不需要它登录到Linux进行任何操作,因此它的用户目录是/dev/null,Shell是/bin/false。

然后,我们就可以用smbpasswd创建相应的Samba机器账号:

smbpasswd-a-mw2000

其中,-a是添加,-m是机器信任账号。这样,依据w2000$的Unix账号创建了一个NT域的机器信任账号w2000。

如果在安装NT时加入Samba域,可以直接选择将机器加入到域中,但最好不要选择在域中添加计算机账号。因为这样必须在Linux上设置相应的执行脚本,对初学者来说不但麻烦,而且极易出错。

如果在已安装的NT工作站上重新加入到域,会要求提供可在域中添加账号的用户名和密码,比如普通NTServer上的Administrator,在Samba服务器上可以用root组的成员来完成这一操作。如果不敢确定,我们可以创建一个root的Samba账号:

smbadduserroot:root

输入两遍口令。

这样,Samba的工作就完成了,在NT客户端上执行更改用户或网络ID(Win2000),输入用户名(Samba密码文件中必须存在这个用户)、域和密码,就会加入到Samba域。如果要提供可以添加账号的用户名,使用前面的root即可。

结束语

通过SambaPDC,我们可以将Windows网络管理全部纳入Linux之中,从而利用Linux配置、管理灵活的特点,可以方便地实现文件共享认证、打印机共享和其它一些常用的功能。

由于SMB协议的性质,Samba开发小组无法获得协议细节。因此,目前的SambaPDC对较为复杂的域结构支持尚不够完善。

例如,它不支持其它WindowsNT服务器作为备份域控制器(BDC)。也就是说,域中只能存在一个域控制器。在大型网络中,大量的认证会话可能会影响服务器性能。

另外,它在客户端对文件共享进行管理时可能存在一些问题,而且不支持多主域结构,无法建立两个域之间的信任关系。我们相信这些问题都会被一一解决。

nt服务器需要的协议,构建没有NT服务器的NT域相关推荐

  1. Web服务器群集——公有CA构建阿里云服务器HTTPS

    公有CA构建阿里云服务器HTTPS 一.准备工作 1.1 服务器购买 1.2 域名购买及解析配置 二.SSL证书申请 三.服务器配置 四.登陆浏览器测试 一.准备工作 ECS服务器 域名 DNS HT ...

  2. linux下最好的ftp服务器,用Linux系统构建高效FTP服务器

    配置虚拟用户FTP 上面配置的FTP服务器有一个特点,就是FTP服务器的用户本身也是系统用户.这显然是一个安全隐患,因为这些用户不仅能够访问FTP,也能够访问其它的系统资源.如何解决这个问题呢?答案就 ...

  3. 服务器禁用网络协议,启用或禁用服务器网络协议

    启用或禁用服务器网络协议 03/14/2017 本文内容 适用于: SQL Server(所有支持的版本) SQL Server 所有网络协议都是由 安装程序安装的,可以启用也可以禁用这些网络协议. ...

  4. go高性能tcp服务器,在Go中构建并发TCP服务器

    开发一个并发TCP服务器,该服务器仅使用大约65行GO代码生成随机数. TCP和UDP服务器随处可见,通过TCP/IP网络为网络客户端提供服务.在本文中,我将在GO编程语言,返回随机数.对于来自TCP ...

  5. Dell服务器串口开机协议,dell和ibm服务器串口重定向功能的配置.docx

    09:14:43Tue Aug 09, 2011 09:14:43 Tue Aug 09, 2011 Serial Communication Serial Port Address Externa ...

  6. 无盘工作站给服务器ip地址协议,如何给无盘工作站安装TCP IP协议

    一.准备工作 给Windows NT无盘工作站安装TCP/IP协议,必须先在Windows NT服务器上安装设置DHCP服务,为无盘工作站自动指定IP地址和子网掩码. 二.给无盘站安装配置TCP/IP ...

  7. Python 高级:05 HTTP 协议和静态 Web 服务器

    一.HTTP 协议 1. HTTP 协议的介绍 HTTP 协议的全称是(Hyper Text Transfer Protocol),翻译过来就是超文本传输协议.超文本就是超级文本的缩写,是指超越文本限 ...

  8. ftp服务器 无线路由器,用无线路由器构建FTP服务器 快乐大家分享

    ftp(文件传输协议)诞生之后,便迅速地得到了推广和应用,而依据此协议提供服务的ftp服务器在运行时,用户可以通过Internet连接到服务器上下载文件,同时将自己的文件上传到ftp服务器上,大大地方 ...

  9. linux系统构架ftp,用Linux系统构建高效FTP服务器

    在众多网络应用中,FTP(文件传输协议)有着非常主要 的地位.Internet中一个十分主要 的资源就是软件资源,而各种各样的软件资源大多数都放在FTP服务器中.与大多数Internet服务一样,FT ...

最新文章

  1. Java事务(转载)
  2. php手绘功能,基于纯CSS3的6种手绘涂鸦按钮效果
  3. 使用session防止表单进行重复提交
  4. selenium java 验证码_如何使用Selenium WebDriver和Java从图像(验证码)中读取文本
  5. kali 安装volatility_kali对Windows内存在线取证
  6. Win10还原被Windows Defender隔离的文件
  7. Hibernate 基础配置及常用功能(二)
  8. kafka 支持发布订阅
  9. mysql引擎innodb与ndb比较_mysql存储引擎InnoDB 1.1、NDB 7.5对比
  10. Atitit 词法分析器的设计最佳实践说明attilax总结
  11. java 根据银行卡号来获取银行名称
  12. 抖音短视频去水印网址 视频消重后,火山还是鉴别出来了
  13. scrapy 抓取 google play 应用信息
  14. linux找不到安装命令,linux命令行为什么输入sudo ./configure提示找不到命令
  15. 日常开发中常见英语单词(都总结好啦)
  16. 刀具的磨损与破损、刀具寿命及刀具状态监控
  17. CSS餐厅小游戏练习1~32关(附答案和链接)
  18. 【Linux】使用systemd设置开机自启动命令
  19. JavaWeb——黑马程序员课程笔记
  20. C 语言 大小写字母转换程序

热门文章

  1. xutils使用流程
  2. java的数组(一维)
  3. yum安装jdk1.8
  4. Docker实践(三)容器
  5. object not found php,找不到PHP错误对象
  6. icd植入是大手术吗_母狗绝育是大手术吗?手术完需要住院吗?绝育后是不是会变胖?...
  7. java jws-_为JWS应用程序启动指定JRE位置
  8. php短链接api,PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
  9. Visual Studio Code 1.49 发布
  10. GitHub 公开 B 站寄来的 DMCA 删除通知