Web Server 配置安全

Web Server

Web服务器是web应用的载体。

Web server的安全关注两点:
1、web server本身是否安全;
2、web server是否提供了可使用的安全功能;

Apache安全

1.首先检查apache的module安装情况,根据“最小权限原则”,应该尽可能的减少不必要的module,对于要使用的module,则检查起对应版本是否存在已知的安全漏洞

2.apache尽量不用以root身份或者admin身份运行
不然结果是可怕的:当黑客入侵Web成功时,将直接获得一个高权限的shell;应用程序本身将具备较高权限,当出现bug时,可能会带来较高的风险,比如删除本地重要文件、杀死进程等不可预知的结果。
比较好的做法是使用专门的用户身份运行Apache,这个用户身份不应该具备shell,它唯一的作用是用来运行Web应用。

3.要保护好Apache Log,一般来说,攻击者入侵成功后,要做的第一件事就是清除入侵痕迹,修改、删除日志文件,因此access log应当妥善保管,比如实时地发送到远程的syslog服务器上。

4.Apache提供了一些配置参数,可以提供服务器性能,提供对抗DDOS功能的能力。这些调整可能影响正常应用,请视情况而定可参考官方文档

TimeOut
KeepAlive
LimitRequestBody
LimitRequestFields
LimitRequestFieldSize
LimitRequestLine
LimitXMLRequestBody
AcceptFilter
MaxRequestWorkers

这些参数能够起到一定的作用,但单台机器的性能毕竟有限,所以对抗DDOS不可依赖于这些参数。

Nginx安全

1.多关注Nginx的漏洞信息,并及时将软件升级到安全的版本。
2.Nginx与Apache最大区别:检查Apache安全时更多的关注Module的安全,而Nginx则需要注意软件本身的安全,及时升级软件版本。
3.以单独的身份运行,与Apache一样
4.Nginx的配置非常灵活,在对抗DDOC和CC攻击方面起到一定的缓解作用。
5.Nginx配置中可以做一些简单的条件判断,比如客户端User-Agent具有什么特征,或者来自某个特定referer、IP等条件,响应动作可以是返回错误号,或进行重定向。

Tomcat远程命令执行

1.建议删除tomcat后台,攻击者可以通过暴力破解等方式获取后台的访问权限。
2.直接将tomcat用户添加为manager角色,而tomcat用户的密码很有可能是一个默认密码,这种配置违背了“最小权限原则”

jBoss 远程命令执行

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

jBoss 在默认安装时由一个管理后台,JMX-Console。该后台给管理员一些高级功能,包括配置 MBeans。通过 8080 端口访问 /jmx-console 能够进入管理界面,默认安装时访问 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 开放。

HTTP Parameter Pollution

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

通过HPP混淆参数,可绕过ModSecurity对于SQL注入的检测。

/index.aspx?page=select 1,2,3 from table where id=1 
/index.aspx?page=select 1&page=2,3 from table where id=1 

HPP这一问题再次提醒我们,设计安全方案必须要熟悉Web技术方方面面的细节,才不至于有所疏漏。从防范上来看,由于HPP是服务器软件的一种功能,所以只需要在具体的环境中注意服务器的参数取值顺序即可。

IIS安全

IIS和APACHE是当今两大主流的web信息发布平台
创建一个安全可靠的web服务器,必须要实现windows系统和IIS的双重安全

1、 端口的安全设置。
通过配置windows系统防火墙实现端口安全配置

2、 驱动器及文件夹权限的设置。
防止asp类木马,一但网站被攻击,保证操作系统及网站文件之外的其他文件不受影响。
打开服务器各驱动器的属性对话框,在安全选项卡中设置系统驱动器及其他驱动器的权限,仅保留administrator组,SYSTEM及CREATOR OWNER用户对驱动器的安全控制权限
设置网站访问的用户。打开“控制面板—管理工具—本地用户和组–用户”,添加一个users组的用户test
设置网站所在文件夹的权限,除文件夹继承驱动器权限外,在文件夹属性的安全选项卡中,添加用户test,并将新建的用户test的权限设为完全控制。
设置网站的IIS身份认证。在网站的IIS身份认证中,将网站访问的匿名用户设置为test。同时设置网站的应用程序池,应用程序池高级设置中将应用程序池标识设置为test。
通过以上设置,如果网站受到攻击,比如被植入asp木马,因为网站的匿名用户是test,而这个用户仅对该网站的文件具备权限,入侵者就不能更改系统和其他文件,从而将危险性降至最低。

3、 设置网站的IPV4地址和域限制
若网站仅对部分用户开放,可以把网站的访问用户访问缩小,从而进一步增强IIS的安全性,比如可以允许172.17.1.1-172.17.1.254 IP段进行网站的访问。在网站的功能视图中,打开该网站ipv4地址和域限制,让后点击“添加允许条目”,在打开的“添加允许限制规则”对话框中,输入允许的IP地址范围。

4、 网站文件夹的安全设置。
在IIS面板左侧选中需要设置的文件夹uploadfiles,然后从右侧管理视图中点击“处理程序映射”图标,进入网站程序映射设置,然后点击“编辑功能权限”,对该上传文件夹只保留读取权限,点击“确定”即可。

5、 日志安全分析
在IIS平台使用过程中个,需要定期结合网站的访问日志进行安全性分析,充分利用IIS的相关设置来保护网站安全。

猜你喜欢

转载自blog.csdn.net/qq_51558360/article/details/113819148