iptables是一种工作于linux内核的防火墙,防火墙根据工作的层级分为网络层和应用层防火墙,而iptables是网络层防火墙,因为其工作于OSI模型的网络层,根据防火墙的的状态分类分为包过滤防火墙、状态检测防火墙、应用代理防火墙,而iptables属于包过滤防火墙。
在linux内核版本2.4之后被集成在内核里面,在内核2.0的时候是ipfwadm,内核版本2.2的时候是ipchains,防火墙通常工作于内网与外围交界处,iptables通过对TCP/IP、UDP数据包的源IP、目标IP、源端口、目标端口做匹配,对允许通过的数据包做放行或转发,对拒绝的数据包丢弃,从而保证内网或服务器的最大安全。
iptables有表和链的分类,按照数据包从外到内的进入方式分为raw,mangle,nat,filter,其中raw很少使用,mangle主要用于对数据包头、TTL等做修改,nat用于对数据包做地址转换,filter主要控制出入本机的数据包,为了更清晰的对数据包最处理,以上3个表有分为了不同几个不同的链,PREROUTING、POSTROUTING、INPUT、OUTPUT和FORWARD,表和链的对应关系为:
INPUT:filter,mangle
OUTPUT:filter,nat,mangle
FORWARF:filter,mamgle
POSTROUTING:mangle,nat
PREROUTING:mangle,nat
链之间的关系如下图所示:
从上图可以看出每个表有其固定的位置和功能,其功能如下:
INPUT:进入本机的请求
OUTPUT:本机外出的请求
FOREARD:经过本机的请求,就是不进入本机
PREROUTING:路由之前,目标地址转换,比如公司向外网发布服务器,可以将外网访问公司内部目标服务器IP进行修改,
POSTROUTING:路由之后,源地址转换
而这几个表和链的对应关系如下:
FILTER:INPUT,FORWARD,OUTPUT
NAT:POSTROUTING,OUTPUT,POSTROUTING
Mangle:POSTROUTING,PREROUTING,OUTPUT,INPUT,FORWARD
本文出自 “Linux” 博客,请务必保留此出处http://zhangshijie.blog.51cto.com/806066/1571622
原文地址:http://zhangshijie.blog.51cto.com/806066/1571622