标签 Linux 下的文章

目标受众

这是一套 Linux 基金会为其系统管理员提供的推荐规范。

这个文档用于帮助那些使用 Linux 工作站来访问和管理项目的 IT 设施的系统管理员团队。

如果你的系统管理员是远程员工,你也许可以使用这套指导方针确保系统管理员的系统可以通过核心安全需求,降低你的IT 平台成为攻击目标的风险。

即使你的系统管理员不是远程员工,很多人也会在工作环境中通过便携笔记本完成工作,或者在家中设置系统以便在业余时间或紧急时刻访问工作平台。不论发生何种情况,你都能调整这个推荐规范来适应你的环境。

限制

但是,这并不是一个详细的“工作站加固”文档,可以说这是一个努力避免大多数明显安全错误而不会导致太多不便的一组推荐 基线 baseline 。你也许阅读这个文档后会认为它的方法太偏执,而另一些人也许会认为这仅仅是一些肤浅的研究。安全就像在高速公路上开车 -- 任何比你开的慢的都是一个傻瓜,然而任何比你开的快的人都是疯子。这个指南仅仅是一些列核心安全规则,既不详细又不能替代经验、警惕和常识。

我们分享这篇文档是为了将开源协作的优势带到 IT 策略文献资料中。如果你发现它有用,我们希望你可以将它用到你自己团体中,并分享你的改进,对它的完善做出你的贡献。

结构

每一节都分为两个部分:

  • 核对适合你项目的需求
  • 形式不定的提示内容,解释了为什么这么做

严重级别

在清单的每一个项目都包括严重级别,我们希望这些能帮助指导你的决定:

  • 关键(ESSENTIAL) 该项应该在考虑列表上被明确的重视。如果不采取措施,将会导致你的平台安全出现高风险。
  • 中等(NICE) 该项将改善你的安全形势,但是会影响到你的工作环境的流程,可能会要求养成新的习惯,改掉旧的习惯。
  • 低等(PARANOID) 留作感觉会明显完善我们平台安全、但是可能会需要大量调整与操作系统交互的方式的项目。

记住,这些只是参考。如果你觉得这些严重级别不能反映你的工程对安全的承诺,你应该调整它们为你所合适的。

选择正确的硬件

我们并不会要求管理员使用一个特殊供应商或者一个特殊的型号,所以这一节提供的是选择工作系统时的核心注意事项。

检查清单

  • [ ] 系统支持 安全启动 SecureBoot (关键)
  • [ ] 系统没有 火线 Firewire 雷电 thunderbolt 或者 扩展卡 ExpressCard 接口 (中等)
  • [ ] 系统有 TPM 芯片 (中等)

注意事项

安全启动 SecureBoot

尽管它还有争议,但是安全引导能够预防很多针对工作站的攻击(Rootkits、“Evil Maid”,等等),而没有太多额外的麻烦。它并不能阻止真正专门的攻击者,加上在很大程度上,国家安全机构有办法应对它(可能是通过设计),但是有安全引导总比什么都没有强。

作为选择,你也许可以部署 Anti Evil Maid 提供更多健全的保护,以对抗安全引导所需要阻止的攻击类型,但是它需要更多部署和维护的工作。

系统没有 火线 Firewire 雷电 thunderbolt 或者 扩展卡 ExpressCard 接口

火线是一个标准,其设计上允许任何连接的设备能够完全地直接访问你的系统内存(参见维基百科)。雷电接口和扩展卡同样有问题,虽然一些后来部署的雷电接口试图限制内存访问的范围。如果你没有这些系统端口,那是最好的,但是它并不严重,它们通常可以通过 UEFI 关闭或内核本身禁用。

TPM 芯片

可信平台模块 Trusted Platform Module ,TPM 是主板上的一个与核心处理器单独分开的加密芯片,它可以用来增加平台的安全性(比如存储全盘加密的密钥),不过通常不会用于日常的平台操作。充其量,这个是一个有则更好的东西,除非你有特殊需求,需要使用 TPM 增加你的工作站安全性。

预引导环境

这是你开始安装操作系统前的一系列推荐规范。

检查清单

  • [ ] 使用 UEFI 引导模式(不是传统 BIOS)(关键)
  • [ ] 进入 UEFI 配置需要使用密码 (关键)
  • [ ] 使用安全引导 (关键)
  • [ ] 启动系统需要 UEFI 级别密码 (中等)

注意事项

UEFI 和安全引导

UEFI 尽管有缺点,还是提供了很多传统 BIOS 没有的好功能,比如安全引导。大多数现代的系统都默认使用 UEFI 模式。

确保进入 UEFI 配置模式要使用高强度密码。注意,很多厂商默默地限制了你使用密码长度,所以相比长口令你也许应该选择高熵值的短密码(关于密码短语请参考下面内容)。

基于你选择的 Linux 发行版,你也许需要、也许不需要按照 UEFI 的要求,来导入你的发行版的安全引导密钥,从而允许你启动该发行版。很多发行版已经与微软合作,用大多数厂商所支持的密钥给它们已发布的内核签名,因此避免了你必须处理密钥导入的麻烦。

作为一个额外的措施,在允许某人访问引导分区然后尝试做一些不好的事之前,让他们输入密码。为了防止 肩窥 shoulder-surfing ,这个密码应该跟你的 UEFI 管理密码不同。如果你经常关闭和启动,你也许不想这么麻烦,因为你已经必须输入 LUKS 密码了(LUKS 参见下面内容),这样会让你您减少一些额外的键盘输入。

发行版选择注意事项

很有可能你会坚持一个广泛使用的发行版如 Fedora,Ubuntu,Arch,Debian,或它们的一个类似发行版。无论如何,以下是你选择使用发行版应该考虑的。

检查清单

  • [ ] 拥有一个强健的 MAC/RBAC 系统(SELinux/AppArmor/Grsecurity) (关键)
  • [ ] 发布安全公告 (关键)
  • [ ] 提供及时的安全补丁 (关键)
  • [ ] 提供软件包的加密验证 (关键)
  • [ ] 完全支持 UEFI 和安全引导 (关键)
  • [ ] 拥有健壮的原生全磁盘加密支持 (关键)

注意事项

SELinux,AppArmor,和 GrSecurity/PaX

强制访问控制 Mandatory Access Controls,MAC 或者 基于角色的访问控制 Role-Based Access Controls,RBAC 是一个用在老式 POSIX 系统的基于用户或组的安全机制扩展。现在大多数发行版已经捆绑了 MAC/RBAC 系统(Fedora,Ubuntu),或通过提供一种机制一个可选的安装后步骤来添加它(Gentoo,Arch,Debian)。显然,强烈建议您选择一个预装 MAC/RBAC 系统的发行版,但是如果你对某个没有默认启用它的发行版情有独钟,装完系统后应计划配置安装它。

应该坚决避免使用不带任何 MAC/RBAC 机制的发行版,像传统的 POSIX 基于用户和组的安全在当今时代应该算是考虑不足。如果你想建立一个 MAC/RBAC 工作站,通常认为 AppArmor 和 PaX 比 SELinux 更容易掌握。此外,在工作站上,很少有或者根本没有对外监听的守护进程,而针对用户运行的应用造成的最高风险,GrSecurity/PaX 可能 会比SELinux 提供更多的安全便利。

