ppc64el上的Trisquel:Talos II

这个Trisquel 11.0“Aramo”的发行说明提到对POWER和ARM体系结构的支持,但是下载区域仅包含x86的链接,并且论坛帖子建议缺少如何在非x86上运行Trisquel的说明。

自从Trisquel 11发布以来,我一直忙于从Debian公司去Trisquel。有人会认为我会在这段时间之后完成,但重新安装和迁移机器确实很耗时,尤其是如果每次发现需要改进的东西时都让自己分心。兔子一路往下钻。我的一台生产机器正在运行Debian 11“牛眼”在上塔洛斯II Lite机器来自猛禽计算机系统将该主机上运行的虚拟机(包括为该博客提供服务的虚拟机)迁移到运行Trisquel的x86机器上,我感到很不满意。我想将我的计算迁移到与兼容的硬件上FSF尊重你的自由在这里,我必须在使用较新的Debian中的非自由软件和大多数x86系统隐含的非自由程序之间做出选择:这不是一个容易的选择。所以我已经忽略了这个两难处境有一段时间了。毕竟,机器运行的是Debian 11“牛眼”,它是在Debian开始要求使用非自由软件之前发布的。随着靶心寿命的临近,这似乎不是一个可持续的选择。

有一个关于提供ppc64el ISO的报告已打开这是杰森·赛尔夫在发布后不久创建的,但几个月来什么都没发生。大约一个月前,路易斯·古兹曼提到初始ISO构建我开始测试它。这个设置已经运行了一个月了,我想在这篇文章中提供如何安装和运行它的说明,因为它仍然没有出现。

我即将推出的新生产机器的设置:

  • 塔洛斯II Lite
  • POWER9 18核v2 CPU
  • Inter-Tech公司4U-4410型带ASPOWER电源的机架箱
  • 8x32GB DDR4-2666 ECC远程数据接口模块
  • HighPoint SSD7505(火箭1504或1204将是一个更具成本效益的选择,但我重新使用了我放在周围的组件)
  • PERC H700又名LSI MegaRAID 2108 SAS/SATA(也可在附近找到)
  • 2x1TB NVMe
  • 3x18TB磁盘

根据第14期注释ISO图像位于https://builds.trisquel.org/debian-installer-images网站/以及以下命令下载、完整性检查并将其写入U盘:

wget-qhttps://builds.trisquel.org/debian-installer-images/debian-installer-images_20210731+deb11u8+11.0危险14_ppc64el.tar.gztar xfa debian安装程序-images_20210731+deb11u8+11.0 risquel14_ppc64el.tar.gz/安装程序-ppc64el/20210731+deb11u8+11/images/netboot/mini.isoecho’6df8f45fbc0e7a5fadf039e9de7fa2dc57a4d466e95d65f2eabeec80577631b7/安装程序-ppc64el/20210731+deb11u8+11/images/netboot/mini.iso'|sha256sum-csudo wipefs-a/dev/sdXsudo dd if=/installer-ppc64el/20210731+deb11u8+11/images/netboot/mini.isoof=/dev/sdX conv=sync status=progress

遗憾的是,没有发布哈希校验和或OpenPGP签名。

关闭设备电源,插入USB记忆棒,然后打开电源,您会看到一个Petitboot菜单,提供从USB记忆棒启动的功能。出于某种原因“专家安装”是菜单中的默认值,而我选择“默认安装”定期体验。对于这篇文章,我将忽略BMC/IPMI,因为没有必要与它交互。除非你愿意进入地牢,否则请确保不要连接BMC/IPMI以太网端口。VGA控制台与普通USB键盘配合使用效果良好,您可以选择只使用第二个enP4p1s0f1网卡选择菜单中的网卡。

如果您熟悉Debian netinst ISO,则可以直接安装。我将两个RAID1分区分区在两个NVMe棒上,一个RAIDI分区用于75GB ext4根文件系统(discard,noatime),一个RAID分区用于虚拟机的900GB LVM卷组,以及每个NVMe杆上的两个20GB交换分区(为了消除缺少交换的警告,我不确定交换是否仍然是一个好主意?)。3x18TB磁盘使用DM集成但是,RAID1的安装程序不支持DM-integraity,所以我必须在安装后创建它。

还有两件事值得一提:

  • 选择apt镜像并没有x86安装程序提供的著名Trisquel镜像列表。相反,我必须手动输入存档镜像,幸运的是档案.trisquel.org主机名和路径值是默认值,所以我只需按enter键,并在安装完成后进行修复。您可能希望本地镜像的主机名/路径在手边,以加快速度。
  • 安装程序问我要使用哪个内核,而x86安装程序没有这样做。我相信老的Trisquel/Ubuntu安装程序会问这个问题,但它已经在x86的aramo中消失了。我选择默认值“linux-图像通用“这给了我一个可预测的5.15 Linux-libre内核,尽管您可能想选择”linux-image-generic-hwe-11.0“更新的6.2 Linux-libre内核。也许这是针对非x86平台的故意借记行为?

我已经重新安装了几次机器,现在已经完成了生产设置的安装。我没有遇到任何严重的问题,系统也很稳定。是时候结束了,庆祝一下我现在运行的操作系统与免费系统分发指南在与匹配的硬件上尊重你的自由-Hacking真的很开心!

SCRAM有什么问题?

