1.netfilter & iptables

netfilter是Linux内核的一部分,可以看成是为上层处理数据包所提供的一种接口(本质是hook了数据包处理函数)。而iptables则是建立在netfilter之上的数据包过滤系统,通过简单的命令即可实现对数据包的过滤,也被称作Linux下的内置防火墙。

2.iptables中的表,链与规则

iptables中有十分重要的三个概念:table、chain、rules。他们三者的关系如下图:

iptables

table中包含了不同的chain,每条chain中又包含了不同的rules。iptables中主要有以下几张内建表:

  • filter表(默认表):用于数据包过滤。含INPUT、OUTPUT、FORWARD链
  • nat表:用于网络地址转换。含PREROUTING、POSTROUTING、OUTPUT链
  • mangle表:用于修改数据包中特殊字段(TTL、TOS等)。含PREROUTING、POSTROUTING、OUTPUT、INPUT、FORWARD链
  • raw表:用于处理异常,可以配置数据包不经过连接跟踪。含PREROUTING、OUTPUT链

iptables中共有5种链:PREROUTING、POSTROUTING、OUTPUT、INPUT、FORWARD,他们之间的关系如下图:

chains

当收到一个数据包时先进入PREROUTING链,这时数据包还未经过路由判断;通过PREROUTING链之后就要做路由判断,这时若数据包目的ip是本机ip,那么主机就接收这个数据包,接下来数据包经过INPUT链进入主机;若这时数据包目的地址不是本机ip,则将该数据包转向FORWARD链,这时主机上层是不知道有这个包经过的;

发送数据包时先通过OUTPUT链,完成路由判断之后到达POSTROUTING链。

3.iptables主要参数

4.实例

1)使用规则实现外网不能访问内网,但是内网主动发起的连接正常进行

2)使用规则实现对一台内网主机的网页代理。例,通过访问A电脑的未开放的4567端口,实际可以访问到B电脑的80端口上的网页

5.参考文献

iptables指令详解

iptables的详细介绍及配置方法

Linux Firewall Tutorial: IPTables Tables, Chains, Rules Fundamentals

 

 

观看更多有关 的文章?

*

+
跳转到评论