ログインしていません。

#1 2019-03-31 21:52:19

underodig
モデレータ
登録日: 2016-04-24
投稿: 60

vsftp v3.0.3-4 にてlocaluserがloginできない(vsftpd 530 login incorrect)

いつもお世話になっております。タイトルの通り、Localuserがログインできなくなり困っております。
ご指南ご鞭撻のほどよろしくお願いいたします。

症状
ローカルユーザーにてログインしようとすると「530 login incorrect」とでてログインできない。
anonymousユーザーはログインできる。

いつからログインできなくなったか?
不明。2019年の1月はログインできている模様(wordpress更新によるPHPファイルのタイムスタンプにて確認)

各種設定
/etc/vsftp.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=002
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
allow_writeable_chroot=YES
userlist_deny=NO
ls_recurse_enable=YES
listen=YES
seccomp_sandbox=NO
use_localtime=YES

#以下テストで追記(それぞれ効果がなかったのでコメントアウト)
#pam_service_name=vsftpd
#userlist_enable=YES
#userlist_file=/etc/vsftpd.user_list
#user_config_dir=/etc/vsftpd_user_conf
#check_shell=NO

/etc/vsftpd.user_list
hogehoge0
hogehoge1

/etc/vsftpd_user_conf
標準のホームディレクトリでよいので、一応用意しただけで、ユーザーごとの設定ファイルは置いていない

/etc/pam.d/vsftpd    ←なかったので作成
auth required pam_pwdb.so shadow nullok
account required pam_pwdb.so
password required pam_pwdb.so shadow nullok use_authtok
session required pam_pwdb.so

/etc/shells

/bin/sh
/bin/bash
/sbin/nologin
/bin/zsh
/bin/git-shell
/usr/bin/sh
/usr/bin/bash
/usr/bin/zsh
/usr/bin/git-shell
/usr/sbin/nologin    ←なかったので追記

やってみたこと
1)パスワードの変更
2)/etc/shellsに/usr/sbin/nologinを追加
3)vsftpd.confにpam_service_name=vsftpd追加。/etc/pam.d/vsftpd作成
4)vsftpd.confにuserlist_enable=YES追加。/etc/vsftpd.user_list作成/etc/vsftpd_user_conf作成
5)VMware Workstation 12 Playerへ新規にarchlinux(2019.3月版)をインストールし、必要最低限のの環境でもやはり同じ症状。(pamは入れていない)
vsftpd.confは基本標準設定で、local_enable=YES seccomp_sandbox=NO のみ有効の場合と、上記コンフィグに差し替えた場合でも同じ症状。

vsftpd自身のアップデートは2019年に入ってからはないはずなので、ライブラリか何かの仕様変更かと考えているのですが
それだと、www.archlinux.orgのほうに何か上がってそうな気もします。(探し方が下手なのかもしれません)
何か根本的なところで誤っているのか、手がかりが切れてしまった状態です。

解決法をご存知の方がおられましたら、ご指南お願いいたします。

編集者 underodig (2019-03-31 21:54:09)

オフライン

#2 2019-04-03 23:19:13

underodig
モデレータ
登録日: 2016-04-24
投稿: 60

Re: vsftp v3.0.3-4 にてlocaluserがloginできない(vsftpd 530 login incorrect)

今回の場合log_ftp_protocol=YESでのLog記録がほぼない状態だったので、途方に暮れていたのですが、
ふと思いjournalをのぞいてみると記録されていました。

Apr 03 22:25:11 hogehoge-server vsftpd[4792]: pam_warn(ftp:auth): function=[pam_sm_authenticate] flags=0 service=[ftp] terminal=[ftp] user=[hoge] ruser=[hoge] rhost=[192.168.0.X]
Apr 03 22:25:20 hogehoge-server vsftpd[4794]: pam_warn(ftp:auth): function=[pam_sm_authenticate] flags=0 service=[ftp] terminal=[ftp] user=[hoge] ruser=[hoge] rhost=[192.168.0.X]

pamを使う(入っている場合)は「/etc/pam.d」内にftpかvstfpdファイルが作成されるのはググっててわかっていたのですが、作成されていなかったので
pamは使われていないと解釈していました。
実際にはpamが使われているようなのでvsftpd.conf内でコメントアウトしていた「pam_service_name=vsftp」を「pam_service_name=ftp」に変更
して有効化し、「/etc/pam.d/vsftpd」を「/etc/pam.d/ftp」に変更し、vsftpdをrestartさせ、再度ログインを試み(失敗しました)た後、journalを覗い
てみたところ以下のように変化していました。

Apr 03 22:43:18 hogehoge-server vsftpd[4824]: PAM unable to dlopen(/usr/lib/security/pam_pwdb.so): /usr/lib/security/pam_pwdb.so: cannot open shared object file: No such file or directory
Apr 03 22:43:18 hogehoge-server vsftpd[4824]: PAM adding faulty module: /usr/lib/security/pam_pwdb.so

「/etc/pam.d/ftp」を正しく書く直すことで何とかなりそうです。

オフライン

#3 2019-04-04 22:52:53

underodig
モデレータ
登録日: 2016-04-24
投稿: 60

Re: vsftp v3.0.3-4 にてlocaluserがloginできない(vsftpd 530 login incorrect)

結論から言いますと、pamのバグ???のようです。
https://bugs.archlinux.org/task/61746
に報告が上がっていました。
修正パッチも上がっていたので、パッチの内容から/etc/pam.d/ftpを以下のように設定して問題なくvsftpdへ接続できることを確認いたしました。

/etc/pam.d/ftp
#%PAM-1.0
auth               required        pam_unix.so
account          required        pam_unix.so
password        required        pam_unix.so
session           required        pam_unix.so

編集者 underodig (2019-04-04 22:54:30)

オフライン

クィック投稿

メッセージを書いて送信してください。
ボット判定

本当の人間が送信しようとしていることを確認します。

Board footer