如果Linux的内核是在2.4以上的版本,都可以使用iptables来实现防火墙的功能。由于Linux的防火墙是在Linux的内核中实现的,而在内核中使用了netfilter构架实现防火墙的功能,iptables其实就是管理netfilter的工具而已,所以我们一般使用iptables来实现对防火墙的管理。

    iptables一共有5个规则链,我们来看看这些规则链的作用:

1、本地输入规则链:传送到本机的数据包

2、转发规则链:经过本机路由传送给别人的数据包

3、本地输出规则链:从本机传送出去的数据包

4、输入规则链:所有收到的数据包,包括传给本机的和经过本机路由传动给别人的数据包。收到数据包后,还没有判断目的地的数据包。

5、输出规则链:所有从本机出去的数据包,包括从本机传送出去的数据包和经过本机路由传动给别人的数据包。 

   为了使用iptables对这些数据包的处理,一般使用:

1、INPUT:表示本地输入规则链

2、FORWARD:表示转发规则链

3、OUTPUT:表示本地输出规则链

4、PREROUTING:表示输入规则链

5、POSTROUTING:表示输出规则链

   规则表

iptable的规则链是组织在3个不同的规则表中的,这三个规则表和这些表的作用如下:

1、filter:过滤数据包

2、nat:网络地址转换

3、mangle:改变数据包的内容 用于设置网络流量×××

   iptables根据不同的数据包过滤处理功能来使用不同的规则表,下面分别看看这三个表能对数据包做哪些过滤的处理:

filter:过滤数据包的功能上可以针对:

  INPUT:传送到本机的封包

  OUTPUT::从本机传送出去的封包

  FORWARD:经过本机路由传动给别人的封包 

   三个规则链设定过滤条件

nat:网络地址转换的功能上,可以针对:

  PREROUTING:所有收到的数据包,包括传给本机的和经过本机路由传动给别人的数据包。

  OUTPUT:从本机传送出去的数据包

  POSTROUTING:所有从本机出去,包括从本机传送出去的数据包和经过本机路由传送给别人的数据包

三个规则链设定过滤条件  

mangle:改变数据包的内容的功能上,可以针对:

  PREROUTING:所有收到的封包,包括传给本机的和经过本机路由传动给别人的封包

  OUTPUT:从本机传送出去的封包

三个规则链设定过滤条件,来设定要改变的封包的内容

iptables的工作原理