雨露博客

  • 首页

  • 标签

  • 分类

  • 存档

  • 站点地图

  • 搜索

nginx安全配置

发表于 2020-02-27 更新于 2024-04-13 分类于 网络安全 , 安全日记

当今互联网时代,安全问题是一件不容忽视的事情。下边列出了一些我在日常总结的一些nginx安全方面配置示例,在大部分拦截配置示例中都采用了响应444状态码。444是nginx内部定义的一个响应状态码,其含义是不进行任何响应,直接断开连接;响应444状态码有助于减少在没必要的请求上的性能消耗,将宝贵的服务器资源留给更有意义的请求。

屏蔽服务器信息

1
2
3
4
http {
server_token off;
more_set_headers "Server:***";
}

以上是屏蔽nginx版本信息和Server头信息的配置示例。

禁止网站被嵌入iframe

1
2
3
http {
add_header 'X-Frame-Options' 'SAMEORIGIN' always;
}

通过添加X-Frame-Options头来限制客户端使用iframe框架嵌入网站页面。

禁止通过IP访问网站

1
2
3
4
5
server {
listen 80 default_server;
server_name _;
return 444;
}

说明:这里指定了一个默认server,所有未匹配其他server_name的访问请求都会被这个server接收。

限制请求方法

1
2
3
4
5
server {
if ($request_method !~ ^(GET|POST)$) {
return 444;
}
}

示例仅允许GET和POST请求;使用时应当结合自己的实际需要进行配置。

限制程序请求

1
2
3
4
5
server {
if ($http_user_agent ~* (Scrapy|Curl|HttpClient|python-requests|okhttp|Crawler)) {
return 444;
}
}

通常程序库或者工具都有自己独特的User-Agent头信息,此处就是根据UA特征来进行拦截。

限制请求指定后缀的文件

1
2
3
4
5
server {
if ($uri ~* \.(php|asp|jsp|cgi|do|action|bak|sql|log|sh|conf)$) {
return 444;
}
}

如果你的服务器请求不提供这种后缀的请求最好将其屏蔽,一方面很多扫描程序会扫描这类后缀的文件造成服务器性能消耗,另一方面也可能认为的疏忽导致重要文件泄露造成安全问题。

限制请求隐藏文件

1
2
3
4
5
server {
if($uri ~* /\.\w+$) {
return 444;
}
}

通常以点开头的文件是隐藏文件,容易被忽视;如果你的服务器不提供某类特殊的请求服务,最好将其屏蔽。

  • 本文作者: 雨露网
  • 本文链接: /blog/2020/02/27/ns-note-01/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
# 网络安全 # Linux # 日志
Java配置文件使用
ubuntu server 入门
  • 文章目录
  • 站点概览
雨露网

雨露网

5 日志
6 分类
14 标签
友情链接
  • 雨露网
  • 雨露工具
  1. 1. 屏蔽服务器信息
  2. 2. 禁止网站被嵌入iframe
  3. 3. 禁止通过IP访问网站
  4. 4. 限制请求方法
  5. 5. 限制程序请求
  6. 6. 限制请求指定后缀的文件
  7. 7. 限制请求隐藏文件
鄂ICP备13008716号 © 2019 – 2024 雨露网