简单身份验证和安全层(SASL,RFC4422号文件)是从IMAP和POP协议中抽象出来的框架。最流行的机制包括PLAIN(明文密码,通常在TLS下)、CRAM-MD5(RFC2195号文件)和GSSAPI(用于Kerberos V5)。DIGEST-MD5机制试图改进CRAM-MD5机制,但最终引入了大量复杂性和不足的理想功能,部署混乱不堪RFC6331号文件了解它为何被弃用的背景信息。

尖叫!

开发SCRAM的工作(RFC5802型)据我所知,来自DIGEST-MD5的经验以及提供CRAM-MD5以外更好的东西的愿望。在协议设计讨论中,SCRAM通常仍被认为是“新的”,尽管该规范于2011年发布,甚至已经制定了几年。实现IMAP和SMTP的开发人员通常从支持PLAIN和CRAM-MD5开始。这篇博客文章的重点是探究为什么会出现这种情况,并鼓励在这方面采取下一步行动。我对这个主题的看法已经存在了几年了,是在GNU SASL公司,我现在写一些关于它们的东西的主要触发因素是1)马丁·兰伯斯'第一个是两篇博客系列对SCRAM持否定态度然后变得积极起来以及2)我希望在这一领域开展工作或支持新的工作。

让我们后退一步,花点时间分析PLAIN和CRAM-MD5。感知到的优点和缺点是什么?

优点:PLAIN和CRAM-MD5解决了基于密码的用户身份验证的使用问题,并且易于实现。

PLAIN和CRAM-MD5的主要缺点:

  • PLAIN以明文形式将密码传输到服务器(有时这被认为是一种优势,但从安全角度来看,它不是)。
  • CRAM-MD5要求服务器以明文形式存储密码(无法使用哈希或加密格式)。
  • 从一开始就没有非ASCII支持。

PLAIN和CRAM-MD5存在许多(有争议的)不便之处:

  • CRAM-MD5不支持授权身份的概念。
  • 身份验证未绑定到特定的安全通道,从而为隧道攻击打开了大门。
  • CRAM-MD5基于HMAC-MD5,该HMAC-MD加密“旧”(但保留得很好)-今天的主要问题是,通常MD5不是您想要实现的东西,因为它的其他用途正在减少。
  • 服务器可以针对其他服务器模拟客户端,因为它们知道密码。
  • 两者都不向客户端提供服务器身份验证。

如果你熟悉SCRAM,你就会知道它解决了这些问题。那么,为什么没有每个人都跳上它,CRAM-MD5现在已经成为过去?在最初几年,我的回答是,事情需要时间,我们会看到改进。十年后的今天;有许多SCRAM实现,互联网通常已经从具有更大遗留问题(例如SSL)的协议中迁移出来,但我们仍在使用CRAM-MD5。我认为是时候对自己的努力持批评态度,并努力从过去吸取教训了。以下是我试图总结我所看到的问题:

  • 机制族概念在以下几个方面增加了复杂性:
    • 规格更难理解。
    • 机制系列的新实例(SCRAM-SHA-256)引入了更多的复杂性,因为它们调整了基本规范中的一些错误选择。
    • 由于数据库需要新的类型:值对来保存多个“SCRAM”散列密码,因此向该系列引入新的散列(如建议的SHA3变体)会增加部署成本。
    • 如何协商使用哪种变体还没有明确定义。考虑一下,如果服务器只能访问用户X的SCRAM-SHA-1散列密码和用户Y的SCRAM-SHA-256散列密码,那么它应该为未知客户端提供什么机制?同时提供这两种功能可能会导致身份验证失败,SASL的后备行为较差。
  • 对通道绑定的可选支持及其协商方式增加了复杂性。
  • 原来的默认“tls-unique”通道绑定不安全,在tls 1.3中不受支持。
  • 支持通道绑定需要应用程序中TLS和SASL层之间的交互。
  • 服务器无法模拟客户端的功能值得怀疑:服务器只需要参与与客户端的一次身份验证交换即可获得此功能。
  • SCRAM不提供密码验证密钥协议.

还有什么其他顾虑?我可能会忘记一些。其中一些是有争议的,是有意的设计选择。

我们可以保存SCRAM吗?我很高兴看到引入新的通道绑定并更新SCRAM规范以将其用于TLS 1.3+。我提出了一个以前的类似方法当一些人仍然坚持“tls-unique”的时候。新的通道绑定解决了上述一些问题。

很难说不经常实施SCRAM的主要原因是什么。似乎缺乏紧迫感。我的直觉是,对于实现者来说,SCRAM看起来与DIGEST-MD5非常相似。DIGEST-MD5的大多数问题都可以修复,但修复会增加复杂性。

如何从这里开始?我看到了几个选项:

  • 让时间过去看看更多的采用。改善渠道绑定情况将有所帮助。
  • 从错误中吸取教训,引入一个新的简单SCRAM,它可能具有以下属性:
    • 没有机构族,只有一个机构实例。
    • 哈希是硬编码的,就像CRAM-MD5一样。
    • 需要并始终使用TLS和通道绑定。
  • 审查PAKE备选方案之一,并为其指定SASL机制。最好不要重复CRAM-MD5、DIGEST-MD5和SCRAM的错误。
  • 放弃在SASL中使用“复杂”的身份验证机制,并帮助一些PAKE变体通过TLS库实现,并且SASL应用程序应该只使用EXTERNAL来使用TLS用户身份验证。

思想?

我觉得下面的XKCD在这里很合适。