vsftpd虚拟用户

发布时间 2023-05-09 09:30:43作者: 也曾滿眼愛意丶

创建虚拟用户密码文件

[root@web01 vsftpd]# pwd
/etc/vsftp
[root@web01 vsftpd]# cat vir_user
shyhftp
shyhftp
webftp
HTCH@trade#2014

生产虚拟用户数据库

[root@web01 vsftpd]# db_load -T -t hash -f vir_user vir_user.db
[root@web01 vsftpd]# chmod 700 /etc/vsftpd/vir_user.db

配置vsftpd.pam验证文件

# 先备份原来文件
[root@web01 vsftpd]# cp /etc/pam.d/vsftpd{,.bak}

# 注释所有的auth和account 然后添加最后2条 
[root@web01 vsftpd]# cat /etc/pam.d/vsftpd
#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
#auth       required	pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required	pam_shells.so
#auth       include	password-auth
#account    include	password-auth
session    required     pam_loginuid.so
session    include	password-auth
auth required pam_userdb.so db=/etc/vsftpd/vir_user
account required pam_userdb.so db=/etc/vsftpd/vir_user

添加htvftp用户

# 虚拟用户都会映射到此用户后对文件系统进行读写操作
[root@web01 vsftpd]# mkdir /htvftp
[root@web01 vsftpd]# useradd -d /htvftp -s /sbin/nologin -r htvftp
[root@web01 vsftpd]# chown -R htvftp.htvftp /htvftp

修改主conf文件

# 先备份
[root@web01 vsftpd]# cp vsftpd.conf vsftpd.conf.20210727.bak

# 修改主conf文件
[root@web01 vsftpd]# cat vsftpd.conf
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=htvftp
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/vsftpd_viruser
allow_writeable_chroot=YES

# 配置项的作用
#禁止匿名用户登录
anonymous_enable=NO
#允许本地用户登录
local_enable=YES
#启用虚拟账户 
guest_enable=YES
#把虚拟账户映射到系统账户virftp               
guest_username=htvftp
#使用虚拟用户验证(PAM验证)
pam_service_name=vsftpd
#设置存放各虚拟用户配置文件的目录(此目录下与虚拟用户名相同的文件为他的配置文件)
user_config_dir=/etc/vsftpd/vsftpd_viruser
#启用chroot时,虚拟用户根目录允许写入
allow_writeable_chroot=YES

创建虚拟用户配置文件的目录

[root@web01 vsftpd]# mkdir /etc/vsftpd/vsftpd_viruser/

配置webftp的conf文件

# 配置项不要带空格
[root@web01 vsftpd]# vim /etc/vsftpd/vsftpd_viruser/webftp
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=000
local_root=/var/ftp/data/trade/report/

## 配置项说明
# 允许写入
write_enable=YES
#允许浏览FTP目录和下载
anon_world_readable_only=NO
# 允许虚拟用户上传文件
anon_upload_enable=YES
# 允许虚拟用户创建目录
anon_mkdir_write_enable=YES
# 允许虚拟用户执行其他操作(如改名、删除) 
anon_other_write_enable=YES
# 上传文件的掩码,如000时,上传目录权限为777,文件权限为666 
anon_umask=000
# 指定虚拟用户的虚拟目录(虚拟用户登录后的主目录) 
local_root=/var/ftp/data/trade/report/

创建并授权webftp的家目录

[root@web01 vsftpd]# mkdir -p /var/ftp/data/trade/report/
[root@web01 vsftpd]# setfacl -m u:htvftp:rwx /var/ftp/data/trade/report/

配置shyhftp的conf文件

# 配置项不要带空格
[root@web01 vsftpd]# vim /etc/vsftpd/vsftpd_viruser/shyhftp
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=000
local_root=/htvftp/shyhftp/data/trade/shyhftp/

创建并授权shyhftp的家目录

[root@web01 vsftpd]# mkdir -p /htvftp/shyhftp/data/trade/shyhftp/bosc/frombosc/
[root@web01 vsftpd]# mkdir -p /htvftp/shyhftp/data/trade/shyhftp/bosc/tobosc/
[root@web01 vsftpd]# chown -R htvftp:htvftp /htvftp

启动vsftpd并自启动

[root@web01 vsftpd]# systemctl restart vsftpd
[root@web01 vsftpd]# systemctl enable vsftpd
[root@web01 vsftpd]# systemctl status vsftpd
[root@web01 vsftpd]# ps -ef|grep [v]sftpd
root 1849 1 0 20:05 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
[root@web01 vsftpd]# netstat -lntp|grep vsftpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1849/vsftpd 

使用filezilla测试连接

# 检查webftp和shyhftp 2用户是否正常使用

# 要是登录shyhftp报错 530 Login incorrect
那就删除
[root@web01 vsftpd]# rm -fr vir_user.db
[root@web01 vsftpd]# db_load -T -t hash -f vir_user vir_user.db
[root@web01 vsftpd]# chmod 700 /etc/vsftpd/vir_user.db
[root@web01 vsftpd]# systemctl restart vsftpd
[root@web01 vsftpd]# systemctl status vsftpd

修改managerserver

[trade@trade01 testapp]$ ps -ef|grep manageserver
然后kill掉

# 修改之前先备份原来的配置文件
[trade@trade01 testapp]$ vim manageserver/appConfig.properties
.....
report.export.dir=/data/trade/report
#/var/ftp/home/www/report/
ftp.base.dir=/var/ftp/data/trade/report/
ftp.host=web01
ftp.port=21
ftp.user=webftp
ftp.pwd=HTCH@trade#2014
.....

启动服务

修改funderver

[trade@trade01 testapp]$ ps -ef|grep fund
然后kill掉

# 修改之前先备份原来的配置文件
##ftp-bosc(上海银行需要连接此FTP服务器,需提前创建好需要的目录)
[trade@trade01 fundserver]$ vim appConfig.properties
....
bosc.ftp.base.dir=/data/trade/shyhftp/
bosc.ftp.tobosc=bosc/tobosc/
bosc.ftp.host=192.168.66.45
bosc.ftp.port=21
bosc.ftp.user=shyhftp
bosc.ftp.pwd=shyhftp
...

启动服务