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
- anon_upload_enable=YES #启用时,去掉注释#,匿名用户允许上传文件
具体如下:
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
- 需要在2个配置文件删除掉root
- 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 #验证共享
客户端
- showmount -e localhost #验证共享
- 验证共享
- 创建挂载点
- 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共享存储服务的主要内容,如果未能解决你的问题,请参考以下文章