定期收集和发布iptables的统计信息

iptables-stats的Python项目详细描述


概述

定期收集iptables规则的统计信息,并将其发送到不同的接收器(而当前只支持mqtt)。可以对链中的规则进行计数,对规则处理的数据包/字节数进行计数,并对ipset中的唯一ip进行计数。

用法

启动iptables_stat,它将持续运行,定期生成读数并将其发布到配置的接收器。

配置

程序使用yaml格式的配置文件进行配置。默认位置是/etc/iptable_stats.yml,但是可以使用命令行参数--config配置不同的位置。

配置文件由部分general和用于输入模块和输出接收器的配置部分的可变数目组成。

示例:

general:
  interval: 120

mqtt:
  host: myHost
  topic_root: home/myHost/iptables_stats

iptables_pkg_count:
  firehol_level1:
    chain: FIREHOL_BLACKLIST
    rule_regex: .*match-set.firehol_level3.src.*

  firehol_level2:
    chain: FIREHOL_BLACKLIST
    rule_regex: .*match-set.firehol_level2.src.*

  firehol_level3:
    chain: FIREHOL_BLACKLIST
    rule_regex: .*match-set.firehol_level3.src.*

ipset_count:
  firehol_level1:
    setname: firehol_level1

  firehol_level2:
    setname: firehol_level2

  firehol_level3:
    setname: firehol_level3

iptables_rule_count:
  f2b-traefik-auth:
    chain: f2b-traefik-auth
    offset: -1

  f2b-traefik-botsearch:
    chain: f2b-traefik-botsearch
    offset: -1

此配置包含三个iptables_pkg_count对象,这些对象将为与给定正则表达式匹配的规则报告iptables计数器。还有三个ipset_count对象,它们计算ipset firehol_level1firehol_level2firehol_level3中唯一ip的数量。 最后但不少于两个iptables_rule_count对象,它们计算链f2b-traefik-authf2b-traefik-botsearch中的规则。fail2ban在IP禁止的情况下向这些链中注入规则。每个规则代表一个IP。两个对象都使用offset-1,因为两个链都包含不应计算的固定DROP规则。

输出接收器

当前仅实现一个接收器

mqtt

示例:

mqtt:
  host: myHost
  port: 1883
  topic_root: home/myhost/iptables_stats
  • 主机
  • port(可选)-默认为1883
  • topic_root-定义用于发布读数的根主题的字符串

阅读模块

每个模块在配置中都有一个部分。在这些部分中,可以使用用户定义的对象名称定义对象配置。每个对象配置都可以重写gobalinterval参数,这样就可以分别为对象配置interval

iptable包数

iptables读取给定规则和链的计数器统计信息,并生成读数packet_countbyte_count。它们表示被阻塞的数据包和字节数。

配置:

  • chain-链的名称
  • rule\u regex-与所讨论的规则匹配的regex。当规则出现在iptables-save的输出中时,它与字符串匹配。不允许regex匹配多个规则。

iptables规则计数

计算给定链中的规则数并生成读取rule_count

配置:

  • chain-链的名称
  • offset(可选)-发布前添加到值的整数。这对于解释应该忽略的规则很有用。可能有一个不应计入价值的跌价规则。将offset设置为-1以调整到该值。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法使用JSF访问托管bean方法   java是制作具有多值类型的HashMap的正确方法   javafx中TicTacToe的java更新UI   windows Java文件。getCanonicalFile()无法处理冒号“:”   java在一个布局屏幕中创建多个(26)按钮   java Android Studio:Gradle构建完成,有251个错误   我们如何在Java上为callfireapiclient编写单元/集成测试?   java无法将1715UTC转换为本地/gmt类型   具有已定义的数字序列的JAVA循环   Java程序正在netbeans中编译,但未在CMD中编译,包不存在   java Android构造函数和onCreate()之间有什么区别?   java配置弹性搜索结果评分   java LibGDX纹理是否可绘制?   java如何在Android中设置应用程序默认打开pdf   java是否有一种创造性的方法将多个参数传递给contentEquals()方法?   java在Android上存储Ed25519私钥