FTP项目案例——虚拟用户验证机制

案例:为了FTP服务器的安全,不直接使用本地用户登录,使用虚拟用户验证机制,并对不同虚拟用户设置不同的访问权限。同时,为了保证服务器的整体性能,需要对上传/下载流量进行控制。

本地用户:user2
对应虚拟用户:zhang3、li4
虚拟用户的登录根目录:/ftp/public、/var/www/web2
访问权限:可以下载、可以上传和下载

1、安装vsftpd

步骤一

yum install -y vsftpd

2、配置环境

步骤二

//创建虚拟用户对应的本地用户,并设置用户主目录的访问权限
useradd user2 -s /sbin/nologin
mkdir -p /ftp/public
mkdir -p /var/www/web2
echo my test file > /ftp/public/1.txt
echo my test file > /var/www/web2/2.txt
chown user2. /ftp/public
chown user2. /var/www/web2/
chmod -R 755 /ftp/public
chmod -R 755 /var/www/web2

配置文件

步骤三

//创建虚拟用户名单文件vuser.txt
vi /etc/vsftpd/vuser.txt
zhang3 //指定虚拟用户的名称
123	   //指定上一行虚拟用户的密码
li4	
456

步骤四

//将虚拟用户明文文件vuser.txt转化为数据库文件v_user.db
db_load -T -t hash -f vuser.txt v_user.db
chmod 600 v_user.db 

步骤五

//建立用户登录时进行身份验证的PAM认证文件。
vi /etc/pam.d/vuser.vu
auth    sufficient      /lib64/security/pam_userdb.so   db=/etc/vsftpd/v_user
account sufficient      /lib64/security/pam_userdb.so   db=/etc/vsftpd/v_user

步骤六

//添加对虚拟用户的支持
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
grep -v '#' /etc/vsftpd/vsftpd.conf_bak >/etc/vsftpd/vsftpd.conf
vi /etc/vsftpd/vsftpd.conf
#anonymous_enable=YES #注释掉匿名登录
local_enable=YES #使用虚拟用户一定要开启本地用户
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

pam_service_name=vuser.vu #指定对虚拟用户进行PAM认证的文件名vuser.vu
userlist_enable=YES
tcp_wrappers=YES

guest_enable=YES #启动虚拟用户功能,允许虚拟用户登录
guest_username=user2 #指定虚拟用户对应的本地用户
user_config_dir=/etc/vsftpd/vconfig #指定虚拟用户的配置文件的存放位置
virtual_use_local_privs=YES #虚拟用户和本地用户有相同的权限
allow_writeable_chroot=YES #修复对用户家目录因有写权限而使访问出错

步骤七

//为虚拟用户分别建立相关的配置文件
mkdir /etc/vsftpd/vconfig
vi /etc/vsftpd/vconfig/zhang3 #配置文件名要和虚拟用户名同名
local_root=/ftp/public/ #指定登录以后的位置
anon_world_readable_only=YES #允许浏览和下载
write_enable=NO #关闭写入开关
anon_max_rate=500000 #限定传输速率为500KB/s
vi /etc/vsftpd/vconfig/li4
local_root=/var/www/web2/
write_enable=YES #允许写入
anon_upload_enable=YES #允许上传
anon_mkdir_write_enable=YES #允许创建目录
anon_other_write_enable=YES #允许删除和修改
anon_max_rate=1000000 #限定传输速率为1000KB/s

步骤八

systemctl restart vsftpd

测试

虚拟用户zhang3登录到/ftp/public,可以下载、浏览文件,但不能上传
虚拟用户li4登录到/var/www/web2,可以下载、上传、浏览、删除文件

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想敲代码的运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值