发行版安全公告

大多数广泛使用的发行版都有一个给它们的用户发送安全公告的机制,但是如果你对一些机密感兴趣,去看看开发人员是否有见于文档的提醒用户安全漏洞和补丁的机制。缺乏这样的机制是一个重要的警告信号,说明这个发行版不够成熟,不能被用作主要管理员的工作站。

及时和可靠的安全更新

多数常用的发行版提供定期安全更新,但应该经常检查以确保及时提供关键包更新。因此应避免使用 附属发行版 spin-off 和“社区重构”,因为它们必须等待上游发行版先发布,它们经常延迟发布安全更新。

现在,很难找到一个不使用加密签名、更新元数据或二者都不使用的发行版。如此说来,常用的发行版在引入这个基本安全机制就已经知道这些很多年了(Arch,说你呢),所以这也是值得检查的。

发行版支持 UEFI 和安全引导

检查发行版是否支持 UEFI 和安全引导。查明它是否需要导入额外的密钥或是否要求启动内核有一个已经被系统厂商信任的密钥签名(例如跟微软达成合作)。一些发行版不支持 UEFI 或安全启动,但是提供了替代品来确保 防篡改 tamper-proof 防破坏 tamper-evident 引导环境(Qubes-OS 使用 Anti Evil Maid,前面提到的)。如果一个发行版不支持安全引导,也没有防止引导级别攻击的机制,还是看看别的吧。

全磁盘加密

全磁盘加密是保护静止数据的要求,大多数发行版都支持。作为一个选择方案,带有自加密硬盘的系统也可以用(通常通过主板 TPM 芯片实现),并提供了类似安全级别而且操作更快,但是花费也更高。

发行版安装指南

所有发行版都是不同的,但是也有一些一般原则:

检查清单

  • [ ] 使用健壮的密码全磁盘加密(LUKS) (关键)
  • [ ] 确保交换分区也加密了 (关键)
  • [ ] 确保引导程序设置了密码(可以和LUKS一样) (关键)
  • [ ] 设置健壮的 root 密码(可以和LUKS一样) (关键)
  • [ ] 使用无特权账户登录,作为管理员组的一部分 (关键)
  • [ ] 设置健壮的用户登录密码,不同于 root 密码 (关键)

注意事项

全磁盘加密

除非你正在使用自加密硬盘,配置你的安装程序完整地加密所有存储你的数据与系统文件的磁盘很重要。简单地通过自动挂载的 cryptfs loop 文件加密用户目录还不够(说你呢,旧版 Ubuntu),这并没有给系统二进制文件或交换分区提供保护,它可能包含大量的敏感数据。推荐的加密策略是加密 LVM 设备,以便在启动过程中只需要一个密码。

/boot分区将一直保持非加密,因为引导程序需要在调用 LUKS/dm-crypt 前能引导内核自身。一些发行版支持加密的/boot分区,比如 Arch,可能别的发行版也支持,但是似乎这样增加了系统更新的复杂度。如果你的发行版并没有原生支持加密/boot也不用太在意,内核镜像本身并没有什么隐私数据,它会通过安全引导的加密签名检查来防止被篡改。

选择一个好密码

现代的 Linux 系统没有限制密码口令长度,所以唯一的限制是你的偏执和倔强。如果你要启动你的系统,你将大概至少要输入两个不同的密码:一个解锁 LUKS ,另一个登录,所以长密码将会使你老的更快。最好从丰富或混合的词汇中选择2-3个单词长度,容易输入的密码。

优秀密码例子(是的,你可以使用空格):

  • nature abhors roombas
  • 12 in-flight Jebediahs
  • perdon, tengo flatulence

如果你喜欢输入可以在公开场合和你生活中能见到的句子,比如:

  • Mary had a little lamb
  • you're a wizard, Harry
  • to infinity and beyond

如果你愿意的话,你也应该带上最少要 10-12个字符长度的非词汇的密码。

除非你担心物理安全,你可以写下你的密码,并保存在一个远离你办公桌的安全的地方。

Root,用户密码和管理组

我们建议,你的 root 密码和你的 LUKS 加密使用同样的密码(除非你共享你的笔记本给信任的人,让他应该能解锁设备,但是不应该能成为 root 用户)。如果你是笔记本电脑的唯一用户,那么你的 root 密码与你的 LUKS 密码不同是没有安全优势上的意义的。通常,你可以使用同样的密码在你的 UEFI 管理,磁盘加密,和 root 登录中 -- 知道这些任意一个都会让攻击者完全控制您的系统,在单用户工作站上使这些密码不同,没有任何安全益处。

你应该有一个不同的,但同样强健的常规用户帐户密码用来日常工作。这个用户应该是管理组用户(例如wheel或者类似,根据发行版不同),允许你执行sudo来提升权限。

换句话说,如果在你的工作站只有你一个用户,你应该有两个独特的、 强健 robust 强壮 strong 的密码需要记住:

管理级别,用在以下方面:

  • UEFI 管理
  • 引导程序(GRUB)
  • 磁盘加密(LUKS)
  • 工作站管理(root 用户)

用户级别,用在以下:

  • 用户登录和 sudo
  • 密码管理器的主密码

很明显,如果有一个令人信服的理由的话,它们全都可以不同。

安装后的加固

安装后的安全加固在很大程度上取决于你选择的发行版,所以在一个像这样的通用文档中提供详细说明是徒劳的。然而,这里有一些你应该采取的步骤:

检查清单

  • [ ] 在全局范围内禁用火线和雷电模块 (关键)
  • [ ] 检查你的防火墙,确保过滤所有传入端口 (关键)
  • [ ] 确保 root 邮件转发到一个你可以收到的账户 (关键)
  • [ ] 建立一个系统自动更新任务,或更新提醒 (中等)
  • [ ] 检查以确保 sshd 服务默认情况下是禁用的 (中等)
  • [ ] 配置屏幕保护程序在一段时间的不活动后自动锁定 (中等)
  • [ ] 设置 logwatch (中等)
  • [ ] 安装使用 rkhunter (中等)
  • [ ] 安装一个 入侵检测系统 Intrusion Detection System (中等)

注意事项

将模块列入黑名单

将火线和雷电模块列入黑名单,增加一行到/etc/modprobe.d/blacklist-dma.conf文件:

blacklist firewire-core
blacklist thunderbolt

重启后的这些模块将被列入黑名单。这样做是无害的,即使你没有这些端口(但也不做任何事)。

Root 邮件

默认的 root 邮件只是存储在系统基本上没人读过。确保你设置了你的/etc/aliases来转发 root 邮件到你确实能读取的邮箱,否则你也许错过了重要的系统通知和报告:

# Person who should get root's mail
root:          [email protected]

编辑后这些后运行newaliases,然后测试它确保能投递到,像一些邮件供应商将拒绝来自不存在的域名或者不可达的域名的邮件。如果是这个原因,你需要配置邮件转发直到确实可用。

防火墙,sshd,和监听进程

默认的防火墙设置将取决于您的发行版,但是大多数都允许sshd端口连入。除非你有一个令人信服的合理理由允许连入 ssh,你应该过滤掉它,并禁用 sshd 守护进程。

systemctl disable sshd.service
systemctl stop sshd.service

如果你需要使用它,你也可以临时启动它。

