iptables防火墙简介
Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的安全自由的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入和流出服务器的数据包进行很精细的控制。特别是它可以在一台非常低的硬件配置下跑的非常好
Iptables是Linux2.4及2.6内核中集成的服务。提供近400人的上网服务丝毫不逊色企业级专业路由器防火墙,其功能与安全性比其ipfwadm,ipchains强大的多,iptables主要工作在OSI七层的二、三、四层,如果重新编译内核,iptables也可以支持7层控制(squid代理+iptables)
iptables 名词和术语
容器:包含和被包含的关系
iptables是表的容器
iptables包含表 (4张表)表是链的容器,每个表都包含若干个链
链是规则的容器,真正过滤规则是属于链里面的
级别介绍
iptables国家
表省
链 市
规则 县
iptables工作流程
iptables是采用数据包过滤机制工作的,所以它会对请求的数据包的包头数据进行分析,并根据我们预先设定的规则来进行匹配是否可以进入到主机。
数据包的流向是从左向右的
匹配规则
iptables工作流程小结
1.防火墙是一层层过滤的。实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
2.如果匹配上规则,即明确表是阻止还是通过,此时数据包就不在向下匹配新规则了。
3.如果所有规则中没有明确是阻止还是通过这个数据包,也就是没有匹配上新规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过
4.防火墙iptables的默认规则是对应链的所有规则执行完才会执行的。
iptables表(tables)和链(chains)
iptables根据功能和表的定义划分包含三个表,filter,nat,mangle,其每个表又包含不同的操作链(Chains)
Filter表是真正的防火墙功能
INPUT进服务器 OUTPUT出服务器 FORWARD 流经服务器
Nat表 负责数据包改写 网关共享上网、IP和端口映射
OUTPUT
PREROUTING
POSTROUTING
Mangle表 路由标记 用的不多
####所有链全有
RAW 表 用处很少和Mangle一样
我们可以通过man iptables 来获取
表介绍
filter标签
不指定哪张表就会使用默认filter表
filter表的核心功能:主机防火墙
强调:对于filter表的控制是我们实现本机防火墙的重要手段,特别是对INPUT链的控制
NAT表
NAT表的核心功能:IP和端口映射转换
负责网络地址转换,即来源与目的ip地址和port的转换。
应用:和主机本身无关。一般用于局域网共享上网或者特殊的端口转换服务相关。
NAT功能一般企业工作场景
1.用于做企业路由(zebra)或网关(iptables),共享上网(POSTROUTING)
2.做内部外部ip地址一对一映射(dmz),通过使用iptables防火墙映射ip到内部服务器,ftp服务。(PREROUTING)
3.单个端口的映射,例如:映射80端口(PREROUTING)
这个表定义了三个链(Chains),nat功能就相当于网络的ACL控制。和网络交换机、路由器ACL类似。
iptables表和链工作流程图
NAT功能:
企业案例:
1)局域网上网共享(路由和网关)使用NAT的 POSTROUTING链
2)端口映射: 外部IP和端口映射为内部IP和端口(DMZ功能),使用NAT的 PREROUTING链
Filter功能,即防火墙FILTER INPUT FORWARD
企业案例:主要应用于服务器防火墙
来源:oschina
链接:https://my.oschina.net/u/4296112/blog/3568638