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等等
(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功能
(1)匿名用户的配置
1、anonymous_enable=(YES) 是否启用匿名用户(默认是启动)
2、anon_upload_enable=YES 是否允许匿名用户上传(默认关闭)
注意:如需启动,需让ftp用户对/var/ftp/pub及其他需要上传的目录设置wx权限
3、anon_mkdir_write_enable=YES 是否允许匿名用户创建目录(默认关闭)
注意:如需启动,需让ftp用户对/var/ftp/pub及其他需要上传的目录设置wx权限
4、no_anon_password=YES使用ftp客户端登录匿名时,是否需要密码(默认不需要),如为NO,则需要输入任意密码,如为YES,直接登录,不用输入。
5、anon_other_write_enable=(YES) 匿名用户是否可以删除及重命名(默认关闭)
6、chown_uploads匿名用户上传文件的所属人是否要更改。如YES,则更改为chown_username所指定的
7、anon_max_rate匿名用户上传和下载的最大速度,单位字节
(2)系统用户配置
1、local_enable=(YES) 是否启动本地用户(默认是启动)
2、write_enable=(NO) 是否允许本地用户上传文件(默认不允许)
3、local_umask=022 本地用户上传文件的默认权限(默认为077)
4、guest_enuable所有的非匿名用户都映射为了guest用户(默认为关闭)
5、local_root 非匿名用户登录时所在的目录,默认是各自的家目录
6、local_max_rate 系统本地用户上传和下载的最大速度,单位字节
(3)其他设置
1、listen_port FTP命令端口号(默认为21)
2、connect_from_port_20是否允许主动传输(默认启动)
3、ftp_data_port主动模式使用的端口(默认端口为20)
4、xferlog_enable=(YES) 是否开启上传、下载日志(默认关闭)