Vsftpd服务的部署及优化

本文介绍了如何在Linux CentOS系统上部署和优化Vsftpd服务,包括安装、启用匿名访问、防火墙配置、匿名用户及本地用户访问控制,以及虚拟用户的设置,详细阐述了各个步骤和相关权限的调整,确保FTP服务的安全和高效运行。

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

实验环境的搭建

1、服务器:

hostnamectl set-hostname westos_ser.westos.org		//设置服务器主机名
nm-connection editor 								//配置网络设置等
vim /etc/sysconfig/selinux   						//改成disabled
reboot												//重启服务器端
systemctl set-default multi-user.target  			//切换回有图形模式  init  5 然后reboot
systemctl set-default graphical.target				//切回默认有图像启动

2、客户端:

hostnamectl set-hostname westos_cli.westos.org		//设置客户端主机名
nm-connection editor 								//配置网络设置等
vim /etc/sysconfig/selinux   						//改成disabled
systemctl set-default multi-user.target  			//切换回有图形模式  init  5 然后reboot

一、ftp介绍

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

二、vsftpd安装及启用

1、服务器

(1)安装

dnf install vsftpd -y	
systemctl enable --now vsftpd   //启动ftp服务

(2)开启匿名访问,并添加防火墙允许服务

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES								//12行
firewall-cmd --permanent --add-service=ftp			//设置防火墙允许ftp访问
firewall-cmd --reload 								//重新加载
firewall-cmd --list-all							 	//查看防火墙允许的服务列表
systemctl restart vsftpd							//重新打开ftp服务

2、客户端

dnf install lftp -y						//安装
lftp 172.25.254.141						//尝试第二次匿名连接,可以ls

3、测试连接是否成功

firefox:

ftp://ip
lftp ip			//此访问方式必须能列出资源才算访问成功
				//在使用完成后请输入exit推出lftp

三、vsftpd基本信息

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

四、匿名用户访问控制

lftp 192.168.0.10					//当访问ftp服务时没有加入用户认证为匿名访问
lftp 192.168.0.10 -u westos			//本地用户访问

1、登陆控制

anonymous_enable=YES|NO				//允许匿名登陆,直接更改参数,12行

2、家目录控制

anon_root=/westosdir				//需要手动输入

3、上传控制

(1)服务器端执行:

anon_upload_enable=YES|NO		    //29行改参数就好
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub

(2)客户端执行:

lftp  服务器端ip
cd pub
put /etc/passwd

4、目录建立控制

anon_mkdir_write_enable=YES|NO		//手动输入

5、下载控制

anon_world_readable_only=NO	//匿名用户可以下载不能读的文件

6、删除重命令控制

anon_other_write_enable=YES|NO		//手动输入

7、匿名用户上传文件权限设定

anon_umask=xxx
anon_umask=022		##当设定chown_username之后上传文权限将不是用此参数设定

8、匿名用户上传文件的用户身份设定

chown_upload=YES
chown_username=lee
chown_upload_mode=0644

9、登陆数量控制

max_clients=2

10、上传速率控制

anon_max_rate=102400

五、本地用户的访问

编辑的配置文件:

vim /etc/vsftpd/vsftpd.conf

1、登陆控制

useradd westos
useradd lee												//添加两个本地用户
echo lee | passwd --stdin westos			//更改本地用户的密码为lee
echo lee | passwd --stdin lee					//更改本地用户的密码为lee
lftp	192.168.0.10 -u westos					//以本地用户身份连接服务器
vim   /etc/vsftpd/vsftpd.conf					//编辑配置文件
		local_enable=NO|YES					//允许本地用户登陆		

2、家目录控制

local_root=/westosdir		//指定家目录文为/westosdir

3、写权限控制

write_enable=NO|YES			//写的权限的控制,也就是上传的权限

4、上传文件权限控制

local_umask=077				//这个是家目录的目录的权限,上传到上面的文件的权限为6--0--0

5、用户登陆控制

/etc/vsftpd/ftpusers	//永久黑,这个配置文件的程度更高,一旦是ftpusers里面有的用户,怎么操作都不可以登陆服务器
/etc/vsftpd/user_list	//默认黑

6、用户登陆白名单

userlist_deny=NO			//设定/etc/vsftpd/user_list位白名单。不在名单中的用户不能登陆ftp

7、锁定用户到自己的家目录中

chmod  u-w /home/*					//更改家目录的操作权限
chroot_local_user=YES				//配置文件中修改

8、锁定用户到自己的家目录中的白名单

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

9、锁定用户到自己的家目录中的黑名单

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

六、虚拟用户访问

1、建立虚拟用户过程

(1)建立认证文件

其中为匿名用户名和passwd

vim /etc/vsftpd/ftp_auth_file			
	westos1
	123
	westos2
	123
	westos3
	123

(2)生成目标的文件格式,方便系统辨别

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

(3)加密策略的编辑

vim /etc/pam.d/westos 							//这里是编辑加密策略
	account		required	pam_userdb.so		db=/etc/vsftpd/ftp_auth_file	
	auth		required	pam_userdb.so		db=/etc/vsftpd/ftp_auth_file

(4)加载加密策略

vim /etc/vsftpd/vsftpd.conf					//加载加密策略
pam_service_name=westos						//指定认证策略文件
guest_enable=YES							//指定虚拟用户功能开启
guest_username=ftp							//指定虚拟用户在ftp服务器上的用户身份

二、实验:

1、虚拟用户家目录的独立设定

目的:每个虚拟用户有自己的家目录

(1)建立目录

mkdir  -p /ftpuserdir/user{1..3}
touch  /ftpuserdir/user1/westos1file
touch  /ftpuserdir/user2/westos2file
touch  /ftpuserdir/user3/westos3file			
touch  /ftphome/user{1..3}/pub					//为每个用户创建userx/里面有westosxfile和/pub

(2)配置文件里面的

vim /etc/vsftpd/vsftpd.conf 
local_root=/ftpuserdir/$USER
user_sub_token=$USER
systemctl restart vsftpd 
然后:
连接服服务器,然后ls看文件		//这个时候user1里面就有westos1file和pub,其他一样。

2、用户配置独立

目的:针对不同的用户,可以下放不同的权力

user_config_dir=/etc/vsftpd/user_config							//在此目录中与用户名称相同的文件为用户配置文件
mkdir /etc/vsftpd/user_config									//在vsftpd下面创建其配置文件
vim /etc/vsftpd/user_config/user1								//user1中的配置文件中,允许匿名用户上传文件
		anon_upload_enable=YES

设定完成后user1用户可以上传文件,user2,user3不可以上传
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值