web-dev-qa-db-ja.com

pam_service_name = vsftpdのときにvsftpdが機能しないのはなぜですか?

ホームサーバーでvsftpdのセットアップを行いました。認証エラーが発生したため、このフォーラムを検索して解決策を得ました。 このソリューションは私のために働いた

ソリューションのように。デフォルト設定

pam_service_name=vsftpd

動作せず、FTPサーバーでログインできません。

そして、私はそれをに変更した後

pam_service_name=ftp

動作し、ローカルユーザーとしてFTPサーバーにログインできます。この背後にある理由は何ですか?デフォルトが機能しないのはなぜですか?私はLinuxを学んでいるので、あなたの良い説明は私を大いに助けます

7
Anbu

pam_service_name=vsftpdで同じ認証エラーに直面しました。

オンラインでのアドバイスに従って、pam_service_name=ftpを設定することで問題が解決した理由がわからなかったため、これをpam_service_name=foobarに設定してテストし、問題も解決しました!

免責事項:私もLinuxを初めて使用します_pam_service_name=ftpを設定する一般に受け入れられているアドバイスは間違っていると思います

pam_service_name=vsftpdは既存の構成ファイル/etc/pam.d/vsftpdを選択しますが、pam_service_name=ftpは存在しない/etc/pam.d/ftpを探します(少なくとも私のシステムではUbuntu 14.04.2 LTS)。これは、ファイルが見つからないと文句を言うことなく、実際にPAM認証をバイパスしていると思われます。

有効なPAM構成を使用しないと、安全性が低下する場合があります。

最終的な解決策

最終的にpam_service_name=vsftpdを保持し、ユーザーのシェルが/etc/shellsファイルに存在することを確認しました。 http://www.cyberciti.biz/tips/howto-linux-Shell-restricting-access.html

/etc/pam.d/vsftdを見て

# Standard behaviour for ftpd(8).
auth    required    pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.

# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth    required    pam_shells.so

私の問題は、auth required pam_shells.soステップで失敗することでした。すべてのFTPユーザーに/usr/sbin/nologinファイルに存在しなかった/etc/shellsシェルを使用させました(ubuntu以外では、これは/sbin/nologinである可能性があります)。よくわからない場合は、auth required pam_shells.soをコメントアウトして、pam_service_name=vsftpdのときにこれが原因かどうかを確認してください。

注:さらに読むと、代わりに仮想ユーザーを作成する方がクリーンであることが示唆されていますが、これには異なるvsftpdおよびPAM構成が必要です- http://www.sigerr.org/linux/setup-vsftpd-custom-multiple-directories-users- accounts-ubuntu-step-by-step /

6
Josef P.

/etc/pam.d/vsftpdで指定できます

auth required pam_nologin.so

したがって、/ usr/sbin/nologinを介してログインが無効になっているユーザーは、ftpを使用してのみシステムにログインできます。

注:nologinを/ etc/shellsに追加すると、 Serverfault でセキュリティ上の脅威になる可能性があることを読みました。

2
dexin

私にとっての問題は、WindowsマシンでPAM構成(/etc/pam.d/vsftpd)を作成し、その結果\r\n行末になることでした。

行末をLinuxスタイル(\nのみ)に変換すると、PAM構成が機能し始めました。

また、最初にPAMサービス名が間違っていると思い、pam_service_name=ftpの代わりにpam_service_name=vsftpdを試しましたが、それはまったく役に立ちませんでした。これは、Josef Pの評価に同意します。行く方法。

1
Reto Höhener