![Windows 11 (22H2) 和 Ubuntu 服务器 (Samba) 问题](https://linux22.com/image/218069/Windows%2011%20(22H2)%20%E5%92%8C%20Ubuntu%20%E6%9C%8D%E5%8A%A1%E5%99%A8%20(Samba)%20%E9%97%AE%E9%A2%98.png)
2 月份,我办公室的一些员工购买了装有 Windows 11 版本 22H2 的新电脑。将它们加入域后(域控制器是 Ubuntu 18.04.6 LTS),没有人可以登录这些新计算机。
我找到了一个解决方案 - 在 AD 用户和计算机中选中“此帐户仅使用 Kerberos DES 加密”。我为拥有新计算机的用户打开了此选项。然后他们能够登录,但无法更改密码。我将这种情况作为临时解决方案,以便它们可以工作,但我正在寻找一个好的解决方案 - 解决该问题。
我发现出现这个问题是因为在Windows 11 22H2更新中,微软改变了一些加密方法来避免2038年问题,但结果是Windows 11 22H2与samba Ubuntu服务器不兼容。
经过多次研究,我发现唯一的解决方案可能是将 Samba 更新到 4.16。我三天前就做到了,只是通过跑步sudo apt-get update
, sudo apt-get upgrade
和sudo reboot
。后来我检查了我是否仍然可以访问我的 Windows 10 计算机上的共享服务器文件夹,结果确实如此。但是在服务器上运行 samba --version 后,我看到版本 4.7.6...我不知道为什么。 (在 ADUC 中,我看到域控制器的操作系统为 Samba 4.10.16(和以前一样))。
现在,除了打开 Windows 11 22H2 和 DES Kerberos 的 3 个人之外,办公室中的所有员工都无法访问共享文件夹(我也是)。此外,当我启动 AD 用户和计算机时,出现错误:无法找到命名信息,因为: 系统无法联系域控制器来解析身份验证请求。稍后再试。请联系您的系统管理员以验证您的域是否已正确配置并且当前处于在线状态。当我单击“确定”,然后更改域控制器并键入服务器的 IP 地址时,我可以看到所有域数据,但是当我尝试更改任何用户设置时,我收到错误域不存在或无法联系。和无法为 Windows 2000 之前的系统的用户显示域名。当我单击“确定”时,我可以看到所有用户设置 - 我可以更改它们,然后重新打开程序后,我仍然看到更改,但我不确定它们是否有效(例如,我尝试创建新用户,然后登录) - 不工作。)
我可以通过 Putty 访问服务器。
请帮忙!我应该怎么办?有什么解决办法吗?是不是samba更新出错了?
!!!更新!!!
我解决了上述问题 - 我不知道如何......突然,它开始工作。但主要问题 - Windows 11 22H2 与 Samba 不兼容仍然存在。
我的 ADUC 仍然将域控制器操作系统显示为 Samba 4.10.16,并且samba --version
在 ubuntu 服务器上返回“版本 4.7.6-Ubuntu”。我不知道为什么会有区别,更重要的是:
为什么没有 Samba 4.16 版本以及如何升级到 4.16 版本?
答案1
错误描述 更新的 Windows 11 22H2 系统无法从受影响的 Samba AD DC 服务器获取 kerberos 票证。这会影响将此类 Windows 计算机加入 Samba Active Directory 服务器,甚至会影响已加入的 Windows 11 22H2 计算机的继续使用。请注意,该修复位于 Heimdal Kerberos 代码中,该代码嵌入在 Samba 中。 [测试计划] 该测试涉及将最新的 Windows 11 22H2 系统加入到正在测试的受影响 Ubuntu 版本上的 Samba AD DC 安装中。同样,将不同的 Windows 系统(例如 Windows 10)加入同一个 Samba 域,以确保其继续工作而不受修复的影响。对于此测试的所有实例,您都需要 samba AD DC。在测试中的 Ubuntu 版本上、虚拟机或裸机(不是 lxc/lxd)中安装 samba AD DC 服务器
在这里查看完整的描述:
Windows 11 22H2 和 Samba-AD 登录问题
成为根用户:
apt update
apt install -y samba winbind smbclient
systemctl stop smbd nmbd winbind
systemctl disable smbd nmbd winbind
systemctl mask smbd nmbd winbind
systemctl unmask samba-ad-dc
systemctl enable samba-ad-dc
mv /etc/samba/smb.conf{,orig}
samba-tool domain provision \
--domain=EXAMPLE --realm=EXAMPLE.SAMBA --adminpass=Passw0rd \
--server-role=dc --use-rfc2307 --dns-backend=SAMBA_INTERNAL
dns=$(resolvectl status | grep -E "^[[:blank:]]*Current DNS Server:" | awk '{print $4}')
[ -n "$dns" ] && \
sed -r -i "s,dns forwarder = .*,dns forwarder = ${dns}," \
/etc/samba/smb.conf
unlink /etc/resolv.conf
echo "nameserver 127.0.0.1" > /etc/resolv.conf
echo "search example.samba" >> /etc/resolv.conf
systemctl stop systemd-resolved
systemctl disable systemd-resolved
mv /var/lib/samba/private/krb5.conf /etc/
systemctl start samba-ad-dc
# relax the password settings to make it easier to test
samba-tool domain passwordsettings set --min-pwd-age=0 --complexity=off
# Create a samba user in the domain:
samba-tool user create ubuntu
# install krb5-user, to test with kinit. There should be no debconf prompts, since we have an /etc/krb5.conf already populated
apt install krb5-user -y