Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/leonbroseliske/cfc
脚本与自动化配置审计网络安全
GitHubleonbroseliske/cfc

CFC

集中式防火墙控制

查看仓库
219448年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

集中式防火墙控制脚本

集中式防火墙控制提供了一种集中管理运行 iptables 的多台服务器或负载均衡器防火墙的方法。通过这种方式,你可以使用一条命令在多台服务器上快速允许/阻止/删除/搜索滥用地址段等。它通过 SSH 访问这些服务器。

支持 IPv4 和 IPv6。

已在 Debian 6.x / 7.x / 8.x / 9.x 上测试,但应适用于任何发行版。

前置条件

要使用 IPv6 的 'precheck'、'protected' 和 'findip' 功能,需要安装 'netaddr' Python 模块。IPv4 不需要该模块,因为它使用 IP 二进制形式的前缀匹配。

Debian: apt-get install python3-netaddr

配合 'ipset' 使用 iptables 效率更高。Ipset 可用于管理 iptables 可以引用和使用的列表。这种方式速度更快,列表操作也更灵活,是使用此脚本的首选方法。

Debian: apt-get install ipset

由于此脚本通过 SSH 连接到指定服务器,因此必须存在相应的 SSH 访问权限才能使用。

设置

首次使用时,将 cfc.cfg-example 示例配置复制为 cfc.cfg。

配置文件中可以设置以下选项:

  • action: 添加规则时设置的动作,默认值: DROP

  • checkaggrbin: checkaggr.py 脚本的路径,默认值: ./checkaggr.py

  • cleanupconfirmation: 运行清理命令前是否需要确认,用于 cron 时设为 false,默认值: true

  • date: 设置防火墙注释的日期格式,默认值: $(date +%d%m%Y) -> 22062016

  • dateipset: 设置 ipset 防火墙注释的日期格式,建议保持默认以避免某些功能失效,默认值: $(date +%Y%m%d) -> 20160622

  • ipsetname: 设置 IPSET 列表名称,默认值: blockedips

  • ipsetservers: 设置使用 IPSET 而非 iptables 的服务器,默认值: "lvs05.example.com lvs06.example.com"

  • fwchain: 添加/删除/搜索的防火墙链名称,默认值: INPUT

  • masklimit: 可添加的 IP 范围的最大掩码大小,默认值: /21

  • precheck: 检查即将添加的 IP 是否已在防火墙中,或是否属于已添加的更大范围。对于大型 IPv6 防火墙可能较慢(每台服务器搜索 500 个 IP 范围约需 25 秒),默认值: true

  • protected: 启用已添加的保护范围,默认值: true

  • protectedranges: 从 'add' 功能中排除的 IP 范围,通常是本地网络所拥有的范围,默认值: "172.16.0.0/12 10.0.0.0/8 192.168.0.0/16"

  • pythonbin: 所使用的 Python 二进制文件位置,默认值: /usr/bin/python3

  • servers: 设置仅使用 iptables 的服务器,默认值: "lvs01.example.com lvs02.example.com lvs03.example.com lvs04.example.com"

  • IPv6 功能通过后缀 '6' 标记

用法

下载工具

在执行以下命令输入 IP/范围时,请使用 CIDR 表示法,系统会进行验证,其他格式将不被接受。

add:

root@kitploit:~
cfc.sh add n.n.n.n/NN '<可选注释>'
cfc6.sh add <IPv6地址范围> '<可选注释>'

将指定的 IP(范围)添加到防火墙,并对来自该源的所有流量执行配置的动作。默认会添加当前日期的注释,你也可以在单引号中添加可选注释,例如添加该范围的原因或所有者。后续可根据该注释进行搜索。

addstring:

root@kitploit:~
cfc.sh addstring <协议>:<目标端口> <字符串>
cfc6.sh addstring <协议>:<目标端口> <字符串>

针对特定协议和目标端口向 iptables 添加字符串阻止规则。一个实际例子是阻止针对一组 Web 服务器的某个 User-Agent,例如针对目标端口 80 的 TCP 连接中包含字符串 "Firefox/28.0",所有匹配该字符串且发往 TCP 80 端口的入站流量都将被阻止:

root@kitploit:~
cfc.sh addstring tcp:80 'Firefox/28.0'

注意,如果字符串不够具体,可能会产生严重后果!

clean:

root@kitploit:~
cfc.sh clean <天数>

清理所有超过 n 天历史的 CFC 防火墙规则。请注意,这取决于默认的日期格式!如果你自定义了日期格式,则需调整脚本中的 'clean' 部分。

del:

root@kitploit:~
cfc.sh del n.n.n.n/NN
cfc6.sh del <IPv6地址范围>

从防火墙中删除指定的 IP(范围)/规则。

delstring:

root@kitploit:~
cfc.sh delstring <协议>:<目标端口> <字符串>
cfc6.sh delstring <协议>:<目标端口> <字符串>

删除 iptables 中针对特定协议和目标端口的字符串阻止规则。

find:

root@kitploit:~
cfc.sh find <字符串>
cfc6.sh find <字符串>

在防火墙中搜索指定的字符串(不区分大小写),可以是 IP / 范围 / 注释的一部分。

findip:

root@kitploit:~
cfc.sh findip n.n.n.n/NN
cfc6.sh findip <IPv6地址范围>

检查防火墙中是否已包含指定的 IP(范围)作为已添加规则的一部分。对于大型 IPv6 防火墙可能较慢(每台服务器搜索 500 个 IP 范围约需 25 秒)。IPv4 使用 IP 二进制形式的前缀匹配,速度大约快 500%,该方式也用于 precheck 和 protectedranges 功能。

ipsethostinit:

root@kitploit:~
cfc.sh ipsethostinit <服务器名称>
cfc6.sh ipsethostinit <服务器名称>

在指定主机上添加 IPSET 列表以及引用该列表的 iptables 规则,使用 cfc.cfg 中定义的参数。此操作仅在添加防火墙规则前执行一次即可。

last:

root@kitploit:~
cfc.sh last <最近规则数量>
cfc6.sh last <最近规则数量>

显示最近 条添加到防火墙的条目。