linux-FTP服务器YUM仓库服务NFS共享存储服务

Posted 可乐卷儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux-FTP服务器YUM仓库服务NFS共享存储服务相关的知识,希望对你有一定的参考价值。

一、FTP服务器

YUM源是搭建在ftp服务器上的

1、概述

FTP (File Transfer Protocol,文件传输协议)是典型的C/S架构的应用层协议,需要由服务端软件、客户端软件两个部分共同实现文件传输功。FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。基于tcp协议,端口号20、21;20端口用于数据传输上传下载,21端口用于控制、建立连接。
FTP是一种文件传输协议,它支持两种模式

  • Standard :也就是Active,主动方式
    • 客户端随机产生的一个端口去连接ftp服务器,ftp主动发起的,开放20端口与客户端传输数据
  • Passive :也就是PASV,被动方式
    • 客户端随机产生的一个端口去连接ftp服务器,不用再单独开放20端口,直接使用某一个随机端口进行与客户端通信

2、搭建和配置FTP服务

2.1.软件安装-vsftpd

linux系统中,是vsftpd提供ftp的服务(没有依赖包,可直接yum安装,也可光盘安装);vsftp全称:very secure ftp daemon;非常安全的ftp服务

yum install -y vsftpd

2.2、配置文件

2.2.1、主配置文件

vsftpd.conf 是vsftpd的配置文件,用来控制vsftpd的各项功能。默认状态下,它的位置是/etc/vsftpd.conf或者在/etc/vsftpd/vsftpd.conf
在这里插入图片描述
在这里插入图片描述
查看匿名用户
在这里插入图片描述
本机开cmd
在这里插入图片描述

2.2.2、配置文件参数讲解

vim /etc/vsftpd/vsftpd.conf  #编辑配置文件
  • anonymous_enable=YES #允许我的匿名登录;注意格式大小写,且没有空格
    默认值YES;anonymous_enable #控制是否容许匿名用户登录;
    在这里插入图片描述
  • ftp可以上传下载文件,上传一个文件123
    创建一个文件123
    在这里插入图片描述
    上传成功,本地目录也有对应文件
    在这里插入图片描述
    在这里插入图片描述
  • ftp可以上传下载文件,上传一个文件123.txt
    文本本地重命名123.txt,下载
    需要配置的参数有
    • anon_upload_enable=YES #启用时,去掉注释#,匿名用户允许上传文件
      默认值:NO;若此项要生效,那么配置write_enable必须激活。并且匿名用户必须在相关目录有写权限:
    • anon_mkdir_write_enable=YES # 启用时,去掉注释#,匿名用户允许创建新目录
      默认值:NO;如果设为YES,匿名用户将容许在指定的环境下创建新目录。如果此项要生效,那么配置write_enable必须被激活,并且匿名用户必须在其父目录有写权限
    • /var/ftp/pub,更改目录pub权限为全权限777

具体如下:
在这里插入图片描述
在这里插入图片描述

systemctl restart vsftpd  #重启服务

在这里插入图片描述
更改pub目录的权限
在这里插入图片描述
这时登录成功,下载文件成功
在这里插入图片描述

  • 给ftp配置全权限是无法登陆的
    在这里插入图片描述
    直接无法登陆,是因为ftp本身的安全协议规则这种全权限的行为是危险的
    在这里插入图片描述
  • 针对普通用户登录,同样可以上传下载

下载
在这里插入图片描述
上传
文件名改名
在这里插入图片描述
在这里插入图片描述

  • local_enable=YES #用来控制是否容许本地用户登录

默认值:NO;如果启用,/etc/passwd里面的正常用户的账号将被用来登录
本地新建用户均可被允许登录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 锁定用户家目录不可随意切换
chroot local user=YES   #取消注释, 锁定家目录了但是如果家目录有写权限ftp会拒绝连接
allow_writeable_chroot=YES #添加这一行允许有写的权限
systemctl restart vsftpd    #重启服务

