Linux下的vsftpd服务

本文详细介绍了Linux下Vsftpd服务的安装、启用、基本安全部署、匿名用户与本地用户设定,包括匿名用户的上传下载权限、速率限制、最大连接数等,并涉及虚拟用户的认证设定和家目录独立授权。
摘要由CSDN通过智能技术生成

vsftpd服务

学习目标

一、ftp的安装及启用
二、ftp基本安全部署实例
三、匿名用户读写
四、关于匿名用户的其他设定参数
五、本地用户的设定
六、虚拟用户的认证设定
七、虚拟用户的家目录设定及授权独立

一、ftp的安装及启用

在这里插入图片描述

1.什么是FTP 服务器?

FTP 是 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于 Internet 上的控制文件的双向传输。同时,它也是一个应用程序(Application)。 基于不同的操作系统有不同的 FTP 应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
在 FTP 的使用当中,用户经常遇到两个概念:“下载”(Download)和"上传"(Upload)。

2. 什么是Vsftpd?

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、HP-UNIX 等系统上面,是一个完全免费的、开放源代码的 ftp 服务器软件,支持很多其他的FTP 服务器所不支持的特征。

3.安装Vsftpd

yum install vsftpd -y
systemctl start vsftpd
systemctl stop firewalld
systemctl enable vsftpd
lftp ip
##能登陆并且显示,表示安装成功
**vsftpd文件信息
/var/ftp ##默认发布目录
/etc/vsftpd ##配置目录

客户端访问时, 用户身份可以分为:
1). 匿名用户:没有指定用户身份, ftp身份实现从服务器上传和下载文件;
2). 本地用户: -u指定用户身份,用户是服务器端的用户;
3). 虚拟用户: -u指定用户身份,但是服务器端并不存在该用户(id username)
没有指定用户身份
4.vsftpd服务的配置参数

具体操作如下:在这里插入图片描述

指定yum源指向:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
yum clean all
yum install vsftpd -y
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
yum clean all
yum install lftp -y
在这里插入图片描述

二、ftp基本安全部署实例

在这里插入图片描述
不允许匿名用户登录
在这里插入图片描述
在这里插入图片描述
测试:
匿名用户登录失败
在这里插入图片描述
2.
本地用户可以登录
且可写
在这里插入图片描述
在这里插入图片描述
测试:
在这里插入图片描述

三、匿名用户读写

1.匿名用户和本地用户
2.匿名用户可上传
3.匿名用户下载
4.匿名用户可以建立目录
5.匿名用户可以删除或重命名

anonymous_enable=YES|NO		##匿名用户登陆限制

#<匿名用户上传>
vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub

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

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

#<匿名用户建立目录>
anon_mkdir_write_enable=YES|NO

#<匿名用户下载>
anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载

#<匿名用户删除>
anon_other_write_enable=YES|NO	

1.匿名用户 和 本地用户

匿名用户:使用服务器资源时没有指定用户身份的用户
本地用户:指定用户身份
在这里插入图片描述

2.匿名用户上传

在这里插入图片描述
设置配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试:
上传成功如下:
在这里插入图片描述

3.匿名用户下载

在这里插入图片描述
设置配置文件:
在这里插入图片描述
在这里插入图片描述
测试:
下载成功
在这里插入图片描述

4.匿名用户可以建立目录

设置配置文件:
在这里插入图片描述
在这里插入图片描述
测试:
成功建立目录
在这里插入图片描述

5.匿名用户可以删除或重命名

设置配置文件:
在这里插入图片描述
在这里插入图片描述
测试:
删除和重命名成功
在这里插入图片描述

四、关于匿名用户的其他设定参数

1.匿名用户上传文件的权限
2.匿名用户默认登录目录为 westos
3.匿名用户上传下载速率限制设置
4.最大客户端连接

 #<匿名用户使用的用户身份修改>
chown_uploads=YES
chown_username=student
chown_uploads_mode=0644
#<最大上传速率>
anon_max_rate=102400

#<最大链接数>
max_clients=2

查询参数命令

在这里插入图片描述

1.匿名用户上传文件的权限

连接后转到/pub,上传文件,查看权限为600
在这里插入图片描述
改变权限:
在这里插入图片描述
在这里插入图片描述

2.匿名用户默认登录目录为 westos

新建westos目录
在westos目录建立5个文件(为了查看效果)
在这里插入图片描述
在这里插入图片描述
修改配置文件后,重启
ls查看默认目录,为刚新建的5个文件,说明默认目录为westos:
在这里插入图片描述

3.匿名用户上传下载速率限制设置

在这里插入图片描述
设置配置文件匿名用户上传下载最大速率为100k
上传文件:
在这里插入图片描述

4.最大客户端连接

在这里插入图片描述
设置配置文件
连接第三个报错:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、本地用户的设定

local_enable=YES|NO		##本地用户登陆限制
write_enable=YES|NO		##本地用户写权限限制

#<本地用户家目录修改>
local_root=/directory

#<本地用户上传文件权限>
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

1.

在这里插入图片描述

2.本地用户家目录修改

服务端
在/home/student下 建立studentfile文件
在这里插入图片描述
客户端
以本地用户student身份登录
查看到刚建立的studentfile文件
在这里插入图片描述
现在
希望本地用户登录后,家目录为westos
在这里插入图片描述
设置配置文件
重启
查看家目录中的问价为westos中的文件
在这里插入图片描述

3.限制本地用户浏览/目录

所有用户被锁定到自己的家目录中

