0
点赞
收藏
分享

微信扫一扫

Nginx安全配置(1)

1. 日志配置

1.1修改配置,按如下设置日志记录文件、记录内容、记录格式,添加标签为main的log_format格式

鉴于日志的输出格式还未确定,目前暂时先使用Nginx默认的日志格式。

(http标签内,在所有的server标签内可以调用):

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

1.2 在server标签内,定义日志路径

access_log logs/host.access.log main

1.3 保存,然后后重启nginx服务。

2 禁止目录浏览

默认是不允许列出整个目录的,如果不是做下载服务器的,就不要打开这个,避免敏感信息暴露给黑客并下载

Nginx安全配置(1)_nginx

 

如果开启了就会是下面这样的效果

Nginx安全配置(1)_nginx_02

配置关闭即可

autoindex off;

3 限制目录执行权限

  3.1编辑配置文件,在server标签内添加如下内容:

示例:去掉单个目录的PHP执行权限
location ~ /attachments/.*\.(php|php5)?$ {
deny all;
}
#示例:去掉多个目录的PHP执行权限
location ~
/(attachments|upload)/.*\.(php|php5)?$ {
deny all;
}

3.2保存,然后后重启nginx服务。

  需要注意两点:

    1、以上的配置文件代码需要放到 location ~ .php{...}上面,如果放到下面是无效的;

    2、attachments需要写相对路径,不能写绝对路径。

4 错误页面重定向

  4.1修改配置,在http{}段加入如下内容

避免错误页面提供敏感信息,一般我们会定制一些通用的错误页面返回给客户端

我们在http段配置

error_page   500 502 503 504  /50x.html;

类似上面这种配置,将状态码500、502、503、504全部重定向到50x.html

4.2保存,重启 nginx 服务生效

5 隐藏版本信息

5.1编辑配置文件,添加http模块中如下一行内容:

server_tokens off;
检查:

5.2保存,然后后重启nginx服务。


6 限制HTTP请求方法

 6.1 编辑配置文件,添加如下内容:

if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}

这个要放到最前面 

6.2 保存,然后后重启nginx服务。

  备注:只允许常用的GET和POST方法,顶多再加一个HEAD方法

7 限制IP/域名访问

7.1 编辑配置文件,在server标签内添加如下内容:

location / {
deny 192.168.1.1; #拒绝IP
allow 192.168.1.0/24; #允许IP
allow 10.1.1.0/16; #允许IP
deny all; #拒绝其他所有IP
}
location ~ .*my.html$ {
root /usr/share/nginx/html;
deny 192.168.0.105; #禁止ip
allow 192.168.189.134; #允许ip
deny all; #拒绝其他所有
}

限制访问的ip,即限制了服务的客户,防止不允许的人访问,减少风险

7.2 保存,然后后重启nginx服务。

举报

相关推荐

0 条评论