对于那些稍微大胆的人,libiptc 提供了一组函数来直接修改防火墙规则和统计信息(使用 iptables 实际上是最安全的方式)。
本 HOWTO 未涵盖这些函数,我将仅限于展示从 libiptc.h 和 Rusty Russell 编写的 Linux netfilter Hacking HOWTO 中提取的改进信息。
原型: int iptc_commit(iptc_handle_t *handle)
参数: handle 是指向 iptc_handle_t 类型结构的指针,该结构是通过先前调用 iptc_init 获得的。
描述: 此函数在链 chain 中由整数值 rulenum 定义的位置插入结构类型 ipt_entry 中定义的规则。规则编号从 1 开始,表示第一个规则。
描述: 此函数使用结构类型 ipt_entry 中定义的规则替换链 chain 中位于 rulenum 位置的条目规则。规则编号从 1 开始,表示第一个规则。
原型: int iptc_flush_entries(const ipt_chainlabel chain, iptc_handle_t *handle)
参数: chain 是指向要清空的链的名称的 char 指针;handle 是指向 iptc_handle_t 类型结构的指针,该结构是通过先前调用 iptc_init 获得的。
原型: int iptc_zero_entries(const ipt_chainlabel chain, iptc_handle_t *handle)
参数: chain 是指向要将其计数器置零的链的名称的 char 指针;handle 是指向 iptc_handle_t 类型结构的指针,该结构是通过先前调用 iptc_init 获得的。
原型: int iptc_create_chain(const ipt_chainlabel chain, iptc_handle_t *handle)
参数: chain 是指向要创建的链的名称的 char 指针;handle 是指向 iptc_handle_t 类型结构的指针,该结构是通过先前调用 iptc_init 获得的。
原型: int iptc_delete_chain(const ipt_chainlabel chain, iptc_handle_t *handle)
描述: 此函数删除表中由 char 指针 chain 标识的链。
参数: chain 是指向要删除的链的名称的 char 指针;handle 是指向 iptc_handle_t 类型结构的指针,该结构是通过先前调用 iptc_init 获得的。
原型: int iptc_zero_counter(const ipt_chainlabel chain, unsigned int rulenum, iptc_handle_t *handle)
描述: 此函数将链 chain 中位于 rulenum 位置的条目规则的数据包和字节计数器置零。规则编号从 1 开始,表示第一个规则。