通常,你的系统不应该有任何侦听端口,除了响应 ping 之外。这将有助于你对抗网络级的零日漏洞利用。

自动更新或通知

建议打开自动更新,除非你有一个非常好的理由不这么做,如果担心自动更新将使您的系统无法使用(以前发生过,所以这种担心并非杞人忧天)。至少,你应该启用自动通知可用的更新。大多数发行版已经有这个服务自动运行,所以你不需要做任何事。查阅你的发行版文档了解更多。

你应该尽快应用所有明显的勘误,即使这些不是特别贴上“安全更新”或有关联的 CVE 编号。所有的问题都有潜在的安全漏洞和新的错误,比起停留在旧的、已知的问题上,未知问题通常是更安全的策略。

监控日志

你应该会对你的系统上发生了什么很感兴趣。出于这个原因,你应该安装logwatch然后配置它每夜发送在你的系统上发生的任何事情的活动报告。这不会预防一个专业的攻击者,但是一个不错的安全网络功能。

注意,许多 systemd 发行版将不再自动安装一个“logwatch”所需的 syslog 服务(因为 systemd 会放到它自己的日志中),所以你需要安装和启用“rsyslog”来确保在使用 logwatch 之前你的 /var/log 不是空的。

Rkhunter 和 IDS

安装rkhunter和一个类似aide或者tripwire入侵检测系统(IDS)并不是那么有用,除非你确实理解它们如何工作,并采取必要的步骤来设置正确(例如,保证数据库在外部介质,从可信的环境运行检测,记住执行系统更新和配置更改后要刷新散列数据库,等等)。如果你不愿在你的工作站执行这些步骤,并调整你如何工作的方式,这些工具只能带来麻烦而没有任何实在的安全益处。

我们建议你安装rkhunter并每晚运行它。它相当易于学习和使用,虽然它不会阻止一个复杂的攻击者,它也能帮助你捕获你自己的错误。

个人工作站备份

工作站备份往往被忽视,或偶尔才做一次,这常常是不安全的方式。

检查清单

  • [ ] 设置加密备份工作站到外部存储 (关键)
  • [ ] 使用 零认知 zero-knowledge 备份工具备份到站外或云上 (中等)

注意事项

全加密的备份存到外部存储

把全部备份放到一个移动磁盘中比较方便,不用担心带宽和上行网速(在这个时代,大多数供应商仍然提供显著的不对称的上传/下载速度)。不用说,这个移动硬盘本身需要加密(再说一次,通过 LUKS),或者你应该使用一个备份工具建立加密备份,例如duplicity或者它的 GUI 版本 deja-dup。我建议使用后者并使用随机生成的密码,保存到离线的安全地方。如果你带上笔记本去旅行,把这个磁盘留在家,以防你的笔记本丢失或被窃时可以找回备份。

除了你的家目录外,你还应该备份/etc目录和出于取证目的的/var/log目录。

尤其重要的是,避免拷贝你的家目录到任何非加密存储上,即使是需要快速的在两个系统上移动文件时,一旦完成你肯定会忘了清除它,从而暴露个人隐私或者安全信息到监听者手中 -- 尤其是把这个存储介质跟你的笔记本放到同一个包里。

有选择的零认知站外备份

站外备份 Off-site backup 也是相当重要的,是否可以做到要么需要你的老板提供空间,要么找一家云服务商。你可以建一个单独的 duplicity/deja-dup 配置,只包括重要的文件,以免传输大量你不想备份的数据(网络缓存、音乐、下载等等)。

作为选择,你可以使用 零认知 zero-knowledge 备份工具,例如 SpiderOak,它提供一个卓越的 Linux GUI工具还有更多的实用特性,例如在多个系统或平台间同步内容。

最佳实践

下面是我们认为你应该采用的最佳实践列表。它当然不是非常详细的,而是试图提供实用的建议,来做到可行的整体安全性和可用性之间的平衡。

浏览

毫无疑问, web 浏览器将是你的系统上最大、最容易暴露的面临攻击的软件。它是专门下载和执行不可信、甚至是恶意代码的一个工具。它试图采用沙箱和 代码清洁 code sanitization 等多种机制保护你免受这种危险,但是在之前它们都被击败了多次。你应该知道,在任何时候浏览网站都是你做的最不安全的活动。

有几种方法可以减少浏览器的影响,但这些真实有效的方法需要你明显改变操作您的工作站的方式。

1: 使用两个不同的浏览器 (关键)

这很容易做到,但是只有很少的安全效益。并不是所有浏览器都可以让攻击者完全自由访问您的系统 -- 有时它们只能允许某人读取本地浏览器存储,窃取其它标签的活动会话,捕获浏览器的输入等。使用两个不同的浏览器,一个用在工作/高安全站点,另一个用在其它方面,有助于防止攻击者请求整个 cookie 存储的小问题。主要的不便是两个不同的浏览器会消耗大量内存。

我们建议:

火狐用来访问工作和高安全站点

使用火狐登录工作有关的站点,应该额外关心的是确保数据如 cookies,会话,登录信息,击键等等,明显不应该落入攻击者手中。除了少数的几个网站,你不应该用这个浏览器访问其它网站。

你应该安装下面的火狐扩展:

  • [ ] NoScript (关键)
+ NoScript 阻止活动内容加载,除非是在用户白名单里的域名。如果用于默认浏览器它会很麻烦(可是提供了真正好的安全效益),所以我们建议只在访问与工作相关的网站的浏览器上开启它。
  • [ ] Privacy Badger (关键)
+ EFF 的 Privacy Badger 将在页面加载时阻止大多数外部追踪器和广告平台,有助于在这些追踪站点影响你的浏览器时避免跪了(追踪器和广告站点通常会成为攻击者的目标,因为它们能会迅速影响世界各地成千上万的系统)。
  • [ ] HTTPS Everywhere (关键)
+ 这个 EFF 开发的扩展将确保你访问的大多数站点都使用安全连接,甚至你点击的连接使用的是 <http://(可以有效的避免大多数的攻击,例如> [SSL-strip](http://www.thoughtcrime.org/software/sslstrip/))。
  • [ ] Certificate Patrol (中等)
+ 如果你正在访问的站点最近改变了它们的 TLS 证书,这个工具将会警告你 -- 特别是如果不是接近失效期或者现在使用不同的证书颁发机构。它有助于警告你是否有人正尝试中间人攻击你的连接,不过它会产生很多误报。

你应该让火狐成为你打开连接时的默认浏览器,因为 NoScript 将在加载或者执行时阻止大多数活动内容。

其它一切都用 Chrome/Chromium

Chromium 开发者在增加很多很好的安全特性方面走在了火狐前面(至少在 Linux 上),例如 seccomp 沙箱,内核用户空间等等,这会成为一个你访问的网站与你其它系统之间的额外隔离层。Chromium 是上游开源项目,Chrome 是 Google 基于它构建的专有二进制包(加一句偏执的提醒,如果你有任何不想让谷歌知道的事情都不要使用它)。

推荐你在 Chrome 上也安装Privacy BadgerHTTPS Everywhere 扩展,然后给它一个与火狐不同的主题,以让它告诉你这是你的“不可信站点”浏览器。

2: 使用两个不同浏览器,一个在专用的虚拟机里 (中等)

