FTP协议简介

FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了临时端口,你过来连接我”。于是服务器从20端口向客户端的临时端口发送连接请求,建立一条数据链路来传送数据。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了临时端口,你过来连接我”。于是客户端向服务器的临时端口发送连接请求,建立一条数据链路来传送数据。

ftp的操作数据/var/ftp/pub 和~/student 家目录。

匿名用户默认登陆到/var/ftp/pub 。

认证用户默认登录到~/student家目录。

selinux 安全上下文

/var/ftp/pub           public_content_t

~/home                 user_home_dir_t

查看安全上下文

ls -dZ  /var/ftp/pub

ls -dZ  ~/student

设置安全上下文

chcon -R  -t    'public_content_t'    /var/ftp/pub

chcon -R -t      'user_home_dir_t'   ~/student

selinux 布尔值

ftp_home_dir

( 

  查询布尔值  getsebool -a |grep ftp

  设置布尔值   setsebool -P ftp_home_dir on

  )

idle-session-timeout =600   ( 空闲超时时间)

可以用tcp-wrapper  控制客户端的访问

#vi   /etc/hosts.deny

 vsftpd: 192.168.0.181 (ALL)  Except 192.168.0.254

或者使用/etc/vsftpd   ftpusers 文件进行控制。