FTP服务

本文介绍了FTP服务,包括FTP的两种模式——主动模式和被动模式,详细解析了其工作原理。此外,还详述了FTP服务配置,特别是vsftpd软件的配置文件及其在Linux系统上的实验配置,涉及匿名访问和白名单访问的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. FTP服务介绍

1.1 FTP简介

1.2 FTP端口

1.3 FTP两种模式

1.3.1 主动模式(PORT):服务器主动发起数据连接

​编辑1.3.2 被动模式(PASV):服务器被动等待数据连接

​编辑2. FTP服务配置

2.1 FTP服务程序

2.2vsftpd 软件配置文件详解

2.3 实验配置

2.3.1 服务配置准备工作

2.3.2 实验一(匿名访问)

2.3.2 实验一(白名单访问)


1. FTP服务介绍

1.1 FTP简介

  • FTP是File Transfer Protocol(文件传输协议)的英文简称,用来传输文件的协议,用于Internet上的文件双向传输。使用FTP来传输时,是具有一定程度的危险性, 因为数据在因特网上面是完全没有受到保护的明文传输方式
  • VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP,从名称定义上基本可以看出,这是为了解决ftp传输安全性问题的。

1.2 FTP端口

  • FTP服务器默认使用TCP协议20、21端口与客户端进行通信

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

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

1.3 FTP两种模式

1.3.1 主动模式(PORT):服务器主动发起数据连接

  • 工作的原理

FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据。

1.3.2 被动模式(PASV):服务器被动等待数据连接

  • 工作原理

FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输。

2. FTP服务配置

2.1 FTP服务程序

  • 服务端安装 vsftpd 软件包,vsftpd是“very secure FTP daemon”的缩写,是一个完全免费的、开放源代码的ftp服务器软件。
  • 客户端安装FTP程序,安装后才能使用ftp命令。
  • VSFTP软件信息

服务端软件名:vsftpd

客户端软件名:ftp

服务名:vsftpd

端口号:20、21、指定范围内随机端口

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

2.2vsftpd 软件配置文件详解

  • 主要配置文件:/etc/vsftpd/vsftpd.conf
    • 使用rpm -qc vsftpd 可查看配置文件地址
`anonymous_enable=YES`      //支持匿名用户访问(CentOS8 默认不允许匿名);
 #no_anon_password=YES     //匿名用户login时不询问口令。如果希望不询问口令,需要自己添加
`#anon_upload_enable=YES`    //是否允许上传文件,注意:文件系统权限。默认是被注释的。
 anon_mkdir_write_enable=YES  //允许匿名用户新建目录
`local_enable=YES`            //启用本地系统用户访问;
`write_enable=YES`             //本地系统用户写入权限;
 local_umask=022              //本地用户创建文件及目录默认权限掩码;
 dirmessage_enable=YES        //打印目录显示信息,通常用于用户第一次访问目录时,信息提示;
 xferlog_enable=YES           //启用上传和下载日志记录;  
 connect_from_port_20=YES     //FTP使用20端口进行数据传输;
 xferlog_std_format=YES       //日志文件将根据xferlog的标准格式写入;
 listen=NO                   //Vsftpd不以独立的服务启动,通过Xinetd服务管理,建议改成YES;
 listen_ipv6=YES             //启用IPV6监听;
 pam_service_name=vsftpd     //登录FTP服务器,依据/etc/pam.d/vsftpd中内容进行认证;
 userlist_enable=YES        //vsftpd.user_list和ftpusers配置文件里用户禁止访问FTP;
 tcp_wrappers=YES           //设置vsftpd与tcp wrapper结合进行主机的访问控制,Vsftpd服务器检查/etc/hosts.allow 和/etc/hosts.deny中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。

2.3 实验配置

2.3.1 服务配置准备工作

  • 实验机器
    • 服务端 IP:192.168.200.102
    • 客户端 IP:192.168.200.100
  • 关闭防火墙
[root@localhost ~]#systemctl stop firewalld
  • 关闭核心防护
[root@localhost ~]#setenforce 0
  • 挂载光盘
[root@localhost ~]#mount /dev/sr0 /mnt/
  • 下载vsftpd服务
[root@localhost ~]#yum -y install vsftpd
[root@localhost ~]#rpm -qa | grep vsftpd
vsftpd-3.0.2-22.el7.x86_64

2.3.2 实验一(匿名访问)

  • 实验内容
    • 使用匿名访问登录到服务端进行操作
  • 修改配置文件
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost ~]# cp vsftpd.conf vsftpd.conf.bak

设置匿名用户访问的FTP服务(最大权限)
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES            #开启匿名用户访问。默认已开启
write_enable=YES                #开放服务器的写权限(若要上传,必须开启)。默认已开启
anon_umask=022                  #设置匿名用户所上传数据的权限掩码(反掩码)。
anon_upload_enable=YES          #允许匿名用户上传文件。默认已注释,需取消注释
anon_mkdir_write_enable=YES     #允许匿名用户创建(上传)目录。默认已注释,需取消注释
anon_other_write_enable =YES    #允许删除、重命名、覆盖等操作。需添加

[root@localhost ~]# systemctl restart vsftpd   ##重启服务
复制代码
  • 为匿名访问ftp的根目录下的 pub子目录设置最大权限,以便匿名用户上传数据(虽然在服务上给了写的功能,但在机器上也要给其他用户可以写入的权限)
[root@localhost ~]# chmod 777 /var/ftp/pub/
  • 匿名访问测试

在Windows文件目录搜索框输入:ftp://192.168.200.102/

也可以使用浏览器和cmd命令行

  • 建立ftp连接

ftp://192.168.80.10 #匿名访问ftp的根目录为Linux系统的/var/ftp/目录

点击进入pub目录,复制文件1.txt到pub目录

在服务器中可以查看

2.3.2 实验一(白名单访问)

  • 实验内容
    • 设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录
  • 修改配置文件
  • 本地用户登录
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
local_enable=Yes        		 #启用本地用户
anonymous_enable=NO     		 #关闭匿名用户访问
write_enable=YES        		 #开放服务器的写权限(若要上传,必须开启)
local_umask=077          		 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
chroot_local_user=YES   		 #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES		 #允许被限制的用户主目录具有写权限

复制代码

修改匿名用户、本地用户登录的默认根目录 ##可选择配置

anon_root=/opt/ky22 #anon_root 针对匿名用户

local_root=/opt/ky22 #local_root 针对系统用户

  • 设置白名单登录
使用user_list 用户列表文件
[root@localhost ~]#vim /etc/vsftpd/user_list
//末尾添加yh用户
yh

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES				#启用user_list用户列表文件
userlist_deny=NO				#设置白名单,仅允许user_list用户列表文件的用户访问。默认为YES,为黑名单,禁用
[root@localhost ~]# systemctl restart vsftpd  ##重启服务
  • 白名单用户登录

ftp://192.168.200.102/

ftp://yh@192.168.200.102/

点击进入本地用户家目录,复制文件1.txt到本地用户家目录

在服务器中可以查看yh用户家目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值