标题是我的要求。我已经阅读了几个小时,并且找到了将 /home 移动到分区和 /tmp 移动到分区的教程。但是没有将所有推荐的目录转换为 Ubuntu Server 的分区。一个教程接近了,但随后忽略了将数据从先前目录复制到新分区的明显必要步骤。
无论如何,经过几个小时,我仍然没有找到涵盖我相当常见情况的教程。
情况:
我在 Prod & Test 服务器(分别为 vps 和 virtualbox)上安装了 Ubuntu Server,做了一些工作。在阅读服务器加固教程时,我意识到最好使用 /boot /home /swapfile /tmp /usr 和 var... /opt? 出于资源管理和安全原因,所有这些都在单独的分区上。
创建上述分区的正确方法是使用 LVM
但是,没有教程讨论/推荐分区大小(按比例,显然不同的系统有不同的可用磁盘空间,我的 / 是 80GB)
此外,有些教程提到了必要的更改/etc/fstab
,有些则没有。
nodev,noexec,nosuid
我的目标是将我的 80GB 单分区设置转换为多个分区,然后使用以下方法保护分区免受常见攻击和利用:/etc/fstab
我可以花几天时间在 virtualbox 中测试和失败不同的配置......或者一些漂亮和/或漂亮的“ Ubuntu Server Partitioning Guru ”可以发布一个易于遵循(中级用户目标受众)的权威指南,如上所述并成为互联网名人许多在 vps 上托管自己项目的用户将永远爱你和崇拜你。:-)
更新
我最初没有发布主服务器强化指南,因为我不希望这篇文章成为对这个人非常彻底的工作的“辩论”。但是,事后看来,我认为这对于希望回答这篇文章的人们会有所帮助,以了解我正在努力实现的实际安全优势。
我认为通常将事物分成不同的文件系统并不能帮助/提高安全性。如果有人在系统运行时闯入系统,无论如何都会安装所有内容,并且将所有内容都放在一个文件系统中没有逻辑上的区别。你研究的材料中给出了哪些理由?
也就是说,它可以提高性能(这些挂载点下的不同文件系统或不同硬件)并缩短灾难恢复所需的时间(例如,如果只有保存 /var 的 SSD 化为乌有,您只需恢复该备份并其余的保持运行)。
您在询问推荐的分区大小:
/
你适合 15-20 GB。我从来不需要更多的服务器(运行 Web 服务器 + 邮件服务器)。swap
我通常放置自己的卷/分区,它与 RAM 大小相同 - 只是为了让磁盘挂起可以工作。人们过去推荐 2xRAM 大小,但现在的 RAM 大小,当你遇到需要大量交换的情况时,无论如何你都会遇到麻烦。您会从大幅减速中注意到它,然后您应该快速增加可用 RAM。/boot
只需要 500 MB,这为 8+ kernel+initrd 版本提供了空间。确保apt autoremove
经常运行,以在内核升级后对其进行修剪。/usr
和/opt
作为目录/
,只是看不到将它们移动到自己的文件系统的好处。/tmp
确实有意义,因为它允许您对全局可写目录进行更多限制——无论是它可以使用多少空间来使用全部可用空间,以及可以做什么存储在那里的文件。该指南建议在挂载文件系统时使用 nodev、nosuid 和 noexec 选项。该指南仅提供“一次性使用”的安装命令。将其转换为 /etc/fstab 中的一行意味着您将nodev,nosuid,noexec
其放入将专用 /tmp 卷安装到的行的第 4 列(选项)中/tmp
。/home
-/var
这通常是“重要”的东西。在我的服务器/home
上几乎是空的,但/var
包含 public_html、日志、数据库等。所以我将/home
其作为目录保存在 上/
,但/var
绝对有自己的卷,并且备份最频繁。完成上述操作后,给它所有剩余空间。然后你问如何进行过渡:
/
,附加新磁盘(VDI 文件,...),使用 pvcreate、lvcreate 和您选择的文件系统(例如 mkfs.ext4)准备它。rsync -xaP <source>/ <destination>/
用于您的每个文件系统。'-x' 选项将阻止 rsync 跨越文件系统边界,即如果你这样做rsync -xaP / /mnt/newroot/
,它也不会复制 /var、/home 甚至所有安装在 /mnt 下的新文件系统。'-a' 将确保权限等将在不修改的情况下被接管,'-P' 显示进度。详情请参阅man rsync
。完成后,编辑
/mnt/newroot/etc/fstab
并确保在适当的挂载点列出所有文件系统。如果您已经做到了这一点,那么这应该不会太难(因为您选择了所有 /dev/mapper/... 名称、文件系统等)。您还必须使用 grub-install 和 update-grub 来使新磁盘可引导,但我不太确定确切的过程。使用虚拟机,您可以轻松试用,如果无法启动,请重新附加旧磁盘并修复它。
作为参考,这里是一个 shell 会话,它为您提供了一些关于分区 + LVM + 格式化 + fstab 主题中的引用的特定命令。请注意,您很可能必须修改它们,例如,如果您的设备不是 /dev/sda,如果您想要不同的文件系统等 - 这只是一个示例。