文章目录
一、FTP服务
简介
FTP服务是指文件传输协议(File Transfer Protocol)的服务。它是一种用于在网络上进行文件传输的标准协议。FTP服务允许用户通过客户端与服务器进行连接,并在两者之间传输文件。其工作原理是基于客户端-服务器模型。客户端通过FTP客户端软件与服务器建立连接,并提供用户名和密码进行身份验证。一旦连接建立成功,客户端可以通过一系列的FTP命令来与服务器进行文件传输操作。
FTP服务提供了一系列的命令,例如上传文件、下载文件、删除文件、重命名文件、创建目录等。用户可以通过这些命令在客户端和服务器之间进行文件传输和管理。通常使用TCP/IP协议进行通信,使用默认端口号为21。然而,FTP服务也可以通过被动模式或加密模式进行配置,以增加安全性和灵活性。在互联网上广泛应用于文件共享、网站维护、软件发布等场景。它提供了一种简单、可靠、高效的方式来传输文件,并且支持多种操作系统和平台。
FTP连接
控制连接:TCP 21,用于发送FTP命令信息
数据连接:TCP 20,用于上传、下载数据
数据连接的建立类型:
- 主动模式:服务端从20端口主动向客户端发起连接
- 被动模式:服务端在指定范围内某个端口被动等待客户端连接
FTP用户的类型
匿名用户:anonymous或ftp
本地用户:帐号名称、密码等信息保存在passwd、shadow文件中
虚拟用户:使用独立的帐号/密码数据文件
常见的FTP服务器程序
IIS、Serv-U wu-ftpd、Proftpd vsftpd(Very Secure FTP Daemon)
常见的FTP客户端程序
- ftp命令
- CuteFTP、FlashFXP、LeapFTP、Filezilla
- gftp、kuftp
二、vsftpd服务基础
虚拟机:Centos7
vsftpd软件包
- vsftpd-3.0.2-22.el7.x86_64.rpm
- 安装vsftpd: rpm ivh 软件包名(要先找到该包位置)
Vsftpd服务资料
- 官方站点:http://vsftpd.beasts.org/
- 主程序:/usr/sbin/vsftpd
- 服务名:vsftpd
用户控制列表文件
- /etc/vsftpd/ftpusers
- /etc/vsftpd/user_list
主配置文件
- /etc/vsftpd/vsftpd.conf
安装FTP服务成功图
主配置文件vsftpd.conf
常用的全局配置项
listen=YES:是否以独立运行的方式监听服务
listen_address=192.168.4.1:设置监听的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地址的并发连接数
常用的匿名FTP配置项
anonymous_enable=YES:启用匿名访问
anon_umask=022:匿名用户所上传文件的权限掩码
anon_root=/var/ftp:匿名用户的FTP根目录
anon_upload_enable=YES:允许上传文件
anon_mkdir_write_enable=YES:允许创建目录
anon_other_write_enable=YES:开放其他写入权
anon_max_rate=0:限制最大传输速率(字节/秒)
将上述内容写入/etc/vsftpd/vsftpd.conf,删除:及后面汉字
常用的本地用户FTP配置项
local_enable=YES:是否启用本地系统用户
local_umask=022:本地用户所上传文件的权限掩码
local_root=/var/ftp:设置本地用户的FTP根目录
chroot_local_user=YES:是否将用户禁锢在主目录
local_max_rate=0:限制最大传输速率(字节/秒)
三、构建可匿名上传的FTP服务器
1.准备匿名FTP访问的目录
使匿名用户FTP对该目录有写入权限
[root@localhost ~]# chown ftp /var/ftp/pub/
[root@localhost ~]# ls -ld /var/ftp/pub/
drwxr-xr-x 4 ftp root 4096 02-24 10:36 /var/ftp/pub/
2.开放匿名用户配置,并启动vsftpd服务
[root@localhost vsftpd]# service vsftpd start
为 vsftpd 启动 vsftpd: [确定]
[root@localhost vsftpd]# netstat -anpt | grep "vsftpd"
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 8989/vsftpd
[root@localhost]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES 允许匿名访问
local_enable=NO
write_enable=YES 开放服务器读写权限
anon_umask=022
anon_upload_enable=YES 允许匿名上传
anon_mkdir_write_enable=YES 允许匿名用户创建目录
dirmessage_enable=YES
四、测试匿名FTP服务器
访问ftp
- 设置firewalld放行ftp(见下图)或关闭firewalld
- 设置SElinux放行ftp或关闭SElinux
- 在地址栏输入ftp://ip,确认可以打开文件夹。
五、总结
总结起来,FTP服务是一种常用的文件传输协议,可以在不同操作系统之间进行高效的文件传输。它具有多用户支持、目录管理、权限控制等特点,方便用户进行文件的上传、下载和管理。同时,FTP服务也提供了匿名访问和日志记录等功能,增强了安全性和监控性。