Apache Web服务器安全
保护Web服务器安全非常重要,这意味着只允许其他人查看部分信息并保护数据并限制访问。
这些是增强Apache Web服务器安全性的常见内容。
1. 隐藏Apache版本和操作系统信息
Apache显示其版本和操作系统名称错误,如下面的屏幕截图所示。
黑客可以使用此信息使用特定版本的服务器或操作系统中的公开漏洞发起攻击。为了防止Apache webserver显示此信息,我们可以通过修改apache配置文件中提供了server signature
选项。默认情况下,它是on
(即打开),将它设置为off
(即关闭)。
vim /etc/httpd/conf/httpd.conf
修改内容为:
ServerSignature Off
ServerTokens Prod
我们还设置了“ServerTokens Prod”,它告诉Web服务器只返回apache并禁止操作系统主要版本和次要版本。修改配置文件后,必须重新启动/重新加载Apache Web服务器才能使其生效。
service httpd restart
修改并重启Apache服务器后,应该看到类似的结果 -
2. 禁用目录列表
如果文档根目录没有索引文件(如:index.html
,index.php
,index.html
等),则默认情况下,apache Web服务器将显示文档根目录的所有内容。
可以通过Apache配置文件中提供的options directive
关闭特定目录的此功能。
<Directory /var/www/html>
Options -Indexes
</Directory>
3. 禁用不必要的模块
最好禁用所有未使用的不必要模块,可以在apache配置文件中看到已启用模块的列表 -
[root@amsterdam ~]#httpd –M
perl_module (shared)
php5_module (shared)
proxy_ajp_module (shared)
python_module (shared)
ssl_module (shared)
`
许多列出的模块可以被禁用,如mod_imap
,mod_include
,mod_info
,mod_userdir
,mod_autoindex
,因为它们几乎不被任何生产Web服务器使用。
vi /etc/httpd/conf/httpd.conf
然后注释掉 -
#LoadModule auth_digest_module modules/mod_auth_digest.so
注释模块后,保存文件。使用以下命令重启apache服务。
/etc/init.d/httpd restart
4. 限制访问Web根目录之外的文件
如果希望确保无法访问Web根目录之外的文件,则必须确保在Web服务器配置文件中使用“Allow”和“Deny option”限制目录。
<Directory/>
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
限制Web根目录之外的访问后,您将无法访问Web服务器上任何其他文件夹中的任何文件,最后获得404返回代码。
5. 使用mod_evasive来反驳DoS攻击
如果希望保护Web服务器免受Dos(即拒绝服务)的影响,则必须启用模块mod_evasive
。它是一个第三方模块,可以检测Dos攻击,并防止攻击造成的损害程度远远超过其运行过程。
6. 使用mod_security增强apache安全性
此模块用作Apache的防火墙,用于实时监控流量。它还可以防止Web服务器遭受暴力攻击。mod_security
模块可以与发行版的默认包管理器一起安装。
7. 限制请求大小
Apache对可能导致DoS攻击的http请求的总大小没有任何限制。可以使用目录标记限制Apache指令LimitRequestBody
的请求大小。根据要求,该值可以设置为0
到2GB
(即2147483647
字节)。
<Directory "/var/www/html/uploads">
LimitRequestBody 512000
</Directory>