SMB/CIFS服务的部署和应用简述

smb/cifs 文件系统存储协议是微软和sun公司联合开发的协议微软公司用smb,unix linux使用的是cifs,只是名称有区别
端口 : 139和443
SMB的部署:
准备两台虚拟机,一台做服务端,提供服务,另一台为客户端,做测试用。
虚拟机server为服务端ip为172.25.254.232;desktop为客户端ip为172.25.254.132
SMB服务端部署
install -y samba-client.x86_64 samba-common samba.x86_64 ##安装smb的服务
SMB/CIFS服务的部署和应用简述_第1张图片
systemctl start smb 打开SMB服务
在这里插入图片描述
firewall-cmd --permanent --add-service=samba 火墙开放samba服务
firewall-cmd --permanent --add-service=samba-client
firewall-cmd --reload
SMB/CIFS服务的部署和应用简述_第2张图片
SMB/CIFS服务的部署和应用简述_第3张图片
pdbedit -L ###查看smb用户,此用户必须为系统用户。
在这里插入图片描述
useradd mq ###建立用户mq
useradd westos ####建立用户westos
smbpasswd -a mq ####设置smb用户的认证密码
smbpasswd -a westos
SMB/CIFS服务的部署和应用简述_第4张图片
pdbedit -L 查看smb用户
在这里插入图片描述
客户端部署
yum install -y samba-client.x86_64
SMB/CIFS服务的部署和应用简述_第5张图片
systemctl start samba-client

测试
smbclient -L //172.25.254.132 -U westos ##查询smb共享的列出信息,默认显示用户的家目录
SMB/CIFS服务的部署和应用简述_第6张图片
smbclient //172.25.254.132/westos -U westos
smb: > !ls ##查看本地可上传文件
SMB/CIFS服务的部署和应用简述_第7张图片
SMB/CIFS服务的部署和应用简述_第8张图片
在服务端查询看是否上传到服务器
SMB/CIFS服务的部署和应用简述_第9张图片
注:put 可以上传文件,mput 上传目录

rpm -qc samba-common ###查看程序的配置文件
/etc/logrotate.d/samba
/etc/samba/lmhosts
/etc/samba/smb.conf ##主配置文件
/etc/sysconfig/samba
在这里插入图片描述

工作组的属性改变
vim /etc/samba/smb.conf
workgroup = WESTOS
在这里插入图片描述
systemctl restart smb

测试:
在客户端
smbclient //172.25.254.132/westos -U westos
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1] 重启前Domain=[MYGROUP]
SMB/CIFS服务的部署和应用简述_第10张图片
smbclient //172.25.254.132/westos -U westos
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1] 重启后Domain=[WESTOS]
在这里插入图片描述
用户访问控制列表
vim /etc/samba/smb.conf
hosts allow = 172.25.254.232 ##允许用户登陆名单,可以是网段或多个网段。
hosts allow = 172.25.254. 127. 192.168.1.
在这里插入图片描述
systemctl restart smb

在172.25.254.32主机上测试测试:
在172.25.254.32主机上测试结果为拒绝
[kiosk@foundation32 Desktop]$ smbclient //172.25.254.132/westos -U westos
Enter westos’s password:
protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE
在这里插入图片描述
在172.25.254.232主机上测试登陆成功
[root@squid mnt]# smbclient //172.25.254.132/westos -U westos
Enter westos’s password:
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]
smb: >
在这里插入图片描述
vim /etc/samba/smb.conf
hosts deny = 172.25.254.132
在这里插入图片描述

测试:
在172.25.254.132主机上测试拒绝登陆
[root@squid mnt]# smbclient //172.25.254.232/mq -U mq
Enter westos’s password:
protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE

在这里插入图片描述
在172.25.254.32主机上测试结果登陆成功
[kiosk@foundation32 Desktop]$ smbclient //172.25.254.132/westos -U westos
Enter westos’s password:
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]
smb: >
在这里插入图片描述

更改共享目录
先确定selinux状态
getenforce
Enforcing
selinux在Enforcing状态下的自建目录共享
mkdir /smb
在这里插入图片描述
vim /etc/samba/smb.conf
[WESTOS] 用户登陆时时别的字符,可以随意设置
comment = Share Directory 用户登陆界面的提示信息,可以随意编写
path = /smb 设置共享目录为/smb
writable = yes 设置目录可写功能打开
在这里插入图片描述

semanage fcontext -a -t samba_share_t ‘/smb(/.*?)?’ ##修改/smb目录及目录里面的内容的安全上下文标签属性为samba_share_t
restorecon -RvvF /smb/ ####加载安全上下文标签属性
SMB/CIFS服务的部署和应用简述_第11张图片
SMB/CIFS服务的部署和应用简述_第12张图片
查看目录的读写权限
在这里插入图片描述
chmod 777 /smb/ 赋予目录777的读写权限
setfacl -m u:mq:rwx /smb ###设置westos用户对/smb的读写执行权限
在这里插入图片描述
SMB/CIFS服务的部署和应用简述_第13张图片
测试:
在客户端
SMB/CIFS服务的部署和应用简述_第14张图片

