一、网络文件系统
网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样,能够支持在不同类型的系统之间通过网络进行文件共享。
二、samba基本信息
服务启动脚本 | smb.service |
---|---|
主配置目录 | /etc/samba |
主配置文件 | /etc/smb.conf |
安全上下文 | samba_share_t |
端口 | 139/445 |
安装包 | samba和samba-common |
三、samba的安装与启用
samba的安装:
dnf install samba samba-common samba-client -y
samba服务启动:
systemctl enable --now smb
samba服务启用
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
测试:
smbclient -L //172.25.254.173 ##当要输入root密码时请直接回车
实验:
3.samba用户的建立
1.samba用户的建立
smbpasswd -a westos ##添加用户,用户必须是在本地存在的用户
pdbedit -L ##查看用户列表
pdbedit -x westos ##删除用户
实验:
这里的密码设置不会影响到本地用户的密码
以刚刚建立的用户身份进行登陆
4、samba用户访问家目录
当selinux开启时用户不能访问自己的加目录,修改selinux中smb波尔值时用户可以访问家目录
setsebool -P samba_enable_home_dirs on
5.samba服务共享目录
1、建立文件目录westosdir,在 /etc/samba/smb.conf 中添加要 共享名称、共享说名、指定共享的本机目录,此时可查看到目录已经共享
2、在/westosdir/westosflie{1…3}建立3个文件,进行登陆访问,此时会因为selinux的原因出现报错,因为用户自己建立的目录要想通过smb共享必须将安全上下文指定为:samba_share_t 执行命令修改:
semanage fcontext -a -t samba_share_t '/westosdir(/.*)?'
restorecon -RvvF /westosdir/
此时可访问到刚刚建立的文件
6.samba的访问控制
全局访问控制黑白名单
编辑westosa中samba配置文件smb.conf,在全局模块【GLOBAL】中设置允许访问列表(hosts allow),重启smb服务后只有全局白名单中的主机可以挂载访问所有samba服务的共享目录(对samba整体生效),此时只有westosa可以挂载samba服务器westosa中的共享目录,westosb不能挂载samba服务器westosa中的共享目录,westosb在访问时系统提示非法连接请求
编辑samba配置文件在全局模块中设置禁止访问列表(hosts deny),重启smb服务后全局黑名单中的主机不能挂载访问所有samba服务的共享目录,此时只有westosb可以挂载samba服务器westosa中的共享目录,westosa不能挂载samba服务器westosa中的共享目录
局部访问控制黑白名单
编辑samba配置文件,注释掉全局samba访问控制设定(全局控制设定的优先级最高),如果是在某单个共享目录语句块中设置允许访问列表(hosts allow)/禁止访问列表(hosts deny),那么此时(只有局部白名单/局部黑名单)中的主机(可以/不能)挂载访问该共享目录
7.samba的常用配置参数
writable = yes | ##可写 |
---|---|
write list = westos | ##指定用户可写 |
write list = +westos | ##指定组可写 |
write list = @westos | ##指定组可写 |
valid users = lee | ##指定访问用户 |
valid users = +lee/@lee | ##指定访问组 |
browseable = yes/no | ##是否隐藏共享 |
map to guest = bad user ##写到全局设定中
guest ok = yes ##允许匿名用户访问
admin users = lee ##指定此共享的超级用户身份呢
8.samba的多用户挂载
在客户端如果用普通的挂载方式,没有经过用户验证的人也可以访问samba服务
nfs服务
1、nfs介绍
NFS(Net File System)即网络文件系统,它是由SUN公司研制的UNIX表示层协议,能够使客户端主机访问网络上其余主机的文件系统资源。nfs的数据传输优化和安全性能要比samba好,其客户端和服务端组件是一体的,其服务由软件包nfs-utils提供,samba服务使用的是139、445固定端口,nfs默认使用的是2049端口,nfs被访问时的工作流程如下图所示:
当客户端主机访问nfs服务器上的共享资源时,会先访问服务器上的rpc-bind服务,rpc-bind会为客户端主机分配一个随机的访问端口号,客户端主机使用该端口号进一步访问服务器上的mounted软件,mounted软件负责对nfs服务器上所有共享资源进行控管,当客户端主机需要访问的共享资源存在时,mounted程序会进一步带领客户端主机通过2049端口访问nfs服务的共享资源,由于rpc-bind为客户端主机分配的访问端口号是随机的,所以nfs的安全性能要比samba好。
2、nfs基本信息
安装包 | nfs-utils |
---|---|
服务脚本 | nfs-server |
共享配置文件 | /etc/exports |
服务端口 | 2049 |
3、nfs实验
1.在westosa中安装nfs-utils(虚拟机默认安装过)并开启nfs-server服务,在nfs服务器westosa的防火墙中永久添加nfs、rpc-bind、mountd,刷新火墙使设定生效,编辑/etc/exports文件指定共享目录、共享列表和共享参数,完成后exportfs -rv使文件生效(不能重启nfs-server服务)
2.在客户端主机westosb中可以通过以下两种方式访问共享资源:
方法一: showmount -e nfs服务器IP(相当于smbclient -L)查看nfs服务器上的所有共享资源
方法二: mount nfs服务器IP:/共享目录 挂载点挂载共享文件系统到访问客户端的指定位置处进行访问
4、nfs配置参数实验
anonuid=1000,anongid=1000 ##指定用户身份
sync ##更改生成后同步数据到服务器
async ##时时同步数据到服务器
rw ##读写挂载
ro ##只读挂载
no_root_squash ##以root用户挂载不转换身份
1.在进行参数设置之前,为了不使共享的本地文件系统的权限设定限制我们写入文件,需要将共享目录的权限设置为777,在nfs服务器westosa中编辑/etc/exports文件指定以只读方式挂载,完成后exportfs -rv使文件生效,此时挂载共享文件系统到访问客户端westosb的指定位置处后不能执行新建、删除文件等操作
编辑/etc/exports文件指定所有人以只读方式挂载,172.25.254网段的主机以读写方式挂载,此时挂载共享文件系统到访问客户端westosb(172.25.254.174)的指定位置处后可以执行新建、删除文件等操作
注意: 进行多个共享用户ro、rw权限设置时,后面的设定会覆盖掉前面的设定
2.在nfs服务器westosa的/etc/exports文件中不设定参数指定用户、用户组身份时,在客户端主机westosb挂载共享目录后,在共享目录中新建文件,查看新建文件的属性,其用户、用户组身份默认为nobody;使用id号指定用户、用户组身份时,在客户端主机westosb挂载共享目录后,在共享目录中新建文件,查看新建文件的属性得到的结果和在nfs服务器westosa共享目录查看新建文件属性得到的结果不一定相同,这是因为westosa、westosb中相同id号对应的用户可能不同
3.在nfs服务器westosa的/etc/exports文件中设定no_root_squash即使用root用户身份挂载时不转换身份,此时在客户端主机westosb挂载共享目录后,在共享目录中新建文件,分别在westosa、westosb中查看新建文件的属性,其用户、用户组身份固定为root
5、autofs+samba自动挂载
1.在客户端主机westosb中安装autofs软件并启动autofs服务,在客户端主机westosb中编辑策略文件/etc/auto.master写入最终挂载点的上级目录、指定挂载子策略文件,编写挂载子策略文件/etc/auto.nfs指定将资源以指定参数方式挂载到最终挂载点之前samba自动挂载实验要注销掉否则会影响实验
2.将nfs服务器westosa的共享目录/westosdir挂载到/westos/nfs下,重启autofs服务后有westos目录,进入westos目录,查看目录显示目录中无内容,但此时执行cd命令可以直接进入最终挂载点nfs目录中,cd命令相当于执行了挂载操作,此时df查看可以看到共享资源WESTOS挂载到/westos/nfs下;cd切换出最终挂载点nfs目录,等待资源闲置时间超过主配置文件/etc/autofs.conf设置的资源闲置时间限制后,df查看可以看到共享资源WESTOS自动卸载
6、iscsi 设备共享
实验:
1、在iscsi服务器westosa添加一块新的硬盘,使用交互式分区方式fdisk /dev/vdb在该硬盘上新建一个大小为2G的设备/dev/vdb1
2、在iscsi服务器westosa中安装iscsi服务端软件targetcli并启动target服务
dnf install targetcli -y
3、这时我们可以执行targetcli命令在iscsi服务器westosa中进行共享设备的建立:建立内部共享名称;建立外部共享名称(这里必须使用iqn即iscsi限定名称,日期用-连接,域名要反写);建立内部共享名称和外部共享名称关联;建立认证密钥,这些所有的设定都会保存在/etc/target/saveconfig.json文件中。接着在防火墙中永久添加iscsi服务的3260端口(端口可执行targetcli命令ls查看得到),刷新火墙使设定生效
4、在iscsi客户端westosb中安装iscsi服务端软件iscsi-initiator-utils,此时在客户端可以执行iscsiadm命令发现-p指定主机上的共享设备,但此时无法查询到该共享设备,因为防火墙不允许通过
dnf install iscsi-initiator-utils -y
在a机防火墙开放端口:
[root@westosaaa ~]# firewall-cmd --permanent --add-port=3260/tcp
success
[root@westosaaa ~]# firewall-cmd --reload
success
[root@westosaaa ~]#
此时共享信息是可以查询到的
5、此时-l 连接失败,因为客户端iscsi服务认证文件/etc/iscsi/initiatorname.iscsi中的认证密钥与服务器端的认证密钥不一致,认证无法通过,修改客户端iscsi服务认证文件中的认证密钥使其与服务器端的认证密钥一致,重启客户端iscsid服务,此时认证通过可以-l连接到该共享设备
fdisk -l可以查看到登入的共享设备/dev/sda
7.iscsi 开机自动挂载
设备在开机时自动挂载到指定位置处,在编写自动挂载策略文件/etc/fstab时需要加入 _netdev 参数说明该设备类型为网络共享设备,否则系统将无法启动
8、卸载设备
先-u临时登出共享设备,再-o delete删除该设备,此时在服务器端可以执行targetcli命令,clearconfig confirm=True清除服务器上所有共享设备的设定