一、IPtables介绍
Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的完全自由的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入和流出服务器的数据包进行很精细的控制
netfilter:内核态,即不以文件和形式存在(kernal apace)的防火墙。–是实现防火墙的功能
iptables:用户态,在/sbin/iptables存在(User space)的防火墙。操作上二者没有区分。
用户和内核交互的一个工具就是iptables
注:iptables主要工作在OSI七层的3、4层。七层的控制可以使用squid代理
+iptables
实际生产环境中:
关闭Linux自身防火墙。(解决安全问题尽量不给服务器配置外网IP.需要访问的话,就使用代理转发。)因为高并发,iptables会加大延迟。
除非并发小,服务器必须处于公网。考虑开启防火墙。
大并发的情况,不能开iptables,影响性能,利用硬件防火墙提升架构安全
2、iptables工作流程
2.1、防火墙是一层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的
2.2、如果匹配上了规则,即明确表阴是阳止还是通过,此时数据包就不在向下匹配新规则了。
2.3、如果所有规则中没有明确表明是阻止还是通过这个数据包,也就是没有匹配上规则,向下进行面配,直到匹配秋认视则得到明确的阻止还是通过
2.4、防火墙的默认规则是对应链的所有的规则执行完以后才会执行的(最后执行的视则)
三、iptables 表和链
默认情况下,iptables根据功能和表的定义划分包含三个表,filter,nat,mangle,其每个表又包含不同的操作链(chains)。实际iptables包含4张表和五个链,主要记住filter即可
1、四个表:
必须是小写
raw -----追踪数据包,-----此表用处较少,可以忽略不计
mang1e -------给数据打标记,做标记
nat ----网络地址转换即来源与目的的Ip地址和port的转换。应用:和主机本身无关
filter ------做过滤的,防火墙里面用的最多的表 ***
表的应用顺序:raw-》mangle-》nat-》filter
2、五个链:
五链:(必须是大写)链里面写的是规则。
PREROUTING -----进路由之前数据包
INPUT -----就是过滤进来的数据包(输入)BORWARD -----转发
OUTEUT ------发出去的数据包
POSTROUTING ------路由之后修改数据包
所有的访问都是按顺序:
入站:比如访问自身的web服务流量。先PREROUTING(是否改地址),再INPUT(是否允许)到达程序。
转