31.5. 配置/etc/smb.conf文件

/etc/smb.conf文件是 Samba 服务器的主要配置文件,您可以在其中指定要从 Windows 计算机访问的目录,以及授权哪些 IP 地址等等。文件的前几行在[global]行下包含全局配置指令,这些指令对所有共享都是通用的,除非在每个共享的基础上被覆盖,之后是共享 sections。存在许多选项,因此务必阅读 Samba 附带的文档,以获取有关每个不同设置和参数的更多信息。

以下配置示例是 Samba 的最小工作配置文件,支持加密密码。另外,重要的是要注意,在此 Samba 配置中,我们仅注释与安全性和优化相关的参数,并保留了其他可能性供您探索。

在我们的示例中,我们仅创建了一个目录,[tmp]并且仅允许 C 类 机器 IP 地址范围连接到 Samba 服务器。此外,我们在此服务器上不使用 Samba 和 Windows 之间的打印共享功能。编辑smb.conf文件,使用 vi/etc/smb.conf并添加/更改以下参数

      [global]

      workgroup = OPENNA
      server string = R&D of Open Network Architecture Samba Server
      encrypt passwords = True
      security = user
      smb passwd file = /etc/smbpasswd
      log file = /var/log/samba/log.%m
      socket options = IPTOS_LOWDELAY TCP_NODELAY
      domain master = Yes
      local master = Yes
      preferred master = Yes
      os level = 65
      dns proxy = No
      name resolve order = lmhosts host bcast
      bind interfaces only = True
      interfaces = eth0 192.168.1.1
      hosts deny = ALL
      hosts allow = 192.168.1.4 127.0.0.1
      debug level = 1
      create mask = 0644
      directory mask = 0755
      level2 oplocks = True
      read raw = no
      write cache size = 262144

      [homes]
      comment = Home Directories
      browseable = no
      read only = no
      invalid users = root bin daemon nobody named sys tty disk mem kmem users

      [tmp]
      comment = Temporary File Space
      path = /tmp
      read only = No
      valid users = admin
      invalid users = root bin daemon nobody named sys tty disk mem kmem users
    

这告诉smb.conf文件根据此特定配置进行设置,其中

[global].

workgroup = OPENNA

选项workgroup指定当客户端查询时,您的服务器将显示在哪个工作组中。重要的是在客户端和服务器上都具有相同的工作组名称。

server string = R&D of Open Network Architecture Samba Server

选项server string指定您希望在打印管理器中的打印机注释框中,或在 Windows 机器上的 IPC 连接中向用户显示的字符串。net view命令中显示。

encrypt passwords = True

选项encrypt passwords如果设置为True指示 Samba 在与客户端协商时使用加密密码而不是明文密码。当密码被加密时,嗅探器程序将无法检测到您的密码。此选项必须始终设置为True以确保安全。

security = user

选项security,如果设置为user,指定客户端必须首先log-on使用有效的用户名和密码登录,否则连接将被拒绝。这意味着客户端的有效用户名和密码必须存在于您的/etc/passwdLinux 服务器上的文件中,以及/etc/smbpasswdSamba 服务器的文件中,否则来自客户端的连接将失败。有关smbpasswd文件的更多信息,请参阅本章中的 Securing samba 部分。

smb passwd file = /etc/smbpasswd

选项smb passwd file指定加密smbpasswd文件的路径。smbpasswd文件是/etc/passwdLinux 系统的文件的副本,其中包含允许连接到 Samba 服务器的客户端的有效用户名和密码。Samba 软件读取此文件,smbpasswd当请求连接时。

log file = /var/log/samba/log.%m

选项log file指定 Samba 日志文件的位置和名称。使用名称扩展名%m,它允许您为每个登录到 Samba 服务器的用户或机器拥有单独的日志文件,例如log.machine1.

socket options = IPTOS_LOWDELAY TCP_NODELAY

选项socket options指定您可以在 Samba 配置中包含的参数,以调整和改进 Samba 服务器以获得最佳性能。默认情况下,我们选择调整本地网络的连接,并提高 Samba 服务器传输文件的性能。

domain master = Yes

选项domain master指定将nmbd,Samba 服务器守护程序,设置为其给定工作组的域主浏览器。此选项通常必须设置为Yes,仅在一个 Samba 服务器上设置,对于同一网络和工作组中的所有其他 Samba 服务器。

local master = Yes

选项local master允许nmbd,Samba 服务器守护程序,尝试成为子网上的本地主浏览器。与上述类似,此选项通常必须设置为Yes,仅在一个充当子网本地主服务器的 Samba 服务器上设置,对于网络上的所有其他 Samba 服务器。

preferred master = Yes

选项preferred master指定并控制是否nmbdSamba 服务器守护程序,是其工作组的首选主浏览器。同样,这通常必须设置为Yes,在一个服务器上设置,对于网络上的所有其他服务器。

