SSHD 反向映射失败,但 nslookup、dig 和 host 解析正确

SSHD 反向映射失败,但 nslookup、dig 和 host 解析正确

我刚刚设置了一个 dhcp/dns 服务器来管理我的家庭网络。在我完成所有设置并运行后(可能在此之前 - 我当时没有仔细注意),我注意到登录 ssh 的速度很慢。我以调试模式启动了 sshd,/sbin/sshd -ddd并启动了第二个 PuTTy 实例。

当然,罪魁祸首很快就显而易见:

debug3: Trying to reverse map address 10.0.0.22.
reverse mapping checking getaddrinfo for mt.local [10.0.0.22] failed - POSSIBLE BREAK-IN ATTEMPT!

它无法将我的 IP 反向映射到我的主机名。考虑到 DNS 记录按照 nslookup 都是按顺序排列的,这很奇怪:

[root@media] # nslookup mt.local
Server:        10.0.0.2
Address:       10.0.0.2#53

Name:   mt.local
Address: 10.0.0.22

[root@media] # nslookup 10.0.0.22
Server:        10.0.0.2
Address:       10.0.0.2#53

22.0.0.10.in-addr.arpa  name = mt.local

主持人:

[root@media] # host mt.local
mt.local has address 10.0.0.22
[root@media] # host 10.0.0.22
22.0.0.10.in-addr.arpa domain name pointer mt.local.

并挖掘:

[root@media] # dig mt.local

; <<>> DiG 9.9.4-P2-RedHat-9.9.4-12.P2.fc20 <<>> mt.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12144
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mt.local.                      IN      A

;; ANSWER SECTION:
mt.local.               300     IN      A       10.0.0.22

;; AUTHORITY SECTION:
local.                  300     IN      NS      media.local.

;; ADDITIONAL SECTION:
media.local.            300     IN      A       10.0.0.2

;; Query time: 0 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Tue Jul 15 23:02:34 EDT 2014
;; MSG SIZE  rcvd: 89

[root@media] # dig -x 10.0.0.22

; <<>> DiG 9.9.4-P2-RedHat-9.9.4-12.P2.fc20 <<>> -x 10.0.0.22
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5476
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;22.0.0.10.in-addr.arpa.                IN      PTR

;; ANSWER SECTION:
22.0.0.10.in-addr.arpa. 300     IN      PTR     mt.local.

;; AUTHORITY SECTION:
0.0.10.in-addr.arpa.    300     IN      NS      media.local.

;; ADDITIONAL SECTION:
media.local.            300     IN      A       10.0.0.2

;; Query time: 1 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Tue Jul 15 23:03:59 EDT 2014
;; MSG SIZE  rcvd: 109

并且,为了冗长起见,我的/etc/resolv.conf

search local
nameserver 10.0.0.2

我找不到任何导致反向映射失败的原因。我也找不到任何导致它在失败前挂起这么长时间的原因——DNS 服务器距离只有 0.5 毫秒。

是的,我知道我可以关闭反向映射,但这不是重点。我非常感谢大家的帮助!

我可能应该注意,这是在 10.0.0.0/24 网络上;调制解调器/网关位于 10.0.0.1;dns/dhcp/我所说的盒子(媒体)位于 10.0.0.2;我的桌面(mt)位于 10.0.0.22。本地域是 .local,我有与 DHCP 绑定的反向 DNS 映射。

答案1

.local 通常被认为是一个“特殊”域名。avahi/bonjour/mdns 等使用它作为域名,虽然您没有说您使用什么来提供 DNS,但我猜它不是 avahi。

/etc/nsswitch.conf 中的“hosts”行是什么样的?

nslookup、host 和 dig 将使用您配置的解析器,但 ssh 将使用 nsswitch.conf,它将为其提供要逐步执行的选项列表。其中一个选项可能是 mdns 或 mdns4,例如:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns

我建议将您的本地域名更改为 .local 以外的其他名称,或者从 nsswitch.conf 中的 hosts: 行中删除任何 mdns* 条目,例如:

hosts:          files dns

答案2

问题原来既简单又愚蠢,是由操作员错误引起的。显然,凭借我的无限智慧,我对 mt 的静态租约进行了以下配置(在我的 dhcpd.conf 中):

host mightyturing {
     hardware ethernet <MAC>;
     option host-name "mightyturing";
     ddns-hostname "mt";
     fixed-address 10.0.0.22;
};

因此 SSHD 是正确的 - 反向映射与设置的主机名不匹配。将 更改ddns-hostname为“mightyturing”即可解决问题。将 更改option host-namemt可能也会有效。

至少,我思考这就是问题所在...修复 dhcp 配置并更新我的 IP 后它就停止挂起了。

无论如何,感谢大家抽出时间:)

相关内容