задержка запроса пароля при подключении к общедоступному серверу


9

у меня в университете установлен сервер (debian 7) с публичным ip. когда я захожу в систему (за пределами кампуса), я получаю странную задержку в 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).
— Патрик

@ Патрик, кажется, есть веская причина. Но почему это замедляет мой логин, но не мои коллеги?
— Нас

Почему вы думаете, что это по уважительной причине? Это вполне вероятно, потому что никто никогда не думал выключить его. И это, вероятно, замедляет вас, потому что официальный DNS-сервер для вашего сетевого блока не работает или отсутствует.
— Патрик

@ Патрик, разве он не выполняет эту проверку в целях безопасности?
— Нас

@Patrick, кстати, это решило проблему, так что вы могли бы также написать это как ответ
— nass

Ответы:


12

Как указано в комментариях, это, вероятно, вызвано UseDNS yesнастройкой sshd_configна сервере.

UseDNSНастройка является распространенной причиной для этого самого вопроса. В основном происходит то, что ваш сетевой IP-блок имеет дефектный или отсутствует DNS-сервер. Поэтому sshd пытается выполнить обратный поиск вашего IP-адреса и ждет, пока он не истечет. Другие люди не испытывают задержки, поскольку у них есть функциональный DNS-сервер для их сетевого блока.

Большинство людей отключают эту настройку именно по этой причине. В то время как да, настройки для безопасности, это в значительной степени бесполезно .

Решение состоит в том, чтобы просто установить следующее в sshd_config:

UseDNS no

1
просто примечание: sshd_configв Debian 7 поставляется без этого пункта в файле конфигурации. Надо набрать его.
— Нас
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.