web-dev-qa-db-ja.com

CentOSでは、Sudo、ログイン用にパスワードを2回入力する必要があります

ログインまたはSudoプロンプトが表示されるたびに、サーバーはパスワードが最初に提供されたときに常に拒否しますが、2回目にはパスワードを受け入れます。私は このスレッド を見つけました。これは同じ問題のように見えることを説明していますが、そこで説明されている解決策に沿って/etc/pam.d/system-authファイルをいじってみてもうまくいきませんでした私。たとえば、「try_first_pass」の最初のインスタンスを「use_first_pass」に変更すると、「nullok」を削除した場合と同様に、ログイン認証が継続的に失敗しました。システムが最初に正しいパスワードを受け入れるようにするために何を変更する必要があるかを誰かが知っていますか?

/etc/pam.d/system-auth:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_ldap.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_ldap.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_ldap.so

編集:コメントへの応答として、ここに/etc/pam.d/loginがあります:

#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth       include      system-auth
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
session    optional     pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      system-auth
-session   optional     pam_ck_connector.so

付け加えておきますが、承認について私が知っているのは、過去1時間ほどでグーグルで検索できたものだけです。IT担当者がそうしなかったので、私は必死になってこの問題に取り組んでいます。したがって、それに応じて回答を提案してください。私はLinuxについてかなり一般的な知識を持っています。

編集:別のコメントに応答して、通常のログイン試行中に/ var/log/secureに表示されるものを次に示します(パスワードが両方とも正しく入力された場合)時間)。サーバー名やIPなどの情報が変更されました。

Oct 28 07:37:41 myserver sshd[944]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=asus-laptop-abc.def.ghi.edu  user=matt
Oct 28 07:37:41 myserver sshd[944]: pam_ldap: ldap_starttls_s: Operations error
Oct 28 07:37:43 myserver sshd[944]: Failed password for matt from 123.456.78.90 port 12345 ssh2
Oct 28 07:37:47 myserver sshd[944]: pam_sss(sshd:account): Access denied for user matt: 10 (User not known to the underlying authentication module)
Oct 28 07:37:47 myserver sshd[944]: Accepted password for matt from 123.456.78.90 port 12345 ssh2
Oct 28 07:37:47 myserver sshd[944]: pam_unix(sshd:session): session opened for user matt by (uid=0)

興味深いことに、上記は、本当に間違ったパスワードを最初に入力した場合とは異なります。その場合、最初のpam_ldap呼び出しの後に次の追加行があります。

Oct 28 08:13:13 myserver sshd[1054]: pam_ldap: error trying to bind as user "uid=matt,ou=People,dc=abc,dc=ghi,dc=edu" (Invalid credentials)

したがって、システムは前者の場合に資格情報が正しいことを認識しますが、とにかくログインに失敗しますか?!そして、use Sudoを呼び出すと、次のようになります。これにより、ダブルログインも強制されます(この場合、nanoを使用して/ var/log/secureを読み取ります)。

Oct 28 08:13:27 myserver  Sudo: pam_unix(Sudo:auth): authentication failure; logname=matt uid=1000 euid=0 tty=/dev/pts/2 ruser=matt rhost=  user=matt
Oct 28 08:13:32 myserver Sudo:     matt : TTY=pts/2 ; PWD=/home_dir/home/matt ; USER=root ; COMMAND=/bin/nano /var/log/secure

編集:rootとしてログインした場合、この問題は発生しません!最初の試行でパスワードを受け入れます。/var/log/secureは次のようになります。これは正常だと思います。

Oct 29 14:25:58 myserver sshd[7074]: Accepted password for root from 123.456.78.90 port 12345 ssh2
Oct 29 14:25:58 myserver sshd[7074]: pam_unix(sshd:session): session opened for user root by (uid=0)
6
Matt Phillips

コメントするのに十分な担当者がいないようですので、これは答えを暗くしようとするちょっとしたショットです。

pam_ldap:ldap_starttls_s:操作エラー

あなたのログのこの部分が犯人を示しているのかどうか疑問に思う必要があります。私の疑いは、LDAP構成が何らかの方法でtlsを誤って処理しているため、接続が失敗していることです。

各モジュールからの応答に注意してください。

pam_ldap: ldap_starttls_s: Operations error
pam_sss(sshd:account): Access denied for user matt: 10 (User not known to the underlying authentication module)
pam_unix(sshd:session): session opened for user matt by (uid=0)

つまり、ここにあるのは、LDAPがエラーのために失敗したことを示し、sssがあなたが誰であるかわからないことを示し、ローカル認証が成功したことを示しています。

考慮すべき方向:

  1. LDAPサーバーログにエラーはありますか?
  2. 可能であれば、TLSを無効にして、それが機能するかどうかを確認できますか?
  3. Ldapsearchは機能しますか?
1
Kaithar