灵异现象 - Windows SMB 用 Domain name 能通,用 IP 不能通

「灵异现象」 Windows SMB 用 Domain name 能通,用 IP 不能通

灵异现象系列主要为技术灵异现象为主,
含有大量的技术词汇。

https://ithelp.ithome.com.tw/upload/images/20210902/20141165XMUEPOJwgZ.png
credit: unknown

故事开始

小新是一个菜鸟工程师,除了做资安还要当网管,
但这也是大多数中小企业的常态。

公司内部有一台 Windows 做共享资料夹给大家存放备份资料,
某一天小新发现这台 Server 居然只能用 Domain Name 连线,而用 IP 却会失败。
虽然前辈老 K 叫他不用管,东西会动就好,但小新决定一探究竟,

灵异现象

经过小新一番测试,发现了以下条件才会有灵异现象:

  1. 服务只能透过 Domain Name 连线但输入 IP 不行,服务器确认是同一台
  2. 环境有加入 Active Directory
  3. 服务是 SMB 或是其他需要 AD 身分验证的服务

真实情况

排查

身为一个资讯人员学会 TroubleShooting 是很重要的,
在这个情境中,我会推荐使用 wireshark 作为开始。
下图是当我们用 domain name 连线 SMB 的封包,可以看的出来这次连线过程采用 Kerberos 验证
注:当无法使用 Kerberos 时候, SMB 会自动协议使用 NTLM。

https://ithelp.ithome.com.tw/upload/images/20210902/201411650cw0Krnzde.png

而当我们使用 IP 连线时,走的验证是 NTLM

真实原因

所以真实情况是,服务能够使用 Kerberos 做验证但无法使用 NTLM 作为验证。
但为什麽会有这种状况,明明是连线相同的服务器却有不同的状况。

我们必须来看这两种验证方式的差别:
Kerberos 验证流程:
Kerberos V5 Exchanges

NTLM 在 AD 时验证流程,特别备注在 AD 是因为 NTLM 也可以作用於没 AD 的环境:
NTLM pass-through authentication

回到我们的灵异现象,「为什麽用 Domain name 能通,用 IP 不能通」
其实这时候答案很明显的了,请仔细看一次两张图的沟通连线差异。

当使用 Kerberos 验证的时候 Server 不需要跟 DC 做网路沟通。
但使用 NTLM 验证的时候,因为是透过 Server 做 Pass-Through Authentication (传递验证) , Server 必须跟 DC 做网路沟通。

当 Server 跟 DC 这段有问题时,无论是网路或是其他因素,也就导致了 NTLM 验证失败,形成了 IP 连线时验证失败。
如果你有遇到相同原因造成的状况,建议早日排除这问题, Server 很可能在接下来的日子里会出现更多事情,最常见的就是 Server 可能无法套用新的 GPO。

在之後的文章会阐述 NTLM 与 Kerberos 的部分安全讨论,如果真要快速下一个建议,以笔者的建议服务走 Kerberos 往往比用 NTLM 安全许多,以服务验证的状况来说 NTLM 有 NTLM Relaying 的风险,但 Kerberos 并没有这种风险。

参考资料:


<<:  Day2 基础安装 + 加码:nvm

>>:  [Angular] Day2. Angular CLI

[ JS个人笔记 ] Promise —DAY9

Promise 是用来优化非同步的语法。 Promise 物件状态 pending: 初始状态 fu...

D18 - 吃一颗 Class 语法糖 (下)比较 Constructor 与 Class

前言 语法糖 Syntactic sugar,指电脑语言中添加的某种语法,这种语法对语言的功能没有影...

第 9 集:RWD 响应式

此篇会着重在 Bootstrap 5 响应式的介绍以及使用方法。 RWD 响应式网页设计 (Res...

[2021铁人赛 Day-02] 嵌入式学习模式 and 系统分类

引言 今天介绍嵌入式系统学习的模式,并说明未来的撰写模式 = ) 学习十字路口 学习新知识必定会有...

更新网格交易机器人

1.新增ENABLE_PREMARKET选项,打开的话可以机器人在收盘的时候会挂单(没实质作用,就是...