FTP服务介绍

一.FTP服务介绍

1.FTP简介

FTP(File Transfer Protocol)是一种应用非常广泛并且古老的一个互联网文件传输协议。

注:文件传输:文件上传与文件下载。

在这里插入图片描述

  • 主要用于互联网中文件的双向传输(上传/下载)、文件共享。
  • 跨平台 Linux、Windows。
  • FTP是C/S架构,拥有一个客户端和服务端,使用TCP协议作为底层传输协议,提供可靠的数据传输。
  • FTP的默认端口 21号(命令端口) 20号(数据端口,主动模式下) 默认被动模式下。
  • FTP程序(软件)vsftpd

FTP软件名称 => vsftpd => vs(very secure ftp daemon) 。

2.FTP服务的客户端工具

  • Linux:ftp、lftp(客户端程序)
  • Windows:FlashFXP(虚拟主机)、FileZilla、IE、Chrome、Firefox
  • lftp和ftp工具区别:
    • lftp:默认是以匿名用户访问
    • ftp:默认是以用户名/密码方式访问
    • lftp可以批量并且下载目录

3.FTP的两种运行模式

在FTP服务中,其一共拥有两种模式(主动模式 + 被动模式)

注:参考点,FTP的服务器端。如果是FTP服务器端主动连接客户端=>主动模式,如果是客户端主动连接FTP服务器端=>被动模式

①主动模式

在这里插入图片描述
cmd:命令端口(发送FTP请求)
data:数据端口(后期用于传输数据)

1. 客户端打开大于1023的随机命令端口和大于1023的随机数据端口向服务的的21号端口发起请求
2. 服务端的21号命令端口响应客户端的随机命令端口
3. 服务端的20号端口主动请求连接客户端的随机数据端口
4. 客户端的随机数据端口进行确认

②被动模式

在这里插入图片描述

1. 客户端打开大于1023的随机命令端口和大于1023的随机数据端口向服务的的21号端口发起请求
2. 服务端的21号命令端口响应客户端的随机命令端口
3. 客户端主动连接服务端打开的大于1023的随机数据端口
4. 服务端进行确认

FTP默认使用的就是被动模式!

4.搭建FTP服务

1. 关闭防火墙和selinux
2. 配置yum源(mount /dev/sr0 /mnt)
3. 软件三部曲
4. 了解配置文件
5. 根据需求修改配置文件来完成服务的搭建
6. 启动服务,开机自启动
7. 测试验证

①关闭防火墙与SELinux

# systemctl stop firewalld
# systemctl disable firewalld

# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled

②配置YUM源

有网配置公网YUM源(阿里、清华、华为),没网就配置本地YUM源
# mount /dev/sr0 /mnt
# yum clean all
# yum makecache

③安装vsftpd软件(FTP => vsftpd)

# yum install vsftpd -y

④启动ftp服务并添加到开机启动项中

# systemctl start vsftpd
# systemctl enable vsftpd

⑤测试FTP是否安装成功

# ifconfig ens33

基于浏览器的访问
在这里插入图片描述
基于Windows资源管理器的访问
在这里插入图片描述
基于FlashFxp、FileZilla软件
在这里插入图片描述
基于ftp以及lftp命令进行连接(Linux与Linux之间的FTP文件传输)

yum install ftp lftp -y
# ftp 192.168.26.10

在这里插入图片描述

5.FTP的配置文件详解

# rpm -ql vsftpd
/usr/lib/systemd/system/vsftpd.service	启动脚本
/etc/vsftpd								配置文件的目录
/etc/vsftpd/ftpusers				    用户列表文件,黑名单
/etc/vsftpd/user_list				    用户列表文件,可黑可白(默认是黑名单)
/etc/vsftpd/vsftpd.conf					配置文件(主配置文件)
/usr/sbin/vsftpd						程序本身(二进制的命令)
/var/ftp								匿名用户的默认数据根目录
/var/ftp/pub							匿名用户的扩展数据目录

详解:

# grep -v ^# /etc/vsftpd/vsftpd.conf
anonymous_enable=YES			支持匿名用户访问	
local_enable=YES				支持非匿名用户,普通账号登录,默认进入到自己家目录
write_enable=YES				写总开关
local_umask=022					反掩码  file:644  rw- r-- r-- dir:755
dirmessage_enable=YES			启用消息功能
xferlog_enable=YES				开启或启用xferlog日志
connect_from_port_20=YES		支持主动模式(默认被动模式)
xferlog_std_format=YES			xferlog日志格式
listen=YES					    ftp服务独立模式下的监听

pam_service_name=vsftpd			指定认证文件
userlist_enable=YES				启用用户列表
tcp_wrappers=YES				支持tcp_wrappers功能(FTP限速操作)

在这里插入图片描述

man 5 vsftpd.conf

二.FTP任务解决方案

1.任务背景

简单来说:根据我们所学的内容(FTP)搭建一个客户服务系统(主要涉及客服资料上传与下载)

1. 客服人员必须使用用户名密码(kefu/123)的方式登录服务器来下载相应文档
2. 不允许匿名用户访问
3. 客服部门的相关文档保存在指定的目录里/data/kefu    local_root=/data/kefu
4. 客服用户使用用户kefu/123登录后就只能在默认的/data/kefu目录里活动

2.创建客服账号(Server)

# useradd kefu
# echo 123 | passwd --stdin kefu

3.不允许匿名用户访问

# vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=NO

配置修改完毕后,一定要重启vsftpd服务

# systemctl restart vsftpd

4.指定账号访问的目录

# mkdir /data/kefu -p
# vim /etc/vsftpd/vsftpd.conf
17 local_root=/data/kefu

5.限定kefu/123只能在/data/kefu目录下活动

禁锢kefu用户只能在/data/kefu目录下

# vim /etc/vsftpd/vsftpd.conf
18 chroot_local_user=YES

配置修改完毕后,一定要重启vsftpd服务

# systemctl restart vsftpd

6.附加

①500 OOPS

在这里插入图片描述
以上问题主要出现在FTP2.3.5以后的版本中,当然你可以使用

# rpm -qi vsftpd 查看版本信息

解决方案:
① 去除写权限(治标不治本)

# chmod a-w /home/dhj

② 核心解决方案,添加一个选项

# vim /etc/vsftpd/vsftpd.conf
19 allow_writeable_chroot=YES

②无法上传

之所以无法上传,主要原因在于kefu这个账号对于/data/kefu文件夹没有w写权限

# setfacl -R -m u:kefu:rwx /data/kefu
# systemctl restart vsftpd

③禁锢目录补充

18 chroot_local_user=YES  禁锢所有用户

需求:我们能不能给一小部分用户开通非禁锢权限。

# vim /etc/vsftpd/vsftpd.conf
105 chroot_list_enable=YES					    开启用户列表文件
107 chroot_list_file=/etc/vsftpd/chroot_list	指定用户列表文件

echo kefu >> /etc/vsftpd/chroot_list        代表客服这个账号不会被禁锢在指定目录

# systemctl restart vsftpd
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值