您的位置:首页 > 编程语言 > PHP开发

关于ftp你知道这几点就够了

2017-11-06 20:30 363 查看
1.什么是ftp?

ftp:文件传输协议,使主机之间可以共享文件。ftp使用TCP生成一个虚拟连接用于控制信息,然后再生成一个单独的TCP连接用于数据传输。控制连接使用类似TELNET协议在主机间交换命令消息。文件传输协议是TCP/IP网络上两台计算机传送文件的协议,FTP是在在TCP/IP网络上使用最早的协议之一,它属于网络协议组的应用层,FTP客户机可以给服务器发出命令来下载文件,上传文件,创建或改变服务器上的目录。(以上内容来自360百科)

(2)ftp服务的部署

1.ftp服务的基本信息

a.软件安装包:vsftpd

b.默认发布目录: /var/ftp/

c.接口:

控制链路—TCP端口21。控制器端。用于发送指令给服务器以及等待服务器响应。

数据链路—TCP端口20。数据传输端口。用来建立数据传输通道的。主要用来从客户向服务器发送一个文件、从服务器向客户发送一个文件、从服务器向客户发送文件或目录列表。

注意:FTP为了适应不同的网络环境,支持主动连接和被动连接两种模式。这两种模式都主要针对数据链路进行的,跟控制链路无关。

*做实验之前,我们先配置火墙策略*



查看火墙策略,可以看到ftp服务已被加入:



(以下内容在真机中完成)

1.安装和配置



2.使用firewall-cmd –permanent -add-service=ftp将ftp服务加入火墙策略,然后用命令:firewall-cmd –load加载。





(以下命令在虚拟机中完成)

1.安装

命令:yum install vsftpd



2.修改配置文件

ftp中有三种用户:本地用户,匿名用户,虚拟用户,本次实验将针对匿名用户和虚拟用户进行。

命令:lftp 服务端ip地址 目的:观察连接情况。



接下来我们修改服务端ftp的配置文件,将匿名用户登录改为NO,观察连接情况。

命令:vim /etc/vsftpd/vsftpd.conf



使用上述命令连接:



连接失败,实验成功!

接下来观察本地用户的登录情况,当它的配置文件是这样时:





连接是成功的!(因为登录用户的家目录为空,所以使用ls并未显示出任何东西)

修改local_enable=NO,可以看到:



连接失败!

记住,做以下操作前一定要修改/etc/sysconfig/selinux 配​置​文​件​

SELINUX=disabled

我们这里不需要系统执行安全策略,不需要,不需要!!!

enforcing — SELinux 安​全​政​策​被​强​制​执​行​。

permissive — SELinux 系​统​输​出​警​告​信​息​,但​不​强​制​执​行​安​全​政​策​。

write enable=YES|NO 本地用户是否可以写





匿名用户的其他配置

匿名用户建立目录

anon_mkdir_write_enable=YES

匿名用户上传:必须自己先建立,默认根下文件不可写

vim /etc/vsftpd/vsftpd.conf

write_enable=YES

anon_upload_enable=YES

chgrp ftp /var/ftp/pub 改变目录的组为ftp的,以前为root的

chmod 775 /var/ftp/pub

anon_max_rate=102400 ###最大上传速率

max_clients=链接数 ###最大链接数

anon_root=/目录名 ###匿名用户家目录修改







anon_umask=xxx ###匿名用户上传文件默认权限修改文件默认权限644

anon_world_readable_only=YES ### 匿名用户下载

anon_other_write_enable=YES ###匿名用户删除

匿名用户使用的身份修改

chown_uploads=YES

chown_username=student



本地用户的其他配置

本地用户上传:





anon_mkdir_write_enable=YES ###本地用户建立目录





local_root=/目录名 ###本地用户的家目录修改







local_umask=xxx ###本地用户上传文件权限





限制本地用户浏览/目录

所有用户都锁到自己家中

chroot_local_user=YES

chmod u-w /home/*





用户黑名单的建立

chroot local user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

用户白名单的建立

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

限制本地用户登录

vim /etc/vsftpd/ftpusers ####用户黑名单

vim /etc/vsftpd/user_list ####用户临时黑名单









用户白名单设定

userlist_deny=NO

/etc/vsftpd/user_list ####参数设定,此文件变成用户白名单,只有名单内的人可以登录







ftp虚拟用户的设立

创建虚拟帐号身份

vim /etc/vsftpd/gaogefile ####文件名任意

gaoge

123

gaoge

123

gaoge

123

db_load -T -t hash -f /etc/vsftpd/gaoge /etc/vsftpd/gaoge.db

vim /etc/pam.d/gaoge ####文件名任意

account required pam.userdb.so db=/etc/vsftpd/gaogefile

auth required pam.userdb.so db=/etc/vsftpd/gaogefile

vim /etc/vsftpd/vsftpd.conf

pam_service_name=ftp

guest_enable=YES

常见错误编号小贴士

550:服务本身功能未开放

530:用户认证失败

553:本地文件权限过小

500:文件系统权限过大

505:服务器不支持请求中所用的Http版本

504:网关超时,服务器作为网关或者代理,没有及时从上游服务器中收到请求

502:错误网关,服务器作为网关或者代理,从上游服务器中收到了错误的网关

400:服务器不理解请求语法

403:服务器拒绝请求

404:服务器找不到请求的网页

401:请求的资源已经永久删除

414:请求的URI过长,服务器无法处理

421:连接ftp服务的人数太多,超过服务器允许登录的上限

其实和Http服务类似,总结起来就是:

3开头--权限问题

4开头--文件问题

5开头--服务器问题

本篇完,谢谢大家阅读!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ftp 网络协议