HAProxy 根据报文解析来定义不通的acl

2023-12-13 12:43:19

在 HAProxy 中使用 ACLs(Access Control Lists)检查 TCP 报文内容时,你可以使用 payload 关键字。以下是一个例子,演示如何在 HAProxy 的 ACL 中使用 payload

 
frontend my_frontend
  bind *:80
  mode tcp

  acl payload_hello req.payload(0,7) -m bin 68656c6c6f21
  acl payload_world req.payload(7,5) -m bin 776f726c64

  use_backend backend_hello if payload_hello
  use_backend backend_world if payload_world

backend backend_hello
  mode tcp
  server server_hello 192.168.1.10:8080

backend backend_world
  mode tcp
  server server_world 192.168.1.11:8080

在这个例子中:

  • acl is_hello payload(0,7) -m bin 68656c6c6f21 表示如果 TCP 报文的内容的前7个字节与二进制值 68656c6c6f21 匹配(即 "hello!" 的二进制表示),则定义了一个名为 is_hello 的 ACL。
  • tcp-request content accept if is_hello 表示如果 is_hello ACL 匹配,则接受此连接。
  • tcp-request content reject 表示如果没有

文章来源:https://blog.csdn.net/a1058926697/article/details/134967734
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。