3 ܓiC @ s* d dl mZmZmZ G dd deeZdS ) )PluginIndependentPluginSoSPredicatec @ sD e Zd ZdZdZdZdZdZdZdd Z dd Z dd Zdd ZdS )FirewallTablesa Collects information about local firewall tables, such as iptables, and nf_tables (via nft). Note that this plugin does _not_ collect firewalld information, which is handled by a separate plugin. Collections from this plugin are largely gated byt the presence of relevant kernel modules - for example, the plugin will not collect the nf_tables ruleset if both the `nf_tables` and `nfnetlink` kernel modules are not currently loaded (unless using the --allow-system-changes option). zfirewall tablesZfirewall_tablesnetworksystem /etc/nftables ip_tables ip6_tables nf_tables nfnetlinkebtablesc C s2 d| }d| d }| j |t| |dgdd dS )z Collecting iptables rules for a table loads either kernel module of the table name (for kernel <= 3), or nf_tables (for kernel >= 4). If neither module is present, the rules must be empty.Ziptable_ziptables -t z -nvLr )kmods)predN)add_cmd_outputr )self tablenamemodnamecmd r %/usr/lib/python3.6/firewall_tables.pycollect_iptable s zFirewallTables.collect_iptablec C s2 d| }d| d }| j |t| |dgdd dS )z& Same as function above, but for ipv6 Z ip6table_z ip6tables -t z -nvLr )r )r N)r r )r r r r r r r collect_ip6table* s zFirewallTables.collect_ip6tablec C s&