F5社区-F5技术交流中心

F5基于源IP和URL组合拦截请求配置

2023-10-24 16:13:12

Will Tang

配置方法


F5可以通过iRule实现针对源IP和目的URL的黑名单阻断,也即一个源IP加入黑名单后,可以选择只禁止访问特定URL,也可以禁止所有访问。所用iRule如下:

when HTTP_REQUEST {
    if { [class match [IP::client_addr] equals block_ip] } {
        set block_uri [class match -value [IP::client_addr] equals block_ip]
        if { [class exists $block_uri] } {
            if { [class match [HTTP::uri] starts_with $block_uri] } {
                reject
                log local0. "Client from IP [IP::client_addr] visit [HTTP::uri] has been blocked."
            }
        } else {
            reject
            log local0. "Client from IP [IP::client_addr] has been blocked for all url."
        }
    }
}

要使用这个iRule,首先我们需要创建一个名为block_ipdata-group,类型为ip,在这里管理源ip黑名单,如果一个源ip要做特定URL阻断,则给这个ip同时赋予一个valuevalue是另外一个data-group的名字,而这个data-group里面管理的即是要阻断的URL,类型为string。如果block_ip中的ip地址没有value,则为禁止所有访问。

 

测试一下,我们首先创建block_ipdata-groupheiRule,加上必要的vspool并关联iRule,首先我们不在block_ip添加任何ip,访问一下vs,能正常访问



访问/lorax.php这个页面也正常



然后我们在block_ip这个data-group中添加一个源地址,value留空



再次访问,发现被拦截



日志里也有相应记录



然后我们修改一下block_ip中这个地址,给它加上一个值,叫做block_uri1



然后创建block_uri1这个data-group,类型为string,添加一个string “/lorax”



再次访问vs首页,发现可以访问



然后访问/lorax.php发现被拦截



日志也有相应记录



REST API操作


我们可以通过F5 REST API来维护IPURL列表,这样方便我们做自动化拦截以及和第三方联动。

对于iRuleblock_ip这个data-group,我们会预先创建,只需要通过API维护block_ip里面的地址列表即可。REST APIdata-groupRecords做的是全量更新,也就是我们要维护这个列表的最终状态。

首先我们可以通过GET方法读取当前的列表内容

Endpoint/mgmt/tm/ltm/data-group/internal/block_ip



PATCH方法可以更新records,记住是全量更新,例如要新增如下两个ip,需要把之前的records也带上



登录设备查看发现data-group已被更新



这里我们给10.1.10.2这个IP设置了一个新的URL列表,叫做block_uri2,我们需要创建这个data-group

Endpoint/mgmt/tm/ltm/data-group/internal/

方法用POSTPayload如下

{
    "name": "block_uri2",
    "type": "string",
    "records": [
        {
            "name": "/uri21",
            "data": ""
        },
        {
            "name": "/uri222",
            "data": ""
        }
    ]
}



登录设备可以看到data-group已经被创建



URL列表的更新方法和IP列表一样,这里不再赘述,请一定记住是全量更新!

发布评论 加入社群

发布评论

相关文章

AWAF v17.1 Bot Defense限速REST API配置手册

Will Tang

2023-10-24 16:36:54 150

AWAF v17.1 Data Guard REST API配置手册

Will Tang

2023-10-24 16:24:54 111

使用AWAF进行Header防护

Will Tang

2023-03-22 22:33:57 403

Login

手机号
验证码
© 2019 F5 Networks, Inc. 版权所有。京ICP备16013763号-1