摆脱 NT,拥抱 Linux

作者:David C. Smith

您可能最近听到了很多关于企业环境中使用 Linux 的传言。我一直听到“Linux 很棒,但还没有为生产环境做好准备”以及“我不会将我的业务托付给 Linux”。最近,随着 Linux 获得的所有媒体关注,现在是澄清事实的时候了。作为一个长期的 UNIX 用户,我几年前就加入了 Linux 的行列。我已经在生产环境中使用过 Linux,并且认识很多也在这样做的朋友。

目前有许多 Web、邮件和数据库服务器在生产系统中使用,并且一直在增加。 Linux 的成功案例包括 NASA 使用 Linux,以及用于创建电影特效。那么,Linux 是否为黄金时段的生产环境做好了准备? 当然! Linux 是否准备好取代您的企业局域网中的 Windows NT 服务器? 是的! 我将带您构建一台 Linux 服务器,它将更稳定、更快、更易于维护且成本更低。

在设置 Linux 文件和打印服务器时,您会发现比我在这个简单场景中使用的更多的配置和自定义选项。要了解有关不同选项和配置的更多信息,请参阅本文末尾的“资源”部分。

SMB 背景

Windows 机器使用名为服务器消息块 (SMB) 的协议来执行文件和打印共享作为网络服务。 SMB 协议定义了客户端如何与服务器通信以请求打印机、文件、安全验证等。 SMB 已经存在很长时间了,并且有一些限制,需要进行一些思考。 SMB 请求和响应基于本地广播的 NetBIOS 名称,通常是服务器名称。 这给路由器分隔网络(如 Internet)的(路由)环境带来了问题,因为广播不会通过路由器。 这就产生了从 NetBIOS 名称到 IP 地址的转换需求。 微软将此解决方案实现为 Windows Internet Name Service (WINS)。

SMB 也用于目录服务。 大多数用户将目录服务视为他们桌面上的“网上邻居”功能。 它不仅仅是这样,但足以入门。 重要的是要跟踪网络上的哪些机器以及它们提供的服务。 节点通过选举一个“浏览主控”来做到这一点,该主控跟踪网络上的哪些计算机。 当 SMB 机器启动时,它们会广播它们的名称和服务信息供所有人收听。 当选的浏览主控维护这些名称的数据库,并将响应来自本地机器的请求。 此浏览主控可以从不同网络上的其他浏览主控更新,并可以共享其自身的信息。

Windows NT 服务

首先,让我们看一下一个示例 Windows NT 网络,看看提供了哪些服务(图 1)。 Windows NT 服务器已被配置为文件和打印服务器。 用户使用其“Microsoft 网络客户端”服务及其网络凭据登录到 Windows NT 服务器。 用户验证通过后,将执行登录批处理文件,该文件分配用户的家目录、各种网络驱动器和打印机。 NT 服务器还跟踪网络上的哪些计算机以及它们提供的服务; 客户端可以在“网上邻居”中使用此信息。

Getting the NT Out—And the Linux In

Linux 方面

Linux 可以使用 SMB 通过名为 Samba 的软件包与 Windows 和基于 DOS 的客户端通信。 Samba 套件最初由 Andrew Tridgell 创建,现在由 Samba 团队开发。 Samba 套件目前在全球大约四十个不同的平台上运行。 Samba 的主要服务器守护进程是 smbdnmbd,发音为“SMB-Dee”和“NMB-Dee”。 smbd 为 Windows 和 DOS 客户端提供文件、打印和身份验证服务,而 nmbd 提供 NetBIOS 名称解析和浏览服务 (rfc1001/1002)。 使用这些软件包,Linux 可以轻松提供与我们的 NT 场景相同的服务。

构建 SAMBA 服务器

从 SAMBA 站点获取 samba-latest.tar.gz 文件,并使用以下命令将其解压缩到临时目录

tar -xvzf samba-latest.tar.gz

切换到此目录,并查看 README 文件以获取任何特殊信息。 在熟悉文档后,使用以下命令开始安装

cd source
 /configure
make
make install
一旦 make install 完成,smbd 和 nmbd 应该就可以进行配置了。

在阅读 Samba 文档时,您会发现许多不同的方法来配置 smbd 和 nmbd。 Samba 套件具有广泛的功能,允许 Linux 集成和补充 NT 服务器和服务,但我们将配置我们的 Linux 服务器来替换图 1 中显示的 NT 服务器。 具体来说,我们将配置 Samba 来验证用户身份并运行我们的登录批处理文件,提供文件和打印共享,并提供网络浏览服务。

首先编辑 smbd 初始化文件 smb.conf。 默认情况下,它位于 /usr/local/samba/lib/smb.conf 中,但有时在 /etc/smb.conf 中找到。 我想强调的是,smb.conf 文件中可以配置许多功能,而我只是从基础知识开始。

全局参数

security = user 是 Samba 2.x 的默认安全设置。 这会将 Samba 配置为要求用户提供身份验证才能访问服务器。 要了解 Samba 如何与 NT 域和服务器协同工作,请参阅 Samba 文档中的“Security = Domain”。

iworkgroup = MyGroup 控制您的服务器在客户端查询时将显示的​​工作组。

encrypt passwords = Yes 控制是否与客户端协商加密密码。 Windows NT 4SP3+ 和 Windows 98 默认会期望使用加密密码。

