首页 > 代码库 > FTP基础
FTP基础
FTP
FTP 是 TCP/IP 协议组中的协议之一
FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。
FTP 的连接方式分为主动和被动两种:如图
主动模式:client向服务器发起请求时会用一个随机端口以后的端口去连接ftpd的21号端口(这里的随机端口是50000以后的端口),ftp向client发送数据时会用ftp的20端口去连接client的随机端口+1(client请求进来的随机端口+1),如果被占用,往后延续,这就是主动连接。但是,这样会带来一个不安全的问题,如果有人刻意而为,用ftp服务器强行给client传送数据该怎么办。所以,主动模式是不安全的。
被动模式:client发起请求用自己的随机50000端口去连接ftp的21号端口,这时ftp服务器会告诉client我要用哪一个端口去给你发数据,然后client会用自己50000+1的随机端口去连接ftp的随机端口。注意:这里ftp发给client的自己的随机端口是发的两个数字,比如300,301 client拿到这个数字会计算,300*256+301,结果才是ftp的端口号,这时客户端就会用自己的随机端口去连接ftp的端口。
FTP的响应码:
110 | 新文件指示器上的重启标记 |
120 | 服务器准备就绪的时间(分钟数) |
125 | 打开数据连接,开始传输 |
150 | 打开连接 |
200 | 成功 |
202 | 命令没有执行 |
211 | 系统状态回复 |
212 | 目录状态回复 |
213 | 文件状态回复 |
214 | 帮助信息回复 |
215 | 系统类型回复 |
220 | 服务就绪 |
221 | 退出网络 |
225 | 打开数据连接 |
226 | 结束数据连接 |
227 | 进入被动模式(IP地址、ID端口) |
230 | 登陆因特网 |
250 | 文件行为完成 |
257 | 路径名建立 |
331 | 要求密码 |
332 | 要求账号 |
350 | 文件行为暂停 |
421 | 服务关闭 |
425 | 无法打开数据连接 |
426 | 结束连接 |
450 | 文件不可用 |
451 | 遇到本地错误 |
452 | 磁盘空间不足 |
500 | 无效命令 |
501 | 错误参数 |
502 | 命令没有执行 |
503 | 错误指令序列 |
504 | 无效命令参数 |
530 | 未登陆网络 |
532 | 存储文件需要账号 |
550 | 文件不可用 |
551 | 不知道的页类型 |
552 | 超过存储分配 |
553 | 文件名 |
ftp配置
1.可以用光盘yum进行vsftpd的安装
2.主配置文件详解
#Vim /etc/vsftpd/vsftpd.conf
匿名用户的配置:
anonymous_enable=YES 开启匿名登陆,关闭是NO
anon_upload_enable=YES 上传文件
anon_mkdir_write_enable=YES 创建文件
anon_ohter_write_enable=YES 删除文件
匿名用户就是客户端不用通过用户认证就可以直接登录到ftp服务器,如果只开启匿名登陆,而上传、穿件、删除是NO,匿名用户是无法进行上传等操作的,反之,如果上传、创建、删除是YES,而匿名用户登陆是NO,那么匿名用户就登陆不上,就更谈不上上传等操作
系统用户的配置:
local_enable=YES 本地用户登陆
write_enable=YES 写权限,本地只有一项写权限,它就包括了创建、删除等
local_umask=022 上传文件后文件的权限
禁锢所有的ftp本地用户于其家目录中:
chroot_local_user=YES 允许禁锢
未启用状态:这种不安全,用户可以看见自己所在的目录,可以随意用cd切换进其它的家目录,即为不安全,如下:
启用状态:用户只能看见根,这个根其实就是自己的家目录,用户无法切换其它目录下
禁锢文件中指定的ftp本地用户于其家目录中:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
把上面禁锢本地所有用户于家目录关掉,启用这个指定的用户于家目录,把用户名输入chroot_list中就可以了,这种方法可以有效地管理用户。
日志:
xferlog_enable=YES 启用传输日志记录
xferlog_std_format=YES 若设置为YES,则只要对xferlog_file进行了显式设置,就按照标准的
xferlog格式(wu-ftpd所用的格式)写入传输日志(没有涵盖连接信息)
xferlog_file=/var/log/xferlog 日志路径
改变上传文件的属主:
chown_uploads=YES
chown_username=whoever
vsftpd使用pam完成用户认证,其用到的pam配置文件:
pam_service_name=vsftpd
#vim /etc/pam.d/vsftpd
可以看到配置文件在这下面
# vim /etc/vsftpd/ftpusers 只要把用户写进这里,用户就登陆ftp失败,相当于黑名单
是否启用控制用户登录的列表文件:
userlist_enable=YES 表示启用
userlist_deny=YES|NO YES表示启用deny文件,就成了另一个黑名单了,只要写进user_list中的
用户都无法登陆ftp服务器;NO表示拒绝deny文件,这就成了一个白名单了,只有出现在user_list中
的用户才能登陆ftp服务器。
默认文件为/etc/vsftpd/user_list
连接限制:
max_clients: 最大并发连接数;
max_per_ip: 每个IP可同时发起的并发请求数;
传输速率:
anon_max_rate: 匿名用户的最大传输速率, 单位是“字节/秒”;
local_max_rate: 本地用户的最大传输速率
本文出自 “鱼儿” 博客,请务必保留此出处http://kyfish.blog.51cto.com/1570421/1549705
FTP基础