服务器网站安全维护之nginx安全设置篇
服务器的安全防护中,网站环境的搭建与安全部署也是很重要的一部分,目前大多数的服务器都使用的是nginx来搭建网站的运行环境,包括windows服务器,linux服务器都在使用,nginx的安全设置对于服务器安全起到很重要的作用。关于如何设置nginx安全,以及服务器的安全部署,我们SINE安全公司来详细的给大家介绍一下:
大部分的网站使用nginx来做负载均衡以及前端的80端口代码来进行静态html文件的访问,nginx的安全设置如果没有设置好会导致服务器安全出现问题,可能会导致服务器被入侵,以及网站被攻击。
nginx 在linux centos系统里,使用的是nginx.conf的格式文件来作为网站的配置文件,里面的配置主要是绑定域名,以及端口,指定到网站的目录地址,伪静态规则,看下图:
从上图的配置文件中,我们可以看出,nginx的内部结构很清晰,每一行代码都写的很精简,针对的功能也是唯一的,每个代码对应的指令以及作用划分的很仔细,其中server就是我们IIS配置的host地址,比如域名以及IP地址,在server的代码里写入端口,可以将网站设置成端口形式的访问。现在我们大体的了解了什么nginx,那么nginx设置不全面,会导致那些漏洞呢?
最常见的就是网站目录可以被任意的查看,也就是网站目录遍历漏洞,这个简单来说就是如果服务器里有很多网站,随便一个网站被攻击,都会导致服务器里的全部网站被攻击,因为可以跨目录的查看任意网站的程序代码。通常导致该漏洞的原因是在配置nginx的时候,有些服务器运维人员会将autoindex on;代码写入到server行里,导致发生目录遍历漏洞。如下图就是目录可以被任意的浏览,包括网站里包含了那些代码,都看的一清二楚。
nginx设置导致的URL注入漏洞,服务器里的网站在使用SSL证书,启用443端口访问网站,nginx会自动代理,并加载SSL证书,有些会设置nginx强制的跳转到https网站,使用302的协议进行强制跳转,如果技术人员设置成return 302 https://$host$uri,会导致网站存在SQL注入漏洞,$uri变量值的含义是:请求文件以及网站的路径,当nginx环境进行传递参数值的时候,可以插入恶意代码到网站中执行,并提交到数据库后端进行sql查询,注入漏洞就因此而发生,建议服务器的运维人员不要对此进行设置。
关于nginx的安全设置方面,服务器的维护人员尽量严格的进行设置,对目录的浏览权限详细的分配,对https协议访问的网站也要加强302的强制跳转参数设置,如果您对服务器安全防护方面不是太懂的话,也可以找专业的安全公司处理,国内SINE安全,绿盟,深信服,都是比较不错的安全公司。