服务安全-nginx优化

之前nginx服务提到过一些对nginx的优化。
这里针对nginx的以下内容进行优化:
1、取消自动索引,防止暴露网页文件
2、隐藏版本信息,显示版本信息攻击者会根据版本找对应的漏洞
3、限制并发数量,可以减少DOS攻击
4、拒绝非法请求,可以减少DOS攻击
5、防止buffer溢出

----------

1、取消自动索引

tar -xvf nginx-1.17.3.tar.gz
cd nginx-1.17.3
./configure --without-http_autoindex_module --without-http_ssi_module	#without代表不安装模块
make && make install

# 想要开启自动索引需要在配置文件中配置
vim /usr/local/nginx/conf/nginx.conf
server {
	autoindex on;	#需要有-http_autoindex_module这个模块
} 

2、隐藏版本信息

curl -I http://192.168.80.136	#可以看到nginx版本信息

方法1:
vim /usr/local/nginx/conf/nginx.conf
http{
 server_tokens off;	#隐藏版本号
 ...
}

方法2:
vim +48 src/http/ngx_http_header_filter_module.c	#nginx源码目录中的src
# 修改之前
static u_char ngx_http_server_string[] = "Server: nginx" CRLF;
static u_char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
static u_char ngx_http_server_build_string[] = "Server: " NGINX_VER_BUILD CRLF;

# 修改之后
static u_char ngx_http_server_string[] = "Server: apache" CRLF;
static u_char ngx_http_server_full_string[] = "Server: apache" CRLF;
static u_char ngx_http_server_build_string[] = "Server: apache" CRLF;

# 之后源码编译安装

3、限制并发数量:

# 使用ngx_http_limit_req_module模块,默认安装
vim /usr/local/nginx/conf/nginx.conf
http{
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

# limit_req_zone表示定义了一个内存区域,存放client访问nginx的请求
# zone=one:10m表示区域的名字是one,大小是10m
# rate=1r/s表示对于同一个ip的请求,1秒只处理1个

   server {
        listen 80;
        server_name localhost;
        limit_req zone=one burst=5;
        # 表示在one这个内存区域中,同一个ip的请求最多存放5个
        # 加上正在处理的,一共是6个
        # 如果一台计算机访问了100次,那么只有6次得到了处理
            }
}

# 使用ab进行测试
yum -y install httpd-tools
ab -c 100 -n 100  http://192.168.80.136:80/

4、拒绝非法请求

curl -i -X HEAD  http://192.168.80.136	#发送HEAD请求,正常

vim /usr/local/nginx/conf/nginx.conf
http{
   server {
             listen 80;
              if ($request_method !~ ^(GET|POST)$ ) {
              # 只允许处理get和post请求,正则,!代表取反
                     return 404;
                     # 除了get和post以外的其他请求返回404状态码
               }    
        }
}

curl -i -X HEAD http://192.168.80.136	#发送HEAD请求,会报错
curl -i -X GET http://192.168.80.136	#发送GET请求,正常

5、防止buffer溢出

vim /usr/local/nginx/conf/nginx.conf
http{
client_body_buffer_size  1K;	#最小值
client_header_buffer_size 1k;	#最小值
client_max_body_size 16k;		#最大值
large_client_header_buffers 4 4k;	#最大值
...
}

# 重启nginx成功则表示配置成功。

写总结的第六十三天!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值