码迷,mamicode.com
首页 > 其他好文 > 详细

iptables基础篇

时间:2015-05-12 01:50:29      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:framework   过滤器   防火墙   检测   数据包   

iptables的起源

   netfilter工作于 kernel的framework(框架)

iptables的前身叫ipfirewall (内核1.x时代),这是一个作者从freeBSD上移植过来的,能够工作在内核当中的,对数据包进行检测的一款简易访问控制工具。但是ipfirewall工作功能极其有限(它需要将所有的规则都放进内核当中,这样规则才能够运行起来,而放进内核,这个做法一般是极其困难的)。当内核发展到2.x系列的时候,软件更名为ipchains,它可以定义多条规则,将他们串起来,共同发挥作用,而现在,它叫做iptables

iptable是工作在用户空间中,编写规则的工具,不能算是真正意义上的防火墙,它定义的规则需要送至工作于在内核空间中netfilter,并且通过实现netfilter实现防火墙功能。而放入内核的地方必须要是特定的位置,必须是tcp/ip的协议栈经过的地方。而这个tcp/ip协议栈必须经过的地方,可以实现读取规则的地方就叫做 netfilter.(网络过滤器)

作者在内核的tcp/ip协议栈上选择的参考点

prerouting: 进入本机后,路由功能发生之前

input:到达本机内部

output: 由本机发出

forward: 由本机转发

postrouting:路由功能发生之后(进入网卡发送队列之前),即将离开本机之前

    这五个参考点又叫 hooks function: 钩子函数 也叫五个规则链 组成了netfilter框架;任何一个数据包要经由本主机,都将经过这五个链中某链;

数据包过滤匹配流程图

技术分享

链上的规则次序即为检查次序

netfilter 规则的功能

(1). 过滤:firewall,

(2). 地址转换:NAT Server

(3). mangle:修改报文首部中的某些信息(能够实现将数据包的元数据拆开,在里面做标记/修改内容的。如防火墙标记,TTL)

(4). raw:关闭nat表上启用的连接追踪功能(对nat的功能的一些补充)


功能生效的位置

filter功能:input, forward, output

nat功能可:prerouting, output(很少用到), postrouting

mangle功能:prerouting,input, forward, output, postrouting

raw:prerouting,output #只能发生在nat功能的前半段

规则编写注意

注意:规则的次序非常关键,而检查规则的时候,是按照从上往下的方式进行检查的。所以在编写规则的时候应该 : 

1 。同类规则,匹配范围小的放上面;

2 。不同类规则,匹配报文几率较大的放上面;


规则匹配流程

  1.   防火墙是层层过滤的。实际按照规则的顺序从上到下,从前到后进行过滤的。(按照规则顺序依次匹配的)

  2.  如果匹配上规则,明确表明是阻止还是通过,数据包就不在向下匹配新规则了

  3. 如果规则中没有明确表明是阻止还是通过,也就是没有匹配规则,向下进行匹配直到 匹配默认规则得到明确的阻止还是通过。

    

防火墙的策略

通:默认门是关着的,必须要定义谁能进

堵:大门是洞开的,但是你必须有身份认证,否则不能进。










本文出自 “笨小孩” 博客,请务必保留此出处http://1066875821.blog.51cto.com/2375046/1650397

iptables基础篇

标签:framework   过滤器   防火墙   检测   数据包   

原文地址:http://1066875821.blog.51cto.com/2375046/1650397

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!