FTP文件传输与搭建yum仓库

匿名用户上传动手操作还需要再练

一 存储类型

直连式存储DAS

适用于那些数据量不大,对磁盘访问速度要求较高的中小企业

存储区域网络SAN

用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低

网络附加存储NAS

适用于大型应用或数据库系统,缺点是成本高、较为复杂

二 FTP工作原理

 文件传输协议  是   典应用层协议,c/s架构,协议 服/客 软件两个部分实现文件传输功能

通过FTP协议,用户可以在FTP服务器中进行文件的上传或下载等操作,虽然现在通过HTTP协议下载的站点有很多,①但是由于FTP协议可以很好地控制用户数量和宽带的分配,快速方便地上传、下载文件,因此FTP已成为网络中文件上传和下载的首选服务器,同时,②它也是一个应用程序,用户可以通过它把自己的计算机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。

FTP服务状态码:

服务器数据端口为:

20数据端口          用于建立数据连接,并传输文本数据

21命令端口          建立控制连接,并传输FTP控制命令

 数据传输格式:二进制   文本

 双通道协议:命令与数据的连接

从服务器角度

主动模式:服务器主动开启20端口连接客户端传输真实数据

被动摸式:服务器随机开启端口等待客户端连接,客户机通过21命令来获取 服务端的随机端口

数据给客户端

被动(PASV style):服务器被动等待客户端连接

用户认证:

  • 匿名用户:ftp  anonymous     对应Linux用户ftp root,两种协议

  • 一般提供公共文件的下载,如免费文件,学习资料,百度网盘

  • 系统用户:  Linux用户,用户/etc/passwd;       密码/etc/shadow

  • 虚拟用户:   特定服务的专用用户,独立的用户/密码文件

FTP服务器系统由  服务端软件、客户端软件和FTP通信协议   组成。

常见 FTP服务端相关软件

vsftpd:服务端核心软件

ftp.redhat.com数据

Wu-ftpd

三 vsftpd 软件介绍

是一个非常流行且安全的开源FTP服务器软件,专为类Unix系统设计,如Linux、FreeBSD等。

①由 vsftpd 包提供,不再由xinetd管理

②用户认证配置文件: /etc/pam.d/vsftpd

③主配置文件: /etc/vsftpd.conf

  或子目录      :/usr/sbin/vsftpd

                       :/var/log/vsftpd.log

实验:vsftpd   ftp 软件基础作用

安装两个软件,两端都要关闭防火墙   防护

#服务端:
yum install -y vsftpd     #安装ftp服务器
systemctl start vsftpd    #开启服务
#客户端:
yum install -y ftp        #安装ftp服务程序
服务端IP 192.168.11.9

客户端IP192.168.11.10

 登录到ftp服务端可执行的操作

1 浏览文件和目录:使用 FTP 客户端软件,你可以浏览 FTP 服务器上的文件和目录结构。你可以列出目录内容、查看文件属性和大小等信息

2 上传和下载文件:你可以将本地计算机上的文件上传到 FTP 服务器,或从 FTP 服务器下载文件到本地计算机。这使得文件的传输变得方便快捷

3  创建和删除目录:你可以在 FTP 服务器上创建新的目录,用于组织文件和数据。同样地,你也可以删除不再需要的目录

4  重命名和移动文件:你可以对 FTP 服务器上的文件进行重命名,改变它们的名称。此外,你还可以将文件从一个目录移动到另一个目录,以重新组织文件结构

5 修改文件权限:作为 FTP 服务器的管理员或有足够权限的用户,你可以修改文件的权限设置。这包括更改文件的所有者、组、读写执行权限等

6  管理用户和身份验证:作为管理员,你可以管理 FTP 服务器上的用户账户和身份验证方式。这包括创建新用户、删除用户、修改用户密码等操作

7 监控和查看日志:FTP 服务器通常会记录用户的登录、文件传输等活动。你可以查看服务器的日

用户的共享目录

  • 匿名用户(映射为系统用户ftp )共享文件位置:/var/ftp

  • 系统用户共享文件位置:用户家目录

  • 虚拟用户共享文件位置:为其映射的系统用户的家目录

四 vsftpd服务常见配置

修改默认命令端口

目的:服务端端口号只要改变,客户端就无法连接

服务端:修改 默认命令端口号

客户端:连接时需要指明 端口号

[root@localhost ~]#vim  /etc/vsftpd/vsftpd.conf

                              listen_port=2121                      #默认值为21

[root@localhost ~]#systemctl restart vsftpd

                             #ss   -ntl                     #查看端口

修改主动模式端口

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
                              connect_from_port_20=YES                  #主动模式端口为20
                               ftp_data_port=20                                    #指定主动模式的端口,默认为20
[root@localhost ~]#systemctl restart vsftpd


修改被动模式端口

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
                              pasv_min_port=6000    
                              pasv_max_port=6010
