Haproxy的ACL介绍及应用实例
创始人
2024-09-25 08:22:25
0

一、ACL介绍

访问控制列表ACL,Access Control Lists) 是一种基于包过滤的访问控制技术 它可以根据设定的条件对经过服务器传输的数据包进行过滤(条件匹配)即对接收到的报文进行匹配和过 滤,基于请求报文头部中的源地址、源端口、目标地址、目标端口、请求方法、URL、文件后缀等信息内 容进行匹配并执行进一步操作,比如允许其通过或丢弃。

1、ACL配置选项

2、ACL-Name 名称

acl         test         path_end         -m         sub         /a

#ACL名称,可以使用大字母A-Z、小写字母a-z、数字0-9、冒号:、点.、中横线和下划线,并且严格区分大 小写,比如:my_acl和My_Acl就是两个完全不同的acl5.8.1.2 ACL-criterion

 3、ACL-criterion 匹配规范

 定义ACL匹配规范,即:判断条件

hdr string,提取在一个HTTP请求报文的首部

hdr ([ [, ]]):完全匹配字符串,header的指定信息, 表示在多值中使用的值的出 现次数

hdr_beg ([ [, ]]):前缀匹配,header中指定匹配内容的begin

hdr_end ([ [, ]]):后缀匹配,header中指定匹配内容end

hdr_dom ([ [, ]]):域匹配,header中的dom(host)

hdr_dir ([ [, ]]):路径匹配,header的uri路径

hdr_len ([ [, ]]):长度匹配,header的长度匹配

hdr_reg ([ [, ]]):正则表达式匹配,自定义表达式(regex)模糊匹配

hdr_sub ([ [, ]]):子串匹配,header中的uri模糊匹配 模糊匹配c 报文中a/b/c也会匹 配

4、ACL-flags匹配模式

-i 不区分大小写

-m 使用指定的正则表达式匹配方法

-n 不做DNS解析

-u 禁止acl重名,否则多个同名ACL匹配或关系

5、ACL-operator具体操作符

整数比较:eq、ge、gt、le、lt

字符比较:

- exact match     (-m str) :字符串必须完全匹配模式

- substring match (-m sub) :在提取的字符串中查找模式,如果其中任何一个被发现,ACL将匹配

- prefix match   (-m beg) :在提取的字符串首部中查找模式,如果其中任何一个被发现,ACL将匹配

- suffix match   (-m end) :将模式与提取字符串的尾部进行比较,如果其中任何一个匹配,则ACL进行 匹配

