apt install
を使用してインストールされたPAMモジュールをアンインストールする正しい手順を知りたいのですが。
「libpam-shield」 https://packages.debian.org/stable/admin/libpam-shield サーバー(debian 9、ssh、imapを実行)にインストールして、認証を繰り返してIPをブロックしました失敗。 (私はapt install libpam-shield
を使用してDebian安定リポジトリからインストールしました。)後で使用しないことにしたので、apt remove libpam-shield
を使用してアンインストールしました。ただし、この後でも、ファイル/etc/pam.d/common-auth
にはコメントされていない行auth optional pam_shield.so
が含まれているため、/var/log/auth.log
に警告行が繰り返されます。
PAM unable to dlopen(pam_shield.so): /lib/security/pam_shield.so: cannot open shared object file: No such file or directory
PAM adding faulty module: pam_shield.so
したがって、上記のcommon-auth
の行をコメントアウトしましたが、それによってimapおよびssh認証の試行で認証エラーが発生し始めました。
grep shield -r /etc/pam*
は、pam_shield
が言及されている他の場所を表示しませんでした。 pam_shield.so
が見つからないというエラーをなくすには、PAM構成ファイルに他にどのような変更を加える必要がありますか? libpam-shield
をアンインストールした後、サーバーを再起動しました。
追加:/etc/pam.d/common-auth
からの行は次のとおりです。
auth [success=3 default=ignore] pam_unix.so nullok_secure
auth optional pam_shield.so
auth [success=1 default=ignore] pam_ldap.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
PAMドキュメント を見てください:
より複雑な構文の場合、有効な制御値は次の形式になります。
[value1 = action1 value2 = action2 ...]
[...]
ActionNは、次のいずれかの形式をとることができます。
[...]
N (an unsigned integer)
スタック内の次のN個のモジュールを飛び越えるという副作用があるokと同等です。 0に等しいNは許可されないことに注意してください(そのような場合はokと同じになります)。
したがって、success = nはn行をスキップします。したがって、auth optional pam_shield.so
行を削除すると、1行少なくスキップする必要があるため、最初の行を次のように変換します。
auth [success=2 default=ignore] pam_unix.so nullok_secure
目標は、成功または次のメソッドでpam_permit.soにジャンプすることです(pam_shield、良い効果を得るためにpam_ldapの後に置くべきではなかったのだろうかと思いますが、私は十分に知りませんこの)。
しかし実際には、これはすべて、自動再構成を処理するコマンド pam-auth-update
を(パッケージから)使用することにより、パッケージの削除時に自動的に管理されているはずです。パッケージの取り外し中に問題が発生した可能性があります。
libpam-shieldおよびlibpam-ldapをインストールおよびアンインストールしようとしたすべての試みで-)どのような順序でも、構成は常に期待どおりに処理されました(パッケージが削除されると、関連する行が消えます)。そのため、なぜそれがうまくいかなかったのか戸惑います。
私はアドバイスしたい:
pam-auth-update
を実行します。提供されたリストに「PAMシールド:パスワード推測を試みるIPをブロックする」と記載するべきではありません。そうでない場合はまだ問題があります。それでも言及されている場合は、無効にすることを選択できるため、とにかく適切な構成が再構築されます。更新:また、manページで説明されているように:
スクリプトは、/ etc/pam.d/common- *へのローカル変更を尊重するためにあらゆる努力をします。モジュールオプションのリストへのローカル変更は保持され、スタックの管理対象部分にモジュールを追加すると、pam-auth-updateは構成ファイルをローカルで変更されたものとして扱い、指定されない限り構成ファイルにそれ以上の変更を加えません。 --forceオプション。
手動での変更が/etc/pam.d/common-auth
のコメントと衝突して行われた場合、おそらくpam-auth-updateは変更を回避します。これは、以下を使用してデフォルトのパッケージ処理にリセットできます。
pam-auth-update --force