这有点像上面建议的做法,除了您将添加一个通过快速访问协议运行在专用虚拟机内部 Chrome 的额外步骤,它允许你共享剪贴板和转发声音事件(如,Spice 或 RDP)。这将在不可信浏览器和你其它的工作环境之间添加一个优秀的隔离层,确保攻击者完全危害你的浏览器将必须另外打破 VM 隔离层,才能达到系统的其余部分。

这是一个鲜为人知的可行方式,但是需要大量的 RAM 和高速的处理器来处理多增加的负载。这要求作为管理员的你需要相应地调整自己的工作实践而付出辛苦。

3: 通过虚拟化完全隔离你的工作和娱乐环境 (低等)

了解下 Qubes-OS 项目,它致力于通过划分你的应用到完全隔离的 VM 中来提供高度安全的工作环境。

密码管理器

检查清单

  • [ ] 使用密码管理器 (关键)
  • [ ] 不相关的站点使用不同的密码 (关键)
  • [ ] 使用支持团队共享的密码管理器 (中等)
  • [ ] 给非网站类账户使用一个单独的密码管理器 (低等)

注意事项

使用好的、唯一的密码对你的团队成员来说应该是非常关键的需求。 凭证 credential 盗取一直在发生 — 通过被攻破的计算机、盗取数据库备份、远程站点利用、以及任何其它的方式。凭证绝不应该跨站点重用,尤其是关键的应用。

浏览器中的密码管理器

每个浏览器有一个比较安全的保存密码机制,可以同步到供应商维护的,并使用用户的密码保证数据加密。然而,这个机制有严重的劣势:

  1. 不能跨浏览器工作
  2. 不提供任何与团队成员共享凭证的方法

也有一些支持良好、免费或便宜的密码管理器,可以很好的融合到多个浏览器,跨平台工作,提供小组共享(通常是付费服务)。可以很容易地通过搜索引擎找到解决方案。

独立的密码管理器

任何与浏览器结合的密码管理器都有一个主要的缺点,它实际上是应用的一部分,这样最有可能被入侵者攻击。如果这让你不放心(应该这样),你应该选择两个不同的密码管理器 -- 一个集成在浏览器中用来保存网站密码,一个作为独立运行的应用。后者可用于存储高风险凭证如 root 密码、数据库密码、其它 shell 账户凭证等。

这样的工具在团队成员间共享超级用户的凭据方面特别有用(服务器 root 密码、ILO密码、数据库管理密码、引导程序密码等等)。

这几个工具可以帮助你:

  • KeePassX,在第2版中改进了团队共享
  • Pass,它使用了文本文件和 PGP,并与 git 结合
  • Django-Pstore,它使用 GPG 在管理员之间共享凭据
  • Hiera-Eyaml,如果你已经在你的平台中使用了 Puppet,在你的 Hiera 加密数据的一部分里面,可以便捷的追踪你的服务器/服务凭证。

加固 SSH 与 PGP 的私钥

个人加密密钥,包括 SSH 和 PGP 私钥,都是你工作站中最重要的物品 -- 这是攻击者最想得到的东西,这可以让他们进一步攻击你的平台或在其它管理员面前冒充你。你应该采取额外的步骤,确保你的私钥免遭盗窃。

检查清单

  • [ ] 用来保护私钥的强壮密码 (关键)
  • [ ] PGP 的主密码保存在移动存储中 (中等)
  • [ ] 用于身份验证、签名和加密的子密码存储在智能卡设备 (中等)
  • [ ] SSH 配置为以 PGP 认证密钥作为 ssh 私钥 (中等)

注意事项

防止私钥被偷的最好方式是使用一个智能卡存储你的加密私钥,绝不要拷贝到工作站上。有几个厂商提供支持 OpenPGP 的设备:

  • Kernel Concepts,在这里可以采购支持 OpenPGP 的智能卡和 USB 读取器,你应该需要一个。
  • Yubikey NEO,这里提供 OpenPGP 功能的智能卡还提供很多很酷的特性(U2F、PIV、HOTP等等)。

确保 PGP 主密码没有存储在工作站也很重要,仅使用子密码。主密钥只有在签名其它的密钥和创建新的子密钥时使用 — 不经常发生这种操作。你可以照着 Debian 的子密钥向导来学习如何将你的主密钥移动到移动存储并创建子密钥。

你应该配置你的 gnupg 代理作为 ssh 代理,然后使用基于智能卡 PGP 认证密钥作为你的 ssh 私钥。我们发布了一个详尽的指导如何使用智能卡读取器或 Yubikey NEO。

如果你不想那么麻烦,最少要确保你的 PGP 私钥和你的 SSH 私钥有个强健的密码,这将让攻击者很难盗取使用它们。

休眠或关机,不要挂起

当系统挂起时,内存中的内容仍然保留在内存芯片中,可以会攻击者读取到(这叫做 冷启动攻击 Cold Boot Attack )。如果你离开你的系统的时间较长,比如每天下班结束,最好关机或者休眠,而不是挂起它或者就那么开着。

工作站上的 SELinux

如果你使用捆绑了 SELinux 的发行版(如 Fedora),这有些如何使用它的建议,让你的工作站达到最大限度的安全。

检查清单

  • [ ] 确保你的工作站 强制 enforcing 使用 SELinux (关键)
  • [ ] 不要盲目的执行audit2allow -M,应该经常检查 (关键)
  • [ ] 绝不要 setenforce 0 (中等)
  • [ ] 切换你的用户到 SELinux 用户staff_u (中等)

注意事项

SELinux 是 强制访问控制 Mandatory Access Controls,MAC ,是 POSIX许可核心功能的扩展。它是成熟、强健,自从它推出以来已经有很长的路了。不管怎样,许多系统管理员现在仍旧重复过时的口头禅“关掉它就行”。

话虽如此,在工作站上 SELinux 会带来一些有限的安全效益,因为大多数你想运行的应用都是可以自由运行的。开启它有益于给网络提供足够的保护,也有可能有助于防止攻击者通过脆弱的后台服务提升到 root 级别的权限用户。

我们的建议是开启它并 强制使用 enforcing

绝不setenforce 0

使用setenforce 0临时把 SELinux 设置为 许可 permissive 模式很有诱惑力,但是你应该避免这样做。当你想查找一个特定应用或者程序的问题时,实际上这样做是把整个系统的 SELinux 给关闭了。

你应该使用semanage permissive -a [somedomain_t]替换setenforce 0,只把这个程序放入许可模式。首先运行ausearch查看哪个程序发生问题:

ausearch -ts recent -m avc

然后看下scontext=(源自 SELinux 的上下文)行,像这样:

scontext=staff_u:staff_r:gpg_pinentry_t:s0-s0:c0.c1023
                         ^^^^^^^^^^^^^^

这告诉你程序gpg_pinentry_t被拒绝了,所以你想排查应用的故障,应该增加它到许可域:

semange permissive -a gpg_pinentry_t

这将允许你使用应用然后收集 AVC 的其它数据,你可以结合audit2allow来写一个本地策略。一旦完成你就不会看到新的 AVC 的拒绝消息,你就可以通过运行以下命令从许可中删除程序:

semanage permissive -d gpg_pinentry_t
用 SELinux 的用户 staff\_r 使用你的工作站

