Ewige前夕
【Debian学习笔记】Samba服务配置

Samba服务配置文件路径

vim /etc/samba/smb.conf

security = user #用户使用身份验证访问Samba服务器

security = share #匿名访问

security = domain #域模式,加到域里面,身份验证通过域

workgroup = xxx.cn #工作组,域名

 

一般共享需要配置

[共享名]

comment = #描述

browseable = yes #是否允许查看此共享内容,关闭后看不到,只能通过路径访问

path = #共享路径,绝对路径

public = #是否允许匿名查看

设置访问用户

如果共享资源存在重要数据的话,需要对访问用户审核,我们可以使用valid users 字段进行设置,多个用户名用逗号隔开

valid users = 用户名

valid users = @组名

 

设置读写权限

readonly = yes #只读

 

设置目录可写

writable = yes #读写

writable = no #只读

读写白名单

用来限制读写权限

write list = 用户名

write list = @组名

 

Samba 服务日志文件

log file = 日志路径

 

实战样例:

公司现在有一个工作组 evec fleet ,需要添加Samba服务器作为文件服务器,并发布共享目录/share,共享名为 public,这个共享目录允许所有公司员工访问。

 

首先创建目录

mkdir /share
cp /etc/passwd /share #复制一个测试文件

修改配置文件

vim /etc/samba/smb.conf

修改

workgroup = evec fleet

server string = evec fleet samba server

security =  share #支持匿名共享

在最后一行添加

输入

[public]                                        #设置共享名

comment = evec fleet data      #描述信息

path = /share                             #设置共享路径

public = yes                                #允许匿名查看

重启smb服务

systemctl restart smbd

 

实战样例:

通过用户名和密码共享文件,把/xsb 共享出去,只有知道用户名和密码的同事可以看这个共享。在/xsb目录中存放有销售部的重要数据。

为了保证其他部门无法查看其内容,我们需要将全局配置中security 设置为user安全级别,这样就启用了Samba服务器的身份验证机制,然后在共享目录/xsb下设置valid users字段,配置只允许销售部员工能够访问这个共享目录。

注意:一定要先指定存放密码的文件位置

1)修改samba主配置文件 smb.conf

security = user

passdb backend = smbpasswd

smb passwd file = /etc/samba/smbpasswd

重启服务

systemctl restart smbd

2)添加销售胡用户和组

groupadd xsb

useradd -g xsb -M -s /sbin/nologin xsb01

useradd -g xsb -M -s /sbin/nologin xsb02

修改密码

smbpasswd -a xsb01

smbpasswd -a xsb02

创建共享目录

mkdir /xsb

cp /etc/hosts /xsb

配置文件中写入

[xsb]

comment = xsb data

path = /xsb

valid users = @xsb

重启服务

systemctl restart smbd

 

控制访问源

hosts allow 和 hosts deny

hosts allow 字段定义允许访问的客户端

hosts deny 字段定义禁止访问的客户端

实例:

如果公司现在要求共享目录xsb只允许192.168.1.0/24网段的主机访问,同时禁止192.168.1.3 IP地址访问

hosts allow = 192.168.1.   #允许192.168.1.0/24网段访问

hosts deny = 192.168.1.3   #禁止192.168.1.3主机访问

注:

当hosts allow 和 hosts deny 同时设置时,hosts allow生效,如果这样的话,上面的这两项设置192.168.1.3就是不生效的,针对这种情况,可以使用except进行排除

hosts allow = 192.168.1. EXCEPT 192.168.1.3

 

控制写入权限

writeable = yes         #允许授权用户写入

write list = xsb01     #允许单个用户写入

 

用户账号映射

samba的用户账号信息保存在smbpasswd文件中,而且可以访问samba服务的账号也必须对应一个同名的系统账号,基于这一点,所以对于一些黑客来说只要知道samba服务器的samba账号,就等于知道了Linux系统账号,只要破解其samba账号密码加以利用就可以攻击samba服务器,所以我们要使用用户账号映射这个功能来解决这个问题。

 

用户账号映射这个功能需要建立一个账号映射关系表,里面记录了samba账号和虚拟账号的对应关系,客户端访问samba服务器时就使用虚拟账号来登录。

编辑主配置文件 /etc/samba/smb.conf

在global下添加一行字段 username map = /etc/samba/smbusers 开启用户账号映射功能

创建samba用户

useradd crimson

smbpasswd -a crimson

编辑/etc/samba/smbusers

smbusers文件保存账号映射关系,其有固定的格式

samba 账号 = 虚拟账号(映射账号)

crimson = joseph diego

账号crimson就是我们上面建立的samba账号(同时也是Linux系统账号),joseph及diego就是映射的账号名(虚拟账号),账号crimson在我们访问共享目录时只要输入joseph或diego就可以成功访问了,但实际上访问samba服务器的还是我们的crimson账号,这样一来就解决了安全问题。

重启samba服务 systemctl restart smbd

发表评论

textsms
account_circle
email

Ewige前夕

【Debian学习笔记】Samba服务配置
Samba服务配置文件路径 vim /etc/samba/smb.conf security = user #用户使用身份验证访问Samba服务器 security = share #匿名访问 security = domain #域模式,加到域里面,身份…
扫描二维码继续阅读
2021-08-18