网易首页 > 网易号 > 正文 申请入驻

使用人性化的 Linux 防火墙 CFW 阻止 DDOS 攻击 | Linux 中国

0
分享至

导读:CFW(Cyber Firewall)是一个人性化的 Linux 防火墙。

本文字数:3807,阅读时长大约: 5分钟

https://github.com/LCTT/Articles/pull/26
作者:Cyberbolt

概括

CFW(Cyber Firewall)是一个人性化的 Linux 防火墙。它旨在协助阻止拒绝服务攻击(DDoS),同时能控制 Linux 系统端口的开关。CFW 基于 Linux 原生基础设施运行,拥有良好的软件兼容性。

该软件基于 iptables 和 ipset,使用 Python 开发,使用时建议关闭发行版自带的防火墙(如 firewalld、ufw)避免冲突。

通过 CFW,你将能够:

◈ 通过自定义的规则自动封禁互联网中的恶意 IP,以防止拒绝服务攻击

◈ 保护 Linux 的所有端口遭受 DDoS 攻击,而不仅仅是 Web 应用

◈ 获得良好的软件兼容性,原生支持 Nginx、Caddy 等服务器

◈ 支持配合 CDN 使用,使用 CDN 时请将 CDN 的 IP 段设置为 CFW 白名单

◈ 控制开启或关闭 Linux 系统的 TCP/UDP 端口

◈ 获得友好的命令行交互式体验

背景

Web 应用程序运行在复杂的互联网中,随时可能面临恶意攻击,导致拒绝服务现象。为了封禁这些不友好的 IP,CFW 正是为此而诞生。

CFW 的灵感最初来自宝塔面板的 Nginx 防火墙。然而,使用 Nginx 防火墙的过程中遇到诸多不顺。该防火墙仅针对 Web 应用(通常是 80 和 443 端口)防御 CC 攻击,无法保护 Linux 服务器的其他端口。同时,该防火墙需要按月付费,并始终捆绑宝塔生态(最新的宝塔面板甚至需要登录绑定手机实名制的账号),从而限制了软件自由度。我们想在纯净的 Linux 中运行防火墙,并对所有端口生效,于是自己开发了一个。

由于 CFW 基于 iptables 和 ipset,不免会与发行版自带的防火墙(如 firewalld、ufw)冲突,我们增加了 CFW 对端口开关的控制。

实现

CFW 通过ss -Hntu | awk '{print $5,$6}'命令获取当前服务器的所有连接。客户端的请求若超过设定并发数,该 IP 将被 iptables 封禁,并存储在 ipset 数据结构中。

CFW 通过调用iptables命令实现 Linux 端口的开关。

安装

请先确保系统拥有以下依赖。

对于 Debian、Ubuntu 等:

  1. sudo apt install -y curl ipset python3 git net-tools

对于 CentOS 等:

  1. sudo yum install -y curl ipset python3 git net-tools

安装好系统依赖后,输入以下命令安装 CFW:

  1. sudo curl https://raw.githubusercontent.com/Cyberbolt/cfw/main/install.py | python3

你也可以下载该脚本阅读,以了解该脚本所进行的工作后再执行上述命令。

完成安装后,使用source ~/.bashrc激活 CFW 的环境变量。(或者新打开一个 shell 环境,自动激活环境变量。)

在 Linux 终端输入systemctl status cfw,显示active (running)字样说明 CFW 已成功运行,同时会在服务器重启时自动运行。

卸载

  1. sudo curl https://raw.githubusercontent.com/Cyberbolt/cfw/main/uninstall.py | python3

配置

配置文件在/etc/cfw/config.yaml中,修改配置文件后运行systemctl restart cfw即可生效。

配置文件参数说明:

  1. # CFW 运行端口

  2. port: 6680

  3. # CFW 检测连接的频率,单位:秒。此处默认 5 秒一次。

  4. frequency: 5

  5. # 允许每个 IP 连接的最大并发数,超过将被 CFW 封禁。

  6. max_num: 100

  7. # 解封 IP 的时间。此处默认 IP 被封禁后 600 秒将自动解封。若此处值为 0,则永久封禁。

  8. unblock_time: 600

  9. # 数据备份时间,单位:秒。

  10. backup_time: 60

  11. # IPv4 白名单路径。写在文本文件中,一行一个 IP,支持子网掩码。)本地地址、内网地址默认在该文件中)

  12. whitelist: /etc/cfw/ip_list/whitelist.txt

  13. # IPv4 黑名单路径。写在文本文件中,一行一个 IP,支持子网掩码。

  14. blacklist: /etc/cfw/ip_list/blacklist.txt

  15. # IPv6 白名单路径。写在文本文件中,一行一个 IP。

  16. whitelist6: /etc/cfw/ip_list/whitelist6.txt

  17. # IPv6 黑名单路径。写在文本文件中,一行一个 IP。

  18. blacklist6: /etc/cfw/ip_list/blacklist6.txt

  19. # 日志文件的路径

  20. log_file_path: /etc/cfw/log/log.csv

  21. # 日志文件的最大行数。(达到最大行数后将自动滚动。若此处值为 0,则不限制最大行数)

  22. log_max_lines: 10000000