SELinux 带有 角色 role 的原生实现,基于用户帐户相关角色来禁止或授予某些特权。作为一个管理员,你应该使用staff_r角色,这可以限制访问很多配置和其它安全敏感文件,除非你先执行sudo

默认情况下,用户以unconfined_r创建,你可以自由运行大多数应用,没有任何(或只有一点)SELinux 约束。转换你的用户到staff_r角色,运行下面的命令:

usermod -Z staff_u [username]

你应该退出然后登录新的角色,届时如果你运行id -Z,你将会看到:

staff_u:staff_r:staff_t:s0-s0:c0.c1023

在执行sudo时,你应该记住增加一个额外标志告诉 SELinux 转换到“sysadmin”角色。你需要用的命令是:

sudo -i -r sysadm_r

然后id -Z将会显示:

staff_u:sysadm_r:sysadm_t:s0-s0:c0.c1023

警告:在进行这个切换前你应该能很顺畅的使用ausearchaudit2allow,当你以staff_r角色运行时你的应用有可能不再工作了。在写作本文时,已知以下流行的应用在staff_r下没有做策略调整就不会工作:

  • Chrome/Chromium
  • Skype
  • VirtualBox

切换回unconfined_r,运行下面的命令:

usermod -Z unconfined_u [username]

然后注销再重新回到舒适区。

延伸阅读

IT 安全的世界是一个没有底的兔子洞。如果你想深入,或者找到你的具体发行版更多的安全特性,请查看下面这些链接:

许可

这项工作在创作共用授权4.0国际许可证许可下。


via: https://github.com/lfit/itpol/blob/bbc17d8c69cb8eee07ec41f8fbf8ba32fdb4301b/linux-workstation-security.md

作者:mricon 译者:wyangsun 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这或许是一个神奇的巧合,也许是预言。

如果你相信《终结者》电影中情节,那么我们很快就会看到世界末日了 :D 。 看起来,天网所控制的 T-800 机器人运行的是 Linux 内核 4.x,而 Linus Torvalds 先生刚刚释放了最新的 4.1.15内核——这正是电影中说的,T-800 机器人的内核版本。

Linus Torvalds 前一段时间说,他考虑启动 Linux 内核 4.x 版本,而不是发布 3.20 版本,因为他不想再看到像 2.6.32.x 这样啰嗦的版本号了。当时他还没有下定决心,于是在 Google+发起了投票,看看人们的选择。

当然,你现在已经知道了最后的投票结果和最终的决定了,Linux 内核走上了 4.x 分支。他说,他计划让 4.x 分支成为一个稳定的分支,因此要求开发者们专注于修复而不是添加新功能。

而在另一方面,终结者 T-800 运行的版本是 4.1.15,所以,Linus Torvalds 做出了一个非常“艰难的决定”,世界末日就靠它了:D。

终结者当然应该运行 Linux 啦

如果 天网 Skynet 真的那么无所不在,那么它显然应该是基于 Linux 的,同样, 终结者 Terminator 这样的 半机器人 cyborg 显然也应该是基于 Linux。你总不会想让这些终结者在攻击人类最后一个基地的时候出现蓝屏或者升级时崩溃吧?

一个用户在 Reddit 上贴了一张来自《终结者》电影的截屏(不清楚具体来自哪里),可以看到 阿诺德 · 施瓦辛格 Arnold Schwarzenegger 所饰演的 T-800 半机器人运行的正是 Linux 内核 4.1.15,具体内核型号:Linux 4.1.15-1.1381\_SKYN12nnmp(slawes.sky.net)。这可是不是你炕头上的那台老式计算机,而是天网版的!

那么问题来了:如果 Linus Torvalds 还在不断的发布内核更新,天网会升级它的系统吗?会让它的半机器人使用这个采用 GPL 许可证的 OS 吗——这可是要开源出来的。

基于 Ubuntu 的发行版 Linux Mint 发布了 18.3 “Sylvia”,它是一个长期支持版,将一直支持到2021年。

简介

Linux Mint 是一种基于 Ubuntu 或 Debian 开发出的 Linux 操作系统。由 Linux Mint Team 团队于 2006 年开始发行。Linux Mint 的目标是为家庭用户和企业客户提供一个免费、高效、易用、高雅的桌面操作系统。

Linux Mint 是目前 Distrowatch 排行榜上第一名的 Linux 发行版。

他继承了 Ubuntu 的众多优点,同时也在 Ubuntu 的基础上加入很多自己优秀的特性。Linux Mint 致力于提供一种更开箱即刻可用的用户体验,免去用户要安装系统后还要自己安装一系列满足基本使用需求的软件。它包括提供浏览器插件、多媒体编解码器、对 DVD 播放的支持、Java 和其他组件。它也增加了一套定制桌面及各种菜单,一些独特的配置工具,以及一份基于web的软件包安装界面。

官方网站: http://www.linuxmint.com/

下载

Cinnamon 桌面

MATE 桌面

  • Intel & AMD,适用于 32-bit 位 PC 点此下载
  • Intel & AMD,适用于 64-bit 位 PC 点此下载
    (SHA256SUM: b41c5258c03bd8fe4ecab5f1db33f4484bd1992ec306ea4bdde25fc7d6ea2f40)

发行

为了追求易用性和良好的人机交互体验,Linux Mint 集成了可以开箱即用的大量多媒体等软件包。因此它的 Live ISO 体积超过了 ubuntu 的本地安装镜像,甚至大于 950MB。作为传统的刻盘安装方式,这样的体积对于一张 700MB 的CD来说肯定是太大了,只有使用 DVD光 盘刻录才可以。

因为基于 Ubuntu,Linux Mint 与 Ubuntu软件仓库完全兼容,采用a pt管理和.deb软件包。

从 5.0 开始,Mint 遵循每六个月发布一次新版本的制度,并且采用简化的版本计划。目前最新版本是 Linux Mint 18.3 “Sylvia”。

从18.0开始,Mint 基于 Ubuntu 长期支持版,并会在下一个长期支持版发布之前持续向后移植一些重要的应用程序,下一个长期支持版本发布后,则转为只有安全更新的模式直到支持退出。

此外有不基于 Ubuntu 而基于 Debian 的版本,称之为 LMDE (Linux Mint Debian Edition),其采用滚动更新,目前最新版本为 LMDE 2 201701(采用发布年月作为版本号)。

Linux Mint 提供 4 种官方桌面环境。

  • Cinnamon:是 Unix-like 系统下的一个用户界面。是 GNOME Shell 的一个派生版本,最初是为 Linux Mint 所开发,其提供了如同 GNOME 2 般,易于使用的拟真接口。Cinnamon 使用 Muffin,一个 GNOME 3 的窗口管理器 Mutter 的派生版本,作为自 1.2 版起的默认窗口管理器。
  • MATE:由已经停止官方维护的 GNOME 2 源代码派生而来。因为 GNOME 3 以 GNOME Shell 为基础所创建的用户界面取代传统的拟真接口。这导致了一些 Linux 社区的批评。许多用户拒绝使用新的 GNOME 接口,并要求其他开发者继续开发 GNOME 2。MATE 随 Linux Mint12 投入使用。
  • KDE
  • Xfce

当前版本

