首页 > 代码库 > FTP基础

FTP基础

FTP

    FTP 是 TCP/IP 协议组中的协议之一

    FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。

    FTP 的连接方式分为主动和被动两种:如图

    主动模式:client向服务器发起请求时会用一个随机端口以后的端口去连接ftpd的21号端口(这里的随机端口是50000以后的端口),ftp向client发送数据时会用ftp的20端口去连接client的随机端口+1(client请求进来的随机端口+1),如果被占用,往后延续,这就是主动连接。但是,这样会带来一个不安全的问题,如果有人刻意而为,用ftp服务器强行给client传送数据该怎么办。所以,主动模式是不安全的。

        wKiom1QLIyPj5UtXAADGmRxICIY936.jpg

 

    被动模式:client发起请求用自己的随机50000端口去连接ftp的21号端口,这时ftp服务器会告诉client我要用哪一个端口去给你发数据,然后client会用自己50000+1的随机端口去连接ftp的随机端口。注意:这里ftp发给client的自己的随机端口是发的两个数字,比如300,301 client拿到这个数字会计算,300*256+301,结果才是ftp的端口号,这时客户端就会用自己的随机端口去连接ftp的端口。

        wKiom1QLI3ewln0vAADBGPJsj90972.jpg

 

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切换进其它的家目录,即为不安全,如下:

        wKioL1QLKXmSS4QAAAAmdGIH4Yk599.jpg

    启用状态:用户只能看见根,这个根其实就是自己的家目录,用户无法切换其它目录下

        wKiom1QLKaaBczg9AAAerXRXfUE421.jpg

 

    禁锢文件中指定的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

        wKiom1QLKtTwMQVlAADlTSlQcAU226.jpg

    可以看到配置文件在这下面

    # vim /etc/vsftpd/ftpusers 只要把用户写进这里,用户就登陆ftp失败,相当于黑名单

        wKioL1QLKxCgARJIAADCpnXUHRk522.jpg

        wKioL1QLKzjyooBAAAD2-_VSPDU918.jpg

 

    是否启用控制用户登录的列表文件:

        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基础