我在 Linux 上运行 Apache,并使用 OpenSSH 为某些客户提供 SFTP 访问权限,以便他们可以上传页面并查看各自的站点日志(访问和错误)。我正在使用 OpenSSH 中的新功能来 chroot 他们的 SFTP 访问权限,到目前为止一切顺利。
我的问题是,在 error_log 上,每个“文件未找到...”的引用都是使用 OS 文件系统路径而不是“Web”路径给出的。我宁愿在错误日志中使用 Web 路径,以免泄露 OS 路径。由于我已经对用户进行了 chroot,因此我不想泄露他们的文件在 OS 上的实际位置...
是否可以通过任何指令来改变此行为?我尝试寻找它,但什么也没找到 :(
谢谢,克拉科尼亚
答案1
我认为这进入了通过隐蔽性实现安全。如果您认为向本地用户透露路径是一种风险,我建议重新考虑用户访问系统的风险是否大于他们访问的理由。
值得注意的是,由于应用程序错误,Apache 通常会泄露比文件系统路径更危险的数据。如果您坚持要混淆日志中的路径,Apache 中没有对此的本机支持。不过,您可以通过脚本或可能使用 sed 来管道 Apache 日志来实现此性能管道日志。
如果您想进一步加强本地系统以抵御本地用户的攻击,有多种更切实可行的方法可能会有所帮助。以下列表侧重于本地强化,并不全面,但应该是一个有用的起点。
- 从大多数文件中删除 SUID 位
- 对所有人都可写入的任何文件或目录的审核。
- 删除代码编译工具。
- 彻底删除所有与系统功能无关的软件,包括用户空间工具。
- 配置数据包过滤以将外部访问限制为仅适合系统角色和操作的特定目的的访问。
- 启用和配置SELinux
- 应用并配置扩展文件属性政策
- 使用文件系统 ACL进一步完善对本地系统数据的访问
虽然自 2008 年以来没有发布,但一些政策在巴士底Linux还为强化 Linux 服务器提供了一般基准。
其中许多方法将使系统更难使用和管理,这可能会让拥有 shell 访问权限的多用户系统用户感到沮丧。不过,如果安全性是绝对优先考虑的事项,那么列出的方法将使您的系统比普通的多用户系统更加坚固。
答案2
你必须改变日志格式用于用户的访问日志。变量%U
包含请求的 URL 路径,不包括任何查询字符串,这可能就是您要查找的内容。