我想知道是否可以从只读磁盘运行 Linux 服务器,特别是 CentOS 5.4。
我们的系统有许多 Linux 机器,每台机器都有自己的磁盘,并安装了操作系统。目前,所有内容都已启用读/写。我们从这些磁盘启动,但在通过 NFS 共享的一些外部磁盘上运行我们开发的所有软件。
我们希望能够确保没有任何事情曾经写入带有操作系统的内部磁盘,仅写入通过 NFS 共享的外部驱动器。我想我们可以通过编辑 /etc/fstab 文件并将驱动器安装为只读来管理这个问题。
因此,如果我们拍摄内部磁盘的映像,然后启动系统,运行我们的软件(只会接触外部磁盘),然后关闭系统并拍摄内部磁盘的另一个映像,那么就不会出现任何字节差异。
操作系统本身会想要写入自己的日志文件等,因此我看不出将驱动器安装为只读会导致操作系统正常运行 - 或者会吗?
我只能认为某种网络启动可以实现这一点,但添加额外的机器作为 DHCP 和 TFTP 服务器的可能性为零。
任何帮助或想法都将非常感激!:)
答案1
是的,可以使用只读媒体运行 Linux 服务器。请参阅 Devil Linux;这些服务器使用 CD 光盘运行。
您可以使用 RAM 磁盘为日志文件等内容创建可写空间。不过空间会非常紧张。除非非常特殊的情况,否则我不建议这样做。
在大多数情况下,您可以将该过程混合起来;大多数服务器是只读的,但内部驱动器或 USB 驱动器上有一个用于日志文件的暂存空间。
您也可以使用可启动的 Linux 路由器执行此操作,因为我见过它们是从只读软盘启动的。
另一个缺点是更新。我猜,即使有人破解了某些漏洞,他们也无法造成太大的损害,因为他们无法更改系统文件或类似的东西。定期更新主映像或获取最新的 ISO 映像,并使用它作为更新进行启动;对于我曾尝试过的 Devil Linux 服务器,我有一个 ISO 映像可以启动,然后使用 USB 磁盘提取该服务器的配置特定文件。或者,您可以编辑特定设置所需的文件,并将它们与 CD 的 /etc 目录重新集成,然后重新刻录光盘。
无论如何,是的,这是可以做到的,但这是一个维护麻烦,并且只有在非常特殊的情况下才会考虑。
答案2
"I'm wondering if it is possible to run a Linux server from a read only disk, specifically CentOS 5.4."
不,服务器需要一些地方来写入数据。日志就是一个很好的例子。
但是,您可以以某种方式设置分区,使系统与其余存储分开。
例如,我通常对桌面进行分区,使其拥有一个 /home/ 分区用于存放用户数据,一个根分区 / 用于存放其余数据,然后对任何其他驱动器进行自行分区,并在安装后将其添加到 fstab 中,以将它们挂载到它们所属的位置。
答案3
我猜这是可能的 - 我想你应该仔细看看 Live CD,并制作一个自定义的 Live CD。
答案4
不要从硬盘启动系统,而是从硬件写保护的 Live USB 闪存驱动器启动系统。Fedora 中有一个实用程序 - livecd-iso-to-disk - 它也适用于 Centos LiveCD。您可以使用“覆盖”功能轻松自定义它,然后打开写保护。
可以对系统磁盘进行更改但不会在重启后保留 - 它们仅存在于内存中。
仅将分区安装为只读对安全性没有多大帮助,因为当系统受到威胁时,破解者要做的第一件事就是将其重新安装为读写。只有物理安全才能确保磁盘上的数据不会被更改。
但是您永远不会收到此系统的安全更新,因此您需要非常小心。