欧拉版本登录vsftp服务报错530(Login incorrect)问题现象分析及解决

问题现象

项目从centOS版本迁移到欧拉版本后,创建huaiyumo的虚拟账户,通过该账户进行登录vsftp服务时报错530,具体错误信息如下:

[root@huai ~]# ftp
ftp> open 192.168.11.121
Connected to 192.168.11.121 (192.168.11.121).
220 Welcome to use FTP service.
Name (192.168.11.121:root): huaiyumo
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp>

如此同时,在/var/log/secure日志中发现如下关键打印信息:

connected: pam_userdb(vsftpd:auth): user_lookup: could not init database ‘/etc/vsftpd/login': No such file or directory

通过以上日志打印信息可以发现,是由于缺少login数据库文件(该数据库文件记录着用户及其密码信息)导致无法认证成功,进而导致用户登录失败并报错530。

问题分析

由于PAM认证时会通过/etc/pam.d/vsftpd配置中指定的数据库路径进行读取虚拟用户数据库信息,因此,首先检查/etc/pam.d/vsftpd配置信息,发现并无异常(第2、3行已正确添加,第6行已被注释掉),如下:

[root@huai vsftpd]# cat -n /etc/pam.d/vsftpd
     1  #%PAM-1.0
     2  auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/login
     3  account required /lib64/security/pam_userdb.so db=/etc/vsftpd/login
     4  session    optional     pam_keyinit.so    force revoke
     5  auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
     6  #auth       required    pam_shells.so
     7  auth       include      password-auth
     8  account    include      password-auth
     9  session    required     pam_loginuid.so
    10  session    include      password-auth

其次,检查/etc/vsftpd目录发现login.txt、login.db文件均已存在,通过如下db_load命令重新生成记录huaiyumo虚拟账户的login.db数据库文件后,发现secure日志中仍然报错could not init database ‘/etc/vsftpd/login’: No such file or directory。

[root@huai ~]# echo "huaiyumo" >> /etc/vsftpd/login.txt
[root@huai ~]# echo "8H37bk" >> /etc/vsftpd/login.txt
[root@huai ~]# db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db

排除了/etc/pam.d/vsftpd配置的影响,也排除了login.db生成方式或格式不对的影响,那么有没有可能是login.db这个二进制文件在欧拉版本中无法识别呢?通过进一步调研和分析,果不其然,欧拉版本中无法读取login.db数据库文件,可以读取login.pag数据库文件(可以通过gdbmtool命令来实现)。

问题解决

将项目中通过db_load命令生成login.db文件改为通过gdbmtool命令生成login.pag文件,如下所示。同时,保持/etc/pam.d/vsftpd配置文件保持不变,实现PAM认证时从login.pag数据库文件中读取虚拟用户信息并进行认证登录。

[root@huai user]# gdbmtool /etc/vsftpd/login.pag

Welcome to the gdbm tool.  Type ? for help.

gdbmtool> store huaiyumo
DATA? 8H37bk
gdbmtool> q
[root@huai user]#

通过上述过程完成后,如下,再次用huaiyumo账户登录FTP服务器发现可以正常登录上,并且底层/var/log/secure日志中打印“connected: pam_userdb(vsftpd:auth): user ‘huaiyumo’ granted access”的成功登录信息。

[root@huai ~]# ftp
ftp> open 192.168.11.121
Connected to 192.168.11.121 (192.168.11.121).
220 Welcome to use FTP service.
Name (192.168.11.121:root): huaiyumo
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值