chroot_local_user=YES
chmod u-w /home/*

本地用户家目录不仅可以看到家目录里东西,
还能看到 服务器/ 下面的东西
不安全
可以把这个用户锁到家目录中
在这里插入图片描述
如下:
此参数打开时,要把家目录中的所有写权限去掉,否则登录失败
匿名用户登录时,本地用户不能有写权限
在这里插入图片描述
服务端
设置之后

客户端
本地用户登录不成功,因为权限太大
在这里插入图片描述
在服务端
设置
在这里插入图片描述
客户端
登录成功
并且被锁定到家目录中,不能切换到/目录:
在这里插入图片描述

3.1用户黑名单建立(此名单中用户被锁定到家目录中)

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

此文件在系统中是不存在的

服务端
设置配置文件
在这里插入图片描述

设置黑名单
在这里插入图片描述
在这里插入图片描述
客户端
以lee身份登录
失败(没关写权限)
在这里插入图片描述
服务端
去掉写权限
在这里插入图片描述
登录成功
但被锁定家目录
在这里插入图片描述

3.2用户白名单建立

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

4.限制本地用户登陆

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

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

六、虚拟用户的认证设定

系统用户:可以登录ftp、ssh等任何服务
虚拟用户:只能登录ftp这一种服务

查找文件命令

在这里插入图片描述

0). prepare

    3  yum clean all
    4  yum repolist 
    5  yum install vsftpd -y
    6  systemctl  start vsftpd
    7  systemctl  enable  vsftpd
    8  systemctl  stop firewalld
    9  systemctl  disable firewalld
   10  getenforce 
   11  setenforce  0
   12  getenforce 
   13  vim /etc/sysconfig/selinux 
		SELINUX=disabled

1). 创建虚拟帐号身份的文件(注意: 不要出现空行或者多余的空格)
vim /etc/vsftpd/loginusers	##文件名称任意
ftpuser1
123
ftpuser2
123
ftpuser3
123

2). 对用户帐号和密码进行加密
db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db
chmod 600 /etc/vsftpd/loginusers*

3). 编辑帐号和密码处理的库文件
vim /etc/pam.d/ckvsftpd		##文件名称任意
account		required	pam_userdb.so	db=/etc/vsftpd/loginusers
auth		required	pam_userdb.so	db=/etc/vsftpd/loginusers

4). 配置vsftpd配置文件
vim /etc/vsftpd/vsftpd.conf
pam_service_name=ckvsftpd	# 虚拟用户信息认证文件名称
guest_enable=YES		# 虚拟用户开启

虚拟用户的认证设定

1.创建一个账号身份文件,写账号和密码

在这里插入图片描述

2.加密
此认证文件系统不能直接读取
需要转换为库的方式,即加密

在这里插入图片描述
3.吧文件指定到策略文件里
此文家名字任意
位置必须在/etc/pam.d下面

系统将用pam来读取文件
和登录用户给定的账号密码做对比

现在,做认证文件
不会做,可以看例子
在这里插入图片描述
在这里插入图片描述
查看vsftpd文件写入规则:
在这里插入图片描述
此时
转到此目录下,编写策略文件

在这里插入图片描述
在这里插入图片描述
4.设置配置文件
在这里插入图片描述

七、虚拟用户的家目录设定及授权独立

1.虚拟用户的家目录设定

虚拟用户的家目录等进去都是匿名用户的家目录
在这里插入图片描述

虚拟用户的家目录设定

虚拟帐号身份指定)
guest_username=ftpuser
chmod u-w /home/ftpuser

虚拟帐号家目录独立设定)
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/$USER
user_sub_token=$USER

mkdir /ftpuserhome
chgrp ftpuser /ftpuserhome
chmod g+s /ftpuserhome
mkdir /ftpuserhome/ftpuser{1..3}

1.建立3个虚拟用户
并在每个虚拟用户下建立一个目录

在这里插入图片描述
现在想让每个用户都有一个家目录
在这里插入图片描述
在这里插入图片描述
重启
在这里插入图片描述
客户端
测试:
成功
在这里插入图片描述

2.上传文件
虚拟用户登录 不能上传文件
pub目录不可写
在这里插入图片描述
修改权限
修改ftp为用户组
修改组权限775
在这里插入图片描述
测试:
上传
成功
在这里插入图片描述
上传,删除 都可以
在这里插入图片描述

2.虚拟帐号配置独立

案例实现目标:
	1). ftpuser1用户上传和下载文件限速;
	2). ftpuser2用户上传和下载文件不限速, 并且可以上传文件;

vim /etc/vsftpd/vsftpd.conf
	user_config_dir=/etc/vsftpd/conf.d
	mkdir -p /etc/vsftpd/conf.d

vim /etc/vsftpd/conf.d/ftpuser1
在此文件中设定配置文件中的所有参数,此文件的优先级高
	anon_max_rate=1024

vim /etc/vsftpd/conf.d/ftpuser2
	write_enable=YES
	anon_upload_enable=YES


mkdir /ftp/ftpuser2/upload/
chown ftpuser  /ftp/ftpuser2/upload/
systemctl  restart vsftpd

查看虚拟帐号配置独立命令

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

虚拟帐号配置独立

在这里插入图片描述

建立自定义文件
进入该目录
建立user2文件
在这里插入图片描述
在主配置文件中关掉所有的功能,在自配置文件中开放需要的功能
在这里插入图片描述

测试:

user1、user3用户上传失败
在这里插入图片描述
user2用户上传成功
在这里插入图片描述
user2上传成功,删除失败(在子配置文件中未设置删除)
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值