防火墙不是“拦一切”,而是“只放对的”——聊聊网络安全与防火墙策略的那些真相【华为根技术】
防火墙不是“拦一切”,而是“只放对的”——聊聊网络安全与防火墙策略的那些真相
大家好,我是 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% 都不是被“高端攻击”打出来的,
而是被一句话打出来的:
“这个先放开吧,回头再收紧。”
而那个“回头”,通常永远不会来。
我的一个个人原则
凡是能用策略解决的问题,就别指望自觉。
防火墙策略写清楚了:
- 人可以犯错
- 系统不允许犯错
这,才是工程。
六、写在最后
如果你只记住今天的一句话,我希望是这句:
防火墙不是网络的“墙”,而是系统的“边界意识”。
边界清楚了,
系统才有安全感,
人也能睡个踏实觉。
- 点赞
- 收藏
- 关注作者
评论(0)