FTP典型的C/S结构的应用层协议,需要有服务端软件和客户端软件两个部分共同实现文件传输功能。
1、FTP连接及传输模式
FTP服务器默认使用TCP协议的20、21端口与客户机进行通信。20端 口用于建立数据连接。并传输文件数据;21端口用于建立控制连接,并传输FTP控制命令。
主动模 式:服务器主动发起数据连接。首先由客户端向服务端的21端口建立FTP控制连接,当需要传输数据时, 客户端以ROTR命令告知服务器”我打开了某端口,你来连接我“,于是服务器从20端口向客户端的该端口 发送请求并建立数据连接。
被动模式:服务器被动等待数据连接。首先由客户端向服务端的21端 口建立FTP控制连接,当需要传输数据时,服务器以PASV命令告知客户端”我打开了某端口,你来连接我 “。于是客户端向服务器的该端口(非20)发送请求并建立数据连接。
2、FTP用户类型
匿 名用户:其用户名为ftp或anonymous,提供任意密码(包括空密码)都可以登录ftp。
本地用户: 直接使用本机系统用户账号来登录ftp。
虚拟用户:使用ftp服务器软件独立的用户数据库文件中 的虚拟用户登录ftp。
3、vsftpd的配置文件
安装vsftpd可使用rpm命令,vsftpd软件在系 统光盘中的Server目录下。
[root@localhost /]#rpm -ivh /media/Server/vsftpd-2.0.5- 12.el5.i386.rpm
vsftpd的配置文件默认在”/etc/vsftpd/”目录下,包括用户列表文件 (ftpusers、user_list)和主配置文件(vsftpd.conf)等。
用户列表配置文件
ftpusers :此文件中列出的用户将禁止登录vsftpd服务器,不管该用户是否在user_list文件中出现。
user_list :此文件中包含用户可能被禁止登录,也可能被允许登录,具体取决于主配置文件 vsftpd.conf中的设置。
主配置文件vsftpd.conf
在vsftpd的主配置文件中,配置行采用“ 配置项=参数”的格式。
常见全局配置项如下:
listen=YSE :是否以独立运行 的方式监听服务
listen_address=0.0.0.0 :设置监听FTP服务的 IP地址
listen_port=21 :设置监听FTP服务的端口号
write_enable=YES :启用任何形式的写入权限,需要开启
download_enable=YES :是否允许下载,需要开启
dirmessage_enable=YSE :用户切换进入目录是显示.message(如果存在)文件的内容
xferlog_enable=YES :启用xferlog日志,默认记录到 “/var/log/xferlog”
xferlog_std_format=YES :启用xferlog标准日志 格式,若禁用此项将使用vsftpd自己的格式。
connect_from_port_20=YES :允许服务器主动模式 (从20端口建立数据连接)
pasv_enable=YES :允许被动模式连接
pasv_max_port=24600 :设置用户被动模式的服务器最大端口
pasv_min_port=24500 :设置用户被动模式的服务器最小端口
pam_service_name=vsftpd :设置 用于用户认证的PAM文件位置
userlist_enable=YES :是否启用suer_list用户类表文件
userlist_deny=YES :是否禁止user_list列表文件中的用户账号
max_clients=0 :最多允许多少 个客户端同时连接(0无限制)
max_per_ip=0 :对于来自同一个IP地址的客户端。最多允许多少个并发 连接(0无限制)
tcp_wrappers=YES :是 否启用TCP_Wrappers主机访问控制
常见匿名用户配置项如下: