在本次做实验之前需要将两台虚拟机都重置一下,然后ip和yum都配置好,为了方便区分可以将两个虚拟机改名为一个服务端,一个客户端。
1、配置samba服务
SMB文件共享:用Internet 文件系统(CIFS)也称为服务器信是适用于MicrosoftWindows服务器和客户端的标准文件和打印机共享系统息块(SMB)。Samba服务可用于将Linux文件系统作为CIFS/SMB网络文件共享进行共享,并将Linux打印机作为CIFS/SMB打印机共享进行共享。
以支付宝为例,用户在注册帐号的时候其实是在很多台服务器随机注册的,但是这样的话不仅不稳定(数据一旦丢失,将永久丢失),而且不安全(与外网连接,容易被攻击),所以其实是一个安全的服务器共享到其他很多台与外网连接的服务器。这就用到了文件共享。
-
服务端配置:
(1)安装samba服务,samba-common是共享服务端安装,client在客户测试端安装,此时是为了方便测试,所以在共享服务端也安装了samba-client,并开启服务。
(2)查看火墙状态和设置。
关闭火墙并使火墙开机不自动开启
(3)sellinux设置,将内核级火墙改为警告级
(4)给student用户添加smb服务中,添加文件共享密码 ,以及查看能smb文件共享的用户和删除smb文件共享的student用户。smbpasswd -a westos ## 给student用户添加smb服务中并添加文件共享密码 pdbedit -x student ## 删除smb文件共享的student用户 pdbedit -L ## 查看能smb文件共享的用户
-
客户端配置:
(1)在客户端安装samba-client服务
(2)匿名登陆访问共享测试,不用密码,直接回车
(3)westos用户登录访问共享测试。
(3)以挂载的方式操作共享目录,将其挂载在/mnt下。
(4)在/mnt下可以查看共享的文件也可以创建和删除,也就是间接对服务端共享目录/home/westos操作。例如:在客户测试端的/mnt中创建文件,在共享服务端进入/home/westos可以查看创建的文件。
(5)westos用户可以直接访问共享直接修改
2、 修改samba配置文件和权限
- sellinux为强制状态下查看共享文件的配置
当sellinux为强制状态下,在客户端是没法查看的。
服务端配置:
getenforce ##查看sellinux状态
setenforce 1 ##将sellinux设置成强制状态
setsebool -P samba_enable_home_dirs on ##将查看共享目录的设置打开
getsebool -a | grep samba ##将查看samba设置开关状态
-
修改域名
在配置文件/etc/samba/smb.conf 下修改域名的名字为WESTOS,workgroup = WESTOS,配置完后重启smb服务 -
用户共享黑白名单
在/etc/samba/smb.conf 设置用户白名单hosts allow = 172.25.254.170 ##用户白名单 hosts deny = 172.25.254.170 ##用户黑名单 smbclient //172.25.254.170/westos -U westos ##测试端测试
设置用户白名单,白名单内ip为172.25.254.170
ip为172.25.254.160测试端测试是没法查看的,就是没法共享。
ip为172.25.254.170测试端测试是可以查看的,就是可以共享。
设置用户白名单,白名单内ip为172.25.254.170
ip为172.25.254.170测试端测试是没法查看的,就是没法共享。
ip为172.25.254.160测试端测试是可以查看的,就是可以共享。
3、 共享目录
-
本地目录的共享
先创建一个共享目录
(1)修改 /etc/samba/smb.conf 配置文件,将本地创建的共享目录写入里面[mulu] 共享名称,用于登陆,可以任意 comment = westos dir share 说明,可以任意 path = /westos 真正的需要共享的目录,不可以任意。
(2)配置完后要重启smb服务
如果selinux在强制状态下,且没有打开服务允许,则不能看到共享目录, 如果selinux在强制状态下,且打开服务允许,则可以看到共享目录,但是系统安全级别会降低。因此,我们只需更改创建的目录的上下文即可看到共享目录,这样不会使系统安全级别降低
(3)测试:
-
系统目录的共享
(1)配置/etc/samba/smb.conf 文件,将共享的系统级的文件写入。
(2) systemctl restart smb.service ##重启服务
(3)设置sellinux状态getsebool -a | grep samba ##将查看samba设置开关状态 setsebool -P samba_export_all_ro on ##将读系统目录的设置打开
(4)测试
4、用户管理配置
- 执行时先给/westos一个777的权限
- 常规配置/etc/samba/smb.conf
(1) writable = yes ##允许可写(服务可写)。
测试:
(2) write list = @westos ##只允许westos组的用户可写 +和@表示组 没有这一句的话表示所有人都可写
测试:
(3)browseable = yes ##是否可以发现共享文件,默认不写表示可以发现。
(4) valid users = +student 只允许student组的用户登陆 +和@表示组
测试:
(5)admin users = student student 用户上传的文件,文件所有人为root 上传文件只能上传当前路径下的文件,
!ls ## 看到当前路径的文件
![](https://img-blog.csdnimg.cn/20181126160503567.png)
(6)guest ok =yes 匿名用户可以登陆
map to guest = bad user guest的描述,所有的guest都是不合法的用户。
测试:
5、 多用户挂载(在客户端做)
针对的问题:当mount -o username=westos,password=redhat //172.25.254.160/westos /mnt 其他用户也都能访问共享文件,因此,没有安全性。客户端samba锁就是限制没有通过samba认证的用户不能查看挂载。
-
先安装cifs-utils认证插件
-
解除原来的挂载 : umount /mnt/ 先解除原来的挂载 : umount /mnt/
-
编写/root/smbpass文件, 此文件用来验证挂载人的身份。
-
给文件一个只有超级用户才有读写的权限,提高系统安全性。
-
挂载
credentials=/root/smbpass ##指定挂载时所用到的用户文件 sec=ntlmssp ##认证方式为标准smb认证方式 multiuser ##支持多用户认证
-
普通用户需要用密码验证:
cifscreds add -u limin 172.25.254.160 ## 表示普通用户以共享服务器端的westos用户身份登陆
6、开机自动挂载
编辑/etc/fstab