我按照这个教程操作http://wiki.debian.org/chroot在 Debian Squeeze AMD64 上,获得一个独立的环境。
这个 chroot 真的安全吗?在其他 chroot 教程中,为应用程序创建 chroot 确实很难,而本教程则显示它在 chroot 中安装了一个小型独立系统,包括一个包管理器。
我的目标是为 nginx + php5-fpm 创建 chroot,以强化 Linux 服务器。这是正确的方法吗?
答案1
Debootstrap 旨在用于包构建和测试。
我不会考虑chroot 安全功能,首先。
如果您的目标是强化托管 Web 服务器 + Web 应用程序的服务器,则其他措施更为合适,即:
- 具有受限挂载选项的专用分离分区/LV:
例如,我将我的 Web 服务器的 DocumentRoot 设置为/srv/www
,这是一个使用限制性选项挂载的专用逻辑卷
/dev/mapper/root_vg-srv_lv on /srv type ext4 (rw,nosuid,nodev,noexec,relatime,seclabel,quota,usrquota,grpquota,data=ordered,usrquota,grpquota)
相关的是nodev, noexec, seclabel
和*quota
。
都是因为开发人员可以通过 git hub/live 存储库上传内容,而我选择不信任他们关于安全权限、所有权、SELinux 标签等方面的内容……
- SELinux/AppArmor(目前 Debian 中可能对后者有更好的支持)
不幸的是,SELinux 在 Debian 中功能不全(尽管 squeeze 比 wheezy 支持得更好,如果我没记错的话)。出于这个原因,我建议使用 AppArmor。它应该比 SELinux 更容易实现。
- ModSecurity
您肯定需要一个 Web 应用程序防火墙。
- IPTables + Fail2Ban
结合这两种工具至少可以降低攻击成功的机会。
- 可能还有很多,这取决于您的应用程序的用途。
您的应用程序是否使用填写表格?它是否管理数据库?用户身份验证?
保护网站不是一件容易的事,我建议阅读很多在揭露任何事情之前在野外。