min passwd length = 6 设置 smbd 在执行 UNIX 密码更改时将接受的明文密码的最小字符长度。

smb passwd file = /etc/smbpasswd 设置加密的 smbpasswd 文件的路径。 默认情况下,smbpasswd 文件的路径被编译到 Samba 中。 我总是添加这个以减少混淆。

logon script = STARTUP.BAT 指定批处理文件 (.bat) 或 NT 命令文件 (.cmd),当用户成功登录时,该文件将被下载并在计算机上运行。 该文件必须包含 DOS 样式的 cr/lf(回车符/换行符)行尾。

如果 domain logons = Yes 设置为 true,则 Samba 服务器将为其所在的工作组提供 Windows 95/98 域登录。 有关设置此功能的更多详细信息,请参阅 Samba 文档中的文件 DOMAINS.txt。

domain master = Yes 启用 WAN 范围(广域网)浏览列表整理。 设置此选项会导致 nmbd 声明一个特殊的特定于域的 NetBIOS 名称,该名称将其标识为其给定工作组的域主浏览器。 同一工作组中广播隔离子网上的本地主浏览器将向此 nmbd 提供其本地浏览列表,然后将向 smbd 请求整个 WAN 的浏览列表的完整副本。 然后,浏览器客户端将联系其本地主浏览器,并将收到域范围的浏览列表,而不仅仅是其广播隔离子网的列表。

preferred master = Yes 是一个布尔参数,用于控制 nmbd 是否为其工作组的首选主浏览器。

设置网络共享

这就是我们的全局参数的全部内容。 我们现在可以继续创建网络共享。 通过设置 [homes] 部分,我们的服务器可以动态创建家目录映射

[homes]
comment = Home Directories
read only = No
create mask = 0750
browseable = No

现在让我们创建一些共享供用户访问。 共享定义应包括路径、谁可以访问共享(有效或无效)以及共享是否可写。 默认情况下,如果没有定义有效的用户或组,则共享对任何客户端开放,因此在创建共享时请记住这一点。 在 apps 共享中,我选择创建 UNIX 组 all_users,其中仅包含我的本地用户。

[apps]
comment = Apps Directory
path = /shares/apps
valid users = @all_users
read only = No
[project1]
comment = Project 1 Directory
path = /shares/proj1
valid users = dcsmith kholmes joe katie redpup
read only = No
最后,我设置了我的 netlogon 家目录。 这将设置为我的 netlogon 脚本的相对路径。 在此示例中,我的登录脚本位于 /etc/netlogon/STARTUP.BAT。
[netlogon]
path = /etc/netlogon
完整的 Samba 配置文件如列表 1 所示。

列表 1

Samba 守护进程

下一步是启动 Samba 守护进程。 在检查一切后,您可能想要将其添加到您的系统启动程序中。

/usr/local/samba/bin/smbd -D -s
/usr/local/samba/lib/smb.conf
/usr/local/samba/bin/nmbd -D
故障排除

如果一切顺利,smbd 和 nmbd 都已成功启动。 如果没有,请通过阅读 /var/adm/logs 中的日志文件并查看 Samba 站点的常见问题解答来开始故障排除。

故障排除实用程序位于 Samba bin 目录中,包括 testparm(它将解析您的 smb.conf 以查找错误)、smbstatusnmblookup(用于 NetBIOS 名称问题)。

设置 Samba 密码文件

现在是时候将您的用户和密码添加到您的 smbpassword 文件中了。 需要注意的一点是,用户还必须具有 UNIX 帐户密码。 关于密码有很多选项,例如远程密码同步和 NT 域和直通身份验证,以帮助您解决更大的管理问题。 在我们的例子中,用户帐户在我们的本地 Linux 机器上。 此命令将创建一个 SMB 帐户,然后提示您更改密码。

/usr/local/samba/bin/smbpasswd -a testuser

您现在应该能够以 testuser 身份登录,并通过您的 Windows 机器进行身份验证并访问网络共享。 非常有趣,不是吗? 一旦您启动并运行,您将想要使用 Samba 提供的一些工具和实用程序。 其中一个更有用的实用程序是 SWAT,这是一个基于 Web 的管理工具,可帮助监视和配置几乎所有 Samba 配置。 如果您的系统上没有 SWAT,您可以在 Samba 主页上找到它以及更多信息。

总结

希望我为您提供了足够的信息和灵感来构建 Linux 文件和打印服务器。 虽然我不建议您立即冲出去替换您的生产 NT 服务器,但请给 Linux 服务器一个机会。 我敢打赌,您会发现它们更稳定、更可靠,并且远程管理更容易。 Samba 团队一直在不断改进 Samba 产品,使其具有更多更好的功能和实用程序。 随着 Linux 解决方案越来越成为现实,我相信您会发现 Linux 文件和打印服务器是一种高效、节省成本的工具——这将使您和您的部门预算都感到满意。

资源

Getting the NT Out—And the Linux In
电子邮件:dcsmith@duderman.com

David Smith (dcsmith@duderman.com) 居住在弗吉尼亚州斯普林菲尔德。 他在 TimeBridge Technologies 工作,担任工程经理,负责管理客户网络。 不工作时,他要么在棒球比赛现场,要么在等待棒球赛季开始。

加载 Disqus 评论