J'ai un serveur (Debian 7) installé dans mon université avec une IP publique. quand je ssh dans le système (de l'extérieur du campus), j'obtiens un délai étrange de 5-10 secondes avant d'obtenir l'invite de mot de passe. Pourquoi donc?
Je cours ssh -v
pour obtenir une sortie détaillée:
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
alors je reçois l'amende de mot de passe.
mon resolv.conf
apparence
domain <mydomain>.edu
nameserver <dns ip address>
le pare-feu est contrôlé par webmin
, et la configuration /etc/webmin/firewall/iptables.save
ressemble à:
# 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
Enfin et surtout, un collègue qui possède également un compte sur le même système reçoit immédiatement l'invite!
UseDNS yes
activé. Ceci est connu pour ralentir les connexions. En dehors de cela, nous aurions besoin de voir les journaux de débogage du serveur ($(which sshd) -d
).Réponses:
Comme indiqué dans les commentaires, cela est probablement dû au
UseDNS yes
paramètre dusshd_config
sur le serveur.Le
UseDNS
paramètre est un coupable commun à ce problème. Fondamentalement, ce qui se passe est que votre netblock IP a un serveur DNS défectueux ou manquant. Donc sshd essaie de faire une recherche inversée sur votre adresse IP, et attend qu'il expire. D'autres personnes ne connaissent pas le retard car elles ont un serveur DNS fonctionnel pour leur netblock.La plupart des gens désactivent ce paramètre pour cette raison. Bien que oui, le paramètre est là pour la sécurité, il est à peu près inutile .
La solution consiste simplement à définir les éléments suivants dans
sshd_config
:la source
sshd_config
dans debian 7 vient sans cette clause dans le fichier de configuration. Il faut le taper.