1.cifs和samba的介绍
CIFS (Common Internet File System),通用Internet文件系统。在windows主机之间进行网络文件共享是通过使用微软公司自己的CIFS服务实现的。
CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议在局域网上用于服务器文件访问和打印的协议。像SMB协议一样,CIFS在高层运行,而不像TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议, 它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、 打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
samba是由微软和sun公司一起建立起来的,是用来让windows和linux进行文件传输,sun公司是类linux公司,。
实验环境
server虚拟机重置:
设定主机名字server
IP地址 :物理机+100
yum 源配置好
如果遇到无法挂载,查看uid,然后kill 9 uid
Desktop重置:
设定主机名字client
IP 地址:物理机+20
yum源配置好
2.samba的安装与使用
server端:
1)文件安装
yum install samba samba-common samba-client
2)打开服务
systemctl start smb
3)火墙关闭
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
4)samba用户的创立,查看,删除
一、添加用户
smbpasswd -a student ##必须服务端存在的用户
二、列举用户
pdbedit -L
三、删除用户
pdbedit -x student
现在创建两个用户,一个名为student,一个为westos
5)内核防火墙
getenforce
setenforce 0 ##设置为警告模式
client端
1)客户端安装
yum install samba-client -y
2)查看用户的登陆
匿名用户:smbclient -L //172.25.254.185
以用户身份查看:smbclient -L //172.25.254.185 -U westos
3)用户登陆
匿名登陆:smbclient //172.25.254.152/westos ##登陆不上
指定用户登陆:smbclient //172.25.254.152/westos -U westos
挂载上传:将server的目录挂载到client上。
存储分离手段:众多服务器收集到的信息存储到一个不对外开放的存储器,抵抗攻击,一个主机挂掉以后,别的主机还可以从存储器取出数据。
mount -o username=westos,password=westos //172.25.254.152/westos /mnt
实验可以看出,登陆的是westos 的家目录
2.samba的配置文件
设置server端配置文件:vim /etc/samba/smb.conf
1)设置域名
89 workgroup = MYGROUP 改为 workgroup = westos
workgroup = westos:
查看结果,domain变为westos
2)samba的访问控制
控制一:允许访问家目录
内核开启的状态下,开启samba
setsebool -P samba_enable_home_dirs on
实验结果
控制二:黑白名单
hosts allow=172.25.254.152
172.25.254.85登陆
172.25.254.105登陆
hosts deny= 172.25.254.152
172.25.254.85登陆
172.25.254.105登陆
3.共享文件的设定
server端
1)创建文件/westos,配置文件内编写目录
mkdir /westos
配置文件内编写
322 [wen] ##共享自己创建的文件
323 comment=shis file ##说明
324 path = /westos ##绝对路径
325
326 [mntdir]
327 comment=mnt directory
328 path=/mnt ##系统原来的目录
2)访问
用户自己创建的文件:修改安全上下文 ##不修改安全上下文无法访问
semanage fcontext -a -t samba_share_t '/westos(/.*)?'
restorecon -RvvF
如果是共享系统建立的文件,必须开放selinux对samba的权限
getsebool -a |grep samba
setsebool -P samba_export_all_rw on #开启读写
3)samba的配置文件:vim /etc/samba/smb.conf ##修改完重启服务
修改一:可写配置
writable = yes
修改目录权限 chmod 777 /westos
上传
!ls :查看可以上传的文件, ##为当前目录的文件
修改二:指定用户和组可写
指定某一个用户可写
write list = westos
组可写 @ +
write list = @westos
测试student用户无法写
现在修改student的额外组为westos
测试可以写
修改三:指定用户和组可以登陆
那些用户可以登陆访问
valid users = student
测试student用户可以登陆。westos用户不可登陆
组可以访问
valid users = +student
测试twetos不可以登陆
修改westos的额外用户组为student
测试westos可以登陆
修改四:smbclient -L //172.25.254.152/wen -U westos 下面的目录可以发现
是否可以发现共享的目录 ##可发现所有的共享目录
browseable = yes
测试前
修改为
修改后无法看到wen的文件
修改五:以超级用户身份登陆
admin users = westos ##westos 以超级用户身份登陆
修改前上传一个文件
在server查看所属用户
修改为
重新上传文件
server端查看拥有者为root用户
修改六:匿名用户登陆共享目录
windows的匿名名字guest
linux的匿名名字anonymous
映射名字 map to guest= bad user
server端
guest ok = yes ##允许匿名用户登陆
map to guest = bad user ##映射windows的匿名用户到linux的你名用户
client端:
smbclient //172.25.254.185/wen -U guest
4.samba的多用户挂载
客户端root用户挂载后,切换到普通用户后,普通用户可以看到挂载目录的内容。存在安全问题
客户端的samba安全锁:限制没有通过认证的用户访问samba
client端
1)安装
yum install cifs-utils.x86_64 -y
查看手册
2)创建认证文件
建立文件 vim /root/smbpass
编写内容
username=westos
password=westos
3)修改权限 只有用户有权限600
chmod 600 /root/smbpass
4)客户端root用户挂载
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.152/wen /mnt/
指定认证方式 普通用户可以认证 多用户登陆
5)切换用户查看/mnt
6)添加用户认证
添加用户cifscreds add -u student 172.25.254.152
输入密码:用户的密码
如果添加错误
[hello@client ~]$ cifscreds add -u student 172.25.254.152
You already have stashed credentials for 172.25.254.152 (172.25.254.152)
If you want to update them use:
cifscreds update
清除
cifscreds clearall
重新挂载会清除记录
5.自动挂载
vim /etv/fstab
//172.25.254.185/wen /mnt cifs defaults,username=student,password=student 0 0