[root@localhost ~]#systemctl restart vsftpd 

   #0为随机分配,规定端口范围会影响客户端的并发数

使用当地时间

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf

                              use_localtime=YES                    #使用当地时间  ,  默认为NO,使用GMT 

                              [root@localhost ~]#systemctl restart vsftpd

五 匿名用户的配置 

①匿名用户登录

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
                               anonymous_enable=YES                           #支持匿名用户,
                               no_anon_password=YES                           #匿名用户略过口令检查 , 默认NO
[root@localhost ~]#systemctl restart vsftpd 

②匿名用户上传

ftp协议默认匿名用户不允许上传文件, 为安全考虑,如果人人都传到ftp服务器,会出现病毒、空间容量等问题

1 #vsftpd配置文件下可修改匿名用户的权限

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf

                             anon_upload_enable=YES               匿名上传,注意:文件系统权限
                             anon_mkdir_write_enable=YES        匿名建目录

                              #systemctl restart vsftpd 



2 #服务端添加ftp用户的文件系统权限
[root@localhost ~]#setfacl -m u:ftp:rwx /var/ftp/pub/
[root@localhost ~]#getfacl /var/ftp/pub/     #查看指定目录的权限
 


3 #服务端删除添加到/var/ftp目录下的所有规则,恢复默认权限
[root@localhost ~]#setfacl -b /var/ftp

1 默认匿名用户不允许上传文件

2 在vsftpd配置文件下可修改匿名用户的权限

3 服务端添加ftp用户的文件系统权限

4 验证 匿名用户能否上传文件到ftp服务器

还需要开启文件系统访问的权限,不能给FTP根目录写权限否则报如下错误

③匿名用户 下载 删除文件

在 vsftpd 软件中 只可以 下载有 读权限的文件, 没有读权限的文件时不可以直接下载

④指定匿名用户的上传文件的默认的所有者是ftp用户,这是可以修改的

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
chown_uploads=YES                                           #默认NO
chown_username=mcb                                       #匿名用户的上传文件的默认的所有者用户
chown_upload_mode=0644                                #指定上传文件的权限
[root@localhost ~]#systemctl restart vsftpd  

 
 ⑤Linux 系统用户的配置


#在vsftpd配置文件下可修改系统用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
local_enable=YES    #是否允许linux用户登录
write_enable=YES    #允许linux用户上传文件
local_umask=022     #指定系统用户上传文件的默认权限对应umask
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务
 

系统用户登录:使用普通用户登录默认是在 系统用户的 家目录

⑥将所有系统用户映射为指定的guest用户

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf


guest_enable=YES                                #所有系统用户都映射成guest用户
guest_username=ftp                              #配合上面选项才生效,指定guest用户
#local_root=/ftproot                                 #注释此行,默认所有用户都在ftp用户的家目录
user_config_dir=/etc/vsftpd/conf.d/         #每个用户独立的配置文件目录,可自由指定

[root@localhost ~]#systemctl restart vsftpd 


⑦禁锢系统用户

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO                           #默认YES
[root@localhost ~]#systemctl restart vsftpd 


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

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
guest_enable=YES                                           #所有系统用户都映射成guest用户
guest_username=ftp                                        #配合上面选项才生效,指定guest用户
#local_root=/ftproot                                          #注释此行,默认所有用户都在ftp用户的家目录
user_config_dir=/etc/vsftpd/conf.d/                  #每个用户独立的配置文件目录,可自由指定
[root@localhost ~]#systemctl restart vsftpd  


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

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
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中用户禁锢,即黑名单,只有文件里的用户禁锢
[root@localhost ~]#systemctl restart vsftpd  

 ⑧ftp 默认启动日志
#wu-ftp 日志:默认启用

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
xferlog_enable=YES                                          #启用记录上传下载日志,此为默认值
xferlog_std_format=YES                                    #使用wu-ftp日志格式,此为默认值
xferlog_file=/var/log/xferlog                                  #可自动生成, 此为默认值

[root@localhost ~]#systemctl restart vsftpd 
 

#vsftpd日志:默认不启用

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf

dual_log_enable=YES                    #使用vsftpd日志格式,默认不启用
vsftpd_log_file=/var/log/vsftpd.log    #可自动生成, 此为默认值

[root@localhost ~]#systemctl restart vsftpd 


⑨提示信息

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf

ftpd_banner="welcome to mcb ftp server"
banner_file=/etc/vsftpd/ftpbanner.txt  

[root@localhost ~]#systemctl restart vsftpd 


⑩传输速率,单位:字节/秒      百度网盘限速就是这样玩

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf

anon_max_rate=1024000               #1024000表示1MB/(数字随时改)
local_max_rate=102400

[root@localhost ~]#systemctl restart vsftpd 

pam模块实现用户访问
本地yum仓库

mount /dev/sr0 /mnt          #挂载提供安装包
cd /etc/yum.repos.d          #切换到固定目录
mkdir bak                    #建立备份文件夹
mv *.repo bak                #将所有网络源移走,减少干扰
vim local.repo                #自建本地源的配置文件
 
