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. 判断二叉树中两个节点的最低共同父节点
  2. Leetcode 532.数组中的K-diff数对
  3. java爬虫问题二: 使用jsoup爬取数据class选择器中空格多选择怎么解决
  4. 字符集和编码规范:ASCII,Unicode和UTF-8, latin1,BIG5,GBK
  5. 子类怎么继承父类方法中的变量_JavaOOP_04 封装 继承
  6. qt connect函数_Qt 串口上位机开发Rice 上位机 学习开发
  7. Jmeter学习(一)
  8. 漫画:Dijkstra 算法的优化
  9. 将10位时间戳转换成字符串格式时间显示
  10. VS2015下载地址和安装教程(图解)
  11. java 实现word转txt
  12. 通过本地上传工具把CSV文件导入到百会报表
  13. 基于Multisim的MC1496调幅电路的仿真
  14. 操作系统之进程通信:高级通信机制四大类
  15. 如何通过抖音来进行广告宣传
  16. QQ桌球瞄准器开发(5)使用注册表保存配置
  17. 大一上C语言复习3.填空题
  18. 学影视模型与游戏模型哪个更有前景呢?
  19. www.us258.com 这家主机商相当无耻,用着不到一个月给我停了,连用户名都删了。...
  20. 【数学建模】4 马尔萨斯人口论

热门文章

  1. 一文了解ADM706RARZ-REEL7
  2. 用计算机控制单片机的程序编写,单片机初学者必须掌握的基础内容
  3. (C语言)(用指针方法处理)输入一行文字,找出其中大写字母,小写字母,空格,数字以及其他字符各有多少
  4. python 汉字 和 urlEncode 编码 互转
  5. Mycat之——错误处理总结
  6. 阿里云栖开发者沙龙(Java技术专场)火热来袭!
  7. 数据来源渠道及采集工具_工业数据采集工具
  8. 智慧教育信息化建设解决方案
  9. 想死的时候去西藏走一下
  10. golang优秀开源框架和库