前言:Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
实验环境名称 | IP地址 |
---|---|
CentOS6.8 | 192.168.248.128 |
Samba服务的安全管理-设置主机访问控制
进入系统,进行编辑smb服务器配置
vim /etc/samba/smb.conf
在配置界面最底端添加如下(每天一个小技巧,按住shift键+G可直接到最下方
)
[public]
Comment= Public Stuff
Path = /public
Writable = yes
Printable = no
Write list = +staff
Hosts deny = 192.168.248. 禁止192.168.248.0/24网段访问(也可以禁止域)
Hosts allow = 192.168.248.128 允许地址192.168.248.128访问
以下是对这段 Samba 服务配置的解释:
一、整体含义
这段配置定义了一个名为“public”的共享资源,主要用于存放公共数据,并对其访问权限等进行了特定设置。
二、各部分解释
-
[public]
:- 这是共享资源的名称标识,用于在客户端区分不同的共享。
-
Comment = Public Stuff
:- 对这个共享的注释说明,当客户端浏览共享资源时,可以看到这个描述,以便了解该共享的用途。这里说明该共享存放的是“公共物品(Public Stuff)”。
-
Path = /public
:- 指定了共享资源在服务器上的实际路径,即客户端通过 Samba 访问这个共享时,实际访问的是服务器上的“/public”目录。
-
Writable = yes
:- 表示这个共享是可写的。客户端可以向这个共享目录中写入文件或进行修改操作。
-
Printable = no
:- 表明这个共享不是用于打印服务的。如果设置为“yes”,则可能表示该共享与打印相关。
-
Write list = +staff
:- 定义了可以对这个共享进行写入操作的用户列表。这里“+staff”通常表示属于“staff”组的用户可以进行写入操作。只有特定的用户组能够写入,增加了一定的安全性和权限控制。
接着在根目录下创建文件夹public,在文件夹中创建文件hello,再创建一个smb认证用户
mkdir /public
touch /public/hello.txt
ls /public/
smbpasswd -a test
重启SMB服务
service smb restart
输入smbclient //192.168.248.128/public –U test%Admin123
,登录到smb服务器中,输入”ls”看查目录下文件。(账号%密码)
继续编辑smb服务器配置,将hosts allow = 192.168.248.128
删除,保存并退出。
vim /etc/samba/smb.conf
再次重启SMB服务
service smb restart
接着在终端输入smbclient //192.168.248.128/public –U test%Admin123
,无法进行登录
Samba服务的安全管理-设置用户账号映射
在终端输入useradd smbuser
创建一个用户,之后输入smbpasswd –a smbuser
将这个用户加入到samba中
进入samba目录当中,编辑samba配置文件
cd /etc/samba/
vim smb.conf”对samba
在smb.conf文件中添加username map = /etc/samba/smbusers
开启用户账户映射后写入并退出
对smbuser文件进行编辑,创建用户账户映射smbuser = test1 test2
,写入并退出并重启smb服务。
service smb restart
在终端输入smbclient –L 192.168.248.128 –U smbuser%Admin123
,使用本地账号,对smb服务器进行登录测试。(账号%密码)
输入smbclient –L 192.168.248.128 –U test1%Admin123
,使用虚拟账号,对smb服务器进行登录测试
输入smbclient //192.168.248.128/smbuser –U smbuser%Admin123
,使用虚拟账号,对smb服务器进行登录后,输入pwd
看查虚拟账号下的本地文件夹路径。