前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CFC:一种功能强大的中心化防火墙控制工具

CFC:一种功能强大的中心化防火墙控制工具

作者头像
FB客服
发布2023-02-27 11:15:02
5070
发布2023-02-27 11:15:02
举报
文章被收录于专栏:FreeBufFreeBuf

关于CFC 

CFC,全称为Centralized Firewall Control,即中心化防火墙控制,该工具给广大研究人员提供了一种中心化的方法来管理运行了iptable的多台服务器或多个负载均衡器上的防火墙。这样一来,我们就可以通过一条命令快速在多个服务器上进行防火墙管理了。需要注意的是,该工具主要通过SSH来访问服务器/防火墙。

当前版本的CFC同时支持IPv4和IPv6,并在Debian 6.x / 7.x / 8.x / 9.x等发行版操作系统上进行过测试。

 工具依赖 

如果需要使用针对IPv6的“precheck”、“protected”和“findip”等功能的话,还需要安装“netaddr” Python模块。IPv4还不需要使用该模块,因为该工具针对二进制IP地址使用的是前缀匹配方法。

netaddr模块的安装命令如下(Debian):

代码语言:javascript
复制
apt-get install python3-netaddr

ipset可用于管理iptables可以引用和使用的列表。这可以更快地工作,并且列表的操作也更灵活,是使用此脚本的首选方法。ipset模块的安装命令如下(Debian):

代码语言:javascript
复制
apt-get-install-ipset

由于此脚本使用ssh连接到给定的服务器,因此在使用之前必须存在相应的访问连接。

 工具下载 

广大研究人员可以使用下列命令将该项目源码克隆至本地:

代码语言:javascript
复制
git clone https://github.com/LeonBroseliske/CFC.git

(向右滑动,查看更多)

 工具设置 

首先,将工具配置样例文件cfc.cfg-example文件改名为cfc.cfg。接下来,可以按照需求修改配置文件。可使用的配置参数如下:

 工具使用 

注意:当使用以下命令输入单个IP/地址范围时,请使用CIDR表示法。

add:

代码语言:javascript
复制
cfc.sh add n.n.n.n/NN '<optional comment>'cfc6.sh add <IPv6_address_range> '<optional comment>'

(向右滑动,查看更多)

将给定IP(范围)添加到防火墙,并为来自该源的所有流量配置操作。默认情况下使用当前日期进行注释,可以使用单引号添加可选注释,以添加该范围的原因或所有者。

addstring:

代码语言:javascript
复制
cfc.sh addstring <protocol>:<dport> <string>cfc6.sh addstring <protocol>:<dport> <string>(向右滑动,查看更多)

为特定协议和目标端口向iptables添加一个字符串块。一个实际使用场景是屏蔽一组Web服务器中的User-Agent,因此所有包含Firefox/28.0字符串和端口80相关的TCP连接将会被屏蔽:

代码语言:javascript
复制
cfc.sh addstring tcp:80 'Firefox/28.0'

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

clean:

代码语言:javascript
复制
cfc.sh clean <older_than_number_of_days>(向右滑动,查看更多)

清除所有早于n天的CFC防火墙规则。请记住,它取决于默认日期格式!因此,如果你自定义了日期格式,则需要在“clean”部分调整脚本。

del:

代码语言:javascript
复制
cfc.sh del n.n.n.n/NNcfc6.sh del <IPv6_address_range>

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

delstring:

代码语言:javascript
复制
cfc.sh delstring <protocol>:<dport> <string>cfc6.sh delstring <protocol>:<dport> <string>(向右滑动,查看更多)

删除iptables中特定协议和目标端口的字符串块。

find:

代码语言:javascript
复制
cfc.sh find <string>cfc6.sh find <string>

在防火墙中搜索给定字符串(区分大小写)。

findip:

代码语言:javascript
复制
cfc.sh findip n.n.n.n/NNcfc6.sh findip <IPv6_address_range>

如果给定的IP(范围)已经是添加规则的一部分,则对于IPv6的防火墙搜索可能速度比较慢(对于每台服务器搜索500个IP范围,大约需要25秒)。IPv4在IP的二进制形式上使用前缀匹配,这大约快500%,这也用于预检查和保护范围功能。

ipsethostinit:

代码语言:javascript
复制
cfc.sh ipsethostinit <server_name>cfc6.sh ipsethostinit <server_name>

将IPSET列表添加到指定主机,并使用cfg.cfg中定义的参数将iptables规则引用到该列表。在添加防火墙规则之前,只需执行一次。

last:

代码语言:javascript
复制
cfc.sh last <nr_of_most_recent_rules>cfc6.sh last <nr_of_most_recent_rules>

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

 许可证协议 

本项目的开发与发布遵循GPL-3.0开源许可证协议。

 项目地址 

CFC:https://github.com/LeonBroseliske/CFC

精彩推荐

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于CFC 
  •  工具依赖 
  •  工具下载 
  • (向右滑动,查看更多)
  •  工具设置 
  •  工具使用 
  •  许可证协议 
  •  项目地址 
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档