[local]                       #自定义仓库描述
name=local                  #自定义仓库名
baseurl=file:///mnt          #指明仓库位置
gpgcheck=0                   #不验证安全性(若为1则验证)
 
yum clean all                #清理缓存
yum makecache                #重新建立元数据

 HTTP主要用于浏览和下载网页等资源

 FTP则更偏向于小文件的上传、下载和管理。

五 实验:在内网环境ftp下搭建本地yum仓库

前提:服务端 客户端都要关闭   防火墙   防护

服务端IP 192.168.11.9

客户端IP 192.168.11.12

#服务端操作:
[root@localhost ~]#yum install -y vsftpd     #下载vsftpd服务程序
[root@localhost ~]#systemctl start vsftpd    #开启vsftpd服务
[root@localhost ~]#mkdir /var/ftp/centos7    #在ftp服务器根目录下新建centos7目录用于挂载光盘
[root@localhost ~]#mount /dev/sr0 /var/ftp/centos7/    #挂载光驱到ftp服务器根目录下的centos7目录
 
***********************************************************
#客户端操作:
[root@localhost ~]#cd /etc/yum.repos.d/       #切换到规定的目录
[root@localhost yum.repos.d]#mkdir bak        #新建bak目录,用于存放网络yum源
[root@localhost yum.repos.d]#mv *.repo bak    #将网络yum源移到bak目录下,减少干扰
[root@localhost yum.repos.d]#vim ftp.repo     #编辑yum仓库的配置文件
[ftp]                                    #yum仓库的描述
name=ftp                                 #指定yum仓库名
baseurl=ftp://192.168.11.9/centos7       #指定安装包的位置是在ftp服务器根目录的centos7目录下
gpgcheck=0                               #不检测安装包的安全性
[root@localhost yum.repos.d]#yum clean all       #清除缓存
[root@localhost yum.repos.d]#yum makecache       #重新下载元数据
[root@localhost yum.repos.d]#yum list            #查看yum源的来源是否是ftp
[root@localhost ~]#yum install -y tree           #测试安装软件是否成功

 服务端

客户端

六 实验:通过http服务搭建内网yum仓库

① 如果我们的yum仓库需要多台机器共同使用,此时把yum仓库做成本地的,然后一台台 推送过去比较麻烦,此时可以考虑搭建一个基于HTTP协议,供给内网其它机器使用

②生产环境中,让一台机器(服务机)单独作为软件安装存储机器,其他机器可省下更多的空间

③由于是内网环境,虚拟机全部设为仅主机模式,(如何设置仅主机模式可参考DHCP原理与配置)无法连接外部网络如果想要下载httpd服务则需要搭建一个本地yum仓库

④适用范围:多台不能使用/etc/yum.repos.d/配置文件中的外网源进行下载软件,且有至少一个服务有系统完整rpm包的光驱的情况下

#服务端操作:
[root@localhost ~]#yum install -y httpd           #下载httpd服务程序
[root@localhost ~]#systemctl start httpd          #开启httpd服务
[root@localhost ~]#mkdir /var/www/html/centos7    #在httpd服务器根目录下新建centos7目录用于挂载光盘
[root@localhost ~]#mount /dev/sr0 /var/www/html/centos7    #挂载光驱到http服务器根目录下的centos7目录

 


#客户端操作:
[root@localhost ~]#cd /etc/yum.repos.d/       #切换到规定的目录
[root@localhost yum.repos.d]#mkdir bak        #新建bak目录,用于存放网络yum源
[root@localhost yum.repos.d]#mv *.repo bak    #将网络yum源移到bak目录下,减少干扰
[root@localhost yum.repos.d]#vim http.repo     #编辑yum仓库的配置文件
[http]                                    #yum仓库的描述
name=http                                 #指定yum仓库名
baseurl=http://192.168.11.9/centos7       #指定安装包的位置是在http服务器根目录的centos7目录下
gpgcheck=0                               #不检测安装包的安全性
[root@localhost yum.repos.d]#yum clean all       #清除缓存
[root@localhost yum.repos.d]#yum makecache       #重新下载元数据
[root@localhost yum.repos.d]#yum list | head           #查看yum源的来源是否是http
[root@localhost ~]#yum install -y tree           #测试安装软件是否成功
服务端IP192.168.11.9

客户端192.168.11.10   

七  搭建阿里云仓库

如果误将rpm软件删除,解决之法

八  指令小金刚

1 [root@localhost ~]#sort --help
   sort  -t

   sort   -n

2 [root@localhost ~]#cut --help
用法:cut [选项]... [文件]...
  cut  -d  使用指定分界符代替制表符作为区域分界

3 [root@localhost ~]#seq --help
  seq  -s

4 [root@localhost ~]#tr --help   转换   压缩    删除

5 [root@localhost ~]#uniq  --help

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值