最新版本 Linux Mint 18.3 Cinnamon KDE “Sylvia” 基于 Ubuntu 16.04 开发,使用 Linux 4.4 内核、桌面环境为Cinnamon 3.2。该版本属于长期支持版本,支持服务到 2021 年。

  • 更新管理器有巨大改进,看起来更漂亮,速度更快,显示更多信息,使用更方便。
  • 驱动管理器现在不需要连接到互联网即可安装本地存储的驱动程序。
  • 登录屏幕现在支持多显示器、高分屏,背景动画占用更少的CPU。
  • 软件源的界面有一些易用性修改。
  • 重新设计的欢迎屏幕使用更少资源,启动更快。

历史

版本代号平台Code 基于APT 基于用户界面发布日期
1.0AdaMainKubuntu 6.06Kubuntu 6.06KDE2006-08-27
2.0BarbaraMainUbuntu 6.10Ubuntu 6.10GNOME2006-11-13
2.1BeaMainUbuntu 6.10Ubuntu 6.10GNOME2006-12-20
2.2BiancaMainUbuntu 6.10Ubuntu 6.10GNOME2007-02-20
LightUbuntu 6.10Ubuntu 6.10GNOME2007-03-29
KDE CEKubuntu 6.10Kubuntu 6.10KDE2007-04-20
3.0CassandraMainBianca 2.2Ubuntu 7.04GNOME2007-05-30
LightBianca 2.2Ubuntu 7.04GNOME2007-06-15
KDE CEBianca 2.2Kubuntu 7.04KDE2007-08-14
MiniKDE CEBianca 2.2Kubuntu 7.04KDE2007-08-14
Xfce CECassandra 3.0Xubuntu 7.04Xfce2007-08-07
3.1CelenaMainBianca 2.2Ubuntu 7.04GNOME2007-09-24
LightBianca 2.2Ubuntu 7.04GNOME2007-10-01
4.0DarynaMainCelena 3.1Ubuntu 7.10GNOME2007-10-15
LightCelena 3.1Ubuntu 7.10GNOME2007-10-15
KDE CECassandra 3.0Kubuntu 7.10KDE2008-03-03
5ElyssaMainDaryna 4.0Ubuntu 8.04GNOME2008-06-08
LightDaryna 4.0Ubuntu 8.04GNOME2008-06-08
x64Ubuntu 8.04Ubuntu 8.04GNOME2008-10-18
KDE CEDaryna 4.0Kubuntu 8.04KDE2008-09-15
Xfce CEDaryna 4.0Xubuntu 8.04Xfce2008-09-08
Fluxbox CEUbuntu 8.04Ubuntu 8.04Fluxbox2008-10-21
6FeliciaMainUbuntu 8.10Ubuntu 8.10GNOME2008-12-15
Universal (Light)Ubuntu 8.10Ubuntu 8.10GNOME2008-12-15
x64Ubuntu 8.10Ubuntu 8.10GNOME2009-02-06
KDE CEElyssa 5Kubuntu 8.10KDE2009-04-08
Xfce CEXubuntu 8.10Xubuntu 8.10Xfce2009-02-24
Fluxbox CEXubuntu 8.10Ubuntu 8.10Fluxbox2009-04-07
7GloriaMainUbuntu 9.04Ubuntu 9.04GNOME2009-05-26
Universal (Light)Ubuntu 9.04Ubuntu 9.04GNOME2009-05-26
x64Ubuntu 9.04Ubuntu 9.04GNOME2009-06-24
KDE CEKubuntu 9.04Kubuntu 9.04KDE2009-08-03
Xfce CEXubuntu 9.04Xubuntu 9.04Xfce2009-09-13
8HelenaMainUbuntu 9.10Ubuntu 9.10GNOME2009-11-28
Universal (Light)Ubuntu 9.10Ubuntu 9.10GNOME2009-11-28
x64Ubuntu 9.10Ubuntu 9.10GNOME2009-12-14
KDEKubuntu 9.10Kubuntu 9.10KDE2010-02-06
KDE x64Kubuntu 9.10Kubuntu 9.10KDE2010-02-12
Fluxbox CEHelena MainUbuntu 9.10Fluxbox2010-02-12
Xfce CE RC1Xubuntu 9.10Xubuntu 9.10Xfce2010-03-07
LXDE CE RC1Helena MainUbuntu 9.10LXDE2010-03-15
9IsadoraMainUbuntu 10.04Ubuntu 10.04GNOME2010-05-18
KDEUbuntu 10.04Ubuntu 10.04KDE2010-05-18
10JuliaMainUbuntu 10.10Ubuntu 10.10GNOME2010-11-18
KDEUbuntu 10.10Ubuntu 10.10KDE2010-11-18
XfceXubuntu 10.10Xubuntu 10.10Xfce
LXDEUbuntu 10.10Ubuntu 10.10LXDE2011-03-16
11KatyaMainUbuntu 11.04Ubuntu 11.04GNOME2011-05-26
12LisaMainUbuntu 11.10Ubuntu 11.10GNOME2011-11-26
KDEUbuntu 11.10Ubuntu 11.10KDE2011-12-03
LXDELubuntu 11.10Lubuntu 11.10LXDE2012-03-09
13MayaMATE 1.2GNOME 2GNOME 2GNOME2012-05-23
Cinnamon 1.4GNOME 3GNOME 3GNOME2012-05-23
MDMGDM 2.20GDM 2.20GDM2012-05-23
14NadiaMATE 1.4GNOME 2GNOME 2GNOME2012-11-20
Cinnamon 1.6GNOME 3GNOME 3GNOME2012-11-20
MDMGDM 2.20GDM 2.20GDM2012-11-20
15OliviaMATE 1.6GNOME 2GNOME 2GNOME2013-05-29
Cinnamon 1.8GNOME 3GNOME 3GNOME2013-05-29
MDM 1.2GDM 2.20GDM 2.20GDM2013-05-29
16PetraMATE 1.6GNOME 2GNOME 2GNOME2013-11-30
Cinnamon 2.0GNOME 3GNOME 3GNOME2013-11-30
MDM 1.4GDM 2.20GDM 2.20GDM2013-11-30
17QianaMATE 1.8GNOME 2??2014-05-31
Cinnamon 2.2GNOME 3??2014-05-31
KDE???2014-05-31
xfce???2014-05-31
17.1RebeccaMATE 1.8GNOME 2??2014-11-29
Cinnamon 2.4GNOME 3??2014-11-29
KDEUbuntu 14.04??2015-01-08
xfceUbuntu 14.04??2015-01-11
17.2Rafaela 2015-08-04
17.3Rosa 2016-01-06
18.0Sarah 2016-09-07
18.1Serena 2017-01-25
18.2Sonya 2017-07-02
18.3Sylvia 2017-11-27

注:部分资料来自维基百科。

Linux 在桌面操作系统市场上只占据了非常小的份额,从目前的调查结果来看,估计只有2%的市场份额;对比来看,丰富多变的 Windows 系统占据了接近90%的市场份额。对于 Linux 来说,要挑战 Windows 在桌面操作系统市场的垄断,需要有一个让用户学习不同的操作系统的简单方式。如果你相信传统的 Windows 用户会再买一台机器来使用 Linux,那你就太天真了。我们只能去试想用户重新分区,设置引导程序来使用双系统,或者跳过所有步骤回到一个最简单的方法。

