1.CIFS介绍
CIFS和NFS都是文件在网络上的共享方式(用于主机与存储分离,当主机宕机时,可以通过网络访问被共享的存储文件),而这篇文章主要讨论CIFS服务,而NFS服务会在下几篇文章中详细阐述。
CIFS就是SMB,只是CIFS是微软公司推出的协议,而SMB是Sun公司推出的协议,而我们在linux上安装的是SMB的一个免费软件Samba。
在使用Samba时,有以下几点要注意:
Samba既可以用系统账户登陆,也可以匿名登录,只是要使用匿名登录,需要在服务器端的Samba配置文件中修改配置;
账户共享的文件在账户的家目录里;
如果想上传文件,只能上传当前目录下的文件。
2.SMB服务搭建
1.下载Samba
[ rootgLocalhost Desktop]# yum install samba- client. x86_ 64 samba-common.x86_ 64 samba. x86_ 64
#samba- client 客户端应用程序
samba-common Samba支持文件
samba 服务本身
systemctl start smb #启动SMB服务
firewall-cmd --permanent --add-service=samba #永久开启防火墙上Samba服务的端口
firewall-cmd --permanent --add-service=samba-client #永久开启防火墙上Samba客户端的端口
firewall-cmd --reload #重新加载防火墙
firewall-cmd --list-all
2.在服务器端添加用户
useradd westos #创建用户
smbpasswd -a westos #添加用户并设置密码,这里的用户必须存在
3.在客户端测试
由于在服务器端没有修改配置文件,所以匿名用户无法登录。
匿名用户:smbclient -L //172.25.254.139 #由于没有密码,所以直接回车
正常用户:smbclient -L //172.25.254.139 -U shang
访问共享的目录:smbclient //172.25.254.139/shang -U shang
put 文件 #上传文件,此文件必须是当前目录下存在的文件
!ls #查看当前目录下的文件
也可以直接挂载在本机的一个文件夹下,更方便的访问和上传数据:
mount //172.25.254.139/shang /mnt -o username=shang,password=shang
3.黑白名单的建立
vim /etc/samba/smb.conf #编辑配置文件
96 hosts allow = 172.25.254.34 #允许172.25.254.34这个IP的主机访问共享的数据,其他IP的主机不允许访问数据
97 hosts deny = 172.25.254.34 #只有34这台主机不被允许访问,其他主机照常访问
4.共享目录的配置
以下操作应打开selinux,以获得更明显的实验效果
打开配置文件:vim /etc/samba/smb.conf
普通目录的配置:
[lol]
comment = Hello ,Welcome
path = /qq #修改共享目录的名字以及注释,前两行可以自己写,但最后一行必须是共享目录的绝对地址
登陆之后不能查看目录中的内容,也不能写入数据,要想实现上述两个操作,需要以下三个操作:
1.在配置文件中添加可写:
[lol]
comment = Hello, Welcome
path = /qq
writable = yes
2.修改目录的权限:(以下两种方法任选其一,但第二种较为安全)
(1)chmod 777 qq
(2)setfacl -m u :westos :rwx /qq
3.修改共享目录的安全上下文:
semanage fcontext -a -t samba_ share_ t ‘/qq(/ .*?)?’
restorecon -RvvF /qq
完成上述操作,即可读可写:
注意:由于客户端是以westos上传的文件,所以在客户端查看上传文件的user和group是服务器端westos对应的UID和GID,如果客户端已经有用户和组占用了对应的UID和GID,则显示占用的用户名和组名。
系统目录的配置:
[pop]
comment = Hello ,Welcome
path = /mnt
仍不可读不可写,要想可读可写,可依据上述前两个步骤,但如果修改了系统目录的安全上下文,可能引起其他程序不能正常使用该系统目录,所以可以修改Samba服务的bool值,这样既可以使该系统目录可读可写,也不影响其他进程使用该系统目录。
bool值的修改会使得selinux放弃对于Samba服务一切可读可写操作的限制,以后共享目录的安全上下文不用修改,只要完成前两个步骤,即可可读可写。这样虽然系统的安全性会下降,但这也是最好的方法。
可读:
可写:
共享目录的其他配置:
[WESTOS]
comment = Share Directory
path = /westos_ smb
writable = yes #目录是否可写
browseable = no #目录是否隐藏
write list = +Lee #允许哪些用户对该目录可写(+和@都表示同组的用户)
添加ly的附加组为westos:
valid users = @Lee #允许哪些用户访问该目录
126 map to guest = bad user
guest ok = yes #匿名用户是否可以访问
admin users = westos #把westos作为该目录的管理员
5.多用户认证配置
1.为了不将账号和密码暴露在history,建立一个认证文件,以该文件登录,即可访问:
vim /root/passwd
username=westos
password=westos
chmod 600 passwd
mount //172.25.254.83/lol /liu -o credentials=/ root/passwd
以上共享目录里的数据不止登录用户可看,其他人也可看,不安全。
此步骤开启了认证,但是没有强制执行认证,所以其他人也可看。
此步骤开启了多用户模式,阻止了其他人可看,但只有一个用户可看,其他认证用户不可看。
此步骤开启了多用户模式,也开启了认证,没有经过认证的用户不可看,经过认证的用户可看,且可以添加新的认证用户。