在这里插入图片描述
连接成功
在这里插入图片描述

  • ftp是拒绝root用户登录的,那么如果让root可以登录呢?
    • 需要在2个配置文件删除掉root
      • /etc/vsftpd/ftpusers
      • /etc/vsftpd/user_list
        详情如下:
        在这里插入图片描述
        在这里插入图片描述
        vim /etc/vsftpd/ftpusers
        在这里插入图片描述
        vim /etc/vsftpd/user_list
        在这里插入图片描述
        在这里插入图片描述
        root连接成功
        在这里插入图片描述
        这里创建用户 zz lisi
        主配置文件增加一行
        vim /etc/vsftpd/vsftpd.conf
        在这里插入图片描述
        在下面配置文件内加入zhangsan
        vim /etc/vsftpd/user_list
        在这里插入图片描述
        在这里插入图片描述
  • tcpdump 抓包工具
    为什么说ftp是不安全的呢?我们用抓包工具看一下原因
    tcpdump -i ens33 -nnX port 21 (ftp为什么不安全)
    • tcpdump:是linux系统的抓包工具,默认安装
    • -i:监听
    • -nn:ip及端口号直接以数字显示,而非主机名与服务名称
    • -X :可以列出十六进位(hex)以及ASCII的封包内容,对于监听封包內容很有用
      在这里插入图片描述
      zz用户连接成功之后
      在这里插入图片描述
      抓包时直接显示ip及端口号,还有账户密码,极大降低了安全性
      在这里插入图片描述
      我们可以看下sftp连接时抓包情况
      在这里插入图片描述
      抓包时密码都是乱码,所以说sftp是非常安全的
      在这里插入图片描述

二、YUM仓库服务

1、本地YUM源配置过程

配置过程整体大体如下图,这个是我的思维导图
在这里插入图片描述
实例具体讲解如何安装在这里插入图片描述
复制主配置文件到 local.repo
在这里插入图片描述
编辑主配置文件vim local.repo
在这里插入图片描述
在这里插入图片描述
更换源之后使用以下2个命令,清理之后重新建立元数据再安装
在这里插入图片描述

2、ftp yum源配置过程

2.1、服务端配置

下载软件

yum -y install vsftpd

进入ftp的家目录

cd /var/ftp

挂载
在服务器上面挂载
在这里插入图片描述
创建备份目录
在这里插入图片描述

2.2、客户端配置

客户端:指定公司内部的一台ftp服务器作为我的yum仓库
在这里插入图片描述

vim ftp.repo  #编辑主主配置文件

在这里插入图片描述

2.3、服务端启动服务

启动服务没有报错即启动成功
在这里插入图片描述

2.4、客户机验证网络

客户机打开火狐访问网页
在这里插入图片描述

3、在yum源内增加软件包

