终极 Lighttpd 网络服务器安全
到目前为止,我已经部署了超过 35 台专用服务器和 VPS 服务器,这些服务器在 Debian Linux、RHEL 和 Fedora Core Linux 下运行 lighttpd Web 服务器。您读到某某博客或网站被黑客入侵(读作破解)的情况非常常见。您将如何防止此类问题?最终的解决方案或答案是使用 chroot() 安全功能 - 它允许您构建难以破解的 Web 服务器。将您的 lighttpd 放入 chrooted jail 中。但是,Linux 上的 chroot 是什么?
Linux 或 Unix OS 上的 chroot 是更改根目录的操作。它仅影响当前进程及其子进程。如果您的默认文档根目录是 /home/lighttpd,则普通用户可以访问 /etc、/sbin 或 /bin 目录中的文件。这允许攻击者通过 /tmp 中的 Web 服务器安装程序/后门。几乎所有基于 Web 的破解攻击/尝试都需要 shell 访问 - /bin/sh 或 /bin/bash 和编译器集合等。
Lighttpd 安全提示
- 以普通用户身份运行 lighttpd,这样您可以在进入后台时立即放弃 root 访问权限/权限。这现在几乎是默认设置。
- 不要向任何人授予使用 sudo 的root 访问权限
- 不要向所有人授予 shell 访问权限(例如 FTP 和电子邮件用户)。
- 默认防火墙策略 – 关闭所有门,打开所需的窗口,即仅打开或过滤所需的端口
- 在 chrooted jail 中的服务中运行 lighttpd
- 仅运行所需的网络服务器或服务
- 使用 logwatch 或其他自动化软件监控 lighttpd 和系统日志
- 最重要的是定期备份
今天我要写的是 Lighttpd 提供的最大的安全功能 – chroot() jail。
在 chrooted jail 中运行 lighttpd 网络服务器有其优点和缺点。
- 最大的优点是提高了安全性(请记住 99% 的脚本小子和其他攻击需要访问 Web 服务器文档根目录之外的内容)。
- 缺点是难以维护和设置 chrooted 网络服务器。
使用 chrooting,您可以使用文件系统的一个特殊部分(也称为 jail)。一旦 chroot 调用应用程序,就没有人可以访问 jail 之外的任何内容。例如,请考虑以下设置:
/
/bin
/usr
/home
/etc/
/webroot
|-/tmp
|-/usr
|-/home/lighttpd
/tmp
/lib
...
...
当您启动 lighttpd 网络服务器时,目录 /weboot 将成为 lighttpd 的 / (根) 目录。只有 root 用户才能逃脱:
=> 您
=> 您的网络服务器用户
=> 攻击者无法访问实际文件系统和所有其他二进制文件。
这个想法很简单,如果攻击者设法通过 lighttpd web 服务器进入,他将无法访问任何东西,因为他会被关进监狱。他无法逃到真正的服务器(文件系统)。
指数
本系列迄今为止的文章...