阿里云SLB场景使用Nginx封用户真实IP

当我们使用slb代理tomcat的时候,如果出现了攻击,我们使用iptables是无法将用户真实IP进行…….

阿里云SLB场景使用Nginx封用户真实IP

Nginx

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

https://www.lingkb.com/wp-content/uploads/2020/01/1578151617-6d891515684e59e.png-79.4kB

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

https://www.lingkb.com/wp-content/uploads/2020/01/1578151617-7bfe2216197c9e1.png-49.7kB

此处勾选即可

创建SLB-官方文档

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

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

         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" />

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

下午被攻击的日志:

https://www.lingkb.com/wp-content/uploads/2020/01/1578151617-2ed3c2e1ca9d2ef.png-25.1kB

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无法进行访问数据库。不然数据库会被查询语句进行刷爆

原文章: Nginx 相关内容 [持续补充2017.3.27更]

欢迎评论。
lingkb » 阿里云SLB场景使用Nginx封用户真实IP