目录

1、FTP服务介绍

1.1、FTP的优缺点

1.2、FTP用户的类型

1.3、常见的FTP服务器程序

1.4、常见的FTP客户端程序

ftp命令 

2、vsftpd服务基础

2.1、vsftpd软件包:vsftpd-3.0.2-22.el7.x86_64.rpm

2.2、Vsftpd服务资料

2.3、主配置文件

2.4、常用的全局配置项

2.5、常用的匿名FTP配置项

3、设置只允许白名单(user_list文件中用户)用户访问ftp

3.1、安装vsftpd软件包

3.2、备份主配置文件

3.3、 去掉#号开头的行

3.4、编辑主配置文件,启用白名单

 3.5、编辑名单文件user_list ,添加zhangsan、lisi(注:此实验本人用了自己姓名作为用户名)

3.6、在系统中添加本地账号zhangsan和lisi(注:此实验本人用了自己姓名作为用户名)

3.8、关闭防火墙 

 3.10、在物理机资源管理器地址栏输入ftp协议及服务器IP地址(注:以自己虚拟机的IP地址为准)

 3.11、在弹出的登录窗口输入白名单中账号及密码

 3.13、改用白名单以外的账号登录

4、总结


1、FTP服务介绍

FTP全称为File Transfer Protocol,是一种在计算机网络上常用的文件传输协议。FTP协议通过TCP连接传输文件,可以用于在不同的操作系统之间传输文件。在FTP服务中,有两个角色:FTP服务器和FTP客户端。FTP服务器是负责存储文件并对客户端用户进行认证和授权的主机,而FTP客户端则是用户使用的工具,可以通过FTP协议连接到FTP服务器,上传或下载文件。一般情况下,FTP服务器通常放在远程主机上,用户需要通过FTP客户端软件连接到该主机才能进行文件传输。

1.1、FTP的优缺点

优点:
1. 简单易用:FTP协议采用C/S模式,用户可以使用常见的FTP客户端轻松实现连接和文件上传下载等操作;
2. 可靠性高:FTP协议在传输过程中会进行数据校验和差错重传,确保传输的可靠性;
3. 高效性:FTP协议支持多线程、断点续传等强大的数据传输功能,可以有效地提升传输效率;
4. 安全性较高:FTP协议支持加密和身份认证等安全措施,可以保证数据传输的安全性;
5. 跨平台兼容性强:FTP协议是一种独立于操作系统的协议,在不同的操作系统之间都可以进行文件传输。

缺点:
1. 安全防护较弱:FTP协议的身份认证方式较为简单,容易被黑客攻击,因此传输的数据安全性受到一定影响;
2. 传输过程缺少加密:FTP协议传输的数据不会进行加密处理,容易被拦截并窃取,因此对于重要数据的传输不太适用;
3. 局限性较大:FTP协议对于文件命名的长度、目录层次等都有一定限制,因此可能无法满足一些特殊的业务需求;
4. 可扩展性有限:FTP协议的功能和性能在一定程度上受到客户端和服务器端的限制,很难进行扩展和优化;
5. 带宽占用较大:FTP协议在文件传输期间会占用比较大的带宽,容易影响其他应用程序的运行。

1.2、FTP用户的类型

匿名用户:anonymous或ftp
本地用户: 帐号名称、密码等信息保存在passwd、shadow文件中
虚拟用户: 使用独立的帐号/密码数据文件

1.3、常见的FTP服务器程序

-IIS、Serv-U
-wu-ftpd、Proftpd
-vsftpd(Very Secure FTP Daemon)

1.4、常见的FTP客户端程序

ftp命令 

-CuteFTP、FlashFXP、LeapFTP、Filezilla
-gftp、kuftp

2、vsftpd服务基础

vsftpd是Linux中一款非常流行的FTP服务器软件,具有安全、高效、简单等特点,在Linux系统中经常被用于搭建FTP服务器。

2.1、vsftpd软件包:vsftpd-3.0.2-22.el7.x86_64.rpm

-用rpm安装vsftpd:         rpm  ivh  软件包名(要先找到该包位置)
-用yum安装vsftpd:         yum  -y  install  vsfptd

2.2、Vsftpd服务资料

-官方站点:http://vsftpd.beasts.org/
-主程序:/usr/sbin/vsftpd
-服务名:vsftpd
-用户控制列表文件
 /etc/vsftpd/ftpusers
 /etc/vsftpd/user_list

2.3、主配置文件

- /etc/vsftpd/vsftpd.conf

