FTP(File transfer protocol)是相当古老的的传输协议之一,他最主要的功能是在服务器与客户端之间进行文件传输。这个古老的协议使用的是明码传输方式,因此在使用当中会有相当多的安全问题。FTP的传输使用的是TCP协议,是一种C/S模式架构,服务端通过FTP服务向用户提供FTP服务,客户端通过客户端命令连接服务端来进行与数据的传输。我们知道TCP在建立连接前会先进行三次连接过程,分别是命令通信连接和数据传输连接两个通道,这两个连接通道都必须要进行这三次握手过程,命令连接是指文件管理类命令,始终在线的连接;数据连接是指数据的传输,是按需创建及关闭的连接,在数据传输过程中可以使用以文本形式传输也可以使用二进制形式传输,这个需要注意的是数据原先是什么样的编码,那就必须以这样的编码传输,是不能认为来限定使用什么样的格式传输。

        Vsftpd全名叫做Very Secure FTP Daemon,意思是非常安全的FTP服务,它之所以称之为非常安全,是因为vsftpd是针对操作系统的权限来设计的,这里的操作系统权限是发起该服务进程权限,因为进程的权限是发起者的权限,而非程序的权限,通常vsftpd服务的启动权限非常的低,因此其对Linux系统的操作是有限的,另外还在上面提到的限制用户的家目录功能,vsftpd可以使用chroot函数来将特定的目录变成根目录,但这里的根目录并非操作系统的根,而是vsftpd活动的根目录,等等。

一、vsftpd的安装

    (1)安装方式:vsftpd所对应的rpm程序包也是vsftpd,安装方式可以用yum或者rpm等等

Vsftpd服务基础介绍_服务

    (2)安装后生成的文件及目录

        1、用户认证配置文件:/etc/pam.d/vsftpd

        2、配置文件目录: /etc/vsftpd

        3、主配置文件:vsftpd.conf

        4、匿名用户(映射为ftp用户)共享资源位置:/var/ftp

        5、系统用户通过ftp访问的资源的位置:用户自己的家目录

        6、虚拟用户通过ftp访问的资源位置:给虚拟用户指定的映射成为的系统用户的家目录。

二、启动服务

就可以通过service vsftpd restart来启动vsftpd服务

Vsftpd服务基础介绍_服务_02

三、Vsftpd功能

    (1)匿名用户的配置

        1、anonymous_enable=(YES)   是否启用匿名用户(默认是启动)

Vsftpd服务基础介绍_匿名登录_03

Vsftpd服务基础介绍_vsftpd_04

        2、anon_upload_enable=YES  是否允许匿名用户上传(默认关闭)

注意:如需启动,需让ftp用户对/var/ftp/pub及其他需要上传的目录设置wx权限

Vsftpd服务基础介绍_vsftpd_05

Vsftpd服务基础介绍_服务_06

Vsftpd服务基础介绍_vsftpd_07

Vsftpd服务基础介绍_vsftpd_08

        3、anon_mkdir_write_enable=YES 是否允许匿名用户创建目录(默认关闭)

注意:如需启动,需让ftp用户对/var/ftp/pub及其他需要上传的目录设置wx权限

Vsftpd服务基础介绍_vsftpd_09

Vsftpd服务基础介绍_服务_06 

Vsftpd服务基础介绍_ftp_11

Vsftpd服务基础介绍_服务_12

        4、no_anon_password=YES使用ftp客户端登录匿名时,是否需要密码(默认不需要),如为NO,则需要输入任意密码,如为YES,直接登录,不用输入。

Vsftpd服务基础介绍_服务_13

Vsftpd服务基础介绍_ftp_14

Vsftpd服务基础介绍_vsftpd_15

        5、anon_other_write_enable=(YES) 匿名用户是否可以删除及重命名(默认关闭)

Vsftpd服务基础介绍_匿名登录_16

Vsftpd服务基础介绍_ftp_17

Vsftpd服务基础介绍_服务_18

Vsftpd服务基础介绍_ftp_19

        6、chown_uploads匿名用户上传文件的所属人是否要更改。如YES,则更改为chown_username所指定的

Vsftpd服务基础介绍_ftp_20

Vsftpd服务基础介绍_vsftpd_21

Vsftpd服务基础介绍_服务_22

Vsftpd服务基础介绍_服务_23

Vsftpd服务基础介绍_服务_24

Vsftpd服务基础介绍_vsftpd_25

        7、anon_max_rate匿名用户上传和下载的最大速度,单位字节

Vsftpd服务基础介绍_ftp_26

Vsftpd服务基础介绍_服务_27

    (2)系统用户配置

        1、local_enable=(YES) 是否启动本地用户(默认是启动)

Vsftpd服务基础介绍_服务_28

Vsftpd服务基础介绍_vsftpd_29

        2、write_enable=(NO) 是否允许本地用户上传文件(默认不允许)

Vsftpd服务基础介绍_ftp_30

Vsftpd服务基础介绍_ftp_31

Vsftpd服务基础介绍_服务_32

            3、local_umask=022 本地用户上传文件的默认权限(默认为077)

Vsftpd服务基础介绍_服务_33

Vsftpd服务基础介绍_ftp_34

Vsftpd服务基础介绍_服务_35

        4、guest_enuable所有的非匿名用户都映射为了guest用户(默认为关闭)

Vsftpd服务基础介绍_服务_36

Vsftpd服务基础介绍_ftp_37

Vsftpd服务基础介绍_vsftpd_38

Vsftpd服务基础介绍_ftp_39

Vsftpd服务基础介绍_ftp_40

Vsftpd服务基础介绍_匿名登录_41

Vsftpd服务基础介绍_vsftpd_42

Vsftpd服务基础介绍_服务_43

Vsftpd服务基础介绍_ftp_44

        5、local_root 非匿名用户登录时所在的目录,默认是各自的家目录

Vsftpd服务基础介绍_服务_45

Vsftpd服务基础介绍_匿名登录_46

Vsftpd服务基础介绍_匿名登录_47

Vsftpd服务基础介绍_ftp_48

Vsftpd服务基础介绍_匿名登录_49

        6、local_max_rate 系统本地用户上传和下载的最大速度,单位字节

Vsftpd服务基础介绍_vsftpd_50

Vsftpd服务基础介绍_ftp_51

    (3)其他设置

        1、listen_port FTP命令端口号(默认为21)

Vsftpd服务基础介绍_vsftpd_52

Vsftpd服务基础介绍_vsftpd_53

Vsftpd服务基础介绍_服务_54

Vsftpd服务基础介绍_匿名登录_55

Vsftpd服务基础介绍_ftp_56

        2、connect_from_port_20是否允许主动传输(默认启动)

Vsftpd服务基础介绍_服务_57

Vsftpd服务基础介绍_ftp_58

Vsftpd服务基础介绍_匿名登录_59

Vsftpd服务基础介绍_匿名登录_60

        3、ftp_data_port主动模式使用的端口(默认端口为20)

Vsftpd服务基础介绍_服务_61

Vsftpd服务基础介绍_服务_62

Vsftpd服务基础介绍_vsftpd_63

Vsftpd服务基础介绍_ftp_64

        4、xferlog_enable=(YES) 是否开启上传、下载日志(默认关闭)

Vsftpd服务基础介绍_服务_65

Vsftpd服务基础介绍_匿名登录_66

Vsftpd服务基础介绍_服务_67