Nginx安全加固

Nginx安全加固

1、隐藏nginx版本信息

修改nginx服务信息头内容,隐藏nginx版本信息。防止攻击者通过搜集服务器信息进行定向攻击。在nginx配置文件中添加以下指令:

http {
    server_tokens off;
}

2、设置客户端请求读取超时时间(可选)

可以通过配置文件里的proxy_connect_timeout和proxy_read_timeout参数来设置客户端请求读取超时时间。

  • proxy_connect_timeout用于设置与代理服务器建立连接的超时时间。默认为60秒。
  • proxy_read_timeout用于设置代理服务器读取客户端请求的超时时间。默认为60秒。
http {
    proxy_connect_timeout 10s;
    proxy_read_timeout 30s;
}
# proxy_connect_timeout设置为10秒, proxy_read_timeout设置为30秒。当客户端请求在这些时间段内没有得到响应时,将会超时。

3、设置客户端连接保持活动的超时时间(可选)

在Nginx配置文件中配置以下内容:

http {
    client_body_timeout 10s;
    client_header_timeout 10s;
}
#client_body_timeout:该参数设置客户端向Nginx发送请求正文的超时时间。如果在该时间内客户端没有发送数据,Nginx将关闭连接。
client_header_timeout:该参数设置客户端向Nginx发送请求头的超时时间。如果在该时间内客户端没有发送请求头,Nginx将关闭连接。

4、限制客户端下载的并发连接数(可选)

(1)编辑nginx的配置文件,一般为/etc/nginx/nginx.conf
(2)在http模块中添加以下配置:

http {
    limit_conn_zone $binary_remote_addr zone=perip:10m;
}
#limit_conn_zone用于定义并发连接数的限制区域,$binary_remote_addr表示使用客户端的IP地址作为限制的依据,zone表示限制区域的名称,10m表示限制区域的大小为10兆。

(3)在server或location模块中添加以下配置:

server {
    limit_conn perip 10;
}
#limit_conn用于设置并发连接数的阈值,perip表示限制区域的名称,10表示允许的最大并发连接数。

5、限制客户端的下载速度(可选)

可以使用nginx的limit_rate模块限制客户端的下载速度。该模块可以按照特定的速率限制每个客户端的下载速度。在配置文件中添加以下代码:

location /download {
    limit_rate 100k; # 限制客户端下载速度为100k/s
}

当客户端请求/download时,nginx会将下载速度限制在100k/s。可以根据需要调整limit_rate的值。

6、配置日志功能

在nginx配置文件中,可以通过指定access_log和error_log来开启日志功能。在server段中,可以设置如下:

server {
    listen 80;
    server_name example.com;
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    ...
}

其中,access_log指定了访问日志的输出文件路径,error_log指定了错误日志的输出文件路径。

7、自定义错误信息(可选)

编辑Nginx的配置文件,并在其中添加错误页面的定义。以下是一个示例配置文件,其中定义了403、404和500错误页面:

server {
    listen 80;
    server_name example.com;

    error_page 403 /errors/403.html;
    error_page 404 /errors/404.html;
    error_page 500 /errors/500.html;
	---
    location /errors {
        internal;
        alias /path/to/error/pages;
    }
}
#error_page指令用于定义错误页面的路径。location /errors用于定义错误页面的目录。internal指令用于防止直接访问错误页面目录,只能通过Nginx内部访问。

8、限制HTTP请求方法(可选)

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

if ($request_method !~ ^(GET|POST)$ ) {
return 444;
}
# $request_method能获取到请求时所使用的method,应该配置只使用GET/POST方法访问,其他的method返回444

9、限制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
}

10、其它配置

#user  nobody;   #使用的用户
worker_processes  1; #指定工作衍生进程数(一般等于CPU的总核数或总核数的两倍)
...

指定pid存放的路径
#pid        logs/nginx.pid;

events {
    #允许的连接数
    worker_connections  1024;
}

http {

...
    #gzip  on;  #开启gzip压缩
...

}

 server {
 
...
   client_max_body_size 10m;  #设置客户端能够上传的文件大小,10MB
...

        }	
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值