2017年6月2日星期五

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


Linuxeden 开源社区 --
导读 服务器大家都不陌生,随着科技的发展企业对于服务器的选择也是多种多样。云服务对我们带来了便利,架构即服务,软件即服务等。但是云服务的背后我们对服务的控制能力有时候缺有了限制。公司用的是阿里云的负载均衡器-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 无法进行访问数据库。不然数据库会被查询语句进行刷爆。

原文地址: http://ift.tt/2s1flGu编辑:陶武杰,审核员:逄增宝

The post 阿里云 SLB 下使用 Nginx 巧加 web 防火墙 appeared first on Linuxeden开源社区.

http://ift.tt/2qHDOgk

没有评论:

发表评论