mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-29 21:41:00 +08:00
校对部分
This commit is contained in:
parent
0718c7f491
commit
ba903117bd
@ -1,63 +1,76 @@
|
|||||||
Linux平台安全备忘录
|
Linux 基金会内部的 Linux 工作站安全检查清单
|
||||||
================================================================================
|
================================================================================
|
||||||
这是一组Linux基金会自己系统管理员的推荐规范。所有Linux基金会的雇员都是远程工作,我们使用这套指导方针确保系统管理员的系统通过核心安全需求,降低我们平台成为攻击目标的风险。
|
|
||||||
|
|
||||||
即使你的系统管理员不用远程工作,很有可能的是,很多人的工作是在一个便携的笔记本上完成的,或者在业余时间或紧急时刻他们在工作平台中部署自己的家用系统。不论发生何种情况,你都能对应这个规范匹配到你的环境中。
|
### 目标受众
|
||||||
|
|
||||||
这绝不是一个详细的“工作站加固”文档,可以说这是一个努力避免大多数明显安全错误导致太多不便的一组规范的底线。你可能阅读这个文档会认为它的方法太偏执,同时另一些人也许会认为这仅仅是一些肤浅的研究。安全就像在高速公路上开车 -- 任何比你开的慢的都是一个傻瓜,然而任何比你开的快的人都是疯子。这个指南仅仅是一些列核心安全规则,既不详细又不是替代经验,警惕,和常识。
|
这是一套 Linux 基金会为其系统管理员提供的推荐规范。
|
||||||
|
|
||||||
|
这个文档用于帮助那些使用 Linux 工作站来访问和管理项目的 IT 设施的系统管理员团队。
|
||||||
|
|
||||||
|
如果你的系统管理员是远程员工,你也许可以使用这套指导方针确保系统管理员的系统可以通过核心安全需求,降低你的IT 平台成为攻击目标的风险。
|
||||||
|
|
||||||
|
即使你的系统管理员不是远程员工,很多人也会在工作环境中通过便携笔记本完成工作,或者在家中设置系统以便在业余时间或紧急时刻访问工作平台。不论发生何种情况,你都能调整这个推荐规范来适应你的环境。
|
||||||
|
|
||||||
|
|
||||||
|
### 限制
|
||||||
|
|
||||||
|
但是,这并不是一个详细的“工作站加固”文档,可以说这是一个努力避免大多数明显安全错误而不会导致太多不便的一组推荐基线(baseline)。你也许阅读这个文档后会认为它的方法太偏执,而另一些人也许会认为这仅仅是一些肤浅的研究。安全就像在高速公路上开车 -- 任何比你开的慢的都是一个傻瓜,然而任何比你开的快的人都是疯子。这个指南仅仅是一些列核心安全规则,既不详细又不能替代经验、警惕和常识。
|
||||||
|
|
||||||
|
我们分享这篇文档是为了[将开源协作的优势带到 IT 策略文献资料中][18]。如果你发现它有用,我们希望你可以将它用到你自己团体中,并分享你的改进,对它的完善做出你的贡献。
|
||||||
|
|
||||||
|
### 结构
|
||||||
|
|
||||||
每一节都分为两个部分:
|
每一节都分为两个部分:
|
||||||
|
|
||||||
- 核对适合你项目的需求
|
- 核对适合你项目的需求
|
||||||
- 随意列出关心的项目,解释为什么这么决定
|
- 形式不定的提示内容,解释了为什么这么做
|
||||||
|
|
||||||
## 严重级别
|
#### 严重级别
|
||||||
|
|
||||||
在清单的每一个项目都包括严重级别,这些是我们希望能帮助指导你的决定:
|
在清单的每一个项目都包括严重级别,我们希望这些能帮助指导你的决定:
|
||||||
|
|
||||||
- _(关键)_ 项目应该在考虑列表上被明确的重视。如果不采取措施,将会导致你的平台安全出现高风险。
|
- **关键(ESSENTIAL)** 该项应该在考虑列表上被明确的重视。如果不采取措施,将会导致你的平台安全出现高风险。
|
||||||
- _(中等)_ 项目将改善你的安全形态,但不是很重要,尤其是如果他们太多的干涉你的工作流程。
|
- **中等(NICE)** 该项将改善你的安全形势,但是会影响到你的工作环境的流程,可能会要求养成新的习惯,改掉旧的习惯。
|
||||||
- _(低等)_ 项目也许会改善整体安全性,但是在便利权衡下也许并不值得。
|
- **可疑(PARANOID)** 留作感觉会明显完善我们平台安全、但是可能会需要大量调整与操作系统交互的方式的项目。
|
||||||
- _(可疑)_ 留作感觉会明显完善我们平台安全的项目,但是可能会需要大量的调整与操作系统交互的方式。
|
|
||||||
|
|
||||||
记住,这些只是参考。如果你觉得这些严重级别不能表达你的工程对安全承诺,正如你所见你应该调整他们为你合适的。
|
记住,这些只是参考。如果你觉得这些严重级别不能反映你的工程对安全的承诺,你应该调整它们为你所合适的。
|
||||||
|
|
||||||
## 选择正确的硬件
|
## 选择正确的硬件
|
||||||
|
|
||||||
我们禁止管理员使用一个特殊供应商或者一个特殊的型号,所以在选择工作系统时这部分是核心注意事项。
|
我们并不会要求管理员使用一个特殊供应商或者一个特殊的型号,所以这一节提供的是选择工作系统时的核心注意事项。
|
||||||
|
|
||||||
### 清单
|
### 检查清单
|
||||||
|
|
||||||
- [ ] 系统支持安全启动 _(关键)_
|
- [ ] 系统支持安全启动(SecureBoot) _(关键)_
|
||||||
- [ ] 系统没有火线,雷电或者扩展卡接口 _(中等)_
|
- [ ] 系统没有火线(Firewire),雷电(thunderbolt)或者扩展卡(ExpressCard)接口 _(中等)_
|
||||||
- [ ] 系统有TPM芯片 _(低)_
|
- [ ] 系统有 TPM 芯片 _(中等)_
|
||||||
|
|
||||||
### 注意事项
|
### 注意事项
|
||||||
|
|
||||||
#### 安全引导
|
#### 安全启动(SecureBoot)
|
||||||
|
|
||||||
尽管它是有争议的性质,安全引导提供了对抗很多针对平台的攻击(Rootkits, "Evil Maid,"等等),没有介绍太多额外的麻烦。它将不会停止真正专用的攻击者,加上有很大程度上,站点安全机构有办法应对它(可能通过设计),但是拥有安全引导总比什么都没有强。
|
尽管它还有争议,但是安全引导能够预防很多针对工作站的攻击(Rootkits、“Evil Maid”,等等),而没有太多额外的麻烦。它并不能阻止真正专门的攻击者,加上在很大程度上,国家安全机构有办法应对它(可能是通过设计),但是有安全引导总比什么都没有强。
|
||||||
|
|
||||||
作为选择,你也许部署了[Anti Evil Maid][1]提供更多健全的保护,对抗安全引导支持的攻击类型,但是它需要更多部署和维护的工作。
|
作为选择,你也许可以部署 [Anti Evil Maid][1] 提供更多健全的保护,以对抗安全引导所需要阻止的攻击类型,但是它需要更多部署和维护的工作。
|
||||||
|
|
||||||
#### 系统没有火线,雷电或者扩展卡接口
|
#### 系统没有火线(Firewire),雷电(thunderbolt)或者扩展卡(ExpressCard)接口
|
||||||
|
|
||||||
火线是一个标准,故意的,允许任何连接设备完全直接内存访问你的系统([查看维基百科][2])。雷电接口和扩展卡同样有问题,虽然一些后来部署的雷电接口试图限制内存访问的范围。如果你没有这些系统端口,那是最好的,但是它并不严重,他们通常可以通过UEFI或内核本身禁用。
|
火线是一个标准,其设计上允许任何连接的设备能够完全地直接访问你的系统内存(参见[维基百科][2])。雷电接口和扩展卡同样有问题,虽然一些后来部署的雷电接口试图限制内存访问的范围。如果你没有这些系统端口,那是最好的,但是它并不严重,它们通常可以通过 UEFI 关闭或内核本身禁用。
|
||||||
|
|
||||||
#### TPM 芯片
|
#### TPM 芯片
|
||||||
|
|
||||||
可信平台模块(TPM)是主板上的一个与核心处理器单独分开的加密芯片,他可以用来增加平台的安全性(比如存储完整磁盘加密密钥),不过通常不用在日常平台操作。最多,这是个很好的存在,除非你有特殊需要使用TPM增加你平台安全性。
|
可信平台模块(Trusted Platform Module ,TPM)是主板上的一个与核心处理器单独分开的加密芯片,它可以用来增加平台的安全性(比如存储全盘加密的密钥),不过通常不会用于日常的平台操作。充其量,这个是一个有则更好的东西,除非你有特殊需求,需要使用 TPM 增加你的工作站安全性。
|
||||||
|
|
||||||
## 预引导环境
|
## 预引导环境
|
||||||
|
|
||||||
这是你开始安装系统前的一系列推荐规范。
|
这是你开始安装操作系统前的一系列推荐规范。
|
||||||
|
|
||||||
### 清单
|
### 清单
|
||||||
|
|
||||||
- [ ] 使用 UEFI 引导模式(不是传统 BIOS)_(关键)_
|
- [ ] 使用 UEFI 引导模式(不是传统 BIOS)_(关键)_
|
||||||
- [ ] 进入 UEFI 配置需要使用密码 _(关键)_
|
- [ ] 进入 UEFI 配置需要使用密码 _(关键)_
|
||||||
- [ ] 使用安全引导 _(关键)_
|
- [ ] 使用安全引导 _(关键)_
|
||||||
- [ ] 启动系统需要UEFI级别密码 _(低)_
|
- [ ] 启动系统需要 UEFI 级别密码 _(中等)_
|
||||||
|
|
||||||
### 注意事项
|
### 注意事项
|
||||||
|
|
||||||
@ -65,22 +78,22 @@ Linux平台安全备忘录
|
|||||||
|
|
||||||
UEFI 尽管有缺点,还是提供很多传统 BIOS 没有的好功能,比如安全引导。大多数现代的系统都默认使用 UEFI 模式。
|
UEFI 尽管有缺点,还是提供很多传统 BIOS 没有的好功能,比如安全引导。大多数现代的系统都默认使用 UEFI 模式。
|
||||||
|
|
||||||
UEFI配置模式密码要确保密码强度。注意,很多厂商默默地限制了你使用密码长度,所以对比长口令你也许应该选择高熵短密码(更多地密码短语看下面)。
|
确保进入 UEFI 配置模式要使用高强度密码。注意,很多厂商默默地限制了你使用密码长度,所以相比长口令你也许应该选择高熵值的短密码(关于密码短语请参考下面内容)。
|
||||||
|
|
||||||
基于你选择的Linux分支,你也许会也许不会跳过额外的圈子,以导入你的发行版的安全引导键,才允许你启动发行版。很多分支已经与微软合作大多数厂商给他们已发布的内核签订密钥,这已经是大多数厂商公认的了,因此为了避免问题你必须处理密钥导入。
|
基于你选择的 Linux 发行版,你也许需要、也许不需要按照 UEFI 的要求,来导入你的发行版的安全引导密钥,从而允许你启动该发行版。很多发行版已经与微软合作,用大多数厂商所支持的密钥给它们已发布的内核签名,因此避免了你必须处理密钥导入的麻烦。
|
||||||
|
|
||||||
作为一个额外的措施,在允许某人得到引导分区然后尝试做一些不好的事之前,让他们输入密码。为了防止肩窥,这个密码应该跟你的UEFI管理密码不同。如果你关闭启动太多,你也许该选择别把心思费在这上面,当你已经进入LUKS密码,这将为您节省一些额外的按键。
|
作为一个额外的措施,在允许某人访问引导分区然后尝试做一些不好的事之前,让他们输入密码。为了防止肩窥(shoulder-surfing),这个密码应该跟你的 UEFI 管理密码不同。如果你经常关闭和启动,你也许不想这么麻烦,因为你已经必须输入 LUKS 密码了(LUKS 参见下面内容),这样会让你您减少一些额外的键盘输入。
|
||||||
|
|
||||||
## 发行版选择注意事项
|
## 发行版选择注意事项
|
||||||
|
|
||||||
很有可能你会坚持一个广泛使用的发行版如Fedora,Ubuntu,Arch,Debian,或他们的一个类似分支。无论如何,这是你选择使用发行版应该考虑的。
|
很有可能你会坚持一个广泛使用的发行版如 Fedora,Ubuntu,Arch,Debian,或它们的一个类似分支。无论如何,以下是你选择使用发行版应该考虑的。
|
||||||
|
|
||||||
### 清单
|
### 清单
|
||||||
|
|
||||||
- [ ] 拥有一个强健的 MAC/RBAC 系统(SELinux/AppArmor/Grsecurity) _(关键)_
|
- [ ] 拥有一个强健的 MAC/RBAC 系统(SELinux/AppArmor/Grsecurity) _(关键)_
|
||||||
- [ ] 公开的安全公告 _(关键)_
|
- [ ] 发布安全公告 _(关键)_
|
||||||
- [ ] 提供及时的安全补丁 _(关键)_
|
- [ ] 提供及时的安全补丁 _(关键)_
|
||||||
- [ ] 提供密码验证的包 _(关键)_
|
- [ ] 提供软件包的加密验证 _(关键)_
|
||||||
- [ ] 完全支持 UEFI 和安全引导 _(关键)_
|
- [ ] 完全支持 UEFI 和安全引导 _(关键)_
|
||||||
- [ ] 拥有健壮的原生全磁盘加密支持 _(关键)_
|
- [ ] 拥有健壮的原生全磁盘加密支持 _(关键)_
|
||||||
|
|
||||||
@ -88,27 +101,27 @@ UEFI配置模式密码要确保密码强度。注意,很多厂商默默地限
|
|||||||
|
|
||||||
#### SELinux,AppArmor,和 GrSecurity/PaX
|
#### SELinux,AppArmor,和 GrSecurity/PaX
|
||||||
|
|
||||||
强制访问控制(MAC)或者基于角色的访问控制(RBAC)是一个POSIX系统遗留的基于用户或组的安全机制延伸。这些天大多数发行版已经绑定MAC/RBAC系统(Fedora,Ubuntu),或通过提供一种机制一个可选的安装后的步骤来添加它(Gentoo,Arch,Debian)。很明显,强烈建议您选择一个预装MAC/RBAC系统的分支,但是如果你对一个分支情有独钟,没有默认启用它,装完系统后应计划配置安装它。
|
强制访问控制(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提供更多的安全效益。
|
应该坚决避免使用不带任何 MAC/RBAC 机制的发行版,像传统的 POSIX 基于用户和组的安全在当今时代应该算是考虑不足。如果你想建立一个 MAC/RBAC 工作站,通常认为 AppArmor 和 PaX 比 SELinux 更容易掌握。此外,在工作站上,很少有或者根本没有对外监听的守护进程,而针对用户运行的应用造成的最高风险,GrSecurity/PaX _可能_ 会比SELinux 提供更多的安全便利。
|
||||||
|
|
||||||
#### 发行版安全公告
|
#### 发行版安全公告
|
||||||
|
|
||||||
大多数广泛使用的分支都有一个机制发送安全公告到他们的用户,但是如果你对一些机密感兴趣,查看开发人员是否有记录机制提醒用户安全漏洞和补丁。缺乏这样的机制是一个重要的警告信号,这个分支不够成熟,不能被视为主要管理工作站。
|
大多数广泛使用的发行版都有一个给它们的用户发送安全公告的机制,但是如果你对一些机密感兴趣,去看看开发人员是否有见于文档的提醒用户安全漏洞和补丁的机制。缺乏这样的机制是一个重要的警告信号,说明这个分支不够成熟,不能被用作主要管理员的工作站。
|
||||||
|
|
||||||
#### 及时和可靠的安全更新
|
#### 及时和可靠的安全更新
|
||||||
|
|
||||||
多数常用的发行版提供的定期安全更新,但为确保关键包更新及时提供是值得检查的。避免使用分支和"社区重建"的原因是,由于不得不等待上游分支先发布它,他们经常延迟安全更新。
|
多数常用的发行版提供定期安全更新,但应该经常检查以确保及时提供关键包更新。因此应避免使用附属发行版(spin-offs)和“社区重构”,因为它们必须等待上游分支先发布,它们经常延迟发布安全更新。
|
||||||
|
|
||||||
你如果找到一个在安装包,更新元数据,或两者上不使用加密签名的发行版,将会处于困境。这么说,常用的发行版多年前就已经知道这个基本安全的意义(Arch,我正在看你),所以这也是值得检查的。
|
现在,很难找到一个不使用加密签名、更新元数据或二者都不使用的发行版。如此说来,常用的发行版在引入这个基本安全机制就已经知道这些很多年了(Arch,我正在看你),所以这也是值得检查的。
|
||||||
|
|
||||||
#### 发行版支持 UEFI 和安全引导
|
#### 发行版支持 UEFI 和安全引导
|
||||||
|
|
||||||
检查发行版支持UEFI和安全引导。查明它是否需要导入额外的密钥或是否要求启动内核有一个已经被系统厂商信任的密钥签名(例如跟微软达成合作)。一些发行版不支持UEFI或安全启动,但是提供了替代品来确保防篡改或防破坏引导环境([Qubes-OS][3]使用Anti Evil Maid,前面提到的)。如果一个发行版不支持安全引导和没有机制防止引导级别攻击,还是看看别的吧。
|
检查发行版是否支持 UEFI 和安全引导。查明它是否需要导入额外的密钥或是否要求启动内核有一个已经被系统厂商信任的密钥签名(例如跟微软达成合作)。一些发行版不支持 UEFI 或安全启动,但是提供了替代品来确保防篡改(tamper-proof)或防破坏(tamper-evident)引导环境([Qubes-OS][3] 使用 Anti Evil Maid,前面提到的)。如果一个发行版不支持安全引导,也没有防止引导级别攻击的机制,还是看看别的吧。
|
||||||
|
|
||||||
#### 全磁盘加密
|
#### 全磁盘加密
|
||||||
|
|
||||||
全磁盘加密是保护静止数据要求,大多数发行版都支持。作为一个选择方案,系统自加密硬件驱动也许用来(通常通过主板TPM芯片实现)和提供类似安全级别加更快的选项,但是花费也更高。
|
全磁盘加密是保护静止数据的要求,大多数发行版都支持。作为一个选择方案,带有自加密硬盘的系统也可以用(通常通过主板 TPM 芯片实现),并提供了类似安全级别而且操作更快,但是花费也更高。
|
||||||
|
|
||||||
## 发行版安装指南
|
## 发行版安装指南
|
||||||
|
|
||||||
@ -148,7 +161,7 @@ UEFI配置模式密码要确保密码强度。注意,很多厂商默默地限
|
|||||||
|
|
||||||
#### Root,用户密码和管理组
|
#### Root,用户密码和管理组
|
||||||
|
|
||||||
我们建议,你的root密码和你的LUKS加密使用同样的密码(除非你共享你的笔记本给可信的人,他应该能解锁设备,但是不应该能成为root用户)。如果你是笔记本电脑的唯一用户,那么你的root密码与你的LUKS密码不同是没有意义的安全优势。通常,你可以使用同样的密码在你的UEFI管理,磁盘加密,和root登陆 -- 知道这些任意一个都会让攻击者完全控制您的系统,在单用户工作站上使这些密码不同,没有任何安全益处。
|
我们建议,你的root密码和你的LUKS加密使用同样的密码(除非你共享你的笔记本给可信的人,它应该能解锁设备,但是不应该能成为root用户)。如果你是笔记本电脑的唯一用户,那么你的root密码与你的LUKS密码不同是没有意义的安全优势。通常,你可以使用同样的密码在你的UEFI管理,磁盘加密,和root登陆 -- 知道这些任意一个都会让攻击者完全控制您的系统,在单用户工作站上使这些密码不同,没有任何安全益处。
|
||||||
|
|
||||||
你应该有一个不同的,但同样强健的常规用户帐户密码用来每天工作。这个用户应该是管理组用户(例如`wheel`或者类似,根据分支),允许你执行`sudo`来提升权限。
|
你应该有一个不同的,但同样强健的常规用户帐户密码用来每天工作。这个用户应该是管理组用户(例如`wheel`或者类似,根据分支),允许你执行`sudo`来提升权限。
|
||||||
|
|
||||||
@ -167,7 +180,7 @@ UEFI配置模式密码要确保密码强度。注意,很多厂商默默地限
|
|||||||
- 用户登陆和sudo
|
- 用户登陆和sudo
|
||||||
- 密码管理器的主密码
|
- 密码管理器的主密码
|
||||||
|
|
||||||
很明显,如果有一个令人信服的理由他们所有可以不同。
|
很明显,如果有一个令人信服的理由它们所有可以不同。
|
||||||
|
|
||||||
## 安装后的加强
|
## 安装后的加强
|
||||||
|
|
||||||
@ -230,7 +243,7 @@ UEFI配置模式密码要确保密码强度。注意,很多厂商默默地限
|
|||||||
|
|
||||||
#### Rkhunter和IDS
|
#### Rkhunter和IDS
|
||||||
|
|
||||||
安装`rkhunter`和一个入侵检测系统(IDS)像`aide`或者`tripwire`将不会有用,除非你确实理解他们如何工作采取必要的步骤来设置正确(例如,保证数据库在额外的媒介,从可信的环境运行检测,记住执行系统更新和配置更改后要刷新数据库散列,等等)。如果你不愿在你的工作站执行这些步骤调整你如何工作,这些工具将带来麻烦没有任何实在的安全益处。
|
安装`rkhunter`和一个入侵检测系统(IDS)像`aide`或者`tripwire`将不会有用,除非你确实理解它们如何工作采取必要的步骤来设置正确(例如,保证数据库在额外的媒介,从可信的环境运行检测,记住执行系统更新和配置更改后要刷新数据库散列,等等)。如果你不愿在你的工作站执行这些步骤调整你如何工作,这些工具将带来麻烦没有任何实在的安全益处。
|
||||||
|
|
||||||
我们强烈建议你安装`rkhunter`并每晚运行它。它相当易于学习和使用,虽然它不会阻止一个复杂的攻击者,它也能帮助你捕获你自己的错误。
|
我们强烈建议你安装`rkhunter`并每晚运行它。它相当易于学习和使用,虽然它不会阻止一个复杂的攻击者,它也能帮助你捕获你自己的错误。
|
||||||
|
|
||||||
@ -265,19 +278,19 @@ UEFI配置模式密码要确保密码强度。注意,很多厂商默默地限
|
|||||||
|
|
||||||
### 浏览
|
### 浏览
|
||||||
|
|
||||||
毫无疑问,在你的系统上web浏览器将是最大、最容易暴露的攻击层面的软件。它是专门下载和执行不可信,恶意代码的一个工具。它试图采用沙箱和代码卫生处理等多种机制保护你免受这种危险,但是在之前多个场合他们都被击败了。你应该学到浏览网站是最不安全的活动在你参与的任何一天。
|
毫无疑问,在你的系统上web浏览器将是最大、最容易暴露的攻击层面的软件。它是专门下载和执行不可信,恶意代码的一个工具。它试图采用沙箱和代码卫生处理等多种机制保护你免受这种危险,但是在之前多个场合它们都被击败了。你应该学到浏览网站是最不安全的活动在你参与的任何一天。
|
||||||
|
|
||||||
有几种方法可以减少浏览器的影响,但真正有效的方法需要你操作您的工作站将发生显著的变化。
|
有几种方法可以减少浏览器的影响,但真正有效的方法需要你操作您的工作站将发生显著的变化。
|
||||||
|
|
||||||
#### 1: 实用两个不同的浏览器
|
#### 1: 实用两个不同的浏览器
|
||||||
|
|
||||||
这很容易做到,但是只有很少的安全效益。并不是所有浏览器都妥协给攻击者完全自由访问您的系统 -- 有时他们只能允许一个读取本地浏览器存储,窃取其他标签的活动会话,捕获输入浏览器,例如,实用两个不同的浏览器,一个用在工作/高安全站点,另一个用在其他,有助于防止攻击者请求整个饼干罐的小妥协。主要的不便是两个不同的浏览器消耗内存大量。
|
这很容易做到,但是只有很少的安全效益。并不是所有浏览器都妥协给攻击者完全自由访问您的系统 -- 有时它们只能允许一个读取本地浏览器存储,窃取其它标签的活动会话,捕获输入浏览器,例如,实用两个不同的浏览器,一个用在工作/高安全站点,另一个用在其它,有助于防止攻击者请求整个饼干罐的小妥协。主要的不便是两个不同的浏览器消耗内存大量。
|
||||||
|
|
||||||
我们建议:
|
我们建议:
|
||||||
|
|
||||||
##### 火狐用来工作和高安全站点
|
##### 火狐用来工作和高安全站点
|
||||||
|
|
||||||
使用火狐登陆工作有关的站点,应该额外关心的是确保数据如cookies,会话,登陆信息,打键次数等等,明显不应该落入攻击者手中。除了少数的几个网站,你不应该用这个浏览器访问其他网站。
|
使用火狐登陆工作有关的站点,应该额外关心的是确保数据如cookies,会话,登陆信息,打键次数等等,明显不应该落入攻击者手中。除了少数的几个网站,你不应该用这个浏览器访问其它网站。
|
||||||
|
|
||||||
你应该安装下面的火狐扩展:
|
你应该安装下面的火狐扩展:
|
||||||
|
|
||||||
@ -285,25 +298,25 @@ UEFI配置模式密码要确保密码强度。注意,很多厂商默默地限
|
|||||||
- NoScript阻止活动内容加载,除非在用户白名单里的域名。跟你默认浏览器比它使用起来很麻烦(可是提供了真正好的安全效益),所以我们建议只在开启了它的浏览器上访问与工作相关的网站。
|
- NoScript阻止活动内容加载,除非在用户白名单里的域名。跟你默认浏览器比它使用起来很麻烦(可是提供了真正好的安全效益),所以我们建议只在开启了它的浏览器上访问与工作相关的网站。
|
||||||
|
|
||||||
- [ ] Privacy Badger _(关键)_
|
- [ ] Privacy Badger _(关键)_
|
||||||
- EFF的Privacy Badger将在加载时预防大多数外部追踪器和广告平台,在这些追踪站点影响你的浏览器时将有助于避免妥协(追踪着和广告站点通常会成为攻击者的目标,因为他们会迅速影响世界各地成千上万的系统)。
|
- EFF的Privacy Badger将在加载时预防大多数外部追踪器和广告平台,在这些追踪站点影响你的浏览器时将有助于避免妥协(追踪着和广告站点通常会成为攻击者的目标,因为它们会迅速影响世界各地成千上万的系统)。
|
||||||
|
|
||||||
- [ ] HTTPS Everywhere _(关键)_
|
- [ ] HTTPS Everywhere _(关键)_
|
||||||
- 这个EFF开发的扩展将确保你访问的大多数站点都在安全连接上,甚至你点击的连接使用的是http://(有效的避免大多数的攻击,例如[SSL-strip][7])。
|
- 这个EFF开发的扩展将确保你访问的大多数站点都在安全连接上,甚至你点击的连接使用的是http://(有效的避免大多数的攻击,例如[SSL-strip][7])。
|
||||||
|
|
||||||
- [ ] Certificate Patrol _(中等)_
|
- [ ] Certificate Patrol _(中等)_
|
||||||
- 如果你正在访问的站点最近改变了他们的TLS证书 -- 特别是如果不是接近失效期或者现在使用不同的证书颁发机构,这个工具将会警告你。它有助于警告你是否有人正尝试中间人攻击你的连接,但是产生很多无害的假的类似情况。
|
- 如果你正在访问的站点最近改变了它们的TLS证书 -- 特别是如果不是接近失效期或者现在使用不同的证书颁发机构,这个工具将会警告你。它有助于警告你是否有人正尝试中间人攻击你的连接,但是产生很多无害的假的类似情况。
|
||||||
|
|
||||||
你应该让火狐成为你的默认打开连接的浏览器,因为NoScript将在加载或者执行时阻止大多数活动内容。
|
你应该让火狐成为你的默认打开连接的浏览器,因为NoScript将在加载或者执行时阻止大多数活动内容。
|
||||||
|
|
||||||
##### 其他一切都用Chrome/Chromium
|
##### 其它一切都用Chrome/Chromium
|
||||||
|
|
||||||
Chromium开发者在增加很多很好的安全特性方面比火狐强(至少[在Linux上][6])),例如seccomp沙箱,内核用户名空间等等,这担当一个你访问网站和你其他系统间额外的隔离层。Chromium是流开源项目,Chrome是Google所有的基于它构建的包(使用它输入时要非常谨慎任,何你不想让谷歌知道的事情都不要使用它)。
|
Chromium开发者在增加很多很好的安全特性方面比火狐强(至少[在Linux上][6])),例如seccomp沙箱,内核用户名空间等等,这担当一个你访问网站和你其它系统间额外的隔离层。Chromium是流开源项目,Chrome是Google所有的基于它构建的包(使用它输入时要非常谨慎任,何你不想让谷歌知道的事情都不要使用它)。
|
||||||
|
|
||||||
有人推荐你在Chrome上也安装**Privacy Badger**和**HTTPS Everywhere**扩展,然后给他一个不同的主题,从火狐指出这是你浏览器“不信任的站点”。
|
有人推荐你在Chrome上也安装**Privacy Badger**和**HTTPS Everywhere**扩展,然后给它一个不同的主题,从火狐指出这是你浏览器“不信任的站点”。
|
||||||
|
|
||||||
#### 2: 使用两个不同浏览器,一个在专用的虚拟机里
|
#### 2: 使用两个不同浏览器,一个在专用的虚拟机里
|
||||||
|
|
||||||
这有点像上面建议的做法,除了您将添加一个额外的步骤,通过快速访问协议运行专用虚拟机内部Chrome,允许你共享剪贴板和转发声音事件(如,Spice或RDP)。这将在不可信的浏览器和你其他的工作环境之间添加一个优秀的隔离层,确保攻击者完全危害你的浏览器将不得不另外打破VM隔离层,以达到系统的其余部分。
|
这有点像上面建议的做法,除了您将添加一个额外的步骤,通过快速访问协议运行专用虚拟机内部Chrome,允许你共享剪贴板和转发声音事件(如,Spice或RDP)。这将在不可信的浏览器和你其它的工作环境之间添加一个优秀的隔离层,确保攻击者完全危害你的浏览器将不得不另外打破VM隔离层,以达到系统的其余部分。
|
||||||
|
|
||||||
这是一个出奇可行的结构,但是需要大量的RAM和高速处理器可以处理增加的负载。这还需要一个重要的奉献的管理员需要相应地调整自己的工作实践。
|
这是一个出奇可行的结构,但是需要大量的RAM和高速处理器可以处理增加的负载。这还需要一个重要的奉献的管理员需要相应地调整自己的工作实践。
|
||||||
|
|
||||||
@ -322,7 +335,7 @@ Chromium开发者在增加很多很好的安全特性方面比火狐强(至少
|
|||||||
|
|
||||||
#### 注意事项
|
#### 注意事项
|
||||||
|
|
||||||
使用好的,唯一的密码对你的团队成员来说应该是非常关键的需求。证书盗取一直在发生 — 要么通过中间计算机,盗取数据库备份,远程站点利用,要么任何其他的打算。证书从不应该通过站点被重用,尤其是关键的应用。
|
使用好的,唯一的密码对你的团队成员来说应该是非常关键的需求。证书盗取一直在发生 — 要么通过中间计算机,盗取数据库备份,远程站点利用,要么任何其它的打算。证书从不应该通过站点被重用,尤其是关键的应用。
|
||||||
|
|
||||||
|
|
||||||
##### 浏览器中的密码管理器
|
##### 浏览器中的密码管理器
|
||||||
@ -337,7 +350,7 @@ Chromium开发者在增加很多很好的安全特性方面比火狐强(至少
|
|||||||
|
|
||||||
##### 独立的密码管理器
|
##### 独立的密码管理器
|
||||||
|
|
||||||
任何密码管理器都有一个主要的缺点,与浏览器结合,事实上是应用的一部分,这样最有可能被入侵者攻击。如果这让你不舒服(应该这样),你应该选择两个不同的密码管理器 -- 一个集成在浏览器中用来保存网站密码,一个作为独立运行的应用。后者可用于存储高风险凭证如root密码,数据库密码,其他shell账户凭证等。
|
任何密码管理器都有一个主要的缺点,与浏览器结合,事实上是应用的一部分,这样最有可能被入侵者攻击。如果这让你不舒服(应该这样),你应该选择两个不同的密码管理器 -- 一个集成在浏览器中用来保存网站密码,一个作为独立运行的应用。后者可用于存储高风险凭证如root密码,数据库密码,其它shell账户凭证等。
|
||||||
|
|
||||||
有这样的工具可以特别有效的在团腿成员间共享超级用户的凭据(服务器根密码,ILO密码,数据库管理密码,引导装载程序密码等等)。
|
有这样的工具可以特别有效的在团腿成员间共享超级用户的凭据(服务器根密码,ILO密码,数据库管理密码,引导装载程序密码等等)。
|
||||||
|
|
||||||
@ -345,12 +358,12 @@ Chromium开发者在增加很多很好的安全特性方面比火狐强(至少
|
|||||||
|
|
||||||
- [KeePassX][8],2版中改善了团队共享
|
- [KeePassX][8],2版中改善了团队共享
|
||||||
- [Pass][9],它使用了文本文件和PGP并与git结合
|
- [Pass][9],它使用了文本文件和PGP并与git结合
|
||||||
- [Django-Pstore][10],他是用GPG在管理员之间共享凭据
|
- [Django-Pstore][10],它是用GPG在管理员之间共享凭据
|
||||||
- [Hiera-Eyaml][11],如果你已经在你的平台中使用了Puppet,可以便捷的追踪你的服务器/服务凭证,像你的Hiera加密数据的一部分。
|
- [Hiera-Eyaml][11],如果你已经在你的平台中使用了Puppet,可以便捷的追踪你的服务器/服务凭证,像你的Hiera加密数据的一部分。
|
||||||
|
|
||||||
### 加固SSH和PGP私钥
|
### 加固SSH和PGP私钥
|
||||||
|
|
||||||
个人加密密钥,包括SSH和PGP私钥,都是你工作站中最重要的物品 -- 攻击将在获取到感兴趣的东西,这将允许他们进一步攻击你的平台或冒充你为其他管理员。你应该采取额外的步骤,确保你的私钥免遭盗窃。
|
个人加密密钥,包括SSH和PGP私钥,都是你工作站中最重要的物品 -- 攻击将在获取到感兴趣的东西,这将允许它们进一步攻击你的平台或冒充你为其它管理员。你应该采取额外的步骤,确保你的私钥免遭盗窃。
|
||||||
|
|
||||||
#### 清单
|
#### 清单
|
||||||
|
|
||||||
@ -366,7 +379,7 @@ Chromium开发者在增加很多很好的安全特性方面比火狐强(至少
|
|||||||
- [Kernel Concepts][12],在这里可以采购支持OpenPGP的智能卡和USB读取器,你应该需要一个。
|
- [Kernel Concepts][12],在这里可以采购支持OpenPGP的智能卡和USB读取器,你应该需要一个。
|
||||||
- [Yubikey NEO][13],这里提供OpenPGP功能的智能卡还提供很多很酷的特性(U2F, PIV, HOTP等等)。
|
- [Yubikey NEO][13],这里提供OpenPGP功能的智能卡还提供很多很酷的特性(U2F, PIV, HOTP等等)。
|
||||||
|
|
||||||
确保PGP主密码没有存储在工作平台也很重要,只有子密码在使用。主密钥只有在登陆其他的密钥和创建子密钥时使用 — 不经常发生这种操作。你可以照着[Debian的子密钥][14]向导来学习如何移动你的主密钥到移动存储和创建子密钥。
|
确保PGP主密码没有存储在工作平台也很重要,只有子密码在使用。主密钥只有在登陆其它的密钥和创建子密钥时使用 — 不经常发生这种操作。你可以照着[Debian的子密钥][14]向导来学习如何移动你的主密钥到移动存储和创建子密钥。
|
||||||
|
|
||||||
你应该配置你的gnupg代理作为ssh代理然后使用基于智能卡PGP认证密钥作为你的ssh私钥。我们公布了一个细节向导如何使用智能卡读取器或Yubikey NEO。
|
你应该配置你的gnupg代理作为ssh代理然后使用基于智能卡PGP认证密钥作为你的ssh私钥。我们公布了一个细节向导如何使用智能卡读取器或Yubikey NEO。
|
||||||
|
|
||||||
@ -408,13 +421,13 @@ SELinux是一个强制访问控制(MAC)为POSIX许可核心功能扩展。
|
|||||||
|
|
||||||
semange permissive -a gpg_pinentry_t
|
semange permissive -a gpg_pinentry_t
|
||||||
|
|
||||||
这将允许你使用应用然后收集AVC的其他部分,你可以连同`audit2allow`写一个本地策略。一旦完成你就不会看到新的AVC的拒绝,你可以从许可中删除程序,运行:
|
这将允许你使用应用然后收集AVC的其它部分,你可以连同`audit2allow`写一个本地策略。一旦完成你就不会看到新的AVC的拒绝,你可以从许可中删除程序,运行:
|
||||||
|
|
||||||
semanage permissive -d gpg_pinentry_t
|
semanage permissive -d gpg_pinentry_t
|
||||||
|
|
||||||
##### 用SELinux的用户staff_r,使用你的工作站
|
##### 用SELinux的用户staff_r,使用你的工作站
|
||||||
|
|
||||||
SELinux附带的本地角色实现基于角色的用户帐户禁止或授予某些特权。作为一个管理员,你应该使用`staff_r`角色,这可以限制访问很多配置和其他安全敏感文件,除非你先执行`sudo`。
|
SELinux附带的本地角色实现基于角色的用户帐户禁止或授予某些特权。作为一个管理员,你应该使用`staff_r`角色,这可以限制访问很多配置和其它安全敏感文件,除非你先执行`sudo`。
|
||||||
|
|
||||||
默认,用户作为`unconfined_r`被创建,你可以运行大多数应用,没有任何(或只有一点)SELinux约束。转换你的用户到`staff_r`角色,运行下面的命令:
|
默认,用户作为`unconfined_r`被创建,你可以运行大多数应用,没有任何(或只有一点)SELinux约束。转换你的用户到`staff_r`角色,运行下面的命令:
|
||||||
|
|
||||||
@ -460,7 +473,7 @@ IT安全的世界是一个没有底的兔子洞。如果你想深入,或者找
|
|||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
via: https://github.com/lfit/itpol/blob/master/linux-workstation-security.md#linux-workstation-security-list
|
via: https://github.com/lfit/itpol/blob/bbc17d8c69cb8eee07ec41f8fbf8ba32fdb4301b/linux-workstation-security.md
|
||||||
|
|
||||||
作者:[mricon][a]
|
作者:[mricon][a]
|
||||||
译者:[wyangsun](https://github.com/wyangsun)
|
译者:[wyangsun](https://github.com/wyangsun)
|
||||||
@ -485,3 +498,6 @@ via: https://github.com/lfit/itpol/blob/master/linux-workstation-security.md#lin
|
|||||||
[13]: https://www.yubico.com/products/yubikey-hardware/yubikey-neo/
|
[13]: https://www.yubico.com/products/yubikey-hardware/yubikey-neo/
|
||||||
[14]: https://wiki.debian.org/Subkeys
|
[14]: https://wiki.debian.org/Subkeys
|
||||||
[15]: https://github.com/lfit/ssh-gpg-smartcard-config
|
[15]: https://github.com/lfit/ssh-gpg-smartcard-config
|
||||||
|
[16]: http://www.pavelkogan.com/2014/05/23/luks-full-disk-encryption/
|
||||||
|
[17]: https://en.wikipedia.org/wiki/Cold_boot_attack
|
||||||
|
[18]: http://www.linux.com/news/featured-blogs/167-amanda-mcpherson/850607-linux-foundation-sysadmins-open-source-their-it-policies
|
Loading…
Reference in New Issue
Block a user