1. 适用情况

适用于使用Nginx进行部署的Web网站。

2. 技能要求

熟悉Nginx配置,能够Nginx进行部署,并能针对站点使用Nginx进行安全加固。

3. 前置条件

1、 根据站点开放端口,进程ID,确认站点采用Nginx进行部署;

2、 找到Nginx安装目录,针对具体站点对配置文件进行修改;

3、 在执行过程中若有任何疑问或建议,应及时反馈。

4. 详细操作

4.1 日志配置

  1、备份nginx.conf 配置文件。

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

(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"';

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

access_log logs/host.access.log main

  3、保存,然后后重启nginx服务。

4.2 禁止目录浏览

  备份nginx.conf配置文件。

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

autoindex off;

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

4.3 限制目录执行权限

  备份nginx.conf配置文件。

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

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

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

  需要注意两点:

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

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

4.4 错误页面重定向

  备份nginx.conf配置文件。

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

http {
...
fastcgi_intercept_errors on;
error_page 401 /401.html;
error_page 402 /402.html;
error_page 403 /403.html;
error_page 404 /404.html;
error_page 405 /405.html;
error_page 500 /500.html;
...
}
修改内容:
ErrorDocument 400 /custom400.html
ErrorDocument 401 /custom401.html
ErrorDocument 403 /custom403.html
ErrorDocument 404 /custom404.html
ErrorDocument 405 /custom405.html
ErrorDocument 500 /custom500.html
其中401.html、402.html、403.html、404.html、405.html、500.html 为要指定的错误提示页面。

  保存,重启 nginx 服务生效

4.5 最佳经验实践

4.5.1 隐藏版本信息

  备份nginx.conf配置文件。

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

server_tokens off;

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

4.5.2 限制HTTP请求方法

  备份nginx.conf配置文件。

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

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

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

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

4.5.3 限制IP访问

  备份nginx.conf配置文件。

  编辑配置文件,在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
}

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

4.5.4 限制并发和速度

  备份nginx.conf配置文件。

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

limit_zone one $binary_remote_addr 10m;
server
{listen   80;server_name down.test.com;index index.html index.htm index.php;root  /usr/local/www;#Zone limit;location / {limit_conn one 1;limit_rate 20k;}
………
}

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

4.5.5 控制超时时间

  备份nginx.conf配置文件。

  编辑配置文件,具体设置如下:

client_body_timeout 10;  #设置客户端请求主体读取超时时间
client_header_timeout 10;  #设置客户端请求头读取超时时间
keepalive_timeout 5 5;  #第一个参数指定客户端连接保持活动的超时时间,第二个参数是可选的,它指定了消息头保持活动的有效时间
send_timeout10;  #指定响应客户端的超时时间

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

4.6 风险操作项

4.6.1 Nginx降权

  备份nginx.conf配置文件。

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

 user nobody;

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

4.6.2 防盗链

  备份nginx.conf配置文件。

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

location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip)$ {valid_referers none blocked server_names *.nsfocus.com http://localhost baidu.com;if ($invalid_referer) {rewrite ^/ [img]http://www.XXX.com/images/default/logo.gif[/img];# return 403;}
}

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

4.6.3 补丁更新

  1、软件信息

查看软件版本 nginx -v
测试配置文件 nginx –t

  2、补丁安装

    手动安装补丁或安装最新版本软件

最后

欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。 

