除非你正在使用自加密硬盘,配置你的安装程序完整地加密所有存储你的数据与系统文件的磁盘很重要。简单地通过自动挂载的 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 邮件到你确实能读取的邮箱,否则你也许错过了重要的系统通知和报告:
#Personwho should get root's mail
root: bob@example.com