目标规则语法

目标规则语法

在 pfSense 2.3.1 内的 SquidGuard 屏幕中,Groups ACL有 和 两Target Rules List Target CategoriesTarget Categories for off-time。该行中的每个值都有值allowdenywhitelist---

为什么有两列,它们的含义是什么?

答案1

弄清楚了。在查看生成的代码并参考 Squid Guardian 网站的一些示例后,我清楚地看到该Target Categories列包含当 acl 在指定时间段内时应用的黑名单/白名单规则,并且这些Target Categories for off-time是黑名单/ 当 acl 超出指定时间段时应用的白名单规则。

目标规则语法

复制Target Rules文本说明一切(如果您已经保存它,则更改值时不会自动更新......)

它通常看起来像这样:

<black-lists applied inside time frame> all|deny [ <black-lists applied outside time frame> all|deny ]

语法是这样的,

  • 括号外的任何内容都是在时间范围内应用的内容。
    • <black-lists applied inside time frame>
  • 括号内的任何内容都是在时间范围之外应用的内容。
    • <black-lists applied inside time frame>
  • 最后的allordeny表示在没有命中的情况下运行完列表的其余部分后(从左到右),您是要允许访问所有其他站点,还是要拒绝所有其他站点?

前缀:

Applies to all specified black lists
! = Deny
  = allow
^ = whitelist

例子

现在我想我让这个有点复杂了(必须有一个不太冗长的语法),并且如果我了解更多关于允许而不是白名单语法的信息,就会有某种方法来使用默认值,但我还没有'还没有研究过,所以这是我的理解:

假设当您希望设置时间范围之外的内容时,您希望以下黑名单生效,并且任何其他站点都是免费游戏:

  • blk_BL_adv
  • blk_BL_aggressive
  • blk_BL_约会
  • blk_BL_药物
  • blk_BL_gamble
  • blk_BL_hacking
  • blk_BL_电影
  • blk_BL_新闻
  • blk_BL_政治
  • blk_BL_色情
  • blk_BL_radiotv
  • blk_BL_socialnet
  • blk_BL_间谍软件
  • blk_BL_warez

...并且您希望其他任何内容都可以访问...那么您可以将其放在all最后。

要查看实际效果,您需要将所有内容放在括号中:

[ !blk_BL_adv !blk_BL_aggressive !blk_BL_dating !blk_BL_drugs !blk_BL_gamble !blk_BL_hacking !blk_BL_movies !blk_BL_news !blk_BL_politics !blk_BL_porn !blk_BL_radiotv !blk_BL_socialnet !blk_BL_spyware !blk_BL_warez all ] 

注意有只有!(拒绝)和没有(允许)和没有^(白名单)


现在假设在该时间段内我们希望允许访问以下内容,但仍保留我们的非时间黑名单规则:

  • BLK_电影
  • blk_BL_新闻
  • blk_BL_政治
  • blk_BL_socialnet

然后,我们从关闭时间列表中复制值,并仅在上面列出的条目上将!(拒绝)替换为(白名单)。^其余人仍然!否认。

括号外的列表就变成了

!blk_BL_adv !blk_BL_aggressive !blk_BL_dating !blk_BL_drugs !blk_BL_gamble !blk_BL_hacking ^blk_BL_movies ^blk_BL_news ^blk_BL_politics !blk_BL_porn !blk_BL_radiotv ^blk_BL_socialnet !blk_BL_spyware !blk_BL_warez all

all...列表末尾还有一个允许其余站点的列表。

所以当我们把它们放在一起时我们有:

 !blk_BL_adv !blk_BL_aggressive !blk_BL_dating !blk_BL_drugs !blk_BL_gamble !blk_BL_hacking ^blk_BL_movies ^blk_BL_news ^blk_BL_politics !blk_BL_porn !blk_BL_radiotv ^blk_BL_socialnet !blk_BL_spyware !blk_BL_warez all [ !blk_BL_adv !blk_BL_aggressive !blk_BL_dating !blk_BL_drugs !blk_BL_gamble !blk_BL_hacking !blk_BL_movies !blk_BL_news !blk_BL_politics !blk_BL_porn !blk_BL_radiotv !blk_BL_socialnet !blk_BL_spyware !blk_BL_warez all ] 

这就是作为盒子的值存储的内容Target Rules


当我试图弄清楚这一点时,我不知不觉地发现自己vim通过获取 的值来复制构成 GUI 的相同两个列表Target Rules,将其拆分为括号内和括号外的列表,并获取每个平面列表并放置它们垂直并排,然后我意识到发生了什么事。

相关内容