我们实验过一系列让用户试操作 Linux 的无风险的使用方法,不涉及任何分区管理,包括 CD/DVD 光盘、USB 存储棒和桌面虚拟化软件等等。通过实验,我强烈推荐使用 VMware 的 VMware Player 或者 Oracle VirtualBox 虚拟机,对于桌面操作系统或者便携式电脑的用户,这是一种安装运行多操作系统的相对简单而且免费的的方法。每一台虚拟机和其他虚拟机相隔离,但是共享 CPU、内存、网络接口等等。虚拟机仍需要一定的资源来安装运行 Linux,也需要一台相当强劲的主机。但对于一个好奇心不大的人,这样做实在是太麻烦了。

要打破用户传统的使用观念是非常困难的。很多 Windows 用户可以尝试使用 Linux 提供的自由软件,但也有太多要学习的 Linux 系统知识。这会花掉他们相当一部分时间才能习惯 Linux 的工作方式。

当然了,对于一个第一次在 Linux 上操作的新手,有没有一个更高效的方法呢?答案是肯定的,接着往下看看云实验平台。

LabxNow

LabxNow 提供了一个免费服务,方便广大用户通过浏览器来访问远程 Linux 桌面。开发者将其加强为一个用户个人远程实验室(用户可以在系统里运行、开发任何程序),用户可以在任何地方通过互联网登入远程实验室。

这项服务现在可以为个人用户提供2核处理器,4GB RAM和10GB的固态硬盘,运行在128G RAM的4 AMD 6272处理器上。

配置参数:

  • 系统镜像:基于 Ubuntu 14.04 的 Xface 4.10,RHEL 6.5,CentOS(Gnome桌面),Oracle
  • 硬件: CPU - 1核或者2核;内存: 512MB, 1GB, 2GB or 4GB
  • 超快的网络数据传输
  • 可以运行在所有流行的浏览器上
  • 可以安装任意程序,可以运行任何程序 – 这是一个非常棒的方法,可以随意做实验学习你想学的任何知识,没有 一点风险
  • 添加、删除、管理、制定虚拟机非常方便
  • 支持虚拟机共享,远程桌面

你所需要的只是一台有稳定网络的设备。不用担心虚拟专用系统(VPS)、域名、或者硬件带来的高费用。LabxNow提供了一个在 Ubuntu、RHEL 和 CentOS 上实验的非常好的方法。它给 Windows 用户提供一个极好的环境,让他们探索美妙的 Linux 世界。说得深入一点,它可以让用户随时随地在里面工作,而没有了要在每台设备上安装 Linux 的压力。点击下面这个链接进入 www.labxnow.org/labxweb/

另外还有一些其它服务(大部分是收费服务)可以让用户使用 Linux,包括 Cloudsigma 环境的7天使用权和Icebergs.io (通过HTML5实现root权限)。但是现在,我推荐 LabxNow。


来自: http://www.linuxlinks.com/article/20151003095334682/LinuxCloud.html

译者:sevenot 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

从大多数消费者所关注的诸如 Ubuntu,Fedora,Mint 或 elementary OS 到更加复杂、轻量级和企业级的诸如 Slackware,Arch Linux 或 RHEL,这些发行版本我都已经见识过了。除了这些,难道没有其他别的了吗?其实 Linux 的生态系统是非常多样化的,对每个人来说,总有一款适合你。下面就让我们讨论一些稀奇古怪的小众 Linux 发行版本吧,它们代表着开源平台真正的多样性。

Puppy Linux

Puppy Linux

它是一个仅有一个普通 DVD 光盘容量十分之一大小的操作系统,这就是 Puppy Linux。整个操作系统仅有 100MB 大小!并且它还可以从内存中运行,这使得它运行极快,即便是在老式的 PC 机上。 在操作系统启动后,你甚至可以移除启动介质!还有什么比这个更好的吗? 系统所需的资源极小,大多数的硬件都会被自动检测到,并且它预装了能够满足你基本需求的软件。在这里体验 Puppy Linux 吧.

Suicide Linux(自杀 Linux)

Suicide Linux(自杀 Linux)

这个名字吓到你了吗?我想应该是。 ‘任何时候 -注意是任何时候-一旦你远程输入不正确的命令,解释器都会创造性地将它重定向为 rm -rf / 命令,然后擦除你的硬盘’。它就是这么简单。我真的很想知道谁自信到将Suicide Linux 安装到生产机上。 警告:千万不要在生产机上尝试这个! 假如你感兴趣的话,现在可以通过一个简洁的DEB 包来获取到它。

PapyrOS

PapyrOS

它的 “奇怪”是好的方面。PapyrOS 正尝试着将 Android 的 material 设计语言引入到新的 Linux 发行版本上。尽管这个项目还处于早期阶段,看起来它已经很有前景。该项目的网页上说该系统已经完成了 80%,随后人们可以期待它的第一个 Alpha 发行版本。在该项目被宣告提出时,我们做了 PapyrOS 的小幅报道,从它的外观上看,它甚至可能会引领潮流。假如你感兴趣的话,可在 Google+ 上关注该项目并可通过 BountySource 来贡献出你的力量。

Qubes OS

Qubes OS

Qubes 是一个开源的操作系统,其设计通过使用 安全分级 Security by Compartmentalization 的方法,来提供强安全性。其前提假设是不存在完美的没有 bug 的桌面环境。并通过实现一个‘ 安全隔离 Security by Isolation ’ 的方法,Qubes Linux试图去解决这些问题。Qubes 基于 Xen、X 视窗系统和 Linux,并可运行大多数的 Linux 应用,支持大多数的 Linux 驱动。Qubes 入选了 Access Innovation Prize 2014 for Endpoint Security Solution 决赛名单。

Ubuntu Satanic Edition

Ubuntu Satanic Edition

Ubuntu SE 是一个基于 Ubuntu 的发行版本。通过一个含有主题、壁纸甚至来源于某些天才新晋艺术家的重金属音乐的综合软件包,“它同时带来了最好的自由软件和免费的金属音乐” 。尽管这个项目看起来不再积极开发了, Ubuntu Satanic Edition 甚至在其名字上都显得奇异。 Ubuntu SE (Slightly NSFW)

Tiny Core Linux

Tiny Core Linux

Puppy Linux 还不够小?试试这个吧。 Tiny Core Linux 是一个 12MB 大小的图形化 Linux 桌面!是的,你没有看错。一个主要的补充说明:它不是一个完整的桌面,也并不完全支持所有的硬件。它只含有能够启动进入一个非常小巧的 X 桌面,支持有线网络连接的核心部件。它甚至还有一个名为 Micro Core Linux 的没有 GUI 的版本,仅有 9MB 大小。Tiny Core Linux

NixOS

NixOS

它是一个资深用户所关注的 Linux 发行版本,有着独特的打包和配置管理方式。在其他的发行版本中,诸如升级的操作可能是非常危险的。升级一个软件包可能会引起其他包无法使用,而升级整个系统感觉还不如重新安装一个。在那些你不能安全地测试由一个配置的改变所带来的结果的更改之上,它们通常没有“重来”这个选项。在 NixOS 中,整个系统由 Nix 包管理器按照一个纯功能性的构建语言的描述来构建。这意味着构建一个新的配置并不会重写先前的配置。大多数其他的特色功能也遵循着这个模式。Nix 相互隔离地存储所有的软件包。有关 NixOS 的更多内容请看这里

