阿里云SLB下使用Nginx巧加web防火墙

Crq
Crq
Crq
1163
文章
0
评论
2024年12月9日23:47:13
评论
36 686字阅读2分17秒
摘要

服务器大家都不陌生,随着科技的发展企业对于服务器的选择也是多种多样。云服务对我们带来了便利,架构即服务,软件即服务等。但是云服务的背后我们对服务的控制能力有时候缺有了限制。公司用的是阿里云的负载均衡器-SLB,SLB与后端nginx流量为内网,这个时候面对这洪水攻击和爬虫的时候我们单从WEB服务器的iptables层很难做到隔离IP。下面我们巧用nginx来实现IP隔离

场景原理:

场景: 前端SLB--->nginx---->proxy

1.首先需要配置SLB(阿里云负载均衡)让slb记录用户真实IP功能

SLB是阿里云的一款负载均衡服务产品,和LVS一样,我们可以理解为LVS服务,(但是我们没有对lvs服务器的管理权限)


此处勾选即可

2.tomcat开启X-Forwarded-For日志功能

开启tomcat的X-Forwarded-For,在tomcat/conf/server.xml中,修改AccessLogValve日志纪录功能为如下内容:

  <valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%{X-Forwarded-For}i %h %l %u %t %r %s %b"></valve>

提示:修改完重启生效!!

被攻击的日志检查客户真实IP:

3.Nginx配置隔离

在Server标签下添加如下几行

 set $allow true;
	if ($http_x_forwarded_for ~ "106.121.*.*|106.121.71.120|106.121.77.28|106.121.74.130|218.109.235.254"){
        set $allow false;
	}
	if ($allow = false){
        return 404;
    }
#提示:IP添加在上面!

小结: 因为无法禁止用户进行访问,我们设置404可以让IP无法进行访问数据库。不然数据库会被查询语句进行刷爆。

weinxin
我的微信
这是我的微信扫一扫
Crq
  • 本文由 发表于 2024年12月9日23:47:13
  • 转载请注明:https://www.cncrq.com/12062.html
DevOps监控微服务的五原则 Linux教程

DevOps监控微服务的五原则

监控是微服务控制系统的关键部分,你的软件越复杂,那么你就越难了解其性能及问题排障。鉴于软件交付发生的巨大改变,监控系统同样需要进行彻底的改造,以便在微服务环境下表现更好。
Linux 中重置数据库的 root 密码的技巧 Linux教程

Linux 中重置数据库的 root 密码的技巧

其中一项是设置数据库 root 帐户的密码 - 你必须保持私密,并仅在绝对需要时使用。如果你忘记了密码或需要重置密码(例如,当数据库管理员换人或被裁员!),这篇文章会派上用场。
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: