该/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指定当客户端查询时,您的服务器将显示在哪个工作组中。重要的是在客户端和服务器上都具有相同的工作组名称。
选项server string指定您希望在打印管理器中的打印机注释框中,或在 Windows 机器上的 IPC 连接中向用户显示的字符串。net view命令中显示。
选项encrypt passwords如果设置为True指示 Samba 在与客户端协商时使用加密密码而不是明文密码。当密码被加密时,嗅探器程序将无法检测到您的密码。此选项必须始终设置为True以确保安全。
选项security,如果设置为user,指定客户端必须首先log-on使用有效的用户名和密码登录,否则连接将被拒绝。这意味着客户端的有效用户名和密码必须存在于您的/etc/passwdLinux 服务器上的文件中,以及/etc/smbpasswdSamba 服务器的文件中,否则来自客户端的连接将失败。有关smbpasswd文件的更多信息,请参阅本章中的 Securing samba 部分。
选项smb passwd file指定加密smbpasswd文件的路径。smbpasswd文件是/etc/passwdLinux 系统的文件的副本,其中包含允许连接到 Samba 服务器的客户端的有效用户名和密码。Samba 软件读取此文件,smbpasswd当请求连接时。
选项log file指定 Samba 日志文件的位置和名称。使用名称扩展名%m,它允许您为每个登录到 Samba 服务器的用户或机器拥有单独的日志文件,例如log.machine1.
选项socket options指定您可以在 Samba 配置中包含的参数,以调整和改进 Samba 服务器以获得最佳性能。默认情况下,我们选择调整本地网络的连接,并提高 Samba 服务器传输文件的性能。
选项domain master指定将nmbd,Samba 服务器守护程序,设置为其给定工作组的域主浏览器。此选项通常必须设置为Yes,仅在一个 Samba 服务器上设置,对于同一网络和工作组中的所有其他 Samba 服务器。
选项local master允许nmbd,Samba 服务器守护程序,尝试成为子网上的本地主浏览器。与上述类似,此选项通常必须设置为Yes,仅在一个充当子网本地主服务器的 Samba 服务器上设置,对于网络上的所有其他 Samba 服务器。
选项preferred master指定并控制是否nmbdSamba 服务器守护程序,是其工作组的首选主浏览器。同样,这通常必须设置为Yes,在一个服务器上设置,对于网络上的所有其他服务器。
选项os level通过其值指定是否nmbd,Samba 服务器守护程序,有机会成为本地广播区域中工作组的本地主浏览器。数字 65 将胜过任何 NT 服务器。如果您的网络上有 NT 服务器,并且希望将您的 Linux Samba 服务器设置为本地广播区域中工作组的本地主浏览器,则必须设置os level选项为 65。此外,此选项必须仅在一个 Linux Samba 服务器上设置,并且必须在您网络上的所有其他 Linux Samba 服务器上禁用。
选项dns proxy如果设置为Yes指定nmbd,Samba 服务器守护程序,当充当 WINS 服务器并发现 Net BIOS 名称尚未注册时,应将 Net BIOS 名称逐字视为 DNS 名称,并代表名称查询客户端使用 DNS 服务器查找该名称。由于我们尚未配置 Samba 服务器充当 WINS 服务器,因此我们不需要将此选项设置为Yes。 此外,将此选项设置为Yes将降低您的 Samba 性能。
选项name resolve order指定使用哪些命名服务以将主机名解析为 IP 地址,以及以什么顺序解析。我们选择的参数导致本地lmhostsSamba 文件首先被检查,然后是其余的文件。
选项bind interfaces only如果设置为True,允许您限制哪些接口将服务于smb请求。这是一项安全功能。配置选项interfaces = eth0 192.168.1.1以下选项完善了此配置。
选项interfaces允许您覆盖 Samba 将用于浏览、名称注册和其他 NBT 流量的默认网络接口列表。默认情况下,Samba 将查询内核以获取所有活动接口的列表,并使用任何接口,除了127.0.0.1,即具有广播能力的接口。使用此选项,Samba 将仅侦听接口eth0在 IP 地址192.168.1.1上。这是一项安全功能,并完善了上述配置选项。bind interfaces only = True.
选项hosts deny指定不允许访问 Samba 服务的主机列表,除非特定服务有自己的列表来覆盖此列表。为简单起见,默认情况下我们拒绝所有主机的访问,并在hosts allow =下面的选项中允许特定主机。
选项hosts allow指定允许哪些主机访问 Samba 服务。默认情况下,我们允许来自 IP C 类的192.168.1.4和我们的本地主机127.0.0.1访问 Samba 服务器。请注意,必须始终设置本地主机,否则您将收到一些错误消息。
选项debug level允许在smb.conf文件中指定日志记录级别。如果将调试级别设置为高于 2,则性能可能会大幅下降。这是因为服务器在每次操作后都会刷新日志文件,这可能会非常耗费资源。
选项create mask根据从 DOS 模式到 UNIX 权限的映射,指定并设置必要的权限。将此选项设置为0644,从 Windows 系统复制或创建到 Unix 系统的所有文件都将具有权限0644(默认)。
选项directory mask指定并设置八进制模式,该模式在创建 UNIX 目录时用于将 DOS 模式转换为 UNIX 模式。将此选项设置为0755,从 Windows 系统复制或创建到 Unix 系统的所有目录都将具有权限0755(默认)。
选项level2 oplocks,如果设置为True,将提高对不常写入的文件(例如 .EXE 应用程序文件)的多次访问的性能。
选项read raw控制服务器在将数据传输到客户端时是否支持原始读取 SMB 请求。请注意,内存映射不被read raw操作使用。因此,如果您禁用read raw使用read raw = no,就像我们所做的那样,您可能会发现内存映射更有效。
选项write cache size允许 Samba 在磁盘子系统成为瓶颈的系统上提高性能。此选项的值以字节为单位指定,大小为 262,144 表示每个文件 256k 的缓存大小。
[tmp].
选项comment允许您指定一个注释,当客户端查询服务器时,该注释将显示在共享旁边。
选项path指定用户将被授予服务访问权限的目录。在我们的示例中,这是tmpLinux 服务器的目录。
选项read only指定是否应仅允许用户读取文件。在我们的示例中,由于这是针对tmpLinux 服务器目录的配置,因此用户可以做的不仅仅是读取文件。
选项valid users指定应允许登录此服务的用户列表。在我们的示例中,仅用户admin被允许访问该服务。
选项invalid users指定不应允许登录此服务的用户列表。这实际上是一个偏执狂式的检查,以绝对确保不正确的设置不会破坏您的安全性。建议您包括所有在服务器上运行守护程序的默认用户。