服务器如何设置可以简易防CC攻击?网络安全零基础入门到精通教程建议收藏!

防护CC攻击的主要手段是限制并发请求数量和请求速率。 并发请求数量指的是单ip可以与服务器建立多少个连接,请求速率指的是单位时间内的请求数。两者有共同部分但意义不同,例如建立十个连接每个连接请求一次,也可以建立一个连接请求十次。前者是并发连接多,后者是请求速率高。

Nginx既支持并发请求的限制,也支持按限制请求速率。防御CC攻击主要是限制速率,理论上速率限制得好就够了。实践中建议两者结合,既防止太多连接消耗服务器资源,也防止请求速率过快。

nginx的有关操作

重启nginx
/usr/sbin/nginx -s reload  

nginx日志填坑

命令统计nginx日志中访问最多的100个ip及访问次数
awk '{print $1}' 日志地址 | sort | uniq -c | sort -n -k 1 -r | head -n 100  

我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~

Nginx防CC设置步骤

  1. 编辑Nginx配置文件,例如 /etc/nginx/nginx.conf , 在 http 段分配计数内存:
limit_conn_zone $binary_remote_addr zone=limit_conn:10m;  
limit_req_zone $binary_remote_addr zone=limit_req:10m rate=10r/s;  

上述配置分配了 limit_conn 和 limit_req 两个10M大小的内存块(1M内存可记录16000个会话),并设置每秒最大请求速率是10次。
2, 打开网站配置文件,例如 /etc/nginx/conf.d/xxxx.com.conf,在server或者location段中开启限制:

limit_conn limit_conn 5; # 并发连接数不超过5  
limit_req zone=limit_req burst=10 nodelay;  
其他设置

http中设置每秒允许10个请求,即100毫秒一个,如果突然来10个连接,后面9个直接返回503错误,这是我们不愿意看到的。limit_req中的 burst 参数用来处理突发请求,此时10个请求都会被接受以应对突发流量。如果再来10个,那就超出了允许的突发限制,Nginx直接返回503错误。

nodelay 表示在允许突发请求的情况下,直接处理所有请求,而不是每100毫秒处理一个。

实践中请根据具体情况设置并发连接数和请求速率。数值过大会影响防御效果,太小则会影响正常用户使用。此外,建议总是启用 burst 和 nodelay 以应对突发流量。

在docker-compose.yml中新增相关配置,如下

- ./log/nginx/:/var/log/nginx/:rw      //将宿主机的目录映射到nginx所在的容器中  
- ./conf/nginx/blacklist.conf:/etc/nginx/blacklist.conf:ro // 将需要ban 的ip 配置文件射到nginx宿主机中  
services:  
  nginx:  
    image: anguiao/nginx-brotli  
    container_name: blog_nginx  
    ports:  
      - 80:80  
      - 443:443  
    volumes:  
      - ./www/:/var/www/html/:rw  
      - ./ssl/:/var/www/ssl/:ro  
      - ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf:ro  
      - ./conf/nginx/xxxx.com.conf:/etc/nginx/conf.d/xxxx.com.conf:ro  
      - ./conf/nginx/blacklist.conf:/etc/nginx/blacklist.conf:ro  
      - ./log/nginx/:/var/log/nginx/:rw  
    restart: always  
    depends_on:  
      - fpm  
      - mysql  

修改nginx配置文件

nginx配置文件结构请移步
使用 docker容器搭建typecho个人博客(docker-compose版)

zezr.com.conf末尾处添加代码

include /etc/nginx/blacklist.conf;  
检测nginx 配置是否正确的操作
nginx -t -c xxx.conf  
  • -t 测试配置文件是否正确

  • -c 指定文件路径

进入nginx所在的容器重启nginx

docker exec -it blog_nginx /usr/sbin/nginx -s reload  
deny ip
tail -n5000 /root/docker_typecho/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | awk '{if($1>100)print "deny "$2";"}' > /root/docker_typecho/conf/nginx/blacklist.conf  

形成自动脚本

#! /bin/sh  
tail -n5000 /root/docker_typecho/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | awk '{if($1>100)print "deny "$2";"}' > /root/docker_typecho/conf/nginx/blacklist.conf  
echo > /root/docker_typecho/log/nginx/access.log   
echo > /root/docker_typecho/log/nginx/error.log   
docker exec -i blog_nginx /usr/sbin/nginx -s reload  
添加可执行权限
chmod +x /root/docker_typecho/auto/nginx_ipblack_auto.sh  
每十分钟执行一次
crontab -e  
编辑内容如下:
*/10 * * * * /root/docker_typecho/auto/nginx_ipblack_auto.sh  

参考引用

  • 服务器简易防CC攻击设置

  • 通过nginx配置文件抵御攻击,防御CC攻击的经典思路!

  • nginx 限流模块和fail2ban搭配使用

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取

👉1.成长路线图&学习规划👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

在这里插入图片描述
在这里插入图片描述

👉2.网安入门到进阶视频教程👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程扫描领取哈)
在这里插入图片描述
在这里插入图片描述

👉3.SRC&黑客文档👈

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:
在这里插入图片描述
黑客资料由于是敏感资源,这里不能直接展示哦! (全套教程扫描领取哈)

👉4.护网行动资料👈

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
在这里插入图片描述

👉5.黑客必读书单👈

在这里插入图片描述

👉6.网络安全岗面试题合集👈

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
在这里插入图片描述

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值