公開サーバーにsshするときにパスワードプロンプトが表示されるまでの遅延


9

私の大学ではパブリックIPを使用してサーバー(debian 7)をセットアップしています。(キャンパスの外から)システムにSSH接続すると、パスワードプロンプトが表示されるまでに5〜10秒の奇妙な遅延が発生します。何故ですか?

ssh -v詳細な出力を取得するために実行します。

debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received

.... delay of 5-10 seconds here

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/nass/.ssh/id_rsa
debug1: Trying private key: /home/nass/.ssh/id_dsa
debug1: Trying private key: /home/nass/.ssh/id_ecdsa
debug1: Next authentication method: password

次に、パスワードプロンプトを表示します。

私のresolv.confように見えます

domain <mydomain>.edu
nameserver <dns ip address>

ファイアウォールはによって制御されwebmin、設定/etc/webmin/firewall/iptables.saveは次のようになります。

# Generated by iptables-save v1.4.14 on Mon Feb 10 17:41:38 2014
*filter
:FORWARD DROP [0:0]
:IP_TCP - [0:0]
:INPUT DROP [0:0]
:IP_UDP - [0:0]
:OUTPUT ACCEPT [0:0]
:IP_ICMP - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED -j ACCEPT
-A INPUT -m state --state RELATED -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags ACK ACK -j ACCEPT
-A INPUT -s 127.0.0.1/32 -i eth0 -j DROP
-A INPUT -p icmp -i eth0 -j IP_ICMP
-A INPUT -p udp -m udp -i eth0 -j IP_UDP
-A INPUT -p tcp -m tcp -i eth0 -j IP_TCP
-A INPUT -m limit --limit 3/second --limit-burst 3 -j ULOG --ulog-prefix "FW_INPUT: " --ulog-nlgroup 1
-A IP_ICMP -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A IP_ICMP -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A IP_ICMP -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A IP_ICMP -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A IP_ICMP -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A IP_ICMP -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A IP_ICMP -p icmp -j RETURN
-A IP_TCP -p tcp -m tcp --dport 2049:2050 -j DROP
-A IP_TCP -p tcp -m tcp --dport 6000:6063 -j DROP
-A IP_TCP -p tcp -m tcp --dport 7000:7010 -j DROP
-A IP_TCP -p tcp -m tcp --dport 19001 -j ACCEPT
-A IP_TCP -p tcp -m tcp --dport 12321 -j ACCEPT
-A IP_TCP -p tcp -m tcp --dport 80 -j ACCEPT
-A IP_TCP -p tcp -m tcp --dport 443 -j ACCEPT
-A IP_TCP -p tcp -m tcp -j RETURN
COMMIT
# Completed on Mon Feb 10 17:41:38 2014
# Generated by iptables-save v1.4.14 on Mon Feb 10 17:41:38 2014
*mangle
:PREROUTING ACCEPT [2386474:238877913]
:INPUT ACCEPT [2251067:225473866]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1100410:5416839301]
:POSTROUTING ACCEPT [1100428:5416842284]
COMMIT
# Completed on Mon Feb 10 17:41:38 2014
# Generated by iptables-save v1.4.14 on Mon Feb 10 17:41:38 2014
*nat
:PREROUTING ACCEPT [211832:26633302]
:INPUT ACCEPT [444:26827]
:OUTPUT ACCEPT [1817:114098]
:POSTROUTING ACCEPT [1817:114098]
COMMIT
# Completed on Mon Feb 10 17:41:38 2014

最後に重要なことですが、同じシステムにアカウントも持っている同僚はすぐにプロンプ​​トを受け取ります!


1
最初に考えたのは、サーバーがUseDNS yes有効になったことです。これは、ログイン速度を低下させることで悪名高いです。それとは別に、サーバーのデバッグログ($(which sshd) -d)を確認する必要があります。
Patrick

@パトリック、それは正当な理由でそこにあるようです。しかし、なぜ私のログインは遅くなりますが、同僚は遅くなりますか?
nass

なぜそれが正当な理由でそこにあると思いますか?誰もそれをオフにしようと思ったことがないので、それは完全にありそうです。また、ネットブロックの信頼できるDNSサーバーが停止しているか、見つからないため、速度が低下する可能性があります。
Patrick

@Patrickよく、セキュリティの目的でこのチェックを実行しませんか?
NASS

@Patrick btwこれで問題が解決したので、答えとしてこれを書いてもよい
nass

回答:


12

コメントに示されているように、これはサーバー上ののUseDNS yes設定が原因である可能性がsshd_configあります。

UseDNS設定は、この非常に問題の一般的な原因です。基本的には、IPネットブロックに欠陥があるか、DNSサーバーがないことが原因です。そのため、sshdはIPアドレスの逆引きを試​​み、タイムアウトになるまで待機します。ネットブロック用のDNSサーバーが機能しているため、他の人は遅延を経験しません。

ほとんどの人は、まさにこの理由でこの設定をオフにします。はい、設定はセキュリティのためにありますが、ほとんど役に立ちません

解決策は、単に以下を設定することsshd_configです:

UseDNS no

1
注意:sshd_configdebian 7では、設定ファイルにこの句がありません。一つは、それを入力する必要があります。
NASS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.