os level = 65

选项os level通过其值指定是否nmbd,Samba 服务器守护程序,有机会成为本地广播区域中工作组的本地主浏览器。数字 65 将胜过任何 NT 服务器。如果您的网络上有 NT 服务器,并且希望将您的 Linux Samba 服务器设置为本地广播区域中工作组的本地主浏览器,则必须设置os level选项为 65。此外,此选项必须仅在一个 Linux Samba 服务器上设置,并且必须在您网络上的所有其他 Linux Samba 服务器上禁用。

dns proxy = No

选项dns proxy如果设置为Yes指定nmbd,Samba 服务器守护程序,当充当 WINS 服务器并发现 Net BIOS 名称尚未注册时,应将 Net BIOS 名称逐字视为 DNS 名称,并代表名称查询客户端使用 DNS 服务器查找该名称。由于我们尚未配置 Samba 服务器充当 WINS 服务器,因此我们不需要将此选项设置为Yes。 此外,将此选项设置为Yes将降低您的 Samba 性能。

name resolve order = lmhosts host bcast

选项name resolve order指定使用哪些命名服务以将主机名解析为 IP 地址,以及以什么顺序解析。我们选择的参数导致本地lmhostsSamba 文件首先被检查,然后是其余的文件。

bind interfaces only = True

选项bind interfaces only如果设置为True,允许您限制哪些接口将服务于smb请求。这是一项安全功能。配置选项interfaces = eth0 192.168.1.1以下选项完善了此配置。

interfaces = eth0 192.168.1.1

选项interfaces允许您覆盖 Samba 将用于浏览、名称注册和其他 NBT 流量的默认网络接口列表。默认情况下,Samba 将查询内核以获取所有活动接口的列表,并使用任何接口,除了127.0.0.1,即具有广播能力的接口。使用此选项,Samba 将仅侦听接口eth0IP 地址192.168.1.1上。这是一项安全功能,并完善了上述配置选项。bind interfaces only = True.

hosts deny = ALL

选项hosts deny指定不允许访问 Samba 服务的主机列表,除非特定服务有自己的列表来覆盖此列表。为简单起见,默认情况下我们拒绝所有主机的访问,并在hosts allow =下面的选项中允许特定主机。

hosts allow = 192.168.1.4 127.0.0.1

选项hosts allow指定允许哪些主机访问 Samba 服务。默认情况下,我们允许来自 IP C 类的192.168.1.4和我们的本地主机127.0.0.1访问 Samba 服务器。请注意,必须始终设置本地主机,否则您将收到一些错误消息。

debug level = 1

选项debug level允许在smb.conf文件中指定日志记录级别。如果将调试级别设置为高于 2,则性能可能会大幅下降。这是因为服务器在每次操作后都会刷新日志文件,这可能会非常耗费资源。

create mask = 0644

选项create mask根据从 DOS 模式到 UNIX 权限的映射,指定并设置必要的权限。将此选项设置为0644,从 Windows 系统复制或创建到 Unix 系统的所有文件都将具有权限0644(默认)。

directory mask = 0755

选项directory mask指定并设置八进制模式,该模式在创建 UNIX 目录时用于将 DOS 模式转换为 UNIX 模式。将此选项设置为0755,从 Windows 系统复制或创建到 Unix 系统的所有目录都将具有权限0755(默认)。

level2 oplocks = True

选项level2 oplocks,如果设置为True,将提高对不常写入的文件(例如 .EXE 应用程序文件)的多次访问的性能。

read raw = no

选项read raw控制服务器在将数据传输到客户端时是否支持原始读取 SMB 请求。请注意,内存映射不被read raw操作使用。因此,如果您禁用read raw使用read raw = no,就像我们所做的那样,您可能会发现内存映射更有效。

write cache size = 262144

选项write cache size允许 Samba 在磁盘子系统成为瓶颈的系统上提高性能。此选项的值以字节为单位指定,大小为 262,144 表示每个文件 256k 的缓存大小。

[tmp].

comment = 临时文件空间

选项comment允许您指定一个注释,当客户端查询服务器时,该注释将显示在共享旁边。

path = /tmp

选项path指定用户将被授予服务访问权限的目录。在我们的示例中,这是tmpLinux 服务器的目录。

read only = No

选项read only指定是否应仅允许用户读取文件。在我们的示例中,由于这是针对tmpLinux 服务器目录的配置,因此用户可以做的不仅仅是读取文件。

valid users = admin

选项valid users指定应允许登录此服务的用户列表。在我们的示例中,仅用户admin被允许访问该服务。

invalid users = root bin daemon nobody named sys tty disk mem kmem users

选项invalid users指定不应允许登录此服务的用户列表。这实际上是一个偏执狂式的检查,以绝对确保不正确的设置不会破坏您的安全性。建议您包括所有在服务器上运行守护程序的默认用户。