hack のためのネタ帳, etc,,,

結論

Ubuntu 18.04.2 LTS では Ubuntu 16.04.6 LTS 以前の smbd と異なり、Windows 側の LmCompatibilityLevel で LN, NTLM が有効になっていると認証に失敗するようだ。

状況

Ubuntu 16.04.6 LTS から Ubuntu 18.04.2 LTS に upgrade したら
Windows 10 1803 の explorer から Ubuntu を開く際に認証が通らなくなった。

/var/log/auth.log とか /var/log/syslog には特に認証に失敗した関係のログが残ってないし
/var/log/samba/ 以下にも log.ホスト名 とか log.IPアドレス のファイルに、認証の前後くらいのタイミングで
[2019/06/30 15:00:46.058413,  0] ../lib/param/loadparm.c:1862(lpcfg_do_service_parameter)
  Global parameter guest account found in service section!
みたいなログが残る以外は特に手がかりなし。
一応、 とかでググってみたのだが、それらしい情報を得ることは出来なかった。

仕方ないので、Ubuntu の方で
sudo tcpdump -vvv -n host WindowsのIPアドレス
としてみると
16:16:30.249565 IP (tos 0x0, ttl 128, id 29181, offset 0, flags [DF], proto TCP (6), length 199)
    WindowsのIP.55938 > UbuntuのIP.445: Flags [P.], cksum 0xc198 (correct), seq 1:160, ack 1, win 2053, length 159 
SMB PACKET: SMBnegprot (REQUEST)
SMB Command   =  0x72
Error class   =  0x0
Error code    =  0 (0x0)
Flags1        =  0x18
Flags2        =  0x53
Tree ID       =  65535 (0xffff)
Proc ID       =  65279 (0xfeff)
UID           =  0 (0x0)
MID           =  0 (0x0)
Word Count    =  0 (0x0)
smb_bcc=120
Dialect=PC NETWORK PROGRAM 1.0
Dialect=LANMAN1.0
Dialect=Windows for Workgroups 3.1a
Dialect=LM1.2X002
Dialect=LANMAN2.1
Dialect=NT LM 0.12
Dialect=SMB 2.002
Dialect=SMB 2.???
みたいなのは引っかかるんだが、やはりそれ以外は特に手がかりになりそうなのがない。

Dialect=NT LM 0.12 とかなっていたので、ふと古い NAS に接続する関係で LSA (Local Security Authority) 回りを変更していたのを思い出し、lsaconfig.sh で確認してみた。
設定可能な値は
LM Compatibility Level:
Security-level Clients        DCs            Default
             0 LN,NTLM        LM,NTLM,NTLMv2 XP
             1 LM,NTLM,NTLMv2 LM,NTLM,NTLMv2
             2    NTLM,NTLMv2 LM,NTLM,NTLMv2 2003
             3         NTLMv2 LM,NTLM,NTLMv2 Vista/2008,7/2008R2
             4    NTLM,NTLMv2    NTLM,NTLMv2
             5         NTLMv2         NTLMv2
なのだが、これは 1 だった。
0 ならまぁわからんでもないが、1 なら NTLMv2 は有効になっているはずなので、まさかこれは関係あるまいとは思ったが、念のためと思いこれを Vista 以降標準の 3 に戻してみたところ、なんとこれがビンゴ。

この際の tcpdump の結果は
16:17:09.588969 IP (tos 0x0, ttl 128, id 29200, offset 0, flags [DF], proto TCP (6), length 199)
    WindowsのIP.55944 > UbuntuのIP.445: Flags [P.], cksum 0xbfac (correct), seq 1:160, ack 1, win 2053, length 159 
SMB PACKET: SMBnegprot (REQUEST)
SMB Command   =  0x72
Error class   =  0x0
Error code    =  0 (0x0)
Flags1        =  0x18
Flags2        =  0x53
Tree ID       =  65535 (0xffff)
Proc ID       =  65279 (0xfeff)
UID           =  0 (0x0)
MID           =  0 (0x0)
Word Count    =  0 (0x0)
smb_bcc=120
Dialect=PC NETWORK PROGRAM 1.0
Dialect=LANMAN1.0
Dialect=Windows for Workgroups 3.1a
Dialect=LM1.2X002
Dialect=LANMAN2.1
Dialect=NT LM 0.12
Dialect=SMB 2.002
Dialect=SMB 2.???
なので外面的に分かる変化はなかった。

これ、確か、セキュリティレベルの高い方からだんだんと落としていくんじゃなかったかと思うんだけど、認識が違っていたのだろうか?
と言う事で、結論としては、どうも Ubuntu 18/04/2 LTS の smbd はネゴシエーションの部分に変更があり、LM や NTLM が有効になっていると認証に失敗するということのようだ。

関連

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます