iptables防火墙(一)

1、基本介绍

  netfilter/iptables是集成在Linux2.4.X版本内核中的包过滤防火墙系统,可以实现数据包过滤、网络地址转换及数据包管理功能。netfilter位于Linux内核空间,是Linux内核内部的一系列钩子,这些钩子允许数据表过滤函数挂载到系统内核中。iptables是用户工具,由于netfilter位于内核空间中,用户通常无法接触内核和修改内核,此时就需要一个像iptables这样的命令行工具。

  iptables默认维护着四个表和五个链,所有的防火墙策略规则都将分别写入这些表与链中。

2、配置文件

  /etc/sysconfig/iptables  防火墙规则保存文件

  /etc/sysctl.conf  内核参数配置文件

  /etc/services  各种服务所对应的标准端口信息

3、规则表

  (1)filter表(默认)  实现包过滤  表中包含的链:INPUT链FORWARD链OUTPUT链;  配置规则时,不指定表时,iptables默认修改filter表中的规则。

  (2)nat表  实现网络地址转换  表中包含的链:PREROUTING链POSTROUTING链OUTPUT链;

  (3)mangle表  实现包重构(修改)  表中包含的链:PREROUTING链POSTROUTING链INPUT链OUTPUT链FORWARD链;

  (4)raw表  实现数据跟踪处理  表中包含的链:PREROUTING链OUTPUT链。

4、链

  (1)INPUT链  当接收到访问防火墙本机地址的数据包时,应用此规则链中的策略;

  (2)OUTPUT链  当防火墙本机向外发送数据包时,应用此规则链中的策略;

  (3)FORWARD  当接收到需要通过防火墙中转发送给其他地址的数据包时,应用此规则链中的策略;

  (4)PREROUTING  在对数据包作路由选择之前,应用此规则连中的策略(所有的数据包进来时,都先由这个链处理);

   (5)POSTROUTING  在对数据包作路由选择之后,应用此规则连中的策略(所有的数据包出去时,都先由这个链处理)。

  注:INPUT链和OUTPUT链主要应用在“主机防火墙”中,即主要针对服务器本机进行保护的防火墙;FORWARD链、PREROUTING链和POSTROUTING链主要应用在“网络型防火墙”中,例如使用Linux防火墙作为网关。

5、数据包过滤工作流程

  

  (1)规则表应用优先级

    raw-->mangle-->nat-->filter

  (2)入站数据流向 

    数据包到达防火墙后首先被PREROUTING链处理(是否修改数据包地址等),然后进行路由选择(判断数据包发往何处),如果数据包的目标地址是防火墙本机(如:Internet用户访问网关        的Web服务端口),那么内核将其传递给INPUT链进行处理(决定是否允许通过等)。

  (3)转发数据流向

    来自外界的数据包到达防火墙后首先被PREROUTTING链处理,然后再进行路由选择;如果数据包的目标地址是其他的外部地址(如局域网用户通过网关访问QQ服务器),则内核将其传递给FORWARD链进行处理(允许转发,拦截,丢弃),最后交给POSTROUTING链(是否修改数据包的地址等)进行处理。

  (4)出站数据流向

    防火墙本机向外部地址发送的数据包(如在防火墙主机中测试公网DNS服务时),首先被OUTPUT链处理,然后进行路由选择,再交给POSTROUTING链(是否修改数据包的地址等)进行处理。

  

posted @ 2018-04-23 11:47  longchun1988  阅读(180)  评论(0编辑  收藏  举报