构建FTP文件传输服务器
FTP服务概述
1.FTP连接传输模式
主动模式: 服务器主动发起数据连接,首先由客户端向服务器的21端口建立FTP控制连接,当需要传输数据时,客户端以PORT命令告知服务器“我打开了某个端口,你过来连接我”,于是服务器从20端口向客户端的该端口发送请求并建立数据连接
被动模式: 服务器被动等待数据连接,如果客户端所在网络的防火墙禁止主动连接,通常会使用被动模式。首先由客户端向服务器的21端口建立FTP控制连接,当需要传输数据时,服务器以PASV命令告知客户端“我打开了某个端口,你过来连接我”预算客户机像服务器该端口(非20)发送请求并建立数据连接
文本模式:又称为ASCII模式,传输文件时使用ASCII字符列,一般只用于纯文本传输
二进制模式:又称为Binary模式,这种模式不会转换文件中的字符序列。更适合自动选择文件传输模式,而无需用户手工指定
2.FTP用户类型
匿名用户(其用户名为ftp或anonymous,提供任意密码包括空密码都可以通过服务器的验证)
本地用户(直接使用服务器系统用户账号进行验证)
虚拟用户(FTP服务器维护的独立的用户数据库文件,不直接使用本地系统用户)
3.FTP软件的种类
Windows IIS Serv-U
Linux Wu-ftpd、Protftpd、vsftpd
4.FTP客户端的种类
Windows:CuteFTP/FlashFXP/leapFTP/Filezilla
Linux:gftp/kuftp
vsftp服务基础
1.用户控制列表文件ftpusers和user_list
ftpusrs文件:(只有一个功能,即禁用)包含在该文件中的用户将被禁止登录vsftpd服务器,不过该用户是否在user_list文件中出现(即优先级高于user_list文件)
user_list文件:该文件中的用户有可能被禁止登录,有可能被允许登录,具体由主配置文件vsftpd.conf的配置决定。
2.主配置文件vsftpd.conf
vsftpd.conf常见配置选项及含义说明
作用范围 |
配置项示例 |
含义说明 |
匿名用户 |
anonymous_enable=YES |
是否允许匿名访问 |
anon_umask=022 |
匿名用户上传文件的默认权限掩码 |
|
anon_root=/var/ftp |
匿名用户FTP的根目录 |
|
anon_mkdir_write_enable=YES |
是否允许匿名用户有创建目录的写入权限 |
|
anon_other_write_enable=YES |
是否允许匿名用户有其他的写入权限,如文件改名,覆盖及删除 |
|
anon_upload_enable=YES |
是否允许匿名用户上传文件 |
|
anon_max_rate=0 |
匿名用户上传文件的最大传输速率,0为无限制,单位为字节/每秒 |
|
本地用户 |
local_enable=YES |
是否允许本地用户访问 |
local_umask=022 |
本地用户上传文件的默认权限掩码 |
|
local_root=/var/ftp |
本地用户FTP的根目录(默认是用户的宿主目录,所以一般将此行删掉) |
|
chroot_local_user=YES |
是否将本地用户禁锢在宿主目录中(基于客户端安全考虑,如果不禁用,客户端有可能随意切换目录,是很危险的) |
|
local_max_rate=0 |
本地用户上传文件的最大传输速率,0为无限制,单位为字节/每秒 |
|
全局配置
|
listen=YES |
是否以独立允许的方式监听服务 |
listen_port=21 |
设置监听FTP服务的端口号 |
|
write_enable=YES |
启用任何形式的写入权限都要开启此项(总阀门)如上传、删除文件等 |
|
download_enable=YES |
是否允许下载文件 |
|
dirmessange_enable=YES |
用户切换目录,进入目录时显示的.messanges文件(如果存在)的内容 |
|
xferlog_enable=YES |
用于xferlog日志,默认记录到/var/log/xferlog文件 |
|
|
|
|
xferlog_std_format=YES |
启用标准的xferlog日志格式,若禁用此项将使用vsfpd自己的日志格式 |
|
connent_from_port=20 |
允许服务器主动模式(从20端口建立数据连接) |
|
pasv_enable=YES |
允许服务器被动模式连接 |
|
pasv_max_port=24600 |
设置用于被动模式的服务器的最大端口号 |
|
pasv_min_port=24500 |
设置用于被动模式的服务器的最小端口号 |
|
pam_service_name=vsftpd |
PAM文件位置(/etc/pam.d目录下) |
|
userlist_enable=YES |
是否启用user_list用户列表 |
|
userlist_deny=YES |
是否禁用user_list列表文件中的用户 |
|
max_client=20 |
允许最多有多少个用户同时连(0为无限制) |
|
max_per_ip=0 |
对来自同一IP客户端,最多允许多少个并发连接(0为无限制) |
|
tcp_wrappers=YES |
是否启用TCP_Wappers主机访问控制 |