系统级目录的共享:
服务端:
vim /etc/samba/smb.conf ##smb配置文件中加入系统目录
[mnt]
comment = Share System mnt Directory
path = /mnt
writable = yes
SMB/CIFS服务的部署和应用简述_第15张图片
systermctl restart smb

系统级目录共享
系统级目录随系统安装自动建立的目录,因为随系统安装生成很多程序多会使用如果改变次目录的安全上下文的标签,就会变成只有samba服务可用,其他服务不可使用的结果,这样不符合系统管理的需求,所以不能这样改变
下面是针对系统目录的samba共享的设置
setsebool -P samba_export_all_ro on ###设置selinux对smb服务的只读权限永久开启,-P 永久属性不会随着系统的重启而失效。
setsebool -P samba_export_all_rw 1 ##设置selinux对smb服务的读写权限永久开启,开启此权限后selinux对smb服务的所有安全策略跳过,降低smb服务的安全性。
getsebool -a | grep samba
SMB/CIFS服务的部署和应用简述_第16张图片
显示只有setsebool -P samba_export_all属性时on 表示selinux对samba共享服务的读写不作限制,只有在共享系统目录时才这样操作,这样操作是降低安全等级的。
系统及目录默认只对超级用户有写的权限,所以我们要共享此目录需要给samba用户 (pdbedit -L 可查看到的用户)权限
setfacl -m u:mq:rwx /mnt
SMB/CIFS服务的部署和应用简述_第17张图片
客户端:
mount //172.25.254.132/mnt /mnt -o username=westos,password=123456
SMB/CIFS服务的部署和应用简述_第18张图片
cd /mnt
touch file{1…5}
SMB/CIFS服务的部署和应用简述_第19张图片
在服务端;
cd /mnt
ls ##可以看到在客户端建立的file{1…5}文件
SMB/CIFS服务的部署和应用简述_第20张图片
在这里插入图片描述
可以看到mq的id为1001和客户端建立时查看的文件属性中的id是一致的。

Samba 配置文件参数
writable = yes ###允许用户可写
SMB/CIFS服务的部署和应用简述_第21张图片
browseable = no ###samba服务列出时no隐藏目录,yes显示目录,默认为yes
smbclient -L //172.25.254.132 ##查看samba服务的列出目录
设置前可以看到WESTOS
SMB/CIFS服务的部署和应用简述_第22张图片
设置后看不到了
SMB/CIFS服务的部署和应用简述_第23张图片

write list = +lee ##只对lee用户组可写 +lee=@lee lee为单用户。
SMB/CIFS服务的部署和应用简述_第24张图片

SMB/CIFS服务的部署和应用简述_第25张图片
SMB/CIFS服务的部署和应用简述_第26张图片
westos用户不能建立文件,只有只读权限,证明设置成功,只对用户mq可写

valid users = +mq ##用户组是否可以登陆的权限,+=@ mq为单用户。
SMB/CIFS服务的部署和应用简述_第27张图片 用户westos挂载时拒绝,用户mq挂载成功

map to guest = bad user ##设置匿名用户映射为guest
在这里插入图片描述
guest ok = yes ##guest 游客登陆功能打开
在这里插入图片描述
客户端测试:
smbclient //172.25.254.132/SMB ##可以直接登陆,密码为空在这里插入图片描述
匿名挂载
mount //172.25.254.232/WESTOS /mnt -o username=guest
在这里插入图片描述
mount //172.25.254.232/WESTOS /mnt -o username=guest,password=""
SMB/CIFS服务的部署和应用简述_第28张图片
admin users = westos ##设置普通用户的身份为root
在这里插入图片描述
systemctl restart smb ##重启服务
客户端测试
mount //172.25.254.132/WESTOS /mnt -o username=westos,password=123456 ##挂载
[root@squid /]# cd /mnt/
[root@squid mnt]# ls
[root@squid mnt]# touch file1
[root@squid mnt]# ls
file1
[root@squid mnt]# ll
total 0
-rw-r–r--. 1 root 1002 0 Aug 13 03:25 file1 ##用户为root 组为服务端的挂载用户组
SMB/CIFS服务的部署和应用简述_第29张图片
显示新建的asas文件用户为root,证明设置成功。
服务端查看:
[root@lamp smb]# ls
file1
[root@lamp smb]# ll
total 0
-rw-r–r--. 1 root westos 0 Aug 13 03:25 file1
SMB/CIFS服务的部署和应用简述_第30张图片

samba 的多用户挂载
针对客户端设置:

vim /root/smbpassword
username=westos
password=123456
在这里插入图片描述
yum install -y cifs-utils.x86_64 ##安装客户端samab认证程序
SMB/CIFS服务的部署和应用简述_第31张图片
mount //172.25.254.132/SMB /mnt -o credentials=/root/smbpassword,sec=ntlmssp,multiuser
SMB/CIFS服务的部署和应用简述_第32张图片
multiuser 多用户挂载认证
sec=ntlmssp 认证方式
测试
useradd westos
创建普通用户westos
su - westos
切换到westos用户
SMB/CIFS服务的部署和应用简述_第33张图片
未经过认证不能访问mnt目录内容
cifscreds add -u mq 172.25.254.132
在这里插入图片描述
通过认证可以访问目录内的内容

你可能感兴趣的:(SMB/CIFS服务的部署和应用简述)