Web Server 配置安全

Posted RickyShilx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web Server 配置安全相关的知识,希望对你有一定的参考价值。

常见 Web Server:Apache Httpd、nginx、LightHttp。Web Server 安全:自身是否安全 + 是否提供了可用的安全功能。

Apache 安全

Apache 的漏洞大多是 Apache 的 module 造成,其核心高危漏洞几乎没有。默认启动的 Module 出现过的高危漏洞很少,大多数高危漏洞集中在默认没有安装或启用的 Module 上。

检查 Apache 安全的第一件事就是检查 Module 的安装情况,根据 “最小权限原则”,应该尽可能减少不必要的 Module;对于要使用的 Module 则检查其对应版本是否存在已知的安全漏洞。

定制好了 Apache 的安装包后,需要为 Apache 单独建立一个 user/group,然后指定 Apache 进程以单独的用户身份运行。禁止使用高权限身份运行!运行 Apache 的用户不应该具备 shell。

要保护好 Apache Log,比如实时地发送到远程的 syslog 服务器,以防攻击者入侵后删除痕迹。

Nginx 安全

Nginx 高性能,高并发。出现较多高危漏洞,在官网 http://nginx.org/en/security_advisories.html 公布已发现的安全问题。要紧密关注漏洞信息,及时更新到安全版本。

Nginx 的配置灵活,在对抗 DDOS 和 CC 攻击方面也能起到一定的缓解作用;在 Nginx 的配置中还可以做一些简单的条件判断,比如客户端 User_Agent 具有什么特征,或者来自某个特定 referer、IP 等条件,定制特别的响应动作,比如返回错误号或重定向。

jBoss 远程命令执行

jBoss 是 J2EE 环境中流行的 Web 容器,如果配置不当可能造成远程命令执行。

jBoss 在默认安装时由一个管理后台,JMX-Console。该后台给管理员一些高级功能,包括配置 MBeans。通过 8080 端口访问 /jmx-console 能够进入管理界面,默认安装时访问 JMX-Console 是没有任何认证的

在 JMX-Console 中,有多种可以远程执行命令的方法:

通过 DeploymentScanner 远程加载一个 war 包:默认 DeploymentScanner 将检查 URL 是否是 file:/[JBOSSHOME]/server/default/deploy/,但通过 addURL() 方法却可以添加一个远程 war 包。

通过 BSH(Bean Shell)Deployment 也能部署 war 包:BSH 能够执行一次性的脚本或创建服务。

出于安全防御的目的,在做安全加固的时候,应该删除 JMX-Console 后台:删除 jmx-console.war 和 web-console.war。如果业务上不得不使用 JMX-Console,则应该使用一个强密码,并且运行 JMX-Console 的端口不应该向 Internet 开放。

Tomcat 远程命令执行

Apache Tomcat 与 jBoss 一样,默认运行在 8080 端口。提供的 Tomcat Manager 的操作与 JMX-Console 类似,管理员可以在 Tomcat Manager 中部署 war 包(需要有 manager 权限,该权限在配置文件 tomcat-users.xml 中定义)

虽然 Tomcat 有后台密码认证,但仍然建议删除这个后台,以免被攻破后带来安全隐患。

HTTP Parameter Pollution

通过 GET 或 POST 向服务器发起请求时,提交两个相同的参数,例如:/?a=value1&a=value2。在某些服务端环境中只会取第一个或最后一个参数;而在另一些环境中,比如 .NET,则会变成 a=value1,value2。这种特性在绕过一些服务器端的逻辑判断时很有用。

 

以上是关于Web Server 配置安全的主要内容,如果未能解决你的问题,请参考以下文章

安全的web服务 parted分区 交换分区

JBOSS的安全配置

Nginx配置ssl安全证书

如何配置windows server2012 iis

配置安全域名https申请免费证书并配置nginx运行环境

nginx安全配置