一 、文件共享
VSFTP 文件传输
FTP是文件传输协议.用于Internet上的控制文件的双向传输,FTP传输文件属于明文传输,不对传输过程进行任何加密处理,VSFTP服务是Linux系统下的加强版传输服务器,安全性更好.
VSFTP的特点
1.vsftp程序的运行者一般是普通用户,降低了相对应进程的权限,提高了安全性.
2.任何需要执行较高权限的指令都需要上层程序许可.
3.ftp所需要使用的绝大多数命令都被整合到了vsftp中,基本不需要系统额外提供命令.
4.拥有chroot功能,可以改变用户的根目录,限制用户只能在自己的家目录.
VSFTP的连接类型
控制连接(持续连接)-> TCP21(命令信道)-> 用户收发FTP命令
数据连接(按需连接)-> TCP20(数据信道)-> 用于上传下载数据
主动模式与被动模式
1.很多防火墙在设置的时候都是不允许接受外部发起的连接,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高位端口.
2.而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP20无法和内部网络的客户端建立一个新的连接,造成无法工作.
配置匿名FTP服务器
作用:任意用户,输入FTP服务器IP都可以访问,只需输入用户名ftp即可访问.

1.安装VSFTP服务器.
2.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.

3.启动FTP服务,并设置开机自动启动.
配置本地用户FTP服务器
作用:只有正确输入用户名和密码才能访问数据.

1.安装VSFTP服务器.
2.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.
3.创建用户并指定其家目录,创建用于存储数据的目录.
配置匿名与本地混合FTP
作用:匿名用户可以查看共享数据,登陆后有自己的存储池.
1.安装VSFTP服务器
2.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.
3.创建用户并指定其家目录,创建用于存储数据的目录.
配置虚拟用户FTP服务器
作用:有时候创建本地用户过多,严重影响系统效率,所有我们要使用虚拟用户模式.

1.安装相应软件包,libdb-utls是数据库包.
2.配置vlogin文件,vlogin文件名称可自定义,写入相应账号以及密码.
3.将写好的文件加密,并转换成vlogin.db数据库文件
4.设置数据库文件的权限,保证安全.
5.覆盖编辑PAM文件,写入以下内容.
6.创建一个映射账号virtual,所有的登陆请求都是virtual.
7.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.

8.创建对应文件(用于保存权限文件).

9.编辑文件给指定用户分配权限,用匿名用户权限分配.

10.启动FTP服务,并设置开机自动启动.

OpenSSL+FTP 加密传输
1.查看是否安装OpenSSL包.
2.生成SSL加密密钥对.
3.把生成的证书放入特定目录下,并给予最低权限,保证安全.
4.在VSFTP主配置中文件加入以下参数.

5.启动FTP服务,并设置开机自动启动.
NFS 实现文件共享
NFS 即网络文件系统,是一种使用于分布式文件系统的协议,NFS 功能是通过网络让不同的机器,不同的操作系统能够彼此分享各自的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法.
目前NFS有三个版本,其常用的版本解析
NFSv2:是一个古老的版本,但却被众多的操作系统所支持,这样兼容性更好.
NFSv3:拥有更多的特点,包括更快的速度,更大的单个文件大小,对TCP的支持.
NFSv4:提供有状态连接,共容易追踪,安全性增强,RHEL7上默认4版本协议.
在启动NFS Server之前,首先要启动RPC服务否则NFS Server就无法向RPC服务区注册,另外如果RPC服务重新启动,原来已经注册好的NFS端口数据就会全部丢失.因此此时RPC服务管理的NFS程序也要重新启动以重新向RPC注册.
NFS系统的守护进程介绍
RPC:(Remote Procedure Call Protocol),远程过程调用协议
NFS:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器
RPCbind:主要功能是进行端口映射工作,和端口代理分配等
客户端NFS和服务端NFS通讯过程
首先服务器端启动RPC服务,并开启111端口
启动NFS服务,并向RPC注册端口信息
客户端启动RPC,向服务端的RPC服务请求服务端的NFS端口
服务端的RPC服务,反馈NFS端口信息给客户端
客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输
NFS服务器是通过读取/etc/exports配置文件设定那个客户端可以访问那些NFS共享文件系统,该文件书写原则有如下几条.
空白行的内容将被忽略
以#号开头的内容是注释
可以通过\转义字符换行
每个共享文件系统需要独立一行条目
客户端的主机列表需要使用空格隔开
接下来我们来看一下一条完整的规则条目是如何书写的吧,需要注意的是客户端主机可以是一个网段,单台主机或者是主机名称,在使用时应该灵活运用.
[共享目录] [允许谁来访问][权限] [可用主机名][权限] [其他主机权限]

