最初のsudoは常に遅い


8

sudoUbuntu 14.04サーバーで最初に入力するのが常に遅い。パスワードプロンプトがすぐに表示されますが、Enterキーを押した後、出力が印刷されるまで約10〜15秒かかります。この後のすべてのsudoコマンドは即座に実行されます。

sudo strace -S time -c sudo echo hiからのsudo sudo echo hiはすでに2番目のsudoであり、高速に実行されるため、このような場合に何かを実行しても、有用なものは何も表示されません。時間が経過して、実行中のセッションでパスワードを再入力する必要がある場合、再び遅くなります。

私が見つけたすべての解決策は、/etc/hostsファイルに127.0.0.1の解決策としてホスト名を追加することでしたが、これは役に立ちませんでした。su root即座に実行されます。ここ数日で私が変更したことを覚えているのは、サーバーがルーティングしているサブネットのネットマスク、samba、dnsutils、bind9のインストールだけです。しかし、これらのプロセスはどれも実行されておらず、物理的なアクセスでは、sshセッションとtmuxセッションに問題が残っています。

編集:新しいアプローチ

sudo tcpdump -vvvi any > tcpdump.log すべてのNICを取り外した状態で実行してみました。ログには、以下の多くが示されています。

18:35:09.453399 IP (tos 0x0, ttl 64, id 49112, offset 0, flags [DF], proto UDP (17), length 76)
    localhost.38498 > localhost.domain: [bad udp cksum 0xfe4b -> 0x1050!] 58546+ SRV? _kerberos._udp.KF.OURLOCALDOMAIN.DE. (48)
18:35:09.457412 IP (tos 0x0, ttl 64, id 49113, offset 0, flags [none], proto UDP (17), length 76)
    localhost.domain > localhost.38498: [bad udp cksum 0xfe4b -> 0x8fcd!] 58546 ServFail q: SRV? _kerberos._udp.KF.OURLOCALDOMAIN.DE. 0/0/0 (48)

同じエントリがudpのtcp instadで表示されます。大学のドメイン名をOURLOCALDOMAINに置き換えました。

今私はケルベロスがそれと何か関係があるかもしれないと思います、しかし私は/etc/krb5.confを削除して再起動しました、それでも変更はありません。私には、サーバーが私たちの大学のネットワークから中央のkerberosサーバーで自分自身を検証しようとしているようです。数年前、このIPは私たちの部署のためにsambaを実行するサーバーに登録されていたことがわかります。接続があるのでしょうか?ホスト名を当時使用していたホスト名に変更しましたが、sudoの動作に変更はありませんでした。LmwangiはPAMについて何かを提案していますが、私はほとんど知識がありません。そのため、これにどのように取り組むかわかりません。また、Sambaのインストール中に問題が発生したため、Sambaのインストール時にHeimdal KerberosからMIT Kerberosに切り替えたことを思い出しました。翌日もコメントからのアイディアを試すつもりですが、数日旅行するので時間がかかるかもしれません。

編集2:解決済み

/etc/network/interfacesすべてを台無しにしたレガシーDNS検索エントリがにありました。私はとても愚かだ。今はすべてうまくいきます。


1
一時的にset-uidビットをオンに設定straceすると、最初のなしで実行できますsudo-o <file>分析のために出力をファイルに保存するオプションを使用すると役立つ場合もあります。
garethTheRed 2014年

1
それだ。次にsudo -k、キャッシュされた資格情報を削除します。私が見つかりました。strace -Tro sudo.log sudo echo hi最後の列が各呼び出しの時間を示しているとして有用でした。grepunamesocketスターターなど。
garethTheRed 2014年

1
5.005153秒は-rオプションからのものです(おそらく削除する必要があります)。以下からの長い呼び出しを探して開始-Tオプション-彼らは内のものであり<そして>あなたのケースでは0.000097秒- 。
garethTheRed 2014年

1
他に何かがスローダウンを引き起こしている場合に備えて、ps、top、およびすべてのシステムログファイルを確認しましたか?
mdpc 2014年

1
PAM設定を投稿できますか?strace最終的にそこに到達しますが、これはおそらくより高いレベルの構成の問題です。認証中のほとんどの長い一時停止は、リモートサーバーへのアクセスに失敗し、タイムアウトを待機する必要があるためです。サブネットの変更により、認証サーバーがこのサブネットとは異なるサブネットに置かれた可能性があります。sudo成功した認証の記録を一時的に保存する/varので、これがおそらく、後続の呼び出しが即座に実行される理由です。
Bratchley 2014年

回答:


2

お使いのボックスがPAMを使用して外部認証サービス(NIS / LDAPなど)に接続しようとしていると思われます...

私がPAMを正しく理解していると、strace呼び出しでPAMルックアップを表示できなくなります。tshark / tcpdumpを実行して、特定のネットワークトラフィックをsudoの試行に関連付けることができるかどうかを確認することをお勧めします。ここで容疑者はDNSルックアップでしょう&| LDAP呼び出し。

tcpdump -i eth0 -w network.pcap -s0 -Av

検索の原因を突き止めた場合は、関連するPAMモジュールを見つけて、問題を編集および修正してください。または、DNSルックアップの場合は、/ etc / hostsエントリを追加して名前を偽装し、localhostにリダイレクトします。これにより、検索が高速になり、localhostにリダイレクトされるため、sudoが高速になり、localhostをリッスンしていないため、ネットワークトランザクションが高速に失敗します...


これは良い方向に進んでいるようです。ログに「bad udp cksum」と「bad tcp cksum」の呼び出しがたくさんあります。コメントを投稿するには長すぎるので、すぐにOPを更新します。
zerweck 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.