Vsftpd服务的部署及优化

Vsftpd服务的部署及优化

下载
dnf search ftp 						##vsftp服务端。lftp客户端
dnf install vsftpd.x86_64 -y
dnf install lftp.x86_64 -y

getenforce  						##检测selinux
vim /etc/selinux/config				##编辑文件将其设定为disabled

开启服务
systemctl  enable  --now vsftpd
systemctl  status firewalld
firewall-cmd --permanent --add-service=ftp
systemctl -cmd  --reload

lftp 192.168.2.222					##此访问方式必须能列出资源才算访问成功使用完成后输入exit退出lftp
ftp://192.168.2.100/ 				##在firefox可以使用这个进行检验


ftp基本信息
服务名称		vsftpd.service
配置目录	    /etc/vsftpd
主配置文件   /etc/vsftpd/vsftpd.conf
默认发布目录 /var/ftp

报错信息:
550 	#程序本身拒绝
553 	#文件系统权限限制
500		#权限过大
530 	#认证失败

ftp默认不让匿名用户登录
vim  /etc/vsftpd/vsftpd.conf  			##编辑主配置文件
anonymous_enable=YES					##第12行,yes表示匿名用户允许登录

设定默认发布目录
mkdir /westosdir   					##新建一个目录
touch /westosdir/westosdirfile		##建立文件,以便测试的时候查看
vim /etc/vsftpd/vsftpd.conf			##编辑主配置文件
anon_root=/westosdir				##第13行,更改默认发布目录
systemctl restart vsftpd
lftp 192.168.43.222

上传功能(默认情况下不能上传,默认发布目录中的子目录)默认发布目录不能有写的权利,权限太大。
lftp 192.168.43.100
ls
cd pub
ls
put /etc/passwd						##上传文件出现553报错
vim /etc/vsftpd/vsftpd.conf			##修改主配置文件第30行。允许匿名用户上传,表示服务本身允许
systemctl restart vsftpd
ls -ld /var/ftp/pub					##查看权限,发现只能超级用户登录
chgrp ftp /var/ftp/pub				##编写权限
chmod 775 /var/ftp/pub
ls -ld /var/ftp/pub		

目录建立控制
cd pub 
ls
mkdir test								##报错,出现550
vim /etc/vsftpd/vsftpd.conf				##修改主配置文件34行,允许匿名用户新建目录
systemctl restart vsftpd
										##此时建立完之后不能删除此文件
anon_other_write_enable=YES				##编辑主配置文件在第36行加入此命令,表示匿名用户可以删除

下载控制
get passwd								##下载,出现550报错
vim /etc/vsftpd/vsftpd.conf				##编辑主配置文件在第38行加入  
anon_world_readable_only=NO
systemctl restart vsftpd				##在pub中下载,下载的文件在最后面

匿名用户上传文件权限设定
lftp 192.168.43.200
cd pub 									##切换到pub中上传
put /etc/group 
vim /etc/vsftpd/vsftpd.conf 			##编辑第40行。
anon_umask=022  						##上传文件之后所建立文件默认保留022
put /etc/inittab						##上传权限默认用户 和组都是ftp



匿名用户上传用户文件的用户身份设定
vim /etc/vsftpd/vsftpd.conf				##编辑主配置文件
54  chown_uploads=YES
55  chown_username=li					##上传之后文件所有人为li
systemctl restart vsftpd
			##上述设置使得我们在配置文件的用户身份时候,指定权限就不生效了,需要加入chown_upload_mode=0644指定上传文件权限

匿名用户登录个数的控制。
lftp 192.168.2.100						##ls之后能列出东西就叫做登录。
										#默认情况下,建立链接个数是50个
vim /etc/vsftpd/vsftpd.conf			
57 	max_clients=3  						##ftp服务器能够接受链接最大数量
systemctl  restart vsftpd

上传速率控制					
dd if=/dev/zero of=/mnt/bigfile bs=1M count=2000			##截取,上传数据查看速度,此时的速度很快
du -sh /mnt/bigfile						##查看大小

