【linux进阶3】ftp的传输方式

一、ftp介绍

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。FTP能操作任何类型的文件而不需要进一步处理,但有着极高的延时,从开始请求到第一次接收需求数据之间的时间较长,并不时地执行一些冗长的登录进程,是互联中最老牌的文件传输协议

二、服务端vsftpd和客户端lftp安装及启用

服务端:
172.25.42.2 主机为p2

dnf install vsftpd -y        
systemctl start vsftpd.service 
firewall-cmd --permanent --add-service=ftp 
firewall-cmd --reload 
setenforce 0             临时关闭selinux

客户端:
172.25.42.1 主机为p1

dnf install lftp -y 
vim /etc/hosts           写地址解析
setenforce 0             关闭selinux

三、vsftpd基本信息

服务名称:
vsftpd.service
配置目录:
/etc/vsftpd
主配置文件:
/etc/vsftpd/vsftpd.conf
默认发布目录:
/var/ftp
报错信息:
550 ##程序本身拒绝
553 ##文件系统权限限制
500 ##权限过大
530 ##认证失败
#########################

四、匿名用户访问控制

(1)客户端登陆方式

在浏览器中:ftp://172.25.42.2 输入用户的名称和密码即可效果如下
显示需要登陆的账户和密码
在这里插入图片描述
客户端shell窗口里可以直接用 lftp 172.25.42.2
在这里插入图片描述
因为目前ftp没有允许匿名用户可以登陆,所以查看不到文件内容

(2)控制匿名用户访问

上个小单元(1)已经展示了ftp服务默认不支持匿名用户访问,必须指定安装有ftp服务的主机的本地用户才能访问,因此,我们需要修改vsftp服务的配置文件/etc/vsftpd/vsftpd.conf。

1、 进入主配置文件修改,允许匿名用户访问

/etc/vsftpd/vsftpd.conf

在这里插入图片描述
2、重启服务,查看效果

 systemctl restart vsftpd 

在这里插入图片描述

(3)匿名用户家目录控制

服务端
1.、创建一个/westos目录,和子文件westosfile作为实验对象

mkdir /westos

2、 用selinux给予其/westos公共目录的安全上下文(只有当目录权限是公共目录的时候,才能被ftp发布读取)
(selinux开启的情况下才能赋予文件公共目录的安全上下文)

chcon -t public_content_t /westos/
touch /westos/westosfile

给予安全上下文后,显示为公共目录
(此处注意一定要在建立目录后给予安全上下文的权限,这样建立的子文件才能也拥有和目录一样的安全上下文权限,或者给予被访问的文件直接给其上下安全文)

在这里插入图片描述

3、更改匿名用户的家目录,重启服务
在这里插入图片描述

(4)上传控制

1、 匿名用户上传时,会出现550表示程序本身拒绝

在这里插入图片描述
2、进入配置文件,更改匿名用户上传权限,重启

vim /etc/vsftpd/vsftpd.conf

在这里插入图片描述

systemctl restart vsftpd.service

再进入lftp上传文件会发现报553错误,文件权限限制
在这里插入图片描述

3、对默认发布的目录给予权限,改变组的身份。

chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub

4、再次登陆上传

lftp 172.25,254,120
cd pub
put /etc/passwd

5、 此时仍然权限拒绝,对selinux的高级防火墙进行修改

在这里插入图片描述在这里插入图片描述

6、成功上传
在这里插入图片描述

五、匿名用户访问控制进阶

(1)匿名用户在ftp里目录创建

 vim /etc/vsftpd/vsftpd.conf 

在这里插入图片描述

systemctl restart vsftpd.service

完成,匿名用户可以创建目录

(2)匿名用户pub目录里下载控制

 vim /etc/vsftpd/vsftpd.conf 

在这里插入图片描述

systemctl restart vsftpd.service

(3)删除重命令控制

同上

anon_other_write_enable=YES|NO

(4)匿名用户上传文件权限设定

同上

anon_umask=022        上传文件权限=777-022-111=644,目录权限=777-022=755

在这里插入图片描述

(5) 匿名用户上传文件的用户身份设定

 vim /etc/vsftpd/vsftpd.conf 

在这里插入图片描述

systemctl restart vsftpd.service

在这里插入图片描述

(6)登陆数量控制:

同上

max_clients=2

多余用户会报错
在这里插入图片描述

(7)上传速率控制

同上
上传速率控制

anon_max_rate=102400             单位是字节 1024=1字节,这里代表100kb/s

六、本地用户的访问

