vsftpdがPAM認証に失敗しました。

vsftpdがPAM認証に失敗しました。

Fedora 16を使用して証明されたvsftpd設定を新しいサーバーに転送する際に問題があります。すべてが期待どおりに機能しているようですが、ユーザー認証は失敗します。何が起こったかを示すログエントリが見つかりません。

完全な構成ファイルは次のとおりです。

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=0
data_connection_timeout=0
nopriv_user=ftpsecure
connect_from_port_20=YES
listen=YES
chroot_local_user=YES
chroot_list_enable=NO
ls_recurse_enable=YES
listen_ipv6=NO

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

FTPはユーザー名とパスワードを要求して提供しましたが、ログインが正しくありませんでした。 SSH経由でユーザーがログインできることを確認しました。何か問題が発生しましたpam_service

匿名(許可に変更した場合)がうまく機能しているようです。

SELinuxが無効になっています。

Ftpsecureがうまく構成されているようです...完全に恥ずかしいです!

私が確認したログファイルは次のとおりです。

/var/log/messages
/var/log/xferlog      #empty
/var/log/vsftpd.log   #empty
/var/log/secure

何かを見つけました/var/log/audit/audit.log

type=USER_AUTH msg=audit(1335632253.332:18486): user pid=19528 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:authentication acct="kate" exe="/usr/sbin/vsftpd" hostname=ip68-5-219-23.oc.oc.cox.net addr=68.5.219.23 terminal=ftp res=failed'

確認してみるべきだと思います/var/log/wtf-is-wrong.help :-)

追加情報:

/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

答え1

呼ぶこの問題を解決しました。設定と同じですが、/etc/pam.d/vsftpdにあります。

SSHセッションは成功し、FTPセッションは失敗したため

/etc/pam.d/vsftpd、その中にあるすべてを削除し、代わりにルールと正確に一致するように./sshdの内容を配置しました。みんな一番いい!

アンインストール中に問題がある行は次のとおりです。

    auth       required     pam_shells.so

これを削除すると続行できます。

"pam_shellsは、ユーザーのシェルが/ etc / shellsにリストされている場合にのみシステムへのアクセスを許可するPAMモジュールです。探してみると混同もなく何もありませんでした。私はこれがvsftpd設定のバグだと思います。文書のどこにも/etc/shellsを編集できる内容がないからです。したがって、デフォルトのインストールと指示は指定されたとおりに機能しません。

それでは、バグを提出できる場所を探してみましょう。

答え2

Ubuntuを使用していますが、同じ問題に直面しました

解決策:

add-shell /sbin/nologin
sudo usermod -s /sbin/nologin ftpme
sudo vi /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/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
@include common-auth
@include common-account
@include common-password
@include common-session

答え3

私の場合は、認証行にコメントを付けることを選択しました。/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/f$
#auth       required    pam_shells.so
auth       include  password-auth
account    include  password-auth
session    required     pam_loginuid.so
session    include  password-auth

これがあなたの理由です。追加すると/sbin/nologinシェルシステムとして、システムで不要なバックドアを開くことができます。代わりに、このファイルを変更すると確かに影響を与えます。VSFTPD

他のコースがあるかどうかはわかりませんが、SSHD私はシステムシェルを探していますが、他のものよりもpam.dファイルを変更する方が良い解決策だと思います。

答え4

vsftpdが次のエラーで失敗する場合

vsftpd.service:制御プロセスはコード=終了ステータス= 2で終了します。

pasv_addr_resolve=YESもう1つの可能性は、ファイルに設定されていることを確認することです/etc/vsftpd/vsftpd.conf。これにより、FTPサーバーのホスト名がDNSを介して解決されます。 DNSが解決しない場合は、DNS解決の問題を解決するか、少なくともvsftpdがエラーなしで起動するようにping yourhostname.example.com設定する必要があります。pasv_addr_resolve=NO/etc/vsftpd/vsftpd.conf

関連情報