命令

命令中[]表示变量。

运行

◈ 停止 CFW:systemctl stop cfw

◈ 启动 CFW:systemctl start cfw

◈ 重启 CFW:systemctl restart cfw

IP 黑名单管理

◈ 手动封禁单个 IPv4 地址:cfw block [ip]

◈ 手动解封单个 IPv4 地址:cfw unblock [ip]

◈ 查看 IPv4 黑名单:cfw blacklist

◈ 手动封禁单个 IPv6 地址:cfw block6 [ip]

◈ 手动解封单个 IPv6 地址:cfw unblock6 [ip]

◈ 查看 IPv6 黑名单:cfw blacklist6

Linux 端口操作

◈ 放行 IPv4 端口:cfw allow [port]

◈ 阻止 IPv4 端口:cfw deny [port]

◈ 单独放行 IPv4 TCP 端口:cfw allow [port]/tcp,示例如cfw allow 69.162.81.155/tcp

◈ 单独阻止 IPv4 TCP 端口:cfw deny [port]/tcp,示例如cfw deny 69.162.81.155/tcp

◈ IPv4 UDP 端口操作同理

◈ 查看所有放行的 IPv4 端口:cfw status

◈ 放行 IPv6 端口:cfw allow6 [port]

◈ 阻止 IPv6 端口:cfw deny6 [port]

◈ 单独放行 IPv6 TCP 端口:cfw allow6 [port]/tcp,示例如cfw allow6 69.162.81.155/tcp

◈ 单独阻止 IPv6 TCP 端口:cfw deny6 [port]/tcp,示例如cfw deny6 69.162.81.155/tcp

◈ IPv6 UDP 端口操作同理

◈ 查看所有放行的 IPv6 端口:cfw status6

日志操作

动态查询日志cfw log [num][num]为查询日志的条数,查询结果将按时间倒序。

◈ GitHub:

◈ 电光笔记:

◈ Potato Blog:

如果你在使用中遇到任何问题,欢迎在 处留言。有了你的帮助,CFW 才能日渐壮大。

总结

CFW 可以防止一定程度的 DDoS 攻击,同时能控制开启或关闭 Linux 系统的 TCP/UDP 端口,很好地帮助我们解决恶意 IP 入侵的问题。但是不要做不切实际的想象,认为 CFW 可以抵御大型 DDoS 攻击。DDoS 攻击的规模往往与成本是正相关的,必要时提升网络带宽才能解决问题的根本。

作者简介:

Cyberbolt:一个自由的 Python 开发者。

作者: 编辑:

本文由贡献者投稿至 ,采用 发布, 荣誉推出

欢迎遵照 CC-BY-SA 协议规定转载,

如需转载,请在文章下留言 “ 转载:公众号名称”,

我们将为您添加白名单,授权“ 转载文章时可以修改”。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
如果三战爆发,我国必须死守的7座城!竟然还包括一个三线城市?

如果三战爆发,我国必须死守的7座城!竟然还包括一个三线城市?

山茶谈
2024-06-16 22:48:39
从马里乌波尔到哈尔科夫,俄军越打越差,钢铁洪流早已一去不复返

从马里乌波尔到哈尔科夫,俄军越打越差,钢铁洪流早已一去不复返

易同学爱谈娱乐
2024-05-24 08:06:39
上海这夜,耍大牌周也和勒肉张碧晨,都败给了“全裹”出镜的高叶

上海这夜,耍大牌周也和勒肉张碧晨,都败给了“全裹”出镜的高叶

一娱三分地
2024-06-16 08:55:03
终于明白为啥现在的女生都害怕生孩子了,评论让我破大防

终于明白为啥现在的女生都害怕生孩子了,评论让我破大防

阿康四岁啦
2024-06-16 17:26:26
美国一声令下,23国枪口对向中国,不到24小时,中方宣布双反调查

美国一声令下,23国枪口对向中国,不到24小时,中方宣布双反调查