(1)登陆控制

建立两个用户westos,ck。可以分别登陆lftp,但是lftp里面没有任何文件

 vim /etc/vsftpd/vsftpd.conf 

在这里插入图片描述

systemctl restart vsftpd.service

即可允许本地用户登陆

(2)家目录控制

注意:其他步骤同上,但是westos1一定是要有安全上下文的公共目录

local_root=/westos1/

(3)写权限控制(能否上传文件的控制)

其他步骤同上

write_enable=NO|YES ##不能上传/能上传

(4) 上传文件权限控制

local_umask=077 ##文件的权限为666-077=600

在这里插入图片描述

(5)用户登陆黑名单控制

/etc/vsftpd/ftpusers        永久黑名单,不管什么操作,都不能访问ftp 
etc/vsftpd/user_list        临死黑名单

在这里插入图片描述

(6)用户登陆白名单

1、 将westos加入原本的临时黑名单
此时的临时黑名单已经变为临时白名单。只有在白名单里面的才能登陆

vim /etc/vsftpd/user_list 

在这里插入图片描述
2、更改配置文件,将拒绝黑名单的功能关闭,此时黑名单变为白名单。

vim /etc/vsftpd/vsftpd.conf  

在这里插入图片描述

systemctl restart vsftpd.service 

在这里插入图片描述在这里插入图片描述
结果westos用户登陆正常,ck用户无法登陆,加入永久黑名单的,即使在临时白名单里面的也不能登陆

(7)锁定用户只能访问自己的家目录

1、开启家目录锁定

在这里插入图片描述

systemctl restart vsftpd.service 

2、去掉用户读的权限,即可完成锁定

chmod u-w /home/*

(8)锁定用户到自己的家目录中的黑名单

1、 手动建立黑名单

 touch /etc/vsftpd/chroot_list
 vim /etc/vsftpd/chroot_list

在这里插入图片描述
2、更改配置文件

vim /etc/vsftpd/vsftpd.conf 

在这里插入图片描述

systemctl restart vsftpd.service 

3、结果显示westos可以访问根目录,ck用户不能访问根目录。
在这里插入图片描述
在这里插入图片描述

(9)锁定用户到自己的家目录中的白名单

1、步骤同上,配置文件改为如下

108 chroot_local_user=YES
109 chroot_list_enable=YES
111 chroot_list_file=/etc/vsftpd/chroot_list

2、 建立白名单用户即可

七、虚拟用户访问

(1)建立虚拟用户过程

1、vim /etc/vsftpd/ftp_auth_file #建立认证文件模板
在这里插入图片描述
2、 对刚才生成的的模板转换为认证文件

db_load -T -t hash -f ftp_auth_file ftp_auth_file.db  ##加密认证文件       -T 转换 -t  hash加密方式  type -f 指定转换文件

3、进入认证密码管理目录,在其目录下创建认证规则

cd /etc/pam.d/
vim /etc/pam.d/westos_auth

在这里插入图片描述
4、将认证规则加入到vsftp的配置文件中

vim /etc/vsftpd/vsftpd.conf 

在这里插入图片描述

systemctl restart vsftpd.service 

5、登陆,认证完成

在这里插入图片描述

(2)虚拟用户家目录的独立设定

1、创建虚拟家目录

mkdir /ftphpme/{westos1,westos2}/pub -p ##一定要是之前创建的虚拟用户
 mkdir /ftphpme/westos1/westos1file
mkdir /ftphpme/westos2/westos2file
chmod 7 /ftphpme/{westos1,westos2}/pub

2、 更改配置文件,设定虚拟用户的家目录

vim /etc/vsftpd/vsftpd.conf 

在这里插入图片描述

systemctl restart vsftpd 

3、 完成家目录更改
在这里插入图片描述

八、虚拟用户配置(上传,删除)独立,且设定which用户能做独立设置

1、 注释掉之前匿名用户的所有配置
在这里插入图片描述

systemctl restart vsftpd.service 

2、 对配置文件进行更改

vim /etc/vsftpd/vsftpd.conf 

在这里插入图片描述

systemctl restart vsftpd.service

3、对配置文件里面的用户进行控制,规定谁能上传文件

mkdir /etc/vsftpd/user_config
vim /etc/vsftpd/user_config/westos2

在这里插入图片描述

4、设定完成后westos2用户可以上传文件
westos1和westos3不行
在这里插入图片描述

九、总结

当改组为ftp后,家目录的权限一般为755,但是里面的文件的权限可以更改为其他的。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值