0

0

Linux防火墙实战教程_iptablesfirewalld配置与优化

冷炫風刃

冷炫風刃

发布时间:2026-01-05 08:48:09

|

911人浏览过

|

来源于php中文网

原创

iptables是底层规则工具,firewalld是其上层抽象,支持动态更新与区域管理;二者不可共存,需统一管理方式,CentOS/RHEL默认firewalld,Debian/Ubuntu长期用iptables。

linux防火墙实战教程_iptablesfirewalld配置与优化

Linux系统中,iptables 和 firewalld 是最常用的防火墙工具,二者定位不同:iptables 是底层规则管理工具,firewalld 是其上层服务抽象,支持动态更新、区域(zone)管理和更友好的命令接口。实际使用中,选哪个取决于发行版默认配置和运维习惯——CentOS 7+/RHEL 8 默认启用 firewalld,但很多运维人员仍习惯用 iptables 直接操作;Debian/Ubuntu 则长期以 iptables 为主,直到较新版本才逐步引入 nftables。

iptables 基础配置与常用规则

iptables 规则按链(chain)组织,主要处理 INPUT(入站)、OUTPUT(出站)、FORWARD(转发)三类流量。每条规则匹配条件后执行动作(ACCEPT、DROP、REJECT 等)。关键点在于规则顺序决定匹配优先级,越靠前的规则越先生效。

  • 查看当前规则:sudo iptables -L -n -v(-n 禁用 DNS 解析,-v 显示详细统计)
  • 放行 SSH(端口 22):sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  • 拒绝所有未匹配的入站连接:sudo iptables -P INPUT DROP(注意:执行前务必确保已有 SSH 规则,否则可能锁死)
  • 保存规则(不同系统方式不同):
      • CentOS/RHEL:sudo service iptables savesudo iptables-save > /etc/sysconfig/iptables
      • Debian/Ubuntu:sudo iptables-save > /etc/iptables/rules.v4,并配合 ifupdown 或 netfilter-persistent 服务自动加载

firewalld 区域管理与服务配置

firewalld 的核心是“区域(zone)”,每个 zone 定义一组默认行为和允许的服务。public 是默认区域,适合服务器外网接口;trusted 用于完全信任的内网环境;drop 则默认丢弃所有入站包(仅响应 ICMP ping)。

Mureka
Mureka

Mureka是昆仑万维最新推出的一款AI音乐创作工具,输入歌词即可生成完整专属歌曲。

下载
  • 查看当前状态:sudo firewall-cmd --state(运行中返回 running)
  • 列出默认区域开放的服务:sudo firewall-cmd --list-services
  • 临时开放 HTTP:sudo firewall-cmd --add-service=http
  • 永久开放 HTTPS:sudo firewall-cmd --add-service=https --permanent && sudo firewall-cmd --reload
  • 自定义端口(如 Redis 6379):sudo firewall-cmd --add-port=6379/tcp --permanent
  • 修改默认区域绑定的网卡:sudo firewall-cmd --zone=internal --change-interface=eth1 --permanent

iptables 与 firewalld 共存问题与切换策略

二者不能同时直接管理同一套内核规则。firewalld 底层仍调用 iptables(或 nftables),若手动用 iptables 修改规则,firewalld 可能无法感知,导致 reload 后规则丢失。生产环境中应统一管理方式。

  • 停用 firewalld 并启用 iptables:
      • sudo systemctl stop firewalld
      • sudo systemctl disable firewalld
      • 安装并启动 iptables-services(RHEL/CentOS)或相应包
  • 从 iptables 迁移至 firewalld:
      • 先导出当前规则:sudo iptables-save > /tmp/iptables.rules
      • 分析规则逻辑,映射为 zone + service/port 组合
      • 使用 firewall-cmd 逐条配置,最后 --reload
  • 检查冲突:运行 sudo iptables -L 后再执行 sudo firewall-cmd --reload,若规则清空说明 firewalld 已接管且旧 iptables 规则被覆盖

性能优化与安全加固建议

防火墙本身开销不大,但不当配置会影响连接建立速度和日志体积。重点不在“加更多规则”,而在“精准匹配”和“减少遍历”。

  • 将高频规则(如 SSH、HTTP)放在链开头,降低平均匹配跳数
  • 避免使用 -m state --state NEW 等过时模块,改用 -m conntrack --ctstate NEW(iptables v1.4.21+)
  • 限制连接速率防暴力扫描:sudo iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j REJECT
  • 记录可疑连接(慎用,避免日志刷爆):sudo iptables -A INPUT -m state --state INVALID -j LOG --log-prefix "INVALID_PACKET: "
  • 定期审计规则:sudo iptables -S 查看原始规则语法,比 -L 更利于排查逻辑错误

相关专题

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

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

1018

2023.10.19

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

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

63

2025.10.17

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

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

407

2025.12.29

go中interface用法
go中interface用法

本专题整合了go语言中int相关内容,阅读专题下面的文章了解更多详细内容。

76

2025.09.10

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

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

180

2023.11.24

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

970

2023.11.02

内存数据库有哪些
内存数据库有哪些

内存数据库有Redis、Memcached、Apache Ignite、VoltDB、TimesTen、H2 Database、Aerospike、Oracle TimesTen In-Memory Database、SAP HANA和ache Cassandra。更多关于内存数据库相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

631

2023.11.14

mongodb和redis哪个读取速度快
mongodb和redis哪个读取速度快

redis 的读取速度比 mongodb 更快。原因包括:1. redis 使用简单的键值存储,而 mongodb 存储 json 格式的数据,需要解析和反序列化。2. redis 使用哈希表快速查找数据,而 mongodb 使用 b-tree 索引。因此,redis 在需要高性能读取操作的应用程序中是一个更好的选择。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

475

2024.04.02

Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

8

2026.01.15

热门下载

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

精品课程

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

共48课时 | 7.2万人学习

Git 教程
Git 教程

共21课时 | 2.7万人学习

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

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