Apache httpd的配置文件备忘录
总览
需要考虑的 Apache httpd 配置列表,以确保安全性。
最好至少设置以下配置。
安全
服务器令牌
仅显示HTTP响应头中的最少信息。
ServerTokens Prod
标题
点击劫持防范措施
Header always append X-Frame-Options SAMEORIGN
追踪功能
XST防范措施 (XST prevention measures)
TraceEnable Off
核心转储目录
用于获取核心(Core)的障碍发生时的操作
CoreDumpDirectory /var/log/core
目录
操作系统「/」访问默认禁止。
<Directory />
Options None
AllowOverride None
Require all denied
</Directory>
限制预期
禁止使用除了「GET」、「POST」和「HEAD」之外的方法
<Directory />
Options None
AllowOverride None
<LimitExpect GET POST HEAD>
Require all denied
</LimitExpect>
</Directory>
错误日志
指定错误日志文件
ErrorLog /var/log/httpd/error.log
日志级别
指定日志级别
LogLevel notice core:info
日志格式
日志格式定义
<IfModule log_config_module>
LogFormat "%h %t \"%r\" %>s %b %D \"%{Host}i\" \"%{User_Agent}i\" %{pid}P %{tid}P %{SSL_PROTOCOL}x %{SSL_CIPHER}x %{SSL_CIPHER_USEKEYSIZE}x" fmt_accesslog
SetEnvIf User-Agent "ELB-HealthChecker.*" fmt_healthchecklog
Customlog /var/log/httpd/httpd_access.log fmt_accesslog env=!fmt_healthchecklog
Customlog /var/log/httpd/httpd_healthchk.log fmt_accesslog env=fmt_healthchecklog
</IfModule>
关闭服务器签名
版本信息的隐藏
ServerSignature Off
SSLHonorCipherOrder: SSL加密算法顺序排序
在HTTPS连接中,将优先采用服务器配置的加密算法以防止降级攻击等。
SSLHonorCipherOrder on
SSL不安全重新协商
SSLInsecureRenegotiation Off
SSL压缩
对于“侧信道攻击”如CRIME或BEAST的防御措施。
SSLCompression Off
SSL协议
使用危险的老旧协议可能会遭受针对老旧协议的降级攻击等风险,因此只需启用新协议。
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
加密套件。
为了保持安全性,我们需要将加密算法限定在强度高的算法中。以下示例是基于最新浏览器保持安全强度的示例。
SSLCipherSuite HIGH:!RC4+RSA:!EXP:!eNULL:!aNULL:!SRP:!PSK:!MD5:!3DES
重写条件 xiě
禁止使用除了「GET」、「POST」和「HEAD」以外的其他方法
RewriteCond %{REQUEST_METHOD} !^(POST|GET|HEAD)$
远程IP标题
发送者控制
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 10.0.0.0/8
<Location />
<RequireAll>
Require all granted
Require no ip 1.2.3.4/32
</RequireAll>
</Locatiion>