1 身份鉴别
1.1 Apache账号安全
功能:以专门的用户账号和组运行Apache
(1)配置操作
修改httpd.conf配置文件,添加如下语句:
User apache
Group apachegroup
其中apache、apachegroup分别是为Apache创建的用户和组。
说明:
应为apache的用户和组设置适当的权限。
(2)检查操作指南
检查是否使用非专用账户(如root)运行apache
查看httpd.conf文件,查看是否定义了如下形式的脚本。
User apache
Group apachegroup
检查apache用户和组的权限,该用户不应该具有最高的管理员权限。
2 身份鉴别
2.1 权限管理
功能 :严格设置配置文件和日志文件的权限,防止未授权访问
(1)配置操作
使用命令“chmod 600 /etc/httpd/conf/httpd.conf”设置配置文件为属主可读写,其他用户无权限
使用命令“chmod 644 /var/log/httpd/*.log”设置日志文件为属主可读写,其他用户只读权限。
(2)检查操作
使用命令查看配置文件和日志文件的权限
1. 使用如下命令查看httpd.conf文件权限是否符合要求。
ls -l /etc/httpd/conf/httpd.conf
若为-rw-------即符合要求,否则为不合格。
2. 按照上述方法查看.log格式的文件权限是否符合要求。
若为-rw-r—r—即为符合要求,否则为不合格。
3 安全审计
3.1 安全日志完备性要求
功能 :设备应配置日志功能,对运行错误、用户访问等进行记录,记录内容包括时间,用户使用的IP地址等内容。
(1)配置操作
编辑httpd.conf配置文件,设置日志记录文件、记录内容、记录格式。
LogLevel notice
ErrorLog logs/error_log
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Accept}i\" \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog logs/access_log combined
说明:
ErrorLog指令设置错误日志文件名和位置。错误日志是最重要的日志文件,Apache httpd将在这个文件中存放诊断信息和处理请求中出现的错误。若要将错误日志送到Syslog,则设置:ErrorLog syslog。
CustomLog指令设置访问日志的文件名和位置。访问日志中会记录服务器所处理的所有请求。
LogFormat设置日志格式。LogLevel用于调整记录在错误日志中的信息的详细程度,建议设置为notice。
(2)检查操作
1. 查看logs目录中相关日志文件内容,记录完整。
查看相关日志记录,要求对运行错误、用户访问等进行记录,记录内容包括时间,用户使用的IP地址等内容。
4 入侵防范
4.1 删除默认实例程序
功能:删除缺省安装的无用文件
(1)配置操作
删除缺省HTML文件,位置为apache2/htdocs下的默认目录及文件。
删除缺省的CGI脚本,位置为apache2/cgi-bin目录下的所有文件。
删除Apache说明文件,位置为apache2/manual目录
注:根据安装步骤不同和版本不同,某些目录或文件可能不存在或位置不同。
(2)检查操作
检查如下目录中的文件是否存在。
缺省HTML文件,位置为apache2/htdocs目录。
缺省的CGI脚本,位置为apache2/cgi-bin目录。
Apache说明文件,位置为apache2/manual目录
4.2 错误页面处理
功能:Apache默认的错误页面会泄露系统及应用的敏感信息。因此需要采用自定义错误页面的方式防止信息泄露的问题
(1)配置操作
1. 修改httpd.conf配置文件:
ErrorDocument 400 /custom400.html
ErrorDocument 401 /custom401.html
ErrorDocument 403 /custom403.html
ErrorDocument 404 /custom404.html
ErrorDocument 405 /custom405.html
ErrorDocument 500 /custom500.html
其中,Customxxx.html为要设置的错误页面。需要手动建立相关文件并自定义内容。
重新启动Apache服务。
(2)检查操作
1. 查看httpd.conf文件,查看定义的错误文件
在浏览器中浏览相关文件,检查是否泄漏了敏感信息。
4.3 禁止目录浏览
功能:禁止当Apahce目录没有默认首页时,显示目录文件
(1)配置操作
1. 编辑httpd.conf配置文件,
<Directory "/web">
Options Indexes FollowSymLinks #删掉Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
将Options Indexes FollowSymLinks中的Indexes 去掉,就可以禁止Apache 显示该目录结构。Indexes 的作用就是当该目录下没有 index.html文件时,就显示目录结构。
重新启动Apache服务。
(2)检查操作
当WEB目录中没有默认首页如index.html文件时,不会列出目录内容。
检查httpd.conf文件,查看是否存在Options Indexes FollowSymLinks语句。若存在,则不符合要求。
4.4 隐藏Apache版本号
功能:隐藏Apache的版本号及其它敏感信息
(1)配置操作
修改httpd.conf配置文件:
ServerSignature Off
ServerTokens Prod
(2)检查操作
检查httpd.conf配置文件,检查其是否进行了如下配置。
ServerSignature Off
ServerTokens Prod
4.5 禁止访问外部文件
功能:禁止Apache访问Web目录之外的任何文件
(1)配置操作
编辑httpd.conf配置文件,
1. 设置外部不可访问。
<Directory />
Order Deny,Allow
Deny from all
</Directory>
2. 设置可访问目录,
<Directory /web>
Order Allow,Deny
Allow from all
</Directory>
说明: /web为网站根目录。
(2)检查操作
无法访问Web目录之外的文件。
访问服务器上不属于Web目录的一个文件,结果应无法显示。
5 资源控制
5.1 拒绝服务防范
功能:对于具备字符交互界面的设备,应支持定时账户自动登出。登出后用户需再次登录才能进入系统。超时时间设置应小于10分钟。
(1)配置操作
1. 编辑httpd.conf配置文件,
Timeout 10 KeepAlive On
KeepAliveTimeout 15
AcceptFilter http data
AcceptFilter https data
重新启动Apache服务。
(2)检查操作
检查httpd.conf文件,查看是否进行了如下设置:
Timeout 10 KeepAlive On
KeepAliveTimeout 15
AcceptFilter http data
AcceptFilter https data
6 备份和恢复
定期备份网站文件,数据库文件。