我正在研究如何在 ubuntu 或 debian 中为内部网构建 lamp 服务器。我所见过的几乎所有东西都建议从源代码构建,chrooting 所有组件等以确保安全性,并且所有东西都是最新版本。对于特定软件包(apache、mysql、php),我是否最好只使用 debian/ubuntu 软件包?客户对微软产品非常痴迷,这是该公司首次大规模使用 linux,因此我希望能够向管理层展示一些非常可靠的产品。
答案1
我认为只需安装发行版中的默认软件包即可。如果要 chroot 您的 apache 安装,可以安装 mod_chroot 软件包。在 Debian/Ubuntu 中,这将是libapache2-mod-chroot
。
至于保持最新,只需确保使用受支持的操作系统版本(例如 Debian Lenny 或 Ubuntu Hardy LTS),在您的 sources.list 中激活安全存储库并定期更新您的软件包。
如果您的客户是 Microsoft 的粉丝,他肯定不习惯从源代码构建东西,使用已打包的产品也不应该让他感到震惊。如果您从源代码构建,只需知道您必须自己遵循安全建议,并在每次发生这种情况时修补和重建软件,而不仅仅是升级软件包。
我知道周围有很多“安全”狂人,他们说你应该从源代码构建一切,把一切都放在 chroot 中,然后把你的电脑锁在银行保险箱里。我认为这样做的主要问题是,它不一定能提高你的安全性,但肯定会使管理变得非常困难(上一段已经解释了原因),最终它会比使用标准软件包并通过完善的配置使它们保持最新状态更不安全。
答案2
使用发行版中的软件包几乎总是更好的。
- 它们很容易用标准工具(apt 等)进行更新。甚至可以自动完成。
- 这些包裹已经过测试;不太可能以某种奇怪的方式损坏。
- 所有依赖关系都会自动为您处理
- 记录起来更容易,这样当你继续前进时其他人就可以接手。“标准 Ubuntu apache 软件包”与一页又一页地记录你在编译时选择了哪些选项、所有内容安装在哪里等...
- 客户可以理解如何管理基础知识。“要更新,请定期运行这两个命令”,而不是“要更新操作系统,请定期运行这些命令;要了解有关 httpd 更新的信息,请注册此邮件列表;要更新 httpd,请从此站点下载最新文件并运行这些命令”。