简单介绍:

文件传输协议

文件传输协议(FTP,File Transfer Protocol),即能够让用户在互联网中上传、下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,要想完成文件传输则需要FTP服务端FTP客户端的配合才行。

通常用户使用FTP客户端软件向FTP服务器发起连接并发送FTP指令,服务器收到用户指令后将执行结果返回客户端。

9.1.1 FTP服务_系统/运维

FTP协议占用两个端口号:

21端口:命令控制,用于接收客户端执行的FTP命令。

20端口:数据传输,用于上传、下载文件数据。

FTP数据传输的类型:

主动模式:FTP服务端主动向FTP客户端发起连接请求。

被动模式:FTP服务端等待FTP客户端的连接请求。

FTP服务器

简单地说,支持FTP协议的服务器就是FTP服务器。

与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。

Vsftpd即“Very Secure FTP Daemon是一款运行在类Unix操作系统的FTP服务端程序,Vsftpd主打的是安全性完全开源及免费速率高支持IPv6虚拟用户功能等等其他FTP服务端软件不具备的功能。

FTP服务器的配置实现,通过修改vsftpd服务配置文件即可实现多种不同功能,下面通过几个案例来实现不同的应用场景。

vsftpd程序配置文件参数的作用:

参数

作用

listen=[YES|NO]

是否以独立运行的方式监听服务。

listen_address=IP地址

设置要监听的IP地址。

listen_port=21

设置FTP服务的监听端口。

download_enable=[YES|NO]

是否允许下载文件。

userlist_enable=[YES|NO]
userlist_deny=[YES|NO]

是否启用“禁止登陆用户名单”。

max_clients=0

最大客户端连接数,0为不限制。

max_per_ip=0

同一IP地址最大连接数,0位不限制。

anonymous_enable=[YES|NO]

是否允许匿名用户访问。

anon_upload_enable=[YES|NO]

是否允许匿名用户上传文件。

anon_umask=022

匿名用户上传文件的umask值。

anon_root=/var/ftp

匿名用户的FTP根目录。

anon_mkdir_write_enable=[YES|NO]

是否允许匿名用户创建目录。

anon_other_write_enable=[YES|NO]

是否开放匿名用户其他写入权限。

anon_max_rate=0

匿名用户最大传输速率(字节),0为不限制。

local_enable=[YES|NO]

是否允许本地用户登陆FTP。

local_umask=022

本地用户上传文件的umask值。

local_root=/var/ftp

本地用户的FTP根目录。

chroot_local_user=[YES|NO]

是否将用户权限禁锢在FTP目录,更加的安全。

local_max_rate=0

本地用户最大传输速率(字节),0为不限制。

案例1:

9.1.1 FTP服务_Linux_02

9.1.1 FTP服务_Linux_03

9.1.1 FTP服务_Linux_04

9.1.1 FTP服务_Linux_05

案例2:

允许匿名用户上传、下载、创建目录、删除文件和目录。

修改服务器主配置文件:

9.1.1 FTP服务_系统/运维_06

9.1.1 FTP服务_Linux_07

9.1.1 FTP服务_Linux_08

客户端测试:

9.1.1 FTP服务_系统/运维_09

9.1.1 FTP服务_Linux_10

案例3:

允许本地用户访问,且将部分用户限制在其家目录中。

修改服务器主配置文件/etc/vsftpd/vsftpd.conf

9.1.1 FTP服务_系统/运维_11

9.1.1 FTP服务_系统/运维_12

9.1.1 FTP服务_系统/运维_13

客户端测试:

9.1.1 FTP服务_Linux_14

9.1.1 FTP服务_Linux_15

案例4:

修改服务器主配置文件/etc/vsftpd/vsftpd.conf

当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;

当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入

9.1.1 FTP服务_Linux_16

9.1.1 FTP服务_Linux_17

9.1.1 FTP服务_系统/运维_18

客户端测试:

9.1.1 FTP服务_Linux_19

9.1.1 FTP服务_Linux_20

9.1.1 FTP服务_Linux_21

9.1.1 FTP服务_系统/运维_22