防火墙不是“拦一切”,而是“只放对的”——聊聊网络安全与防火墙策略的那些真相【华为根技术】

举报
Echo_Wish 发表于 2025/12/28 21:09:32 2025/12/28
【摘要】 防火墙不是“拦一切”,而是“只放对的”——聊聊网络安全与防火墙策略的那些真相

防火墙不是“拦一切”,而是“只放对的”——聊聊网络安全与防火墙策略的那些真相

大家好,我是 Echo_Wish
做鸿蒙、做系统、做网络这些年,我被问过最多的一句话是:

“我们不是已经上防火墙了吗?怎么还会出事?”

每次听到这话,我心里都会默默叹一口气。
因为很多人把防火墙,当成了“装上就万事大吉”的护身符。

但现实是——

防火墙如果策略错了,甚至比没装还危险。

今天就按一个咱们都好消化的结构来聊:
引子 → 原理 → 实战代码 → 场景应用 → Echo_Wish式思考
不学院派,不装深沉,就聊点真正在系统和网络里踩过坑的东西。


一、引子:那次“明明有防火墙,却被打穿”的事故

我先讲个真实感很强的场景。

某次做系统联调(鸿蒙设备 + 后端服务),
业务同学一句话:

“为了调试方便,先把防火墙放开吧。”

结果你猜怎么着?

  • 一个测试接口被公网扫到
  • 没鉴权
  • 被当成跳板扫内网

事故复盘的时候,结论很扎心:

不是防火墙没用,是我们根本没把它当“策略系统”,只当“开关”。


二、原理讲解:防火墙到底在“防”什么?

很多人对防火墙的理解,还停留在:

“挡 IP、挡端口”

但你要记住一句话:

防火墙的本质,是“通信规则的裁判”。

防火墙真正关注的三件事

1️⃣ 谁 → 谁(源与目的)
2️⃣ 走哪条路(协议、端口)
3️⃣ 在什么状态下(连接状态)

换成一句人话就是:

不是你想连就能连,而是要符合我定的规则。


一个最基础、但被忽视的原则

默认拒绝(Default Deny)

这四个字,看着简单,真正做到的团队不多。


三、实战代码:别光喊安全,规则要写出来

我们用一个大家都熟的例子:Linux 防火墙(iptables / nftables 思路一致)
(鸿蒙底层同样基于 Linux 网络栈,这套思想是通用的)


1️⃣ 先来一个“及格线”防火墙策略

# 清空已有规则
iptables -F

# 默认策略:拒绝
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

这一步非常关键,相当于一句话:

“我什么都不信,除非你明确告诉我能放行。”


2️⃣ 放行本机必要通信(否则你自己都上不了机器)

# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT

# 允许已建立连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

这一步,是很多新手忘写、然后“把自己锁在门外”的经典事故源头。


3️⃣ 精准放行业务端口

# 只允许内网访问 8080
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 8080 -j ACCEPT

注意关键词:
👉 只允许
👉 内网
👉 指定端口

这才叫策略,不是“全放”。


四、场景应用:放到鸿蒙和真实系统里看

场景一:鸿蒙设备对外通信

很多鸿蒙设备(IoT / 终端)只需要:

  • 上报数据
  • 拉配置
  • 心跳保活

那策略就应该是:

只出不进

# 禁止任何外部主动访问
iptables -P INPUT DROP

# 只允许设备主动访问云端
iptables -A OUTPUT -p tcp -d cloud.example.com --dport 443 -j ACCEPT

这一步,可以直接干掉一大堆“扫描即入侵”的风险。


场景二:调试口和生产口必须分离

这是我在鸿蒙项目里反复强调的一点:

调试端口,是最危险的端口。

# 只允许指定 IP 访问调试端口
iptables -A INPUT -p tcp -s 10.0.0.10 --dport 5555 -j ACCEPT

一句话总结:

调试口的安全级别,要高于业务口。


场景三:防火墙不是孤立存在的

真正靠谱的策略,至少要配合三件事:

  • 身份认证(证书 / Token)
  • 最小权限
  • 日志审计
# 记录被拒绝的连接(便于审计)
iptables -A INPUT -j LOG --log-prefix "FW_DROP: "

你不记日志,就永远不知道:
是谁在敲你的门。


五、Echo_Wish式思考:防火墙,其实是在“帮人做选择”

说点不太技术、但很真实的感受。

这些年我越来越觉得:

防火墙不是在防“坏人”,而是在防“人性”。

  • 防临时图省事
  • 防“先放开再说”
  • 防“反正也没人打我们”

安全事故,90% 都不是被“高端攻击”打出来的,
而是被一句话打出来的:

“这个先放开吧,回头再收紧。”

而那个“回头”,通常永远不会来。


我的一个个人原则

凡是能用策略解决的问题,就别指望自觉。

防火墙策略写清楚了:

  • 人可以犯错
  • 系统不允许犯错

这,才是工程。


六、写在最后

如果你只记住今天的一句话,我希望是这句:

防火墙不是网络的“墙”,而是系统的“边界意识”。

边界清楚了,
系统才有安全感,
人也能睡个踏实觉。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。