关于ftp你知道这几点就够了
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开头--服务器问题
本篇完,谢谢大家阅读!