Nginx安全配置标准(for web server)

一、目的

本标准是信息系统安全技术标准的一部分,主要目的是根据信息安全管理政策要求,为我司"Nginx web server"配置提供安全标准。

二、范围

本规范适用于我司所有Nginx web server。

三、内容

3.1 版本

使用较新的稳定版本

3.2 启动帐号

使用非root帐号启动

user www wwww;
或者
user nginx nginx;
3.3 日志记录

记录access log

3.4 预防php fastcgi文件名解析漏洞

如果nginx启用了php fastcgi功能,必须添加如下配置,以预防文件名解析漏洞:

server {
    ....    if ( $fastcgi_script_name ~ \..*\/.*php ) {        return 403;
    }
    ....
}

上述配置将拦截类似这样的请求:

/1.jpg/x.php
/my.dir/x.php
3.5 web目录权限设置

nginx启动帐号应对web目录下所有文件及子目录无写权限,如果web应用需写日志文件,不应该放在web目录下。

假设web目录是/var/www/html,正确的权限设置应该是:

chown -R root:root /var/www/html && chmod -R 0755 /var/www/html

即属主是root,权限是0755,子目录权限跟父目录完全一样。

3.6 可写目录禁止执行

如果web应用确实需要支持文件上传功能,或因其它原因需要对WEB目录可写,应在nginx里面限制可写目录无脚本执行权限。假设可写目录为"/upload",配置示例如下:

server {
    ....
    location ~ ^/upload/.*\.php {        return 403;
    }
    ....
    location ~ \.php$ {
        fastcgi_pass *;
    }
}

注意1:"location ~ ^/upload/.*\.php"必须写在前面!对于location的正则表达式,nginx是按照先后顺序来匹配的,具体可参见http://wiki.nginx.org/HttpCoreModule#location

注意2:假设web服务启动帐号为nobody,可写目录是/var/www/html/upload,正确的权限设置应该是:

chown -R nobody:nobody /var/www/html/upload && chmod -R 0755 /var/www/html/upload

即可写目录的属主应该为web启动帐号,权限应该为0755,子目录的权限应该跟父目录完全一致。

注意3:这里指的不是去除文件系统rwx权限中的x,文件系统权限中的x可以保留,无危害。
3.7 禁止列目录

Nginx默认是不允许列出整个目录的,如果在nginx.conf文件,在location server 或 http段中手工设定了autoindex on;选项,请移除禁用该功能。

时间: 2024-08-08 11:26:54

Nginx安全配置标准(for web server)的相关文章

修改NGINX版本名称为任意WEB SERVER

下载好Nginx的安装文件nginx-1.6.0.tar.gz,并把它解压. wget http://nginx.org/download/nginx-1.6.0.tar.gz tar xzvf nginx-1.2.3.tar.gz 然后我们修改src/core/nginx.h. #define NGINX_VERSION "1.2.3" #define NGINX_VER "nginx/" NGINX_VERSION #define NGINX_VAR "

43_03_配置Ngnix作为Web Server详解

IO复用 http://nginx.org/ Http服务器 反向代理 reverse proxy mail http C10k 单进程:阻塞 多进程:每个进程响0应一个请求 进程量大,进程切换次数过多 每个进程的地址空间是独立,很多空间是重复的数据,所以内存使用效率较低 线程:thread, Light Weight Process, LWP 每个线程响应一个请求 线程仍然切换:属于轻量级 同一个 进程的线程可以共享进程的诸多资源,比如打开的文件 对内存的需求较之进程略有下降 快速切换时候会带

Nginx负载均衡:分布式Web Server的搭建

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用.其特点是占有内存少,并发能力强,中国大陆使用nginx网站用户有:新浪.网易.腾讯等. Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性,在高连接并发的情况下,Nginx是Apache服务器不错的替代品,Ng

修改NGINX版本名称伪装任意WEB SERVER

无论是作为Web服务器或其他类型程序的反向代理服务器,Nginx("engine x")都有着高性能且轻量级的优势.其特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好.这也使得Nginx在如今不管是存放在高配独立服务器上的大型的门户,还是存放在迷你64M内存VPS上的小型的个人博客,Nginx都在被广泛使用着. 国内淘宝.新浪.网易.腾讯等都在使用.其中淘宝正是基于原作者的BSD-like协议,在其源代码基础上开发了Tengine,这暂且不表.

Linux(CentOS)下,下载安装Nginx并配置

1.准备工作选首先安装这几个软件:GCC,PCRE(Perl Compatible Regular Expression),zlib,OpenSSL.Nginx是C写的,需要用GCC编译:Nginx的Rewrite和HTTP模块会用到PCRE:Nginx中的Gzip用到zlib:用命令“# gcc”,查看gcc是否安装:如果出现“gcc: no input files”信息,说明已经安装好了.否则,就需要用命令“# yum install gcc”,进行安装了!一路可能需要多次输入y,进行确认.

nginx简易配置

下载安装 http://nginx.org/en/download.html yum install -y pcre pcre-devel openssl openssl-devel tar -xf nginx-1.14.0.tar.gz cd nginx-1.14.0/ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module make && make insta

在nginx中配置如何防止直接用ip访问服务器web server及server_name特性讲解

看了很多nginx的配置,好像都忽略了ip直接访问web的问题,不利于SEO优化,所以我们希望可以避免直接用IP访问网站,而是域名访问,具体怎么做呢,看下面. 官方文档中提供的方法: If you do not want to process requests with undefined “Host” header lines, you may define a default server that just drops the requests: server { listen 80 de

NGINX Web Server Nginx web 服务器

原文地址:http://nginx.com/resources/admin-guide/web-server/ NGINX Web Server Nginx web 服务器 This section describes: the most common configuration of a web server how to set up virtual servers and define locations for request processing how to use variable

NGINX Web Server Nginx web server

原文地址:http://nginx.com/resources/admin-guide/web-server/ NGINX Web Server Nginx web server This section describes: the most common configuration of a web server how to set up virtual servers and define locations for request processing how to use varia