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

来源:互联网 发布:刀锋上的救赎 知乎 编辑:程序博客网 时间:2024/05/24 05:06

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开头--服务器问题

本篇完,谢谢大家阅读!

原创粉丝点击