1、Iptables基本介绍
1.1、什么是防火墙
过去,很长一段时期里,房屋都是草屋结构,如果一家失火,四邻也会跟着遭殃,所以为安全起见,古人就在自己居住地周围修筑高高的围墙以阻挡外来的火势,保护自身的安全,这种墙就叫"防火墙"。
如今,"因特网"把世界各地的计算机都紧密的连接在一起,如果不严加防卫,一旦网络被侵害,可能会出现不可预计的损失。
那么在互联网上,我们会采用类似防火墙的办法,来保护我们的网络不受侵害,为此,我们需要设定防火墙规则,确定哪些类型的数据包允许通过,哪些不允许通过。
那么具备这种功能的"设备或软件"就可以称之为"防火墙"
1.2、防火墙的种类
从逻辑上讲,防火墙可以大体分为主机防火墙和网络防火墙
主机防火墙:针对于单个主机进行防护,比如windows
网络防火墙:往往处于网络入口,针对于网络入口进行防护,服务于防火墙背后的服务器集群
从物理上讲,防火墙可以分为硬件防火墙和软件防火墙
硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高
软件防火墙:以软件的方式模拟防火墙功能,运行在操作系统上,性能不高,成本较低
1.3、什么是iptables
iptables其实不是真正的防火墙,就是一个代理程序,用户通过iptables这个代理程序,将安全规则执行到对应的"安全框架"中。
这个"安全框架"才是真正的防火墙,这个安全框架叫netfilter,是内核代码中不可缺少的一部分。
iptables位于操作系统的用户空间,我们后期是通过iptables命令工具操作netfilter内核框架
所以iptables的完整叫法应该是netfilter/iptables,它是linux平台下的"包过滤型防火墙",这个包过滤防火墙是免费的
它可以代替昂贵的商业防火墙解决方案,完成数据包的过滤、连接追踪、限速、网络地址转换(NAT)等功能。
1.4、什么是包过滤防火墙
包过滤防火墙它工作在OSI七层模型中的网络层,用来匹配网络数据包的(header):
1、将Header与预先定义好的防火墙规则进行比对
2、与规则相匹配的包会被放行
3、与规则不匹配的包则可能会被丢弃、也可能执行更复杂的动作
由于包过滤防火墙工作在网络层,故也称"网络层防火墙",它通过检查每一个数据包的:
源地址、目标地址
源端口、目标端口
协议类型(TCP、UDP、ICMP)等状态信息来判断是否符合规则
1.5、包过滤防火墙如何实现
包过滤防火墙是由Netfilter来实现的,它是内核的一部分
如果我们想要防火墙能够达到"防火"的目的,则需要在内核中设置关卡,所有进出的报文都要经过这些关卡进行检查
将符合条件的放行
不符合条件的阻止
而这些关卡在iptables中不被称为"关卡",而被称为"链"