我既是公司的高级开发人员又是系统管理员,所以我正在努力处理这两种活动的需求。
我已经设置了我们的 apache 框,它处理 30-50 个域 atm(并且希望会变得更大)并托管生产和开发站点,具有以下目录结构:
domains/
domains/domain.ext/ #FTPS chroot for user domain.ext
domains/domain.ext/public #the DocumentRoot of http://domain.ext
domains/domain.ext/logs
domains/domain.ext/subdomains/sub.domain.ext
domains/domain.ext/subdomains/sub.domain.ext/public #DocumentRoot of http://sub.domain.ext
每个 domain.ext Vhost 通过 mpm-itk 以其专用用户和组运行,umask 为 027,日志通过管道 sudo 命令存储,如下所示:
ErrorLog "| /usr/bin/sudo -u nobody -g domain.ext tee -a domains/domain.ext/logs/sub.domain.ext_error.log"
CustomLog "| /usr/bin/sudo -u nobody -g domain.ext tee -a domains/domain.ext/logs/sub.domain.ext_access.log" combined
现在,我已经阅读了很多关于不要让日志离开一个非常受限的目录的内容,但是开发人员经常需要快速查看特定的子域错误日志,我真的不想给他们管理员权限查看 /var/logs。在开发阶段将它们提供给 ftp 帐户非常方便。
您认为这种设置是否可行且足够安全?对我来说,它显然看起来不错,但我担心 3 个安全问题:
-sudo 管道是否足以处理符号链接漏洞?我遗漏了什么?
-log dos:日志在所有域的同一个分区。有数百场演出,但是,如果一个人获得磁盘空间,一切都会崩溃。任何解决方法?短时间的 logrotate 就足够了吗?
- 文件描述符限制:据我所知,Ubuntu Server 上 Apache 的默认限制目前为 8192,这应该足以处理每个子域的 2 个日志文件。是吗?我错过了什么吗?
我希望阅读一些关于此事的想法!