linux网络文件共享服务

1、存储类型

1.1存储类型分类

  • 直连式存储:DAS
    DAS存储设备与服务器主机之间的连接通道通常采用SCSI连接,DAS存储设备主要是磁盘阵列(RAID:)、磁盘簇JBOD)等。
  • 网络附加存储:NAS
    与DAS以及SAN不同,NAS是文件级的存储方法。采用NAS较多的功能是用来进行文件共享。NAS存储也通常被称为附加存储。
  • 存储区域网络:SAN
    存储区域网络,这个是通过光纤通道或以太网交换机连接存储阵列和服务器主机,最后成为一个专用的存储网络。

1.2三种存储架构的应用场景

  • DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业
  • NAS多适用于文件服务器,用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低
  • SAN则适用于大型应用或数据库系统,缺点是成本高、较为复杂

2、FTP文件传输协议

2.1文件传输协议

FTP早期的三个应用级协议之一,基于C/S结构
数据传输格式:二进制(默认)和文本
双通道协议:命令和数据连接 21 命令端口(权限,认证) 20 数据端口

2.2两种模式

  • 主动(PORT style):服务器主动连接客户端
    命令(控制):客户端:随机port —> 服务器:21/tcp
    数据:客户端:随机port <—服务器:20/tcp
    在这里插入图片描述
  • 被动(PASV style):服务器被动等待客户端连接
    命令(控制):客户端:随机port —> 服务器:21/tcp
    数据:客户端:随机port —> 服务器:随机port /tcp
    在这里插入图片描述

2.3用户类型

  • 匿名用户:ftp,anonymous,对应Linux用户ftp
  • 系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow
  • 虚拟用户:特定服务的专用用户,独立的用户/密码文件

2.4常见的FTP相关软件

FTP服务器端软件

  • Wu-ftpd,Proftpd,Pureftpd,Filezilla Server,Serv-U,Wing FTP Server,IIS
  • vsftpd:Very Secure FTP Daemon,CentOS 默认FTP服务器
    高速,稳定,下载速度是WU-FTP的两倍
  • ftp.redhat.com数据:单机最多可支持15000个并发
  • vsftpd官网: https://security.appspot.com/vsftpd.html

2.3 vsftpd软件介绍

由 vsftpd 包提供,不再由xinetd管理
用户认证配置文件:/etc/pam.d/vsftpd

用户和其共享目录

  • 匿名用户(映射为系统用户ftp )共享文件位置:/var/ftp
  • 系统用户共享文件位置:用户家目录
  • 虚拟用户共享文件位置:为其映射的系统用户的家目录

2.3.1基础操作

安装ftp软件  yum install vsftpd -y

在这里插入图片描述

开启服务  systemctl start vsftpd

在这里插入图片描述

服务端同样安装vsftpd,并进入配置文件,修改其默认的端口号vim /etc/vsftpd/vsftpd.conf

在这里插入图片描述

当服务端口号修改完成后,客户端连接不加端口号时,服务端会拒绝访问

在这里插入图片描述
在这里插入图片描述

主动模式端口
connect_from_port_20=YES 主动模式端口为20
ftp_data_port=20 (默认) 指定主动模式的端口
被动模式端口
pasv_min_port=6000   0为随机分配,端口范围会影响客户端的并发数
pasv_max_port=6010
-使用当地时间
use_localtime=YES 使用当地时间(默认为NO,使用GMT)
-匿名用户登录
anonymous_enable=YES 支持匿名用户,CentOS8 默认不允许匿名
no_anon_password=YES 匿名用户略过口令检查 , 默认NO
-匿名用户上传
anon_upload_enable=YES 匿名上传,注意:文件系统权限
anon_mkdir_write_enable=YES 匿名建目录
chmod   777   /var/ftp/pub

2.3.2匿名用户上传与下载文件

服务器端配置

进入配置文件进行修改
允许匿名用户上传文件。默认已注释,需取消注释
允许匿名用户创建(上传)目录。默认已注释,需取消注释
允许删除、重命名、覆盖等操作。需添加

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
客户端
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
客户端删除服务端的文件
在这里插入图片描述
服务端
在这里插入图片描述

2.3.3控制系统用户等信息

[root@node2 pub]#vim /etc/vsftpd/vsftpd.conf
#最后加入   复制注意空格
guest_enable=YES 
guest_username=ftp   
#local_root=/ftproot    可以注释此行,默认所有用户都在  ftp用户的家目录


让每个用户拥有独有配置
[root@node2 pub]#vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/conf.d/ 
#可以自由指定

针对 zhangsan  lisi  用户

[root@node2 data]#mkdir -p /etc/vsftpd/conf.d
#先建立好配置文件夹

#编写子配置文件
[root@node2 data]#vim    /etc/vsftpd/conf.d/lisi
local_root=/data/lisi
[root@node2 data]#vim   /etc/vsftpd/conf.d/zhangsan
local_root=/data/zhangsan

2.4禁锢系统用户

2.4.1禁锢所有系统用户在家目录中

chroot_local_user=YES #禁锢系统用户,默认NO,即不禁锢

2.4.2禁锢用户开启白名单和黑名单

chroot_list_enable=YES     #默认是NO
chroot_list_file=/etc/vsftpd/chroot_list   #默认值
  
当chroot_local_user=YES和chroot_list_enable=YES时,则chroot_list中用户不禁锢,即白名单
当chroot_local_user=NO和chroot_list_enable=YES时, 则chroot_list中用户禁锢,即黑名单

黑名单限制user登录