【中间件安全】Nginx 安全加固规范相关推荐

  1. linux主机操作性日志恢复测试,Linux主机操作系统加固规范标准[详].doc

    . . Linux主机操作系统加固规范 目 录 TOC \o "1-5" \h \z 1账号管理.认证授权 1 1.1账号 1 1.1.1SHG-Linux-01-01-01 1 ...

  2. 【中间件加固】————6、IIS6安全加固规范

    1. 适用情况 适用于使用IIS6进行部署的Web网站. 2. 技能要求 熟悉IIS配置操作,能够利用IIS进行建站,并能针对站点使用IIS进行安全加固. 3. 前置条件 1. 根据站点开放端口.进程 ...

  3. 【中间件安全】Apache 安全加固规范

    1. 适用情况 适用于使用Apahce进行部署的Web网站. 2. 技能要求 熟悉Apache配置文件,能够利用Apache进行建站,并能针对站点使用Apache进行安全加固. 3. 前置条件 1. ...

  4. 【中间件加固】————3、Tomcat 安全加固规范

    1. 适用情况 适用于使用Tomcat进行部署的Web网站. 2. 技能要求 熟悉Tomcat配置操作,能够利用Tomcat进行建站,并能针对站点使用Tomcat进行安全加固. 3. 前置条件 1.根 ...

  5. 【中间件加固】————8、WebSphere安全加固规范

    1. 适用情况 适用于使用WebSphere进行部署的Web网站. 2. 技能要求 熟悉WebSphere安装部署,熟悉WebSphere常见漏洞利用方式,并能针对站点使用WebSphere进行安全加 ...

  6. 【中间件安全】IIS7.0 安全加固规范

    1. 适用情况 适用于使用IIS7进行部署的Web网站. 2. 技能要求 熟悉IIS配置操作,能够利用IIS进行建站,并能针对站点使用IIS进行安全加固. 3. 前置条件 1. 根据站点开放端口.进程 ...

  7. 运维安全加固规范_DBA如何巧用“三十六计”保障数据库安全?

    数据库安全运筹帷幄三十六计 根据多年在数据行业摸爬滚打,积淀下来的经验心得,分享一个"向左向右"的理论. 在数据库安全领域,左,是走为上计,相当于逃跑机制,当没有有效安全机制来保证 ...

  8. 中间件配置文件-nginx

    文章目录 前言 **3.** **解析配置文件:** **3.1** **全局配置:** **3.2 http指令块:** **3.3 server指令块:** **3.4 location指令块:* ...

  9. 中间件:Nginx工作使用记录(反向代理)

    场景:SpringBoot+Vue前后端分离,用Nginx做反向代理. 一.Nginx.conf #定义Nginx运行的用户和用户组 user root; #进行增大并发连接数的处理 跟cpu保持一致 ...

最新文章

  1. CV_8UCV_32FCV_32S
  2. 怎么一个好的短信验证码接口接入到自己的企业网站和APP程序当中选择
  3. JavaScript强化教程 -- cocosjs场景切换
  4. 004-ubuntu安装配置SSH服务
  5. 在Linux平台上部署open***
  6. 功能性平台创新-农业大健康·杨建国:谋定都江堰精华灌区
  7. pytorch 训练过程acc_深度学习Pytorch实现分类模型
  8. 【Python3_基础系列_012】Python3-异常与断言
  9. IdentityServer4-前后端分离之Vue
  10. 深入浅出linux工具与编程 下载,8208.深入浅出Linux工具与编程.pdf
  11. LeetCode 2040. 两个有序数组的第 K 小乘积(嵌套二分查找)
  12. M1 mac 使用docker 安装mysql
  13. 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 图像分类
  14. 《出版专业实务》(2015年版初级)思考与练习答案 第一章
  15. switch语句的ns图怎么画_ns结构流程图是什么?ns流程图怎么画?
  16. 【word】和【excel】小技巧总结
  17. 喜欢《花样少年少女》
  18. Node.JS基础知识之命令行窗口(Windows 的命令行窗口)
  19. openflow交换机 ryu_在RYU中实现交换机的功能
  20. AAAI 2021论文接收列表内有关因果的文章

热门文章

  1. GD32(7)程序烧录及运行
  2. element自定义表单验证上传身份证正反面的实现
  3. linux下 文件排序,把 Linux 上的文件列表和排序玩出花来
  4. vue使用v-print实现打印功能附加echartsDemo
  5. 通过宏实现EXCEL单元格每打印一次内容变化一次
  6. opencv实现基于边缘的形状匹配算法
  7. DeepRapper 代码详解
  8. 大数据的主要分析模式和分析技术
  9. 智能交通的深度学习综述-基于图卷积神网络
  10. 音频转文字怎么操作?手把手教你转文字的操作