服务端
yum -y install nginx --downloadonly --downloaddir=/data #只下载不安装并存放在data目录下
cp -rf /data/* var/ftp/centos7/Packages/ #把下载下来的内容放在Packages目录下
createrepo --update /var/ftp/centos7/Packages/    #服务器更新
客户端
vim /etc/yum.repos.d/ftp.repo #编辑主配置文件
yum clean all #清除所有
yum makecache  #重新建立源数据
yum repolist  #查询正在使用的yum源

具体过程如下
先查询客户端一共多少个软件包:16758
在这里插入图片描述
只下载不安装nginx服务,这时系统报错
在这里插入图片描述
这时排错发现,yum配置文件缺少epel.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all #清除所有
yum makecache #重新建立源数据
yum -y install nginx --downloadonly --downloaddir=/data
在这里插入图片描述
增加了9个包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
客户端发现识别不到新增加的软件
在这里插入图片描述
需要在服务端重写索引文件,建立依赖关系
repomd.xml:索引文件,若删除此文件是无法下载的
在这里插入图片描述
createrepo命令用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。系统默认安装
–update
如果元数据已经存在,且软件仓库中只有部分软件发生了改变或增减,
则可用update参数直接对原有元数据进行升级,效率比重新分析rpm包依赖并生成新的元数据要高很多
createrepo --update /var/ftp/centos7/Packages/ #服务器更新
在这里插入图片描述
在这里插入图片描述
客户端
vim /etc/yum.repos.d/ftp.repo
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
比较之后发现新增9个包
在这里插入图片描述

三、NFS共享存储服务

1、概念

NFS共享:通过挂载实现文件共享和时时同步,依赖于rpc(远程过程调用)软件,端口111。
nfs启用之后会在服务器上面产生很多端口,端口在rpc上面注册,由rpc告知需要跟哪个端口建立连接;先启用rpcbind端口号111,再启用nfs端口号2049。

2、配置

服务端
yum -y install rpcbind nfs-utils    #安装软件包
mkdir /data                         #创建共享文件目录
vim /etc/exports                    #nfs的配置文件
/data 192.168.35.20(rw,sync)        #主配置文件配置内容
systemctl start rpcbind             #开启rpc服务
systemctl start nfs                 #开启nfs服务
showmount -e localhost              #验证共享
exportfs -r                         #刷新
exportfs -v                         #查看配置文件的内容
客户端
yum -y install rpcbind nsf-utils  #安装rpc、nfs服务
cd /var/www/html #挂载点
mount -t nfs 192.168.35.20:/data  /var/www/html

详情如下:
配置nfs服务器

  • yum -y install rpcbind nfs-utils #安装软件包
    在这里插入图片描述

服务端

  • vim /etc/exports #nfs的配置文件
    /data 192.168.35.20(rw,sync)
    在这里插入图片描述
    常用选项:
    rw #表示允许读写
    ro #表示为只读
    sync #表示同步写入到内存与硬盘中
    no_root_squash #表示当客户机以root身份访问时赋予本地root权限(默认是root_squash)
    root_squash # 表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户

其它常用选项:
all_squash # 所有访问用户都映射为匿名用户或用户组
async # 将数据先保存在内存缓冲区中,必要时才写入磁盘
subtree_check(默认) # 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
no_subtree_check # 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率

  • 开启服务
    • systemctl start rpcbind #开启rpc服务
    • systemctl start nfs #开启nfs服务
    • cat /var/lib/nfs/etab #查看配置文件内容 ;配置文件内容写入etab文件
      在这里插入图片描述
  • 查看端口
    • netstat -anpu | grep rpc #查看端口是否开启
    • rpcinfo -p localhost | grep nfs #查看nfs向rpc注册的端口信息
      在这里插入图片描述
  • 验证共享2种方式
    • showmount -e localhost #验证共享
      在这里插入图片描述
    • exportfs -r #刷新 ;exportfs -v #验证共享
      在这里插入图片描述
      客户端
  • 验证共享
    在这里插入图片描述
  • 创建挂载点
  • mkdir -p /var/www/html #挂载
    在这里插入图片描述
    客户端查看未共享文件
    在这里插入图片描述
    服务端在这里插入图片描述
    客户端
    在这里插入图片描述

3、实验延伸

3.1、客户端写入内容服务端也一样同步

接上面实验环境,客户端创建用户无法创建
在这里插入图片描述
服务端编辑配置文件
vim /etc/exports
opt/web/ 192.168.35.131(rw,sync,no_root_squash )
在这里插入图片描述
这时客户端创建一个文件
exportfs -r #刷新
客户端创建文件 222
在这里插入图片描述
服务端以共享
在这里插入图片描述

3.2、客户端永久挂载

vim /etc/fstab
在这里插入图片描述
defaults,_netdev:是网络存储设备
mount -a 即可

3.3、服务器nfs挂掉

NFS 客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端 NFS 服务突然间停掉了,那么在客户端就会出现执行 df -h 命令卡死的现象
这个时候使用 umount 命令是无法直接卸载的,需要加上 -lf 才能卸载

  • -l 表示解除正在繁忙的文件系统
  • -f 表示强制
systemctl stop nfs    //服务器端模拟nfs挂掉

客户端卸载挂载,无法卸载

umount /var/www/html     //客户端卸载时会卡住

需要再打开一个虚拟机强行卸载

umount -lf /var/www/html   //加lf参数成功卸载

在这里插入图片描述

以上是关于linux-FTP服务器YUM仓库服务NFS共享存储服务的主要内容,如果未能解决你的问题,请参考以下文章

部署yum仓库及NFS共享服务

部署YUM源仓库与NFS共享存储服务

Linux网络之YUM仓库的补充和NFS共享服务

YUM与共享服务

YUM远程仓库以和NFS共享存储服务

linux --FTP服务器,部署YUM仓库,NFS共享服务