10 Star 0 Fork 12

src-openEuler / vsftpd

 / 详情

【LTS-SP2】【arm/x86】配置虚拟用户连接ftp服务器进行上传下载操作,服务开启时,日志中提示缺少pam_userdb.so,客户端登录ftp服务器失败

已验收
缺陷
创建于  
2021-05-13 18:08

【环境信息】
系统:arm,x86虚拟机
内存:4g
cpu:4核
OS版本:
openeulerversion=openEuler-20.03-LTS-SP2
compiletime=2021-05-07-12-45-29
gccversion=7.3.0-20210203.37.oe1
kernelversion=4.19.90-2104.21.0.0083.oe1
openjdkversion=1.8.0.282.b08-8.oe1
组网:需2台机器
【出现概率】
SP2必现,SP1正常
【问题复现步骤】
预置条件:
1、关闭selinux和firewalld
setenforce 0
systemctl stop firewalld
2、节点1:yum install vsftpd
3、节点2:yum install ftp haproxy

测试步骤:
配置两个节点,节点1:ftp服务器,节点2:haproxy
1、节点1创建目录,mkdir -p /home/vsftpd/ftp
2、节点1创建文件,加入虚拟用户,奇数行代表用户名,偶数行代表密码
[root@localhost vsftpd]# cat /etc/vsftpd/loginuser.txt
ftpuser
123456
3、节点1执行命令生成虚拟数据库
db_load -T -t hash -f /etc/vsftpd/loginuser.txt /etc/vsftpd/login.db
4、节点1修改/etc/pam.d/vsftpd如下:
auth required pam_userdb.so db=/etc/vsftpd/login
account required pam_userdb.so db=/etc/vsftpd/login
auth sufficient pam_userdb.so db=/etc/vsftpd/login
account sufficient pam_userdb.so db=/etc/vsftpd/login
5、新建一个系统用户,使之不能登录系统,并改变目录所属用户组
useradd vsftpd -d /home/vsftpd -s /bin/false
chown vsftpd:vsftpd /home/vaftpd
6、节点1修改vsftpd的配置文件/etc/vsftpd/vsftpd.conf如下:
anonymous_enable=NO
write_enable=YES
guest_enable=YES
guest_username=vsftpd
local_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
pasv_enable=YES
pasv_min_port=10001
pasv_max_port=10002
pasv_address=[节点2ip]
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
listen=yes
listen_ipv6=no
pam_service_name=vsftpd
userlist_enable=NO
allow_writeable_chroot=YES
user_config_dir=/etc/vsftpd/user_conf
7、创建虚拟帐号配置
mkdir -p /etc/vsftpd/user_conf
touch /etc/vsftpd/user_conf/ftpuser
编辑/etc/vsftpd/user_conf/ftpuser,内容如下:
write_enable=YES
local_enable=YES
local_umask=077
local_root=/home/vsftpd/ftp
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=yes
anon_umask=022
8、节点1启动vsftpd,创建pub目录,并授予权限777
systemctl start vsftpd
mkdir -p /home/vsftpd/ftp/pub
chmod 777 /home/vsftpd/ftp/pub
9、节点2修改haproxy的配置文件/etc/haproxy/haproxy.cfg如下:
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
user haproxy
group haproxy
daemon
maxconn 4000

defaults
mode tcp
log global
option tcplog
option dontlognull
retries 3
timeout http-request 5s
timeout queue 1m
timeout connect 5s
timeout client 1m
timeout server 1m
timeout http-keep-alive 5s
timeout check 5s
maxconn 3000

frontend foxtrot-tango-papa-control
bind *:21
default_backend ftp_server_pool

frontend foxtrot-tango-papa01
bind *:10001-10002
default_backend foxtrot_tango_papa01

backend ftp_server_pool
server foxtrot-tango-papa01 [节点1ip] check port 21 inter 10s rise 1 fall 2

backend foxtrot_tango_papa01
server foxtrot-tango-papa01 [节点1ip] check port 21 inter 10s rise 1 fall 2
10、节点2启动haproxy
systemctl start haproxy
11、在节点2执行ftp [节点2ip]
[root@localhost ~]# ftp [节点2ip]

【预期结果】
1-8.配置更新后,vsftpd启动成功
9-10.配置更新后,haproxy启动成功
11.ftp服务器登录成功,能够上传下载文件
【实际结果】
1-8.配置更新后,查看vsftpd启动状态running,但报错缺少pam_userdb.so
输入图片说明
9-10.配置更新后,haproxy启动成功
11.ftp服务器登录失败530,不能上传下载文件
输入图片说明
【附件信息】
vsftpd_journalctl

附件
doraemon2020 2021-05-13 18:07

评论 (3)

doraemon2020 创建了缺陷
doraemon2020 负责人设置为sherlock2010
doraemon2020 关联分支设置为openEuler-20.03-LTS-SP2
doraemon2020 计划开始日期设置为2021-05-13
doraemon2020 计划截止日期设置为2021-05-15
doraemon2020 优先级设置为主要
doraemon2020 关联仓库设置为src-openEuler/vsftpd
doraemon2020 修改了描述
展开全部操作日志

pam_userdb.so是由pam软件包提供,请确认环境中是否正确安装了pam软件包

输入图片说明

是缺少pam_userdb.so文件

SP2的pam在合入gdbm替换libdb后,pam_userdb.so丢失,转交由pam责任人分析

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(2)
5707003 doraemon2020 1584520535
1
https://gitee.com/src-openeuler/vsftpd.git
git@gitee.com:src-openeuler/vsftpd.git
src-openeuler
vsftpd
vsftpd

搜索帮助