最新のLinuxシステムでは、その理由はpam_unix.soがこのような遅延を課しているためです。既報の通り、これは変更することにより、2秒まで設定することができますFAIL_DELAY
で/etc/login.defs
。遅延をさらに減らしたい場合は、pam_unix.soに「nodelay」オプションを指定する必要があります。たとえば、私のシステムでは、から始まるインクルードをトレースする場合/etc/pam.d/sudo
、次の行を編集する必要があります/etc/pam.d/system-auth
。
auth required pam_unix.so try_first_pass nullok
これに変更します:
auth required pam_unix.so try_first_pass nullok nodelay
残念ながら、私のLinuxディストリビューション(arch)が設定する方法は、sshdによって使用さsystem-auth
れるまったく同じファイルがに含まれますsystem-remote-login
。
sudoの遅延はログに記録され、ローカルユーザーのみが使用し、とにかくローカルの攻撃者がバイパスできるため、sudoの遅延を削除しても安全ですが、リモートログインの場合はこの遅延を削除したくないでしょう。もちろん、共有されたsystem-authファイルだけを含まないカスタムsudoを書くことで修正できます。
個人的には、sudoの遅延(およびSIGINTの無視)は大きな間違いだと思います。パスワードを誤って入力したことを知っているユーザーは、プロセスを強制終了できず、イライラすることはありません。もちろん、sudoはSIGTSTPをキャッチしないため、Ctrl-Zでsudoを停止できます。停止後、kill -9(SIGKILL)でkillできます。やるのは面倒です。そのため、自動化された攻撃は、擬似端末のsudoを非常に高いレートで発射できます。しかし、この遅延は正当なユーザーを苛立たせ、ルートシェルを終了するのではなく、ルートシェルを一時停止して、再びsudoを行わないようにすることを奨励します。