GoboLinux

GoboLinux

这是另一个非常奇特的 Linux 发行版本。它与其他系统如此不同的原因是它有着独特的重新整理的文件系统。它有着自己独特的子目录树,其中存储着所有的文件和程序。GoboLinux 没有专门的包数据库,因为其文件系统就是它的数据库。在某些方面,这类重整有些类似于 OS X 上所看到的功能。

Hannah Montana Linux

Hannah Montana Linux

它是一个基于 Kubuntu 的 Linux 发行版本,它有着 汉娜·蒙塔娜 Hannah Montana 主题的开机启动界面、KDM(KDE Display Manager)、图标集、ksplash、plasma、颜色主题和壁纸(I'm so sorry)。这是它的链接。这个项目现在不再活跃了。

RLSD Linux

它是一个极其精简、小巧、轻量和安全可靠的,基于 Linux 文本的操作系统。开发者称 “它是一个独特的发行版本,提供一系列的控制台应用和自带的安全特性,对黑客或许有吸引力。” RLSD Linux.

我们还错过了某些更加奇特的发行版本吗?请让我们知晓吧。


via: http://www.techdrivein.com/2015/08/the-strangest-most-unique-linux-distros.html

作者:Manuel Jose 译者:FSSlc 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

史前

没有 C 编程语言) 和 GNU 项目 构成 Linux 环境,也就不可能有 Linux 的成功。

Ken Thompson 和 Dennis Ritchie

Ken Thompson) 和 Dennis Ritchie 在 1969-1970 创造了 Unix 操作系统。之后发布了新的 C 编程语言,它是一种高级的、可移植的编程语言。 Linux 内核用 C 和一些汇编代码写成。

Richard Matthew Stallman

Richard Matthew Stallman

Richard Matthew Stallman 在 1984 年启动了 GNU 项目。最大的一个目标 - 完全自由的类-Unix 操作系统。

1991 – 元年

Linus Torvalds, 1991

Linus Torvalds 在芬兰赫尔辛基开始了 Linux 内核开发,他是为他的硬件 - Intel 30386 CPU 编写的程序。他也使用 Minix 和 GNU C 编译器。下面是 Linus Torvalds 给 Minix 新闻组的历史消息:

From: [email protected] (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki

Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)

Linus ([email protected])

从此之后,Linux 开始得到了世界范围志愿者和专业专家的支持。Linus 的同事 Ari Lemmke 把它命名为 “Linux” - 这其实是他们的大学 ftp 服务器上的项目目录名称。

1992

在 GPLv2 协议下发布了 0.12 版 Linux 内核。

1993

Slackware 1.0

Slackware 首次发布(LCTT 译注:Slackware Linux 是一个高度技术性的、干净的发行版,只有少量非常有限的个人设置) – 最早的 Linux 发行版,其领导者 Patrick Volkerding 也是最早的。其时,Linux 内核有 100 多个开发者。

Debian

Debian – 最大的 Linux 社区之一也创立于 1991 年。

1994

Linux 1.0 发布了,多亏了 XFree 86 项目,第一次有了 GUI。

Red Hat Linux

发布了 Red Hat Linux 1.0

S.u.S.E Linux

S.u.S.E. Linux 1.0。

1995

Red Hat Inc.

Bob Young 和 Marc Ewing 合并他们的本地业务为 Red Hat Software。Linux 移植到了很多硬件平台。

1996

Tux

企鹅 Tux 是 Linux 官方吉祥物,Linus Torvalds 参观了堪培拉国家动物园和水族馆之后有了这个想法。发布了 Linux 2.0,支持对称多处理器。开始开发 KDE。

1997

Miguel de Icaza

Miguel de Icaza 和 Federico Mena 开始开发 GNOME - 自由桌面环境和应用程序。Linus Torvalds 赢得了 Linux 商标冲突官司,Linux 成为了 Linus Torvalds 的注册商标。

1998

大教堂和集市

Eric S. Raymond 出版了文章 The Cathedral and the Bazaar(大教堂和集市) - 高度推荐阅读。Linux 得到了大公司的支持: IBM、Oracle、康柏。

Mandrake Linux

Mandrake Linux 首次发布 - 基于红帽 Linux 的发行版,带有 KDE 桌面环境。

1999

第一个主要的 KDE 版本。

2000

Dell 支持 Linux - 这是第一个支持的大硬件供应商。

2001

Revolution OS

纪录片 “Revolution OS(操作系统革命)” - GNU、Linux、开源、自由软件的 20 年历史,以及对 Linux 和开源界顶级黑客的采访。

2002

BitKeeper

Linux 开始使用 BitKeeper,这是一种商业版的分布式版本控制软件。

2003

SUSE

Novell 用 2.1 亿美元购买了 SUSE Linux AG。同年 SCO 集团 也开始了同 IBM 以及 Linux 社区关于 Unix 版权的艰难的法律诉讼。

Fedora

红帽和 Linux 社区首次发布了 Fedora Linux。

2004

X.ORG 基金会

XFree86 解散了并加入到 X.Org 基金会, X 的开发更快了。

Ubuntu 4.10 – Ubuntu 首次发布

2005

openSUSE

openSUSE 开始了,这是企业版 Novell’s OS 的免费版本。OpenOffice.org 开始支持 OpenDocument 标准。

2006

一个新的 Linux 发行版,基于红帽企业版 Linux 的 Oracle Linux。微软和 Novell 开始在 IT 和专利保护方面进行合作。

2007

Dell Linux 笔记本

Dell 发布了第一个预装 Linux 的笔记本。

2008

KDE 4.0

KDE 4 发布了,但是不稳定,很多用户开始迁移到 GNOME。

2009

Red Hat

红帽 Linux 取得了成功 - 市值达 26亿2千万美元。

2009 年微软在 GPLv2 协议下向 Linux 内核提交了第一个补丁。

2010

Novell -> Attachmate

Novell 已 22亿美元卖给了 Attachmate Group, Inc。SUSE 和 Novell 成为了新公司的两款独立的产品。

systemd 首次发布,开始了 Linux 系统的革命。

2011

Unity 桌面,2011

Ubuntu Unity 发布,遭到很多用户的批评。

GNOME 3.0,2011

GNOME 3.0 发布, Linus Torvalds 评论为 “unholy mess” ,有很多负面评论。Linux 内核 3.0 发布。

2012

1500 万行代码

Linux 内核达到 1500 万行代码。微软成为主要贡献者之一。

2013

Kali Linux 1.0 发布, 用于渗透测试和数字取证,基于 Debian 的 Linux 发行版。2014 年 CentOS 及其代码开发者加入到了红帽公司。

2014

Lennart Poettering 和 Kay Sievers

systemd 成为 Ubuntu 和所有主流 Linux 发行版的默认初始化程序。Ubuntu 有 2200 万用户。安卓的大进步 - 占了所有移动设备的 75% 份额。

2015

发布了 Linux 4.0。Mandriva 公司清算,但还有很多分支,其中最流行的一个是 Mageia。

带着对 Linux 的热爱而执笔。


via: https://tlhp.cf/linux-history/

作者:Pavlo Rudyi 译者:ictlyh 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出