iptable 理解

iptable 理解

 

这个当初我理解不了,主要是没把netfilter理解清楚。 Netfilter是集成在内核中的,用来定义存储各种规则的。Iptalbe是修改这些规则的工具,修改后存在netfilter里面。

数据包进入LINUX服务器时,先进入服务器的netfilter模块中进行判断处理。

Netfilter包含有三种表,三种表下共包含有五种链,链下面包含各种规则。即表包含若干链,链包含若干规则。

(一)三种表为:filter nat mangle

1、filter:处理与本机有关的数据包,是默认表,包含有三种链:input output forward

2、nat表:与本机无关。主要处理源与目的地址IP和端口的转换。有三种链:prerouting postrouting output

3、mangle表:用于高级路由信息包,如包头内有更改(如tos改变包的服务类型,ttl包的生存时间,mark特殊标记)。

有两种链:prerouting output (kernel 2.4.18后又加了两种链:input forward)这种表很少使用:

(二)五种链(链在表下面,为了条理清晰,才另外作一大点讲解)

1、prerouting:进入netfilter后的数据包在进入路由判断前执行的规则。改变包。

2、Input:当经过路由判断后,要进入本机的数据包执行的规则。

3、output:由本机产生,需向外发的数据包执行的规则。

4、forward:经过路由判断后,目的地不是本机的数据包执行的规则。与nat 和 mangle表相关联很高,与本机没有关联。

5、postrouting:经过路由判断后,发送到网卡接口前。即数据包准备离开netfilter时执行的规则。

iptable 理解

iptable 理解

上图上,运行中的守护进程,是指本机。Input的包都会发到本机。本机处理后再经output 发出去。

(三)数据包进入netfilter后的经过图:

1、数据包进入linux服务器入接口,接口把数据包发往netfilter,数据包就此进入netfilter。

2、经prerouting处理,(如是否需要更改数据包的源IP地址等)

3、数据包到路由,路由通过路由表判断数据包的目的地。如果目的地是本机,就把数据包转给intput处理后进入本机。如果目的地不是本机,则把数据包转给forward处理。

4、数据包通过forward处理后,再转给postrouting处理,(是否有目标地址需要改变等),处理后数据包就出了netfilter,到linux服务器出接口,就出了linux服务器。

5、如果数据包进了本机后经过处理需要外发数据包,或本机自身有数据包需要外发,就把数据包发给output链进行处理后,转给postrouting处理后,出linux服务器。进入外面的花花世界。

(三)规则的执行顺序

当数据包进入netfilter,就会和里面的规则进行对比。规则是有顺序的。

先和规则1对比,如果和规则1相匹配,被规则1接受(accept),则数据将不再和后面的规则进行对比。

如果不匹配,则按顺序和后面的规则进行对比,直到被接受。如果所有的规则都不匹配,则进行默认策略操作,以决定数据包的去向。

所以规则的顺序很重要。

IPTABLE主要是理解上面的内容,一些详细参数可以见附件中的指南。

二、iptalbe语法及参数

iptable [-t table] command [chain] [match][-j target] 注释:iptable [-t 表名] -命令 [链接] [匹配] [-j 动作/目标]

(一) table (表)

1、filter表:默认用filter表执行所有的命令。只操作与本机有关的数据包。 2、nat表:主要用于NAT地址转换。只有数据流的第一个数据包被这个链匹配,后面的包会自动做相同的处理。 分为:DNAT(目标地址转换)、SNAT(源地址转换)、MASQUERADE

(1)DNAT操作主要用在这样一种情况,你有一个合法的IP地址,要把对防火墙的访问 重定向到其他的机子上(比如DMZ)。也就是说,我们改变的是目的地址,以使包能重路由到某台主机。

(2)SNAT 改变包的源地址,这在极大程度上可以隐藏你的本地网络或者DMZ等。内网到外网的映射。

(3)MASQUERADE 的作用和SNAT完全一样,只是计算机的负荷稍微多一点。因为对每个匹配的包,MASQUERADE都要查找可用的IP地址,而不象SNAT用的IP地址 是配置好的。当然,这也有好处,就是我们可以使用通过PPP、 PPPOE、SLIP等拨号得到的地址,这些地址可是由ISP的DHCP随机分配的。

iptable 理解-腾讯云开发者社区-腾讯云

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值