6.3.3 建立一个安全的目录结构
Apache服务器包括以下四个主要目录。
- ServerRoot:保存配置文件(conf子目录)、二进制文件和其他服务器配置文件。
- DocumentRoot:保存Web站点的内容,包括HTML文件和图片等。
- ScripAlias:保存CGI脚本。
- Customlog和Errorlog:保存访问日志和错误日志。
建议设定这样一个目录结构,以上四个主要目录相互独立并且不存在父子逻辑关系。
提示 ServerRoot目录应该被配置为只能由root用户访问;DocumentRoot应该能够被管理Web站点内容的用户访问和使用Apache服务器的Apache用户和Apache用户组访问;ScriptAlias目录应该只能被CGI开发人员和Apache用户访问;只有root用户可以访问日志目录。
下面是一个安全目录结构,如图6-3所示。
图6-3 安全目录结构
这样的目录结构是比较安全的,因为目录之间是独立的,某个目录的权限错误不会影响到其他目录。
6.3.4 为Apache使用专门的用户和用户组
按照最小特权原则,需要给Apache分配一个合适的权限,让其能够完成Web服务。
提示 最小特权原则是系统安全中最基本的原则之一,它限制了使用者对系统及数据进行存取所需要的最小权限,既保证了用户能够完成所操作的任务,同时也确保非法用户或异常操作所造成的损失最小。
必须保证Apache使用一个专门的用户和用户组,不要使用系统预定义的账号,比如nobody用户和nogroup用户组。
因为只有root用户可以运行Apache,DocumentRoot应该能够被管理Web站点内容的用户访问和使用Apache服务器的Apache用户和Apache用户组访问。所以,如果希望"cao"用户在Web站点发布内容,并且可以以httpd身份运行Apache服务器,通常可以这样:
groupadd webteam
usermod -G webteam cao
chown -R httpd.webteam /www/html
chmod -R 2570 /www/htdocs
只有root用户访问日志目录,这个目录的推荐权限:
chown -R root.root /etc/logs
chmod -R 700 /etc/logs