linux ftp 虚拟用户

2018-01-14 12:30:30 5353

一、概述

为何用虚拟用户

  虚拟用户只能访问服务器提供的FTP服务,而不能访问系统的其它资源。所以,如果想让用户对FTP服务器有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性


二、软件安装


1.安装vftpd:yum或者编译安装都可以

2.安装生成口令认证文件所需要的软件db4-utils

yum install db4-utils db4-devel -y

三、配置

本地数据文件方式【也可使用mysql】

(1)添加虚拟用户口令文件[奇数行为用户名,偶数行为密码]


vim /etc/vsftpd/vftpuser.txt

aaa #用户名

ugCLC5kkGdWbNI #密码

(2)生成虚拟用户口令认证文件

将刚添加的vftpuser.txt,使用db_load命令生成虚拟用户口令认证文件


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

chmod 0600 /etc/vsftpd/vftpuser.*

(3)编辑vsftpd的PAM认证文件


cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_bak

vim /etc/pam.d/vsftpd

#其他都注释掉,添加下面这两行,lib库对应系统位数:


32位

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser

account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser

64位

auth    required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

(4)建立本地用户映射并设置宿主目录权限

所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。

1

useradd -d /opt/vuser_worker -s /sbin/nologin vftpuser

(5)配置vsftpd.conf(设置虚拟用户配置项)

vim /etc/vsftpd/vsftpd.conf


anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

guest_enable=YES     #启用虚拟用户

guest_username=vftpuser #将虚拟用户映射为本地用户

listen=YES

user_config_dir=/etc/vsftpd/vusers_dir

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

(6)创建虚拟用户工作路径


mkdir /opt/vuser_worker

chown vftpuser.root /opt/vuser_worker/ -R

(7)为指定虚拟用户建立独立的配置文件


mkdir /etc/vsftpd/vusers_dir/

vim /etc/vsftpd/vusers_dir/ftp1

local_root=/opt/vuser_worker/

write_enable=YES

anon_upload_enable=NO

anon_world_readable_only=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

anon_umask=022

(8)重启vsftpd服务


service vsftpd restart


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: