iptables是Linux系统上用于配置网络包过滤规则的工具,它使用表(tables)和链(chains)来组织规则。以下是iptables中的五表五链及其对应的实例说明:

五表

  1. filter表:默认表,用于过滤数据包,允许或拒绝数据包通过。它包含INPUT、OUTPUT和FORWARD三个链。
  2. nat表:用于网络地址转换(NAT),例如端口转发和地址转换。它包含PREROUTING、POSTROUTING和OUTPUT三个链。注意,虽然OUTPUT链在nat表中存在,但实际上在iptables中,OUTPUT链通常只用于filter表和mangle表。在nat表中,OUTPUT链很少使用,因为对于从本机发出的数据包,其源地址转换通常在路由选择之前就已经确定了。
  3. mangle表:用于修改数据包的各种属性,例如TTL(Time To Live)或TOS(Type of Service)字段。它也包含PREROUTING、POSTROUTING、INPUT、OUTPUT和FORWARD五个链。
  4. raw表:用于处理数据包的连接追踪,通常与mangle表结合使用来实现一些特殊功能。它包含PREROUTING和OUTPUT两个链。
  5. security表:用于强制访问控制(MAC)的网络安全策略(注:这实际上是IPsec功能的一部分,但在许多iptables实现中并不常用或并不直接支持)。security表并不常用,而且其具体的链和用法可能因不同的系统或iptables版本而有所不同。

五链

  1. INPUT链:处理进入本机的数据包。
  2. OUTPUT链:处理从本机发出的数据包。
  3. FORWARD链:处理需要本机转发的数据包(即本机作为路由器时)。
  4. PREROUTING链:在进行路由选择之前修改数据包,如DNAT(Destination NAT,目的网络地址转换)。
  5. POSTROUTING链:在进行路由选择之后修改数据包,如SNAT(Source NAT,源网络地址转换)。

实例

filter表实例

# 允许来自任何地方的SSH连接
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 拒绝来自192.168.1.0/24网络的所有输入流量
iptables -A INPUT -s 192.168.1.0/24 -j DROP # 允许本地回环地址的流量
iptables -A INPUT -i lo -j ACCEPT # 设置默认策略为拒绝所有输入流量
iptables -P INPUT DROP

nat表实例

# 将到达本机的80端口的流量转发到内部服务器192.168.1.100的8080端口
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080 # 修改从本机发出的流量的源地址为1.2.3.4(需要内核支持及路由设置)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 1.2.3.4

mangle表实例

# 修改TTL值为64
iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN SYN -j TCPMSS --set-mss 1460 # 这是一个较为复杂的例子,实际中TCPMSS的用法可能会有所不同

raw表实例

# 关闭NAT表上的连接追踪功能,加速某些特定类型的数据包(例如ICMP)
iptables -t raw -A PREROUTING -p icmp -j NOTRACK

请注意,以上命令应在具有相应权限(通常是root)的情况下运行,并且需要根据具体的网络环境和需求进行调整。

关于security表,由于其实际在iptables中的使用较少,且主要与IPsec和网络安全策略配置相关,这里不提供具体的实例。如果需要对这部分进行深入了解,建议查阅专门的IPsec和网络安全文档。

另外,这些规则默认不会永久保存,系统重启后会丢失。若需永久保存iptables规则,可以使用iptables-saveiptables-restore命令,或者在某些发行版中使用特定的服务或脚本来处理规则的保存和加载。

