iptables防火墙的概念及理解

一直以来防火墙方面的知识点是比较空洞的,知道看到前辈的博客,才尝试去更深入的了解。

原文链接:http://www.zsythink.net/archives/1199

iptables概念

iptables其实不是真正的防火墙,客户端代理,用户通过这个客户端代理,将用户的安全设定执行到对应的”安全框架”中,安全框架才是真正的防火墙,是netfilter。

 

netfilter是防火墙真正的安全框架,位于内核空间。

ipytables是一个命令行工具,位于用户空间,利用这个工具操作真正的框架。

 

netfilter、iptables组成linux平台下的包过滤防火墙,可以替代昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。

netfilter是linux操作系统内核空间中的一个数据包处理模块,功能:

(1)、网络地址转换

(2)、数据包内容修改

(3)、数据包过滤的防火墙功能。

iptables基础

iptables,规则rules,规则存储在内核空间的信息包过滤表中,这些规则指定了源地址、目标地址、传输协议(TCP/UDP/ICMP)和服务类型(HTTP/FTP/SSH)等。当数据包与规则匹配时,iptables会根据规则处理这些数据包,如放行(accept)拒绝(reject)丢弃(drop)等等。配置防火墙的工作就是添加、修改和删除这些规则。

举例:

netfilter才是真正的防火墙,内核空间,数据包传输过程中起到防火墙的目的,内核空间中设置规则。iptables规则链分为路由前(PREROUTING)、转发(FORWARD)、路由后(POSTROUTING)、input和ouput的规则链。

当启用防火墙功能时,数据报文经过的规则链不同。如果报文需要转发,那么报文则不会经过input链发往内核空间,而是直接在内核空间中经过forward链和postrouting链转发出去。

iptables防火墙的概念及理解_第1张图片

根据上图,常用的应用场景中,报文流向:

到本机某进程的报文:PREROUTING--->INPUT

由本机转发的报文:PREROUTING-->FORWARD-->POSTROUTING

由本机的某进程发出报文(响应报文):OUTPUT-->POSTROUTING

每一个所谓的关卡可称为”链”,因为每经过这个关卡的报文,都要将这条链上的所有规则匹配一遍,如果有符合条件的规则,则执行规则对应的动作。

 

iptables中规则怎么进行标识呢?规则分类,表的引入

(1)、filter表:负责过滤功能,防火墙; 内核模块:iptables_filter

(2)、nat表:网络地址转换功能; 内核模块:iptable_nat

(3)、mangle表:拆解报文,作出修改,并重新封装的功能;iptables_mangle

(4)、raw表:关闭nat表上启用的链接追踪机制;iptables_raw

 

每个链接规则中都有哪些表?

PREROUTING的规则存在于:raw表、mangle表、nat表

INPUT:managle表、filter表

FORWARD:mangle表、filter表

OUTPUT:raw表、mangle表、nat表、filter表

POSTROUTING:mangle表,nat表

规则匹配有顺序,那么每个链规则中表的优先级是怎么样的?

优先级次序(由高到低):

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

 

 

数据经过防火墙流程

 iptables防火墙的概念及理解_第2张图片

Iptables规则的时候,时刻牢记路由次序图,灵活配置规则。

iptables防火墙的概念及理解_第3张图片

规则解析

规则:根据指定的匹配条件尝试匹配每个流经此处的报文,一旦匹配成功,则由规则后面指定的处理动作进行处理。

匹配条件:

(1)、基本匹配条件:

     源地址Source IP、目标地址Destination IP

(2)、扩展匹配条件

处理动作:基本动作和扩展动作。

ACCEPT:允许数据包通过。

DROP:直接丢弃数据包,不给任何回应信息,超时时间才会反应。

REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息。

SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题。

DNAT:目标地址转换。

REDIRECT:在本机做端口映射。

 

小结

iptables原理及其概念介绍,结合实际命令去练习,以后看见防火墙规则之类的不会发怵,搞定iptables绝对没问题!

你可能感兴趣的:(linux基础与系统管理)