0

0

Linux防火墙规则如何编写_完整流程拆解让问题迎刃而解【技巧】

舞夢輝影

舞夢輝影

发布时间:2025-12-16 18:53:09

|

601人浏览过

|

来源于php中文网

原创

Linux防火墙规则编写关键在于理清逻辑、分步操作与验证闭环,推荐使用nftables(现代主流工具),按创建表→链→基础规则→业务规则→默认拒绝顺序实施,并需保存配置实现持久化。

linux防火墙规则如何编写_完整流程拆解让问题迎刃而解【技巧】

Linux防火墙规则编写不难,关键在理清逻辑、分步操作、验证闭环。用 iptables(传统)或 nftables(现代推荐)均可实现,本文以 nftables 为主展开,兼顾 iptables 对照,帮你一次性打通全流程。

明确目标:先想清楚“要拦什么、放什么”

写规则前别急着敲命令,先回答三个问题:

  • 哪些端口必须对外开放?比如 22(SSH)、80/443(Web)
  • 哪些来源需要限制?比如只允许公司IP访问数据库端口(3306)
  • 是否要防常见攻击?比如防 ping 泛洪、防连接数过载、防 SYN 洪水

例如:一台Web服务器,只需开放 80、443 和管理员固定IP的22端口,其余全部拒绝——这就是最典型的“白名单思维”,也是安全基线。

选择工具:nftables 是当前主线,iptables 已逐步被替代

Debian 12 / Ubuntu 22.04+ / CentOS 8+ 默认使用 nftables,它统一了内核接口,语法更简洁、性能更好。iptables 命令实际是通过 xtables 转译为 nftables 规则运行。

  • 查当前生效规则:nft list ruleset
  • 清空所有规则(谨慎!建议先备份):nft flush ruleset
  • iptables 兼容写法仍可用,但新项目建议直接学 nftables

动手写规则:从链(chain)到规则(rule),四步落地

以 nftables 为例,按真实部署顺序组织:

PhotoG
PhotoG

PhotoG是全球首个内容营销端对端智能体

下载
  1. 创建表(table):命名空间,如 nft add table inet filter
  2. 创建链(chain):挂载点,如 nft add chain inet filter input { type filter hook input priority 0 \; }
  3. 加基础规则:状态跟踪 + 回环放行 + 已建立连接放行
    nft add rule inet filter input ct state established,related accept
    nft add rule inet filter input iifname "lo" accept
  4. 加业务规则:按优先级由高到低添加
    nft add rule inet filter input ip saddr 203.0.113.5 tcp dport 22 accept
    nft add rule inet filter input tcp dport {80, 443} accept
    nft add rule inet filter input drop(默认拒绝,务必放在最后)

保存与持久化:重启不丢规则才是真生效

临时规则重启即失效,必须保存:

  • Ubuntu/Debian:nft list ruleset > /etc/nftables.conf,并确保 nftables 服务已启用:systemctl enable nftables
  • CentOS/RHEL:nft list ruleset > /etc/sysconfig/nftables.conf,再 systemctl enable nftables
  • 验证是否开机加载:systemctl is-enabled nftables 返回 enabled 即可

小技巧:先用 nft -f /path/to/rules.nft 测试规则文件语法,无报错再写入配置。

基本上就这些。写防火墙不是堆指令,而是建逻辑防线——目标清晰、工具选对、步骤闭环、持久到位。练熟几次,从建表到上线十分钟搞定。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1023

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

66

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

426

2025.12.29

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

390

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

572

2023.08.10

点击input框没有光标怎么办
点击input框没有光标怎么办

点击input框没有光标的解决办法:1、确认输入框焦点;2、清除浏览器缓存;3、更新浏览器;4、使用JavaScript;5、检查硬件设备;6、检查输入框属性;7、调试JavaScript代码;8、检查页面其他元素;9、考虑浏览器兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

182

2023.11.24

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

347

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2074

2023.08.14

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.3万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号