• samba后台进程及安全模式简介


    识别 Samba 后台程序
    Linux 服务器通常作为守护程序(daemon) 来实现,这一词源于希腊神话,其中守护神(daemon)是超自然生物。Linux 守护程序在后台运行以便执行一些有用的任务。Samba 服务器套件由几个守护程序组成,包括 smbd、nmbd 和 winbindd。swat 程序是另外一个 Samba 服务器,但是其通常都是从一个超级服务器运行,因此在技术上不是守护程序。
    了解 smbd
    smbd 程序提供 Samba 的大部分核心功能。其职责包括:
    提供文件和打印机共享。此功能可以说是一个最重要的 Samba 职责,smbd 执行此功能。
    验证用户。smbd 针对本地数据库验证用户或传递验证请求到另一台计算机。如果您的 Samba 服务器被配置为域控制器,则 smbd 还可从其他计算机响应验证请求。(在 设置您的安全模式 中将描述工作组和域配置)。
    提供时间服务。Samba 可以告诉其他计算机当前的时间;smbd 可处理此细节。
    默认情况下,smbd 守护程序绑定到 TCP 端口 139 和 445。SMB 协议通过 TCP 上的 NetBIOS 使用端口 139,它是许多旧客户端使用 SMB/CIFS 的方式。端口 445 在 TCP 服务上提供简单的 SMB,它是访问 Samba 服务器的新客户端数。
    由于这些职责的关键性质(尤其是,提供文件和打印机共享及验证),smbd 可视为是 Samba 的核心。实际上,可以使用诸如 Samba 自己的 smbclient 等的程序连接到单独运行 smbd 的计算机以便执行文件传输。然而一些客户端依靠其他 Samba 守护程序提供的服务。
    了解 nmbd
    第二个关键的 Samba 守护程序是 nmbd。此服务器的主要职责是处理名称相关的任务。您可以将其视为 Samba 自己版本的域名系统(DNS),只是它更易于配置且远没有 DNS 复杂。nmbd 执行的特定任务包括:
    对名称广播进行响应。在操作的一个通用模式中,客户端将名称查询广播到整个网络段。nmbd 服务器监听此类广播,并且在 Samba 配置为使用正在查询的名称时,该服务器将进行响应。在将其配置为另一计算机或网络的代理时,它也会响应。
    注册 NetBIOS 名称。为使 NetBIOS 名称解析正常进行,计算机必须注册其名称,通过集中的 NetBIOS 名称服务器(NBNS;又名 Windows Internet 名称服务(Windows Internet Name Service [WINS]) 服务器)或通过广播名称并作为整体与网络协商其权利。nmbd 负责执行此操作并与其他注册名称的计算机进行协商。
    作为 NBNS 服务器运作。Samba 可被配置为 NBNS 系统,在这种情况下,nmbd 可处理这些职责。
    作为主浏览器运行。用户体验 SMB/CIFS 网络的一部分是浏览— 浏览网络上的服务器的能力就像您浏览硬盘上的目录。此功能依赖于主浏览器 的存在,它收集并传播浏览列表。在 Samba 作为主浏览器运行时,它是从事此项工作的 nmbd。
    正如此列表所示,nmbd 执行很多工作。虽然它们不涉及提供文件或打印机,但是许多任务都是任何 SMB/CIFS 服务器的重要部分,因此 nmbd 应被认为是 Samba 的重要部分。它通常通过分布的启动脚本与 smbd 一起运行。
    虽然大多数 nmbd 的功能都需要将其绑定到 TCP 端口 137,但是主浏览器职责涉及用户数据报协议(User Datagram Protocol)端口 138。
    了解 winbindd
    第三个 Samba 守护程序是 Winbind 守护程序,即 winbindd。不同于 smbd 和 nmbd,winbindd 不为远程计算机提供服务;相反,它作为 Windows®(或 Samba)域控制器与本地计算机自己的可插拔验证模块(Pluggable Authentication Modules)工具之间的接口,允许域控制器来托管 Linux 帐户信息。
    在许多分布上,winbindd 被安装在与 Samba 的其余分布不同的包中 — 通常在称为 winbind 或 winbindd 的包中。它还通常被分别发布。原则上,您可以在不运行 Samba 服务器或或甚至用作 SMB/CIFS 客户端的计算机上运行 winbindd,除了 winbindd 是 SMB/CIFS 客户端之外。不过,在实践中,如果其正在运行 winbindd,那么您可能运行 Samba 服务器或使用 Linux 计算机作为 SMB/CIFS 客户端。
    设置您的安全模式
    Samba 提供一些关于如何验证用户的选项。最重要的是 security 选项,它取五种可能的值:
    Share。此安全模式尝试模拟 Microsoft® Windows 9x/Windows Me 操作系统使用的验证方法,其中忽略用户名且密码与共享关联在一起。要做到这一点,Samba 尝试将客户端提供的密码用于各种用户名。
    User。此安全模式是默认的,它使用用户名和密码进行验证,这类似于 Linux 通常工作的方式。在现在系统的大多数情况下,密码存储于仅 Samba 加密的密码数据库中。
    Server。如果您想要 Samba 遵从另一个服务器进行验证,请使用此验证方法。对于客户端,虽然此方法看上去像用户级验证,但是 Samba 联系通过 password server 参数指定的服务器来进行实际的验证。
    Domain。使用此方法,您可以完全加入 Windows 域,其看上去像针对客户端的用户级验证。与服务器级别验证不同,域验证涉及更安全的域级别密码交换。同时,完全加入域需要在 Samba 系统上或也可能在域控制器上运行额外的命令。
    ADS。此验证方法工作非常像域验证;然而,其需要 Active Directory® Domain Services 域控制器。
    作为一般规则,如果您的 Samba 服务器是 Windows 工作组(它是 SMB/CIFS 网络的基本形式)的成员,那么用户级验证是最佳的选择。工作组不同于域,主要是因为域提供域控制器,它是为域提供验证服务的服务器。要使用域控制器,您必须使用服务器级别、域级别或 ADS 级别 security。服务器级别安全是最简单的配置但最不安全,而 ADS 级别安全最难于配置但最安全。
    要完全加入域以获得域级别或 ADS 级别安全的,您必须在 smb.conf 文件的 [global] 部分中设置几个选项:
    password server = DOMCONT
    domain logons = No
    encrypt passwords = Yes
    DOMCONT 系统是域控制器。您还必须在应该加入域的 Samba 服务器上键入以下命令:
    # net join member -U adminuser
    您还可能需要配置域控制器以便接受 Samba 服务器到域中。
    共享级别安全已经过时;它的存在主要是为了为旧的无法理解用户名的客户端提供兼容性。它对于一些您可能想提供最少安全的共享类型(如打印机共享)也是有用的。因为 Linux 需要帐户用于所有访问,所以 Samba 尝试针对一系列帐户而提供的密码直到获得一个匹配或它们都失败。这些帐户包括:
    访客帐户(通过 guest account 参数设置),如果 guest only = Yes
    客户端提供的用户名(不是所有客户端都提供一个,而是只有一些客户端这样做)
    用于客户端计算机的最后访问的用户名
    被访问的共享名称
    客户端的 NetBIOS 名
    通过 username 参数指定的任何用户名

  • 相关阅读:
    python基础学习文件内容的操作
    python基础学习字符串操作
    python基础学习运算符
    python基础学习列表
    centos一键安装nginx
    centos6添加整段多IP脚本
    Ubuntu 添加整段多IP脚本
    安装python2.7
    两位float型的小数相加,不会变成两位小时的处理方法
    mysql 5.7 执行group by 语句报错
  • 原文地址:https://www.cnblogs.com/rusking/p/3976808.html
Copyright © 2020-2023  润新知