如上所示,有个权限列表,NFS配置中可以给一个共享路径指定相关权限,NFS的默认属性为ro,sync,wdelay,root_squash,具体的NFS属性列表,我们可以参考一下列表.

以上的几个说明信息,是我们最常用的几个,当然还有很多这样的配置选项,这里就不依次列举了,更多内容请百度了解.
NFS 服务端配置
1.在配置NFS共享文件之前,我们先来放行NFS的几个常用服务,并将防火墙默认设置为拒绝状态.
2.通过YUM仓库快速安装NFS相关的软件包.
3.创建需要共享的文件,并拷贝相关的文件内容,并设置SeLinux规则.
4.修改NFS主配置文件,并写入要访问的主机列表.
5.重启NFS服务,和守护进程,并设置开机自启动.
NFS 客户端配置
1.通过YUM仓库快速安装NFS相关的软件包.
2.创建挂载点,并设置SeLinux规则.
NFS挂载演示: 手动挂载目录,可通过mount命令来实现,具体的挂载参数如下.

nfsstat命令: NFS提供了查看NFS共享状态功能.
rpcinfo命令: NFS生成RPC信息报表功能.
showmount命令: NFS使用shomount命令可以查看远程主机共享列表.
exportfs命令: 此命令允许root在不重启NFS服务情况下,选择共享或取消共享文件.
配置固定端口: 我们可以修改配置文件来实现配置固定的共享端口号.
设置自动挂载: 修改自动挂载目录,写入以下内容即可实现自动挂载.
iSCSI 磁盘共享服务
iSCSI技术是一种新储存技术, iSCSI 提供了在 IP 网络封装 SCSI 命令,且以TCP/IP协议传输.
配置iSCSI服务端
1.通过yum安装iSCSI服务端,此处已安装成功,略过本步骤
2.安装成功后,手动启动iSCSI服务,并设置开机自启动 (注意:iSCSI服务程序为targetd)
3.查看iSCSI服务端共享资源,targetcli是用于管理iSCSI服务的专用命令,在执行命令是可看到交互界面.

4.进入/backstores/block共享设备位置,并创建共享设备名称 (注意:/backstores/block是iSCSI服务端配置共享设备的位置)

5.创建iSCSI target名称及配置共享资源,iSCSI target 名称是由系统自动生成的,这是一串用于描述共享资源的唯一字符串

6.配置访问控制列表(ACL),iSCSI设备无需密码进行验证,只需知道标签名称即可通过,因此需要在iSCSI服务端的配置文件中写入一串能够验证信息的名称,这里推荐在系统生成的标签后面加上标识符,:client参数,保证标签唯一性,同时方便区别和管理
7.设置iSCSI服务器的监听IP地址和端口号,即在portals参数目录中写上服务器的IP地址,接下来系统会自动开启服务器192.168.1.20的3260号端口,为外部提供共享存储服务
8.配置全部妥当后检查一下,没问题的话保存.

9.重启SCSI服务,到此服务器已经配置完毕
配置Linux客户端
1.安装iSCSI客户端组件,在RHEL7系统中已经默认集成,如果没有请执行以下步骤,此处就略过
2.编辑iSCSI客户端中的initiator名称文件,把服务端的访问控制列表名称填写进来,然后重启iscsid服务程序,并将其加入到开机自启动列表
3.发现iSCSI服务端存储资源,其中:-m discovery 参数的目的是扫描并发现存储资源,-t st 参数为执行扫描操作的类型,-p 参数后为iSCSI服务端的IP地址
4.接下来准备登陆iSCSI服务器,其中:-m node 参数为将客户端主机作为一台节点服务器,-T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 参数为要使用的存储标签,-p 后面为iSCSI服务器的IP地址, --login 参数为登陆服务器,如果加 -u参数为卸载挂载资源
5.此时在iSCSI客户端上会多出一个/dev/sdb磁盘设备文件,接下来我们直接格式化挂在到/network-disk目录下

iSCSI客户端经过以上步骤之后,这个设备文件就可以像使用本地磁盘文件一样的操作啦
6.接下来配置一下自动挂载功能,需要注意的是,挂载选项必须为_netdev,写错的话系统无法开机.
由于/dev/sdb/是一个网络设备,而iSCSI是基于TCP/IP网络传输数据的,因此在配置自动挂载是应该加入_netdev参数,说明其是一个网络设备

如需配置Windows客户端只需要执行以下步骤.
1.单击控制面板 --> 管理工具 --> iSCSI发起程序
2.在目标选项卡 --> 输入服务器IP地址 --> 单击快速连接
3.选择配置选项卡 --> 单击更改 --> 在标签末尾加上自定义的字符,此处为:client --> 单击确定
4.单击目标选项卡 --> 单击下方的连接按钮
5.单击此电脑 --> 右键选择管理 --> 选择磁盘管理 --> 即可看到磁盘信息