叮当当科技
2024-06-16 16:40:56
湘西龙山被殴打商户发声“有四五人动手”,城管局:我们有队员眼睛受伤

湘西龙山被殴打商户发声“有四五人动手”,城管局:我们有队员眼睛受伤

极目新闻
2024-06-15 21:00:21
对不起❗误解了尚雯婕很多年,终于圈粉啦

对不起❗误解了尚雯婕很多年,终于圈粉啦

综艺拼盘汇
2024-06-15 23:17:29
惊人消息!韦世豪或告别国家队,伊万、郑智的反应引发热议

惊人消息!韦世豪或告别国家队,伊万、郑智的反应引发热议

人生趣事悟语
2024-06-16 03:56:19
朋友圈千万不要设置三天可见!你永远不知道,会有怎样的惊喜

朋友圈千万不要设置三天可见!你永远不知道,会有怎样的惊喜

涛涛生活搞笑
2024-06-13 07:25:05
欧倩怡离婚后首出镜!大谈生病时郭晋安对她自私冷漠,评论一片倒

欧倩怡离婚后首出镜!大谈生病时郭晋安对她自私冷漠,评论一片倒

小徐讲八卦
2024-06-15 08:26:49
下周一6月17日,这 4大具有爆发力板块或有望开启反攻

下周一6月17日,这 4大具有爆发力板块或有望开启反攻

惜别的海岸
2024-06-16 17:48:39
回顾:湖北女子带娃回家,被前夫和现任打,一脚干翻俩:真解气

回顾:湖北女子带娃回家,被前夫和现任打,一脚干翻俩:真解气

佑宛故事汇
2024-06-15 17:12:07
英国第一夫人带俩女儿也去了庆典!穿粉裙好嫩,女儿输给小夏公主

英国第一夫人带俩女儿也去了庆典!穿粉裙好嫩,女儿输给小夏公主

西莫的艺术宫殿
2024-06-16 23:22:53
别让登哥看见!锡安的成人女星炮友室外跑步 臀部大得畸形!

别让登哥看见!锡安的成人女星炮友室外跑步 臀部大得畸形!

直播吧
2024-06-15 15:29:34
皮相相似,骨相差了一大截,吴谨言和艾米互换了造型,却天差地别

皮相相似,骨相差了一大截,吴谨言和艾米互换了造型,却天差地别

喵喵娱乐团
2024-06-14 13:43:59
红色预警!大暴雨!浙江入梅后最强降水来袭

红色预警!大暴雨!浙江入梅后最强降水来袭

鲁中晨报
2024-06-16 10:19:06
华为Pura70Ultra突然降价,这价格真让人发疯!

华为Pura70Ultra突然降价,这价格真让人发疯!

最潮家居评
2024-06-14 06:39:04
亲戚提出最炸裂的要求是什么?网友:表姐找我借钱,说可以陪睡

亲戚提出最炸裂的要求是什么?网友:表姐找我借钱,说可以陪睡

户外阿崭
2024-06-15 19:30:53
肢体语言专家揭示凯特与威廉真实关系,王妃被赞像女王一样坚忍

肢体语言专家揭示凯特与威廉真实关系,王妃被赞像女王一样坚忍

译言
2024-06-16 15:35:29
浙江一地紧急通知:停课!全省几乎都被覆盖,明天出门要警惕……

浙江一地紧急通知:停课!全省几乎都被覆盖,明天出门要警惕……

都市快报橙柿互动
2024-06-16 21:55:41
2024-06-17 01:42:44
Linux
Linux
Linux 中国开源社区
8016文章数 73123关注度
往期回顾 全部

科技要闻

iPhone 16会杀死大模型APP吗?

头条要闻

南方医院回应教师因救人迟到:教学差错是最轻档处理

头条要闻

南方医院回应教师因救人迟到:教学差错是最轻档处理

体育要闻

没人永远年轻 但青春如此无敌还是离谱了些

娱乐要闻

上影节红毯:倪妮好松弛,娜扎吸睛

财经要闻

打断妻子多根肋骨 上市公司创始人被公诉

汽车要闻

售17.68万-21.68万元 极狐阿尔法S5正式上市

态度原创

健康
数码
手机
房产
军事航空

晚餐不吃or吃七分饱,哪种更减肥?

数码要闻

PCIe 5.0 SSD终于要便宜了!群联E31T主控无缓存能跑12GB/s

手机要闻

荣耀X60i入网:配置全面升级,能否满足你的所有期待?

房产要闻

万华对面!海口今年首宗超百亩宅地,重磅挂出!

军事要闻

以军宣布在加沙南部实行"战术暂停"

无障碍浏览 进入关怀版