- subdir match   (-m dir) :查看提取出来的用斜线分隔(“/")的字符串,如其中任一个匹配,则ACL 进行匹配

- domain match   (-m dom) :查找提取的用点(“.")分隔字符串,如果其中任何一个匹配,则ACL进行 匹配

6、ACL-value操作对象

The ACL engine can match these types against patterns of the following types :

- Boolean #布尔值

- integer or integer range #整数或整数范围,比如用于匹配端口范围

- IP address / network #IP地址或IP范围, 192.168.0.1 ,192.168.0.1/24

- string--> www.timinglee.org

exact #精确比较

substring #子串

suffix #后缀比较

prefix #前缀比较

subdir #路径, /wp-includes/js/jquery/jquery.js

domain #域名,www.timinglee.org

- regular expression #正则表达式

- hex block #16进制

7、多个ACL的组合调用方式

多个ACL的逻辑处理:

与:隐式(默认)使用

或:使用“or" 或 “||"表示

否定:使用 "!" 表示

多个ACL调用方式:

#示例:

if valid_src valid_port         #与关系,ACL中A和B都要满足为true,默认为与

if invalid_src || invalid_port          #或,ACL中A或者B满足一个为true

if ! invalid_src         #非,取反,不满足ACL才为true

二、域名匹配

1、编辑haproxy.cfg配置文件

vim /etc/haproxy/haproxy.cfg

重启服务:

systemctl restart haproxy.service

2、测试结果

测试主机作本地解析:

vim /etc/hosts

测试结果:

三、基于源IP或子网调度访问

将指定的源地址调度至指定的web服务器组。

1、编辑haproxy.cfg配置文件

vim /etc/haproxy/haproxy.cfg

重启服务:

systemctl restart haproxy.service

2、测试结果

四、基于源地址的访问控制

拒绝指定IP或者IP范围访问

1、编辑haproxy.cfg配置文件

vim /etc/haproxy/haproxy.cfg

重启服务:

systemctl restart haproxy.service

2、测试

五、匹配浏览器类型

匹配客户端浏览器,将不同类型的浏览器调动至不同的服务器组

1、编辑haproxy.cfg配置文件

vim /etc/haproxy/haproxy.cfg

重启服务:

systemctl restart haproxy.service

2、测试

浏览器中测试(跳转到百度页面):

六、基于文件后缀名实现动静分离

1、编辑haproxy.cfg配置文件

vim /etc/haproxy/haproxy.cfg

重启服务:

systemctl restart haproxy.service

2、测试

[root@webserver1 ~]# echo css 172.25.254.10 > /usr/share/nginx/html/index.php

[root@webserver2 ~]# echo php 172.25.254.20 > /var/www/html/index.css

[root@node10 ~]# curl 172.25.254.100/index.php

php 172.25.254.10

[root@node10 ~]# curl 172.25.254.100/index.css

css 172.25.254.20

七、匹配访问路径实现动静分离

1、编辑haproxy.cfg配置文件

重启服务:

systemctl restart haproxy.service

2、测试

[root@webserver1 ~]# mkdir /usr/share/nginx/html/static
[root@webserver1 ~]# echo static 172.25.254.10 > /usr/share/nginx/html/static/index.html
[root@webserver2 ~]# mkdir /var/www/html/api/
[root@webserver2 ~]# echo api 172.25.254.20 > /var/www/html/api/index.html
[root@webserver1 ~]# curl 172.25.254.100/api/

api 172.25.254.20

[root@webserver1 ~]# curl 172.25.254.100/static/

static 172.25.254.10

相关内容

热门资讯

安卓系统app更新软件,And... 亲爱的手机控们,你们有没有发现,最近你的手机里那些熟悉的APP们,好像都悄悄地换上了新装呢?没错,安...
手机怎么安双卡安卓系统,轻松实... 你有没有想过,拥有一部可以同时使用两张SIM卡的手机是多么的方便呢?想象一张卡用来工作,另一张卡用来...
安卓系统卸载软件api,功能与... 手机里的软件越来越多,是不是感觉内存都要不够用了?别急,今天就来给你揭秘安卓系统卸载软件的神秘面纱,...
miui操作系统和安卓系统,深... 亲爱的手机控们,今天咱们来聊聊一个让无数米粉心动的系统——MIUI操作系统,还有那个它背后的老大哥—...
原生安卓系统使用教学,原生安卓... 哇,你手里拿的那部手机,是不是也觉得它有点儿特别呢?它可能没有那些花里胡哨的界面,但它却有着自己独特...
安卓系统玩咸鱼之王,三国名将助... 你有没有发现,最近安卓系统上的游戏圈里,有一款叫做《咸鱼之王》的游戏火得一塌糊涂?没错,就是那个让你...
鸿蒙1.0系统是安卓系统吗,揭... 你有没有听说最近华为的鸿蒙1.0系统?是不是有点好奇,这鸿蒙1.0系统是不是安卓系统的“亲戚”呢?别...
优盘安卓系统用桃,U盘安装An... 你有没有想过,你的电脑也能变身成安卓手机?没错,就是那种可以安装各种APP、玩游戏的安卓手机!这可不...
怎样使用安卓8系统,安卓8系统... 你有没有想过,你的安卓手机其实是个小智能助手,只要你会使用,它能帮你做很多事情呢!今天,就让我来带你...
鼎威安卓系统版本,性能升级与用... 你有没有发现,现在车机系统越来越智能了?这不,鼎威的安卓系统版本就让我眼前一亮。想象坐在车里,手指轻...
安卓系统安装抢红包,轻松成为抢... 亲爱的手机控们,是不是每次微信群里抢红包都感觉手慢无?别急,今天我要给你揭秘如何在安卓系统上轻松安装...
写ios系统和安卓系统的人,揭... 你有没有想过,那些默默无闻的程序员们,他们是如何创造出我们每天离不开的iOS系统和安卓系统呢?想象他...
安卓系统设计尺寸规范,适配与优... 亲爱的设计师们,你是否在为安卓系统的设计尺寸规范而头疼?别担心,今天我要带你一起探索这个神秘的领域,...
旧主机改安卓系统,安卓系统改造... 亲爱的读者们,你是否有过这样的经历:家里的旧主机闲置在角落,看着它那略显过时的外观,心里不禁感叹:“...
安卓系统里有趣的,尽在掌握 探索安卓乐园:那些让你笑出声的趣味游戏 开篇:手机里的欢乐小天地想象你手握一部安卓手机,屏幕上跳动...
法兰规格查询系统安卓,安卓版功... 你有没有想过,在繁忙的工程现场,如何快速找到合适的法兰规格呢?别急,今天就来给你揭秘一个神器——法兰...
目前安卓系统最高配置,极致性能... 你有没有发现,现在的手机越来越厉害了,就像是科幻电影里的高科技产品一样。今天,咱们就来聊聊这个话题:...
安卓修改系统返回键,个性化设置... 你有没有发现,手机里的那个小小的返回键,有时候就像是个顽皮的小家伙,让你摸不着头脑?别急,今天就来教...
安卓订餐系统教程视频,从设计到... 你是不是也和我一样,每天忙碌的生活中,最期待的就是那一顿美味的午餐或晚餐呢?现在,有了安卓订餐系统,...
安卓系统限制外部软件,探索外部... 亲爱的手机控们,你是否曾遇到过这样的烦恼:明明打开了“未知来源”,却还是无法安装那些心仪的外部软件?...