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アドレス のファイルに、認証の前後くらいのタイミングで
一応、
仕方ないので、Ubuntu の方で
Dialect=NT LM 0.12 とかなっていたので、ふと古い NAS に接続する関係で LSA (Local Security Authority) 回りを変更していたのを思い出し、lsaconfig.sh で確認してみた。
設定可能な値は
0 ならまぁわからんでもないが、1 なら NTLMv2 は有効になっているはずなので、まさかこれは関係あるまいとは思ったが、念のためと思いこれを Vista 以降標準の 3 に戻してみたところ、なんとこれがビンゴ。
この際の tcpdump の結果は
これ、確か、セキュリティレベルの高い方からだんだんと落としていくんじゃなかったかと思うんだけど、認識が違っていたのだろうか?
と言う事で、結論としては、どうも Ubuntu 18/04/2 LTS の smbd はネゴシエーションの部分に変更があり、LM や NTLM が有効になっていると認証に失敗するということのようだ。
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!みたいなログが残る以外は特に手がかりなし。
一応、
- Google: ubuntu 18.04 lts windows 10 ファイル共有
- Google: "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 が有効になっていると認証に失敗するということのようだ。
タグ
コメントをかく