如何配置 iptables 转发规则实现跨网段访问控制

云静吖_9106

云静吖_9106

2026-06-22

142人浏览

原创

要让linux主机承担跨网段“策略网关”角色,关键在于用iptables -i forward精准匹配接口、源/目标ip、协议端口及连接状态,并配合开启ip_forward和snat/dnat实现可控转发。

如何配置 iptables 转发规则实现跨网段访问控制

要让 Linux 主机真正承担跨网段访问的“策略网关”角色,不能只靠开启转发或简单放行,关键在于用 iptables -I FORWARD 精准匹配流量特征,并配合 NAT 协同工作。核心不是打通网络,而是控制谁、从哪来、去哪、走什么协议和端口。

确认并启用 IP 转发

这是所有转发功能的前提。没有它,数据包进不来也出不去:

  • 临时开启:echo 1 > /proc/sys/net/ipv4/ip_forward
  • 永久生效:向 /etc/sysctl.conf 追加 net.ipv4.ip_forward = 1,再执行 sysctl -p
  • 验证是否生效:sysctl net.ipv4.ip_forward 返回值应为 1

明确 FORWARD 链的适用场景

FORWARD 链只处理“过路”流量——即目的地址不是本机、源地址也不是本机的数据包。比如内网主机 A(10.20.40.22)访问外网服务(172.16.25.73),中间那台双网卡主机(如 enp24s0f0 接内网、enp24s0f2 接外网)收到该包后,因目标不是自己,就会交由 FORWARD 链处理。

常见错误是只配了 DNAT/SNAT,却忘了放开 FORWARD,结果包被默认 DROP;或者规则顺序混乱,导致精细策略失效。

Hama
Hama

一款利用AI智能移除图片中不需要对象的在线修图工具,可快速清理人物、杂物和其他视觉干扰内容。

下载

用 -I FORWARD 插入精细化控制规则

每条规则都可组合多个条件,实现“按需放行”或“定向拦截”:

  • 限定方向:用 -i enp24s0f0(入接口)和 -o enp24s0f2(出接口),确保只对指定路径生效
  • 锁定源与目标:-s 10.20.40.0/24 限制来源网段,-d 172.16.25.73 指定目标地址
  • 细化到协议与端口:加 -p tcp -m tcp --dport 443 只允许 HTTPS;用 -p udp -m udp --dport 53 控制 DNS
  • 识别连接状态:回程包必须放行,否则通信中断,常用 -m state --state ESTABLISHED,RELATED -j ACCEPT

示例:只允许内网段访问目标的 443 端口,禁止访问 3306,同时保障回程畅通:

iptables -I FORWARD -i enp24s0f0 -o enp24s0f2 -s 10.20.40.0/24 -d 172.16.25.73 -p tcp --dport 443 -j ACCEPT
iptables -I FORWARD -i enp24s0f0 -o enp24s0f2 -s 10.20.40.0/24 -d 172.16.25.73 -p tcp --dport 3306 -j DROP
iptables -I FORWARD -i enp24s0f2 -o enp24s0f0 -d 10.20.40.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT

配套配置 NAT 保证路由可达

仅控制转发不等于能通——跨网段通信还需地址转换:

  • SNAT/MASQUERADE:内网访问外网时,修改源 IP。例如:iptables -t nat -A POSTROUTING -o enp24s0f2 -s 10.20.40.0/24 -j MASQUERADE
  • DNAT:外网访问内网服务时,重写目标 IP 和端口。例如:iptables -t nat -A PREROUTING -i enp24s0f2 -p tcp --dport 8080 -j DNAT --to-destination 10.20.40.22:80
  • 默认策略设为 DROP:在所有 ACCEPT 规则添加完毕后,执行 iptables -P FORWARD DROP,堵住未明确允许的流量

最后别忘了保存规则(如 CentOS 执行 service iptables save),避免重启后失效。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

20

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

0

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

0

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

20

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

20

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

220

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

140

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

120

15

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

2026.09.22

60

12

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Linux网络安全之防火墙技术汇总
Linux网络安全之防火墙技术汇总

共31课时 | 4.1万人学习