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. 关于elementui日期组件 date.getHours() is not a function 等问题

    问题 日期控件中,假设当前显示日期为2020-01-01,现在需要修改为2020-01-03:点开日期组件框点击选择其他日期时, 控制台有可能会报错,显示 date.getHours()  is  n ...

  2. 从TF-IDF 到BM25, BM25+,一文彻底理解文本相关度

    相关性描述的是⼀个⽂档和查询语句匹配的程度.我们从搜索引擎召回时,肯定希望召回相关性高的数据,那么如何来量化相关度呢. 首先,我们定义,一个文档doc,由多个词语 term 组成. 最早,通过最简单的 ...

  3. Kafka-基本介绍和常见问题

    1.kafka 1.1.kafka介绍 ​ kafka是最初由linkedin公司开发的,使用scala语言编写,kafka是一个分布式,分区的,多副本的,多订阅者的消息队列系统. 1.2.kafka ...

  4. NEMU PA 2-1 实验报告

    课程地址:https://www.bilibili.com/video/BV1TE411P7tq 一.实验目的 通过PA2-0了解了汇编基础知识和如何去阅读i386手册后,在这个阶段我们就需要: 了解 ...

  5. 如何用低代码实现批量导出PDF?

    前言 事情是这样的,熟悉我们的朋友都知道,我司有一个为广大开发者朋友们提供学习帮助的地方,叫做新手训练营,具体的内容就是会针对初次接触葡萄城产品和技术的用户,通过 2-3 天的集中学习,采用直播授课的 ...

  6. NC16857 [NOI1999]生日蛋糕

    题目链接 题目 题目描述 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体. 设从下往上数第i(1 ≤ i ≤ M)层蛋糕是半径为Ri, 高度为Hi ...

  7. android mvvm实例解析

    MVVM架构,将整个应用分为三层,View层,VM层,Model层.其中View层单向引用VM层,VM层单向引用Model层.如上图. 单向引用,而非双向引用,这是MVVM与MVP最大的区别.View ...

  8. 从零开始手写 mybatis(一)MVP 版本

    什么是 MyBatis ? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射. MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集. MyB ...

  9. 【framework】应用进程启动流程

    1 前言 Activity启动流程 中介绍了从点击桌面上应用快捷方式到 Activity 的 onCreate() 方法调用流程,本将介绍应用进程的启动流程.由于应用进程启动流程复杂,本文按进程将其拆 ...

  10. let与const

    let与const ES2015(ES6)新增加了两个重要的JavaScript关键字: let和const. 块级作用域 代码块内如果存在let或者const,代码块会对这些命令声明的变量从块的开始 ...