欢迎光临散文网 会员登陆 & 注册

vsftp配置虚拟用户登录

2023-03-23 11:54 作者:学酥两支笔  | 我要投稿

1 查看系统当前服务状态

service --status-all


2 停用当前ftp服务以免端口占用

Pure-FTPd


3 安装vsftpd

yum install vsftpd


4 默认配置项说明

vim /etc/vsftpd/vsftpd.conf


#关闭匿名用户访问

anonymous_enable=NO

#允许用户写权限

allow_writeable_chroot=YES

#本地用户锁定在自己的主目录中

chroot_local_user=YES

#不使用chroot_list_file指定的用户列表,没有任何“例外”用户

chroot_list_enable=NO

#主动模式端口为20

connect_from_port_20=YES

#日志路径在vsftpd_log_file

dual_log_enable=YES

#启用虚拟用户

guest_enable=YES

#虚拟用户映射为本地用户

guest_username=huchangyi

#ipv4

listen=YES

#ipv6

listen_ipv6=NO

#允许本地用户登录

local_enable=YES

#建立文件夹的权限为777-022=755

local_umask=022

#可插拔验证模块名称

pam_service_name=vsftpd

#主动

port_enable=YES

#被动

pasv_enable=YES

#被动模式传输数据的端口范围

pasv_min_port=10000

#被动模式传输数据的端口范围

pasv_max_port=10000

#屏蔽ftpusers列表中的用户

userlist_enable=YES

#屏蔽user_list列表中的用户

userlist_deny=YES

#user_list列表路径

userlist_file=/etc/vsftpd/user_list

#虚拟用户文件夹路径

user_config_dir=/etc/vsftpd/user_conf

xferlog_enable=YES

xferlog_std_format=YES

xferlog_file=/etc/vsftpd/ftp.log

vsftpd_log_file=/etc/vsftpd/vsftpd.log

#对登录用户开启写权限

write_enable=YES



5 查看系统用户

cat /etc/passwd 


6 虚拟用户权限独立控制

mkdir /etc/vsftpd/user_conf

vim /etc/vsftpd/user_conf/test


write_enable=YES

#虚拟用户和本地用户有相同的权限

#virtual_use_local_privs=YES

#不是只读

anon_world_readable_only=NO

#下载

anon_upload_enable=YES

#下载文件和创建文件夹

anon_mkdir_write_enable=YES

#下载、删除和重命名

anon_other_write_enable=YES

local_root=/home/huchangyi


7 重启

systemctl restart vsftpd


8 新建虚拟账号教程


8.1 建立虚拟用户口令库文件

建立口令文件(名字随便)  奇数是用户  偶数是密码

vim /etc/vsftpd/login.txt


test

t123456


8.2 生成vsftpd的认证文件


使用db_load命令生成认证文件

db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db


设置认证文件只对用户可写可读

chmod 600 /etc/vsftpd/login.db


8.3 建立虚拟用户所需的pam配置文件

cd /etc/pam.d

vim /etc/pam.d/vsftpd


文件内容如下:

auth required /lib/security/pam_userdb.so (so表示调用的共享模块)

db=/etc/vsftpd/login(.db要去掉)   (自动生成认证文件)

account required /lib/security/pam_uesrdb.so

db=/etc/vsftpd/login(.db要去掉)   (以认证文件为标准验证帐号)


最终调整为

auth sufficient pam_userdb.so db=/etc/vsftpd/login

account sufficient pam_userdb.so db=/etc/vsftpd/login


sufficient

表示该模块验证成功是用户通过认证的充分条件。只要这个模块验证成功了,就代表没有必要继续去认证这个用户了。

那么相应的行为就是只要被sufficient标记的模块一旦认证成功,就会立即返回给应用,报告成功;

但是需要注意的是sufficient的优先级低于required,那么如果有required失败,刚最终的结果也是失败的;

当sufficient认证失败时,相当于optional。


8.4 建立虚拟用户所要访问的目录并设置相应权限

即:建立所以ftp虚拟用户帐号使用的系统用户帐号的映射文件并设置该帐号

宿主目录的权限

useradd huchangyi -d /home/huchangyi -s /sbin/nologin

注意不能给虚拟用户设密码  他只起映射作用


8.5 设置vsftpd.conf配 置文件

在配置文件中添加虚拟用户的配置内容

vim /etc/vsftpd/vsftpd.conf


guest_enable=YES

guest_username=huchangyi

pam_service_name=vsftpd


9 重启服务

systemctl restart vsftpd


10 报错问题解决

euler系统报错 无法初始化数据库:

gdbmtool /etc/vsftpd/login.pag store test test1234


vsftp配置虚拟用户登录的评论 (共 条)

分享到微博请遵守国家法律