防火墙的分类
1. 从软、硬件形式上分为 软件防火墙和硬件防火墙以及芯片级防火墙。
2.从防火墙技术分为 “包过滤型”和“应用代理型”两大类。
3.从防火墙结构分为 < 单一主机防火墙、分布式防火路由器集成式防火墙和墙三种。
4. 按防火墙的应用部署位置分为 边界防火墙、个人防火墙和混合防火墙三大类。
5. 按防火墙性能分为 百兆级防火墙和千兆级防火墙两类。
第一种:软件防火墙
软件防火墙运行于特定的计算机上,它需要客户预先安装好的计算机操作系统的支持,一般来说这台计算机就是整个网络的网关。俗称 “个人防火墙”。软件 防火墙就像其它的软件产品一样需要先在计算机上安装并做好配置才可以使用。防火墙厂商中做网络版软件防火墙 最出名的莫过于Checkpoint。使用这类 防火墙,需要网管对所工作的操作系统平台比较熟悉。
第二种:硬件防火墙
这里说的硬件防火墙是指“所谓的硬件防火墙”。之所以加上"所谓"二字是针对芯片级防火墙说的了。它们最大的差别在于是否基于专用 的硬件平台。目前 市场上大多数防火墙都是这种所谓的硬件防火墙,他们都基于PC架构,就是说,它们和普通的家庭用的PC没有太大区 别。在这些PC架构计算机上运行一些经过 裁剪和简化的操作系统,最常用的有老版本的Unix、Linux和FreeBSD系统。 值得注意的是,由 于此类防火墙采用的依然是别人的内核,因此依然会受到OS(操作系统)本身的安全性影响。
传统硬件防火墙一般至少应具备三个端口,分别接内网,外网和DMZ区(非军事化区),现在一些新的硬件防火墙往往扩展了端口,常见四 端口防火墙一般将第四个端口做为配置口、管理端口。很多防火墙还可以进一步扩展端口数目。
第三种:芯片级防火墙
芯片级防火墙基于专门的硬件平台,没有操作系统。专有的ASIC芯片促使它们比其他种类的防火墙速度更快,处理能力更强,性能更高。 做这类防火墙最 出名的厂商有NetScreen、FortiNet、Cisco等。这类防火墙由于是专用OS(操作系统),因此防火墙本身的漏洞比较少,不 过价格相对比 较高昂。
linux防火墙
防火墙的核心是数据报文过滤
工作在主机或者网络的边缘,对进出的数据报文进行检查,监控,并且能够根据事先定义的匹配条件和规则做出相应的动作的组件,机制或者系统。
linux一般都是作为服务器系统来使用,对外提供一些基于网络的服务
通常我们都需要对服务器进行一些网络访问控制,类似防火墙的功能
Iptables -A INPUT -s 172.16.20.85 -d 172.16.20.78 -p icmp --icmp-type 8 -j REJECT
Iptables -A OUTPUT -s 172.16.20.78 -d 172.16.20.85 -p icmp --icmp-type 0 -j REJECT
常见的访问控制包括:哪些ip可以访问服务器、可以使用哪些协议、哪些接口,是否通过数据包进行修改等
如:服务器可能受到来自某个ip攻击,这时就需要禁止所有来自ip的访问
防火墙功能
1.可以保护易受攻击服务;
2.控制内外网之间网络系统的访问;
3.集中管理内网的安全性,降低管理成本;
4.提高网络的保密性和私有性;
5.记录网络的使用状态,为安全规划和网络维护提供依据
包过滤防火墙原理示意图:
先进行过滤规则匹配,然后判断是否转发数据包。
linux内核集成了网络控制功能。通过netfilter模块来实现。
linux内核通过netfilter模块实现网络访问控制功能,在用户层我们可以通过iptables程序对netfilter进行控制管理。iptables 是一个应用层的应用程序,它通过 Netfilter 放出的接口来对存放在内核内存中的 XXtable(Netfilter的配置表)进行修改。这个XXtables由 表tables、链chains、规则rules组成,iptables在应用层负责修改这个规则文件。类似的应用程序还有 firewalld 。
netfilter可以对数据进行允许、丢弃、拒绝。
静态防火墙
每次修改设置以后,都需要重新启动配置,方可生效,基于5链4表来实现。
iptables service 首先对旧的防火墙规则进行了清空,然后重新完整地加载所有新的防火墙规则,而如果 配置了需要 reload 内核模块的话,过程背后还会包含卸载和重新加载内核模块的动作,而不幸的是,这 个动作很可能对运行中的系统产生额外的不良影响,特别是在网络非常繁忙的系统中。(静态防火墙)
访问控制五元组:保障网络安全
源ip 数据报文从哪来
目ip 数据报文从哪去
源端口 1--1024预定义端口
目的端口
传输协议
五链四表
INPUT链:当接收到防火墙本机地址的数据包(入站)时,应用此链中的规则。 Mangle filter
OUTPUT链:当防火墙本机向外发送数据包(出站)时,应用此链中的规则。 Mangle nat filter raw
FORWARD链:当接收到需要通过防火墙发送给其他地址的数据包(转发)时,应用此链中的规则。 Mangle filter
PREROUTING链:在对数据包作路由选择之前,应用此链中的规则,如DNAT。 Raw mangle nat
POSTROUTING链:在对数据包作路由选择之后,应用此链中的规则,如SNAT。 Raw mangle nat
filter表 数据包过滤
主要用于对数据包进行过滤,根据具体的规则决定是否放行该数据包(如DROP、ACCEPT、REJECT)。filter 表对应的内 核模块为iptable_filter
nat表 地址转换
主要用于修改数据包的IP地址、端口号等信息(网络地址转换SNAT、DNAT)。属于一个流的包(因为包的大小限制导致 数据可能会被分成多个数据包)只会经过这个表一次。
mangle报文重构
拆解报文,作出修改并重新封装的功能Qos
修改IP包头的TTL值,这样也可以保护我们的主机,比如我们将Linux主机送出的封包内的TTL值该为128,让Cracker误以为是Windows系 统。另外,TTL(生存周期,每经过一个路由器将1.mangle可以修改此值设定TTL要被增加的值,比如–ttl-inc 4。假设一个进来的包