iptables五表五链及对应实例的更多相关文章

  1. [转帖] iptables之四表五链

    iptables之四表五链 http://www.cnblogs.com/clouders/p/6544584.html mark 学习一下 对防火墙一无所知.. iptables可谓是SA的看家本领 ...

  2. iptables之四表五链

    iptables可谓是SA的看家本领,需要着重掌握.随着云计算的发展和普及,很多云厂商都提供类似安全组产品来修改机器防火墙. iptables概念 iptables只是Linux防火墙的管理工具而已. ...

  3. iptables四表五链及默认规则使用,

    网络基础 TCP/IP模型: 应用层===传输层===网络层===数据链里层===物理层 数据封装: MAC帧头+IP报头+TCP/UDP报头===HTTP请求 数据帧 TCP/UDP报头: 随机产生 ...

  4. iptables 四表五链

    netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加.编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则.这些规则存储在专用的信息包过滤表中 ...

  5. Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法 使用介绍

    第7周第3次课(5月9日) 课程内容: 10.11 Linux网络相关10.12 firewalld和netfilter10.13 netfilter5表5链介绍10.14 iptables语法 扩展 ...

  6. 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法

    Linux网络相关 ifocnfig 查看网卡ip(yum install net-tools) ip add 查看网卡 ip add = ifocnfig ifconfig 不显示down掉的网卡, ...

  7. iptables的四表五链

    iptables只是Linux防火墙的管理工具而已,位于/sbin/iptables.真正实现防火墙功能的是netfilter,它是Linux内核中实现包过滤的内部结构. iptables包含4个表, ...

  8. Linux对外提供服务 网络操作 端口操作 1.开启服务监听端口 2.设置防火墙,放行访问端口的包 iptables&netfilter 四表五链和通堵策略

    主题: Linux服务器上软件提供服务 1.网络操作 2.端口操作 1.网络操作 本机必须能够ping通目标主机(本地虚拟机或者远程主机) 2.端口操作 1.开启服务监听端口 2.设置防火墙,放行访问 ...

  9. iptables详解(2):四表五链

    关于iptables中“四表五链”,我们今天来好好唠唠: 1.表的概念: 我们把具有相同功能的规则的集合叫做"表",所以说,不同功能的规则,我们可以放置在不同的表中进行管理,而ip ...

  10. IPtables 之“四表五链”

    目录 架构图 IP tables 简介 包过滤防火墙 Iptables如何过滤 "四表" "五链" Iptables流程 架构图 公司架构模式(酒店迎宾比喻) ...

随机推荐

  1. 驱动开发:WinDBG 常用调试命令总结

    Windbg是Microsoft公司免费调试器调试集合中的GUI的调试器,支持Source和Assembly两种模式的调试.Windbg不仅可以调试应用程序,还可以进行Kernel Debug.结合M ...

  2. 俄大神 lopatkin Windows 精简优化系统 - 工具软件

    昨天有个网友邮件我,说是想找个Tiny7 Rev2的ISO操作系统文件,但是我找了下,以前的那些文件有些已经删除了,所以就在网上搜到了俄大神 lopatkin Windows 精简优化系统,特此放到网 ...

  3. 【技能篇】解决vs编译器scanf等函数不安全问题【手把手操作-一分钟解决】

    [技能篇]解决Vs编译器scanf等函数不安全问题 文章目录 说在前面 博主给大家的福利 解决方案 解决过程 尾声 说在前面 大家刚开始学习编程的时候,使用vs编译器.使用scanf等函数的时候遇到的 ...

  4. docker安装oracle数据

    docker安装oracle数据库 1️⃣ 通过docker拉取并启动oracle11g(此版本目前主流),docker换源及安装mysql看Springboot创建项目及测试 - $YX$ - 博客 ...

  5. 聚石塔的K8s 容器服务使用注意事项,坑的总结

    1. 首先聚石塔是不能使用 8080 端口的,会审核不通过. 2.然而,容器服务默认的却是8080,最彻底的解决方法就是修改成80,注意3个地方: 以上3个地方要严重留意,缺一不可,已经踩了2次坑了, ...

  6. Java-将Oracle中某个表的数据导出成数据文件

    在做数据开发或者ETL工作中,经常会遇到需要在客户端将Oracle数据库中的某些表的数据导出,提供给其他人员使用的情况.      下面介绍我之前实施的一种方法:(该方法不是最好的办法,但是可以勉强使 ...

  7. Power BI 3 DAY

    目录 M函数基本表达式 注释 基本表达式 M函数基本变量类型 自定义函数 调用函数列表 if表达式 数据化结构 列表结构(List) 记录结构(Record)[ ] 表格结构(Table) M函数基本 ...

  8. 从零开始手写 redis(四)监听器的实现

    前言 java从零手写实现redis(一)如何实现固定大小的缓存? java从零手写实现redis(三)redis expire 过期原理 java从零手写实现redis(三)内存数据如何重启不丢失? ...

  9. SpringBoot 2.6 和 JUnit 5 的测试用例注解和排序方式

    JUnit5 的测试注解 在JUnit5中, 不再使用 @RunWith 注解, 改为使用 @ExtendWith(SpringExtension.class) @ExtendWith(SpringE ...

  10. 【Unity3D】分离路面导航

    1 前言 ​ 导航系统中介绍了导航的基本用法,但是不能解决分离路面导航问题.如下图,胶囊体需要导航到立方体位置,但是路面不连续,烘焙(Bake)导航网格后,断开处也没有导航网格,因此,胶囊体导航到分离 ...