Vsftpd服务的部署及优化

本文详细介绍了Vsftpd服务的安装、启用、匿名用户和本地用户访问控制,以及虚拟用户设置等,包括权限配置、上传速度限制、用户权限管理等方面,旨在提供一套完整的Vsftpd服务部署与优化方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Vsftpd服务的部署及优化


一、ftp介绍

ftp:file transfer proto
互联中最老牌的文件传输协议

二、vsftpd安装及启用

ftp不支持匿名访问

dnf install vsftpd -y	 #server
dnf install lftp -y	 #client
关闭selinux
 systemctl enable --now vsftpd	#开启
 firewall-cmd --permanent --add-service=ftp	#添加进防火墙
 firewall-cmd --reload	#刷新防火墙

在这里插入图片描述
然后

lftp 172.25.254.141	#直接访问,会无法访问,因为不支持匿名用户
lftp 172.25.254.141 -u westos	#用westos用户访问,必须输入westos用户密码

在这里插入图片描述
然后更改配置
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
在这里插入图片描述
systemctl restart vsftpd
然后再次访问试试
lftp 172.25.254.141
在这里插入图片描述
访问成功

三、vsftpd基本信息

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

四、匿名用户访问控制

在/var/ftp/pub下上传文件

chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
lftp 172.25.254.141
cd pub/
put /etc/passwd

在这里插入图片描述
结果发现报错550,所以你得修改配置文件
vim /etc/vsftpd/vsftpd.conf
在这里插入图片描述

anon_upload_enable=YES #允许上传功能
anon_other_write_enable=YES	#删除重命令控制

然后systemctl restart vsftpd
再次上传一次
在这里插入图片描述
如果没有anon_other_write_enable=YES
那么会无法删除
在这里插入图片描述
然后在配置文件里面修改增加anon_other_write_enable=YES
就能删除
在这里插入图片描述
一些配置文件的作用

anon_upload_enable=YES	#允许上传功能
anon_other_write_enable=YES	#删除重命令控制
anon_mkdir_write_enable=YES	#允许建立目录/下载目录
anon_world_readable_only=NO	#匿名用户可以下载不能读的文件
anon_umask=022	#设定权限777-022-111=644
chown_uploads=YES		#设定匿名用户上传文件的用户身份设定
chown_username=westos	#设定为westos,westos必须存在
chown_upload_mode=0644	#设定这样上传的文件的权限

在这里插入图片描述
而且在目录下上传大文件
在这里插入图片描述

dd if=/dev/zero of=/tmp/bigfile bs=1M count=2000
然后put /tmp/bigfile

会发现上传速度特别快,这样不合理
所以
anon_max_rate=102400 设定每秒100k上传速度
每次修改完配置记得

systemctl restart vsftpd

五、本地用户的访问

在这里插入图片描述

local_enable=YES/NO		#是否能使用本机用户登陆

local_root=/westosdir 		#家目录控制(得自己添加)(将此目录变为家目录)

write_enable=YES/NO 		#可写可读开关(能否上传或者编写文件)

local_umask=022 		#umask限制权限

1.黑白名单

在这里插入图片描述
cd /etc/vsftpd
ftpusers 永久黑
在这个名单里面就是不能用vsftpd这个相关,这个的权限最高
如果在这个文件里面,就算在白名单内
都无法使用lftp
user_list 默认黑
在这里面也不能用,但是通过修改配置
将 /etc/vsftpd/vsftpd.conf
最后一行
增加userlist_deny=NO就能把
默认黑改为白名单
在这里插入图片描述
正常情况下能直接ls
但是如果加入到黑名单中
vim /etc/vsftpd/user_list
在这里插入图片描述
添加westos

在这里插入图片描述
会发现无法ls
因为被加入黑名单了
此时,如果将配置文件中
/etc/vsftpd/vsftpd.conf
增加userlist_deny=NO
在这里插入图片描述
则可以访问
在这里插入图片描述
将这个黑名单变为了白名单

2.锁定用户到自己的家目录中

vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES 所有的用户将被锁到自己家目录
在这里插入图片描述systemctl restart vsftpd
这样之后会进不去家目录
得使用 chmod u-w /home/*才能进入
在这里插入图片描述
会发现不能切换到/下

3.锁定家目录的白名单(黑名单)

配置文件下
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

要自己建立/etc/vsftpd/chroot_list文件
这个文件里面写的是谁,谁就被加入了白名单,白名单以外的人
会被锁家目录

可以通过修改chroot_local_user=YES
将YES改为NO,则可以将此名单变为黑名单

vim /etc/vsftpd/chroot_list
westos
在这里插入图片描述
就能直接访问/

六、虚拟用户访问

1.建立虚拟用户过程

第一步建立认证文件模板

cd /etc/vsftpd
vim ftpauth 建立认证文件模板

user1	#用户1
123		#密码为123
user2
123
user3
123

在这里插入图片描述

2.加密认证文件模板

db_load -T -t hash -f ftpauth ftpauth.db	#-T 转换 -t type -f 指定转换文件

在这里插入图片描述

3.编写加密文件内容

vim /etc/pam.d/ftpauth
account required pam_userdb.so db=/etc/vsftpd/ftpauth		#不能添加后缀,会自动补齐
auth	required pam_userdb.so db=/etc/vsftpd/ftpauth

在这里插入图片描述

4.更改配置

cd /etc/vsftpd/
vim vsftpd.conf

pam_service_name=ftpauth	#指定认证文件识别(在ftpauth这个目录下)
guest_enable=YES		#指定虚拟用户功能开启
guest_username=ftp		#指定虚拟用户在ftp服务器上的用户身份

在这里插入图片描述
然后就可以通过命令
lftp 172.25.254.141 -u user1
输入设定的密码123就可以登陆ls了
在这里插入图片描述

5.虚拟用户家目录的独立设定

先建立他们的家目录

mkdir -p /ftphomedir/user{1…3}/pub
touch /ftphomedir/user1/userfile1 识别作用
touch /ftphomedir/user2/userfile2 识别作用
touch /ftphomedir/user3/userfile3 识别作用

然后

家目录的指定
配置文件里面

/etc/vsftpd/vsftpd.conf

最后一排

local_root=/ftphomedir/$USER	#识别配置
user_sub_token=$USER

systemctl restart vsftpd

每个人都有家目录了

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

6.用户配置独立

mkdir /etc/vsftpd/user_config	#建立配置文件,这里的文件,必须为你虚拟用户的用户名
touch /etc/vsftpd/user_config/user1

然后

vim /etc/vsftpd/user_config/user1
anon_upload_enable=YES	#使user1可以下载

在这里插入图片描述
然后在配置文件中/etc/vsftpd/vsftpd.conf下

user_config_dir=/etc/vsftpd/user_config

在这里插入图片描述
然后在把上面几条注销一下,就能直接使用

#anon_upload_enable=YES
#anon_other_write_enable=YES
#anon_mkdir_write_enable=YES
#anon_world_readable_only=NOex
#anon_umask=022

systemctl restart vsftpd

然后让pub获得权限

chmod 775 /ftphomedir/user{1..3}/pub
chgrp ftp /ftphomedir/user{1..3}/pub

在这里插入图片描述

然后就user1可以上传下载,user2,user3不行

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值