核心是建立白名单驱动的默认拒绝机制:先设iptables -p input drop或firewalld --set-target=drop,再显式放行可信ip与端口,结合区域区分、安全组协同及日志审计,实现最小权限防护。

要真正拦截所有未授权的 IP 访问敏感系统端口,核心不是“加黑名单”,而是建立白名单驱动的默认拒绝机制。只要规则逻辑清晰、优先级合理、覆盖完整,就能大幅压缩攻击面。
一、启用默认拒绝策略(最关键一步)
所有防火墙的第一道防线必须是“默认拒绝”。这意味着:任何未被明确允许的流量,一律拦截。这比逐条封禁恶意IP更可靠、更可持续。
- Linux(firewalld):执行 firewall-cmd --set-target=REJECT 或更推荐的 --set-target=DROP(静默丢弃,不回包)
- Linux(iptables):在规则链最顶端插入 iptables -P INPUT DROP(注意:操作前务必保留SSH白名单或带外访问通道)
- Windows 防火墙:无需手动设“默认拒绝”,但必须确保没有启用“允许未匹配规则的连接”类宽松策略;所有入站规则应显式定义动作,且无兜底放行规则
二、仅开放业务必需的端口与源IP
敏感端口(如 SSH 22、数据库 3306/5432、后台管理 8888/8443)绝不能对全网开放。必须绑定最小权限原则——只允许可信来源访问。
针对嵌入式/固件项目的专家代码审查,采用双模型交叉审查(Claude + Codex via ACP),检测内存安全、中断危险、RTOS陷阱...
- 示例(宝塔面板 8888 端口):只允许公司办公网段 192.168.10.0/24 和运维人员固定IP 203.203.203.203 访问
- 命令参考(firewalld):
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="8888" protocol="tcp" accept'
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.203.203.203" port port="8888" protocol="tcp" accept' - 切忌写成“先放行再拒绝其他”——正确做法是默认拒绝 + 显式放行,避免规则顺序误判
三、区分网络区域并设置差异化规则
内网、DMZ、公网环境风险等级不同,防火墙应按区域施控。例如:数据库端口可对内网应用服务器放行,但对外网和DMZ完全关闭。
- Windows 防火墙中,“配置文件”选项(域 / 专用 / 公用)需全部勾选,或按实际网络类型精准启用
- Linux firewalld 中,可通过 firewall-cmd --zone=public --add-source=192.168.5.0/24 将可信子网绑定到指定 zone,再对该 zone 单独配置端口策略
- 云服务器还需同步检查安全组(Security Group),确保其规则与系统防火墙策略一致,避免任一层绕过
四、启用日志与定期审计
拦截本身不是终点,确认拦截是否生效、识别异常尝试、发现规则盲区,依赖日志分析。
- Linux:启用 iptables 日志(如 -j LOG --log-prefix "FW_BLOCK: "),配合 rsyslog 归集;firewalld 可通过 firewall-cmd --set-log-denied=all 开启拒绝日志
- Windows:在“高级安全 Windows 防火墙”→“属性”中,为“域配置文件”“专用配置文件”“公用配置文件”分别启用“记录丢弃的数据包”和“记录成功的连接”
- 建议每周查看日志,重点关注高频被拒IP、非常规时间访问、非白名单端口探测行为——这些往往是扫描或爆破痕迹