2.4、常用的全局配置项

-listen=YES:是否以独立运行的方式监听服务
-listen_address=192.168.168.129:设置监听的IP地址
-listen_port=21:设置监听FTP服务的端口号
-write_enable=YES:是否启用写入权限
-download_enable=YES:是否允许下载文件
-userlist_enable=YES:是否启用user_list列表文件
-userlist_deny=YES:是否禁用user_list中的用户
-max_clients=0:限制并发客户端连接数
-max_per_ip=0:限制同一IP地址的并发连接数

2.5、常用的匿名FTP配置项

-anonymous_enable=YES:启用匿名访问(默认已有该项,不再输入这行)
-anon_umask=022:匿名用户所上传文件的权限掩码
-anon_root=/var/ftp:匿名用户的FTP根目录
-anon_upload_enable=YES:允许上传文件(若无全局参数write_enable=YES则不能生效)
-anon_mkdir_write_enable=YES:允许创建目录
-anon_other_write_enable=YES:开放其他写入权
-anon_max_rate=0:限制最大传输速率(字节/秒)

3、设置只允许白名单(user_list文件中用户)用户访问ftp

3.1、安装vsftpd软件包

[root@localhost ~]#  yum -y install vsftpd

3.2、备份主配置文件

[root@localhost ~]# cp  /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf.bak 
[root@localhost ~]# ls  /etc/vsftpd

 

3.3、 去掉#号开头的行

[root@localhost ~]# grep  -v  "^#"  /etc/vsftpd/vsftpd.conf.bak  >  /etc/vsftpd/vsftpd.conf

3.4、编辑主配置文件,启用白名单

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

 3.5、编辑名单文件user_list ,添加zhangsan、lisi(注:此实验本人用了自己姓名作为用户名)

[root@localhost ~]# vi /etc/vsftpd/user_list

3.6、在系统中添加本地账号zhangsan和lisi(注:此实验本人用了自己姓名作为用户名)

[root@localhost ~]# useradd lisi
[root@localhost ~]# passwd lisi

更改用户 lisi 的密码 。

新的 密码:

无效的密码: 密码未通过字典检查 - 过于简单化/系统化

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

[root@localhost ~]# useradd zhangsan
[root@localhost ~]# passwd zhangsan

更改用户 zhangsan 的密码 。

新的密码:

无效的密码:密码未通过字典检查 - 过于简单化/系统化

重新输入新的密码:

passwd:所有的身份验证令牌已经成功更新。

 3.7、查看已有的系统本地普通账号

[root@localhost ~]# tail -3 /etc/passwd

3.8、关闭防火墙 

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

 3.9、启动ftp服务

[root@localhost ~]# systemctl start vsftpd

 3.10、在物理机资源管理器地址栏输入ftp协议及服务器IP地址(注:以自己虚拟机的IP地址为准)

 3.11、在弹出的登录窗口输入白名单中账号及密码

 【如果不出现登录窗口,而是提示出错(如下图)

 则点击“确定”,然后在空白处点右键,选择“登录”就会出现登录窗口了。】

 登录成功界面

 3.12、尝试上传文件,成功

 3.13、改用白名单以外的账号登录

 登陆失败

4、总结

通过学习和设置Linux系统的FTP服务,我获得了宝贵的经验和知识。

首先,我学会了如何在Linux系统上安装和配置FTP服务器。这包括安装FTP软件包、创建FTP用户、设置目录权限以及配置防火墙等。通过实际操作,我深入了解了FTP服务器的工作原理和基本配置。

其次,我学会了如何管理FTP用户和权限。我了解了如何创建新用户、分配不同的目录权限,并设置登录限制和密码策略。这些操作让我更好地掌控FTP服务器的访问权限,确保只有授权用户可以访问和上传文件。

另外,我学会了如何监控和维护FTP服务器的运行。我了解了如何查看FTP日志、检查服务器状态以及限制并发连接数等。这些操作帮助我及时发现和解决潜在的问题,确保FTP服务器的稳定性和可靠性。

最后,我通过实践学会了如何通过FTP客户端与FTP服务器进行交互。我学会了如何连接到FTP服务器、上传和下载文件,以及创建目录和删除文件等常用操作。这为我提供了一个方便的途径来管理和传输文件。

通过学习和实践,我对Linux系统的FTP服务有了深入的理解,并且掌握了一些重要的技能。这些技能在日常的工作和学习中都非常有用,使我能够更高效地管理和共享文件。我相信这些经验将对我的职业发展产生积极的影响。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