定期收集和发布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第三方库


热门话题
如何在JavaEE中隔离用户会话?   java什么是CacheManager的替代方法。集合名(字符串名)   当am通过==运算符比较对象时,java sop命令未打印附加文本为什么?   java如何关闭一个gui的一个窗口,该窗口有两个打开的窗口,而不同时关闭这两个窗口?   java如何在socket回调中使用观察器?   java在自定义soap处理程序中是否有一种获得操作名的保证方法?   正则表达式Java解析字符串   java希望从其他方法检索RGB像素值,但无法检索   java如何在Android RecyclerView中循环浏览项目?   java tomcat 8上的主机中的软件中止了已建立的连接   java Apache CXF3。具有可靠消息传递的0.4 Soap web服务引发异常   Java与Hibernate数据库   使用put存储新的键值对时,现有键的java Hashmap值将被覆盖。如何预防?   并非所有unix shell的java命令都在运行   java根据元素的自然顺序对列表进行排序   基于值的java同步方法评估   java如何使用axis2 java2wsdl创建标头?   铸造如何阻止java舍入   java计数休眠和命名查询