iptables简介

iptables是什么?

iptables是运行在用户空间的应用软件,通过控制Linux内核netfilter模块,来管理网络数据包的处理和转发。

iptables的基本结构

要对网络数据包进行处理和转发,我们首先需要明确的问题是:对什么样的数据进行怎么样的处理。因此我们可以用匹配条件 匹配成功后执行的动作来描述我们的处理策略,我们将这种策略称之为规则

一条规则能够表达的信息是非常有限的,当我们需要描述更加复杂的策略的时候,我们就需要更多的规则。我们将这些规则排列起来,依次执行,我们将规则组成的有序列表称为

表达清楚了处理策略之后,我们接下来需要考虑在什么时候执行这些策略,我们先来看看网络数据包的处理过程:
在这里插入图片描述
从这张图中,我们可以发现五个执行策略的机会:
在这里插入图片描述
因此我们将链也分为五种,以区分他们起作用的不同阶段:

  • PREROUTING: 数据包进入路由表之前
  • INPUT: 通过路由表后,目的地为本机
  • FORWARD: 通过路由表后,目的地不为本机
  • OUTPUT: 由本机产生,向外转发
  • POSTROUTIONG: 发送到网卡接口之前

因为iptables有多种功能,为了更好地管理,我们将功能相同的链放到同一个中,iptables内置有四种表,每张表会包含一种或多种链:

  • raw: PREROUTING、OUTPUT
  • mangle: PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
  • nat: PREROUTING、OUTPUT、POSTROUTING
  • filter: INPUT、FORWARD、OUTPUT

当多个表存在同一个链时,按照 raw -> mangle -> nat -> filter 的顺序执行。

最后我们总结一下,在iptables中存在多个表,每个表中包含多个链,每个链中又包含多条规则,处理过程如下图:

(此图来自互联网,如有侵权,请联系我)

iptables命令

iptables命令的使用我觉得Linux实战-2小时玩转iptables讲得已经足够好了,我再列举不过画蛇添足,因此在这里只写了一些自己的理解,具体的命令使用方法请参考Linux实战-2小时玩转iptables

要改变iptables的功能,需要对iptables中的各种规则进行操作,iptables命令的基本格式如下:

iptables [-t 表名] <操作命令> [链名] [规则号码] [匹配条件] [匹配之后的操作] 

表名、链名、规则号码确定了操作的对象,操作命令描述了操作的类型,匹配条件和匹配之后的操作提供了执行操作所需的信息。

操作命令无非增删改查四大类:

  • 增:
    • -A <链名> :Append 追加一条规则,放到最后
    • -I [规则号码]:Insert 插入一条规则(如果不指定规则号码则默认为1)
    • -P <链名> <动作>:Policy 设置某个链的默认规则
    • -D <链名> {规则号码 | 具体规则内容}:Delete 删除一条规则
    • -F [链名]:清空规则
    • -R <链名> <规则号码> <具体规则内容>:Replace 替换一条规则
    • -L <链名>:List 列出规则

匹配条件从下层到上层依次有:

  • 链路层:流入接口(-i)、流出接口(-o)
  • 网络层:来源地址(-s)、目的地址(-d)、协议类型(-p)
  • 传输层:来源端口(–sport)、目的端口(–dport)

匹配之后的操作有:

  • ACCEPT:允许数据包通过本链
  • DROP:组织数据包通过本链而丢弃它
  • 修改地址
    • SNAT:修改源地址
    • DNAT:修改目的地址
    • MASQUERADE :动态源地址转换
  • REDRICT:进行端口映射,发送到某个端口的数据会被重定向到另一个端口。

参考资料

iptables - 维基百科,自由的百科全书
Linux实战-2小时玩转iptables

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值