rm -fr /var/ftp/pub/*				 	##删除,以便后续实验

vim /etc/vsftpd/vsftpd.conf
58 anon_max_rate=102400 				##匿名用户上传速率被控制在每秒钟100K
systemctl  restart vsftpd

本地用户的访问控制
echo westos | passwd --stdin li 		##更改用户密码
ls -l /home								##查看当前电脑的用户信息
lftp192.168.2.100 -u li					##登录本地用户家目录
vim /etc/vsftpd/vsftpd.conf
17	local_enable=YES					##允许本地用户登录

设定本地用户上传权限
 20   write_enable=NO 					##禁止FTP服务提供写的功能,不能用put上传

 24 local_umask=077						##更改新建的文件权限

登录控制。(黑白名单)
cd /etc/vsftpd
ls
user_list								##临时黑名单。默认是黑名单,设定后可以成为白名单
ftpusers								##永久黑名单。只要在这个名单中出现你就是黑的,就不能登录
vim ftpusers							##更改立即生效
vim user_list

vim /etc/vsftpd/vsftpd.conf
136 userlist_deny=NO		
						##当此参数生效,默认用户不能使用ftp登录。只有在user_list中的用户可以登录,这时user_list就变成了白名单。
systemctl  restart vsftpd

设定本地用户的家目录
vim /etc/vsftpd/vsftpd.conf
18	local_root=/westosdir 

本地用户家目录的访问控制
vim /etc/vsftpd/vsftpd.conf
110  chroot_local_user=YES					##锁定本地用户到自己的家目录中,使得用户不能浏览根目录。安全级别提升,登录系统也不行。
chmod u-w /home/* 							##当用户锁定到自己家目录时候,将家目录写的权利去掉后,登录系统就可以了,否则就会被禁止访问
touch  /etc/vsftpd/chroot_list				##建立文件

vim /etc/vsftpd/vsftpd.conf
108 chroot_local_user=NO
109 chroot_list_enable=YES
110 # (default follows)
111 chroot_list_file=/etc/vsftpd/chroot_list     ##此时 /etc/vsftpd/chroot_list是黑名单

chroot_local_user=YES
109 chroot_list_enable=YES
110 # (default follows)
111 chroot_list_file=/etc/vsftpd/chroot_list   	 ##此时 /etc/vsftpd/chroot_list白名单

建立一个只为ftp服务的用户,这是个虚拟的用户。
建立认证文件
vim /etc/vsftpd/virt_users
user1									##用户一行,密码一行
123
user2
123
对认证文件加密
db_load -T -t hash -f /etc/vsftpd/virt_users  /etc/vsftpd/virt_users.db
ls
cat  /etc/vsftpd/virt_users.db
编写规则
cd /etc/pam.d
ls
vim vsftpd 								##查看编写规则的格式
vim virt_user
account 账号  required验证方式  pam_userdb.so  认证插件  db=/etc/vsftpd/virt_users验证对比文件(所有db文件后缀不用谢,自动补齐)
auth 		  required         pam_userdb.so      	    db=/etc/vsftpd/virt_users
主配置文件编辑
136 pam_service_name=virt_user			##开启虚拟用户功能规则
guest_enable=YES
guest_username=ftp真实服务器的用户是ftp   139
测试
id user1
id user2								##用户ID不存在
lftp 192.168.43.200 -u user1			##ftp用户存在

										
										##虚拟用户都在默认发布目录中
mkdir -p /ftphomedir/user{1..2}/pub		##建立新的家目录
vim /etc/vsftpd/vsftpd.conf
local_root=/ftphomedir/$USER			##指定用户家目录,$USER是变量方式指定
										#系统用户名字和家目录是配对的,但是虚拟的用户名不固定,引用变量echo $USER来指定
user_sub_token=$USER					##告诉系统$这是一个变量而不是字符串
systemctl restart vsftpd

touch /ftphomedir/user1/user1file		##在发布目录下建立文件,方便测试
touch /ftphomedir/user2/user2file

测试:
lftp 192.168.43.222 -u user1			##查看文件是不是user1file
lftp 192.168.43.222 -u user2			##查看文件是不是user2file


用户配置独立(更改一个用户的主配置文件让其权限受限)
chgrp ftp /ftphomedir/user{1..2}/pub
chmod 775 /ftphomedir/user{1..2}/pub  				##更改权限让ftp对所有的pub可以写

vim /etc/vsftpd/vsftpd.conf
143 user_config_dir=/etc/vsftpd/userconfdir 		##设定所有虚拟用户的配置目录
mkdir /etc/vsftpd/userconfdir						##建立上述配置目录
vim /etc/vsftpd/userconfdir/user1					##用户名字需要对应
anon_upload_enable=YES								##此文件参数只有在读取user1登录时才会被识别
systemctl  restart vsftpd

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
##默认发布目录已经更改
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
##默认用户是ftp
在这里插入图片描述
##用户身份设定
在这里插入图片描述

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

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
##权限过大
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
##以下为黑名单的显示

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

在这里插入图片描述
在这里插入图片描述
##设定所有虚拟用户的配置目录。
在这里插入图片描述
##打开权限,所有用户在pub下面可写
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值