打开黑名单
vim /etc/vsftpd/vsftpd.conf

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
白名单登录

服务端配置  vim /etc/vsftpd/vsftpd.conf

在这里插入图片描述

vim user_list 将user从列表中移除

在这里插入图片描述

客户端连接服务端  ftp 192.168.190.200

在这里插入图片描述
由于ftp是明文传输, 抓取是可可以获取密码的 默认是不让使用root 用户登录

进入ftbusers删除root,user_list里也加入root(现在是白名单)
可以实现root登录

3、NFS

3.1概念

网络上共享文件系统的协议,运行多个服务器之间通过网络共享文件和目录
  • 服务端:将指定目录标记为共享目录,服务段有访问权限,共享目录有全部权限
  • 客户端:通过nfs协议,发送请求到服务器,获取共享目录的操作权限

3.2NFS工作原理

在这里插入图片描述

1. 客户端请求:NFS 的客户端向 NFS 服务器发送文件访问请求。这可以是读取文件、写入文件或执行其他文件操作。
2. 访问协议:客户端使用 RPC(Remote Procedure Call)协议与服务器通信。客户端会发送特定的 RPC 调用来请求文件操作,如打开文件、读取文件或关闭文件。
3. NFS 服务端:NFS 服务器收到来自客户端的请求,并解析这些请求。服务器根据客户端请求的内容,在本地文件系统上执行相应的操作。
4. 文件传输:当服务器执行文件操作时,它会读取或写入相应的文件或目录。数据通过网络传输,从服务器发送到客户端或从客户端发送到服务器。
5. 返回结果:服务器完成请求后,会将执行结果返回给客户端。这可能包括成功的确认、文件内容、错误信息等。

3.3NFS的优点

1.共享,目录可以共享
2.透明,不关心底层访问网络细节,能访问即可
3.性能,读写性能高,访问速度快
4.可靠,具有一致性,服务端和客户端的操作同步。

3.4NFS软件介绍

软件包:nfs-utils(包括服务器和客户端相关工具,CentOS8 最小化安装时默认没有安装)
相关软件包:rpcbind(必须),tcp_wrappers
Kernel支持:nfs.ko
端口:2049(nfsd), 其它端口由portmap(111)分配
NFS服务主要进程:

  • rpc.nfsd 最主要的NFS进程,管理客户端是否可登录
  • rpc.mountd 挂载和卸载NFS文件系统,包括权限管理
  • rpc.lockd 非必要,管理文件锁,避免同时写出错
  • rpc.statd 非必要,检查文件一致性,可修复文件
    说明:CentOS 6 开始portmap进程由rpcbind代替
    日志:/var/lib/nfs/
NFS配置文件:
/etc/exports
/etc/exports.d/*.exports

3.5NFS共享配置文件格式

/dir        主机1(opt1,opt2)     主机2(opt1,opt2)...
vim /etc/exports 
...
共享文件夹    允许访问的主机[权限] #添加的内容
...
:wq

#例如 
/data   *    #允许所有访问共享目录/data

3.6NFS工具

3.6.1exportfs

exportfs:可用于管理NFS导出的文件系统
常见选项
-v #查看本机所有NFS共享
-r #重读配置文件,并共享目录
-a #输出本机所有共享
-au #停止本机所有共享
#exports配置常用参数
#ro 只读
#rw 读写
#root_squash
当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
#no_root_squash
当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
#all_squash
无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
#sync
同时将数据写入到内存与硬盘中,保证不丢失数据
#async
优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

3.6.2showmount

常见用法:
showmount -a #显示所有共享的目录
showmount -e <服务器主机名或IP地址> #显示特定 NFS 服务器上的共享目录
showmount -l #仅显示挂载点的主机名或IP地址
 
[root@centos7 ~]#showmount -e 10.0.0.8
Export list for 10.0.0.8:
/data/wordpress *

3.6.3mount.nfs

客户端NFS挂载
NFS相关的挂载选项:man 5 nfs

fg #(默认)前台挂载
bg #后台挂载
hard #(默认)持续请求
soft   #非持续请求
intr   #和hard配合,请求可中断
rsize #和wsize 一次读和写数据最大字节数,rsize=32768
_netdev #无网络连接不挂载
vers    #指定版本,客户端centos8默认4.2 ,centos7默认4.1 centos6默认4.0

3.7模拟实现NFS

服务端配置

#关闭防火墙和selinux
systemctl stop firewalld
setenforce 0

在这里插入图片描述

#安装nfs-utils和rpcbind软件包
yum install nfs-utils rpcbind -y

在这里插入图片描述
#新建共享目录,在目录内创建文件
mkdir /test
touch /test/t1
在这里插入图片描述

#给共享文件夹增加权限
chmod 777 /test/

在这里插入图片描述

vim /etc/exports编辑配置文件

在这里插入图片描述

#重新启动程序
systemctl restart rpcbind
systemctl restart nfs

在这里插入图片描述

#查看本机所有的NFS共享
exportfs -v

在这里插入图片描述

服务端配置

安装rpcbind和nfs
yum install nfs-utils rpcbind -y

在这里插入图片描述

关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0

在这里插入图片描述

启动程序
[root@localhost ~]# systemctl restart rpcbind
[root@localhost ~]# systemctl restart nfs

在这里插入图片描述

#查看共享文件夹
showmount -e 192.168.190.254

在这里插入图片描述
在这里插入图片描述
服务端

在共享文件夹下重新创建一个新的文件
touch fsj.txt

在这里插入图片描述
客户端

查看挂载点有没有刚才新建的文件

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_62231324/article/details/132193195