一、防火墙的概念
防火墙(Firewall),也称防护墙,是由 Check Point 创立者 Gil Shwed 于 1993 年创造并引入国内互联网(US5606668(A)1993-12-15)。
它是一种位于 外部网络与内部网络 之间的网络安全零碎。是一项信息安全的防护系统,按照特定的规定,容许或是限度传输的数据通过。
在网络的世界里,要由防火墙过滤的 就是承载通信数据的通信包。
在网络中,所谓“防火墙”,是指一种将内部网和公众拜访网(如 Internet)离开的办法,它实际上 是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能容许你“批准”的人和数据进入你的网络,同时将你“不批准”的人和数据拒之门外,最大限度地阻止网络中的黑客来拜访你的网络。换句话说,如果不通过防火墙,公司外部的人就无法访问 Internet,Internet 上的人也无奈和公司外部的人进行通信。
二、防火墙的倒退历程
防火墙从诞生开始,已经验了四个倒退阶段:
- 基于路由器的防火墙
- 用户化的防火墙工具套
- 建设在通用操作系统上的防火墙
- 具备平安操作系统的防火墙
现阶段常见的防火墙属于具备平安操作系统的防火墙,例如 NETEYE、NETSCREEN、TALENTIT 等。
三、防火墙的根本类型
网络层防火墙
网络层防火墙可视为 一种 IP 封包过滤器 ,运作在底层的 TCP/IP 协定堆栈上。能够 以枚举的形式只容许合乎特定规定的封包通过,其余的一律禁止穿梭防火墙(病毒除外,防火墙不能避免病毒侵入)。这些规定通常能够经由管理员定义或批改,不过某些防火墙设施可能只能套用内置的规定。
应用层防火墙
应用层防火墙是在 TCP/IP 堆栈的“应用层”上运作,您应用浏览器时所产生的数据流或是应用 FTP 时的数据流都是属于这一层。应用层防火墙能够拦挡进出某应用程序的所有封包,并且封闭其余的封包(通常是间接将封包抛弃)。实践上,这一类的防火墙能够齐全阻绝内部的数据流进到受爱护的机器里。
数据库防火墙
数据库防火墙是一款基于数据库协定剖析与控制技术的数据库安全防护系统。基于主动防御机制,实现数据库的拜访行为管制、危险操作阻断、可疑行为审计。数据库防火墙通过 SQL 协定剖析,依据预约义的禁止和许可策略让非法的 SQL 操作通过,阻断非法违规操作,造成数据库的外围进攻圈,实现 SQL 危险操作的被动预防、实时审计。数据库防火墙面对来自于内部的入侵行为,提供 SQL 注入禁止和数据库虚构补丁包性能。
四、Linux 防火墙
Linux 防火墙在企业应用中十分有用,举例如下:
- 中小企业与网吧里有 iptables 作为企业的 NAT 路由器,能够用来代替传统路由器,而节约老本。
- IDC 机房个别没有硬件防火墙,IDC 机房的服务器能够用 Linux 防火墙代替硬件防火墙。
- iptables 能够联合 squid 作为企业外部上网的通明代理。传统代理须要在浏览器里配置代理服务器信息,而 iptables+squid 的通明代理则能够把客户端的申请重定向到代理服务器的端口。客户端不要作任何设置,而感觉不到代理的存在。
- 将 iptables 作为企业 NAT 路由器时,能够应用 iptables 的扩大模块屏蔽 P2P 流量,还能够禁止非法网页。
- iptables 能够用于外网 IP 向内网 IP 映射。
- iptables 能够轻松避免轻量级 DOS 攻打,比方 ping 攻打及 SYN 洪水攻打。
综述,Iptables 有两种利用模式:主机防火墙,NAT 路由器。
五、防火墙的基本原理
对应下图的字节传输流程,能够分为以下几层:
- 包过滤(Packet filtering):工作在网络层,仅依据数据包头中的 IP 地址、端口号、协定类型等标记确定是否容许数据包通过。
- 利用代理(Application Proxy):工作在应用层,通过编写不同的利用代理程序,实现对应用层数据的检测和剖析。
- 状态检测(Stateful Inspection):工作在 2~4 层,访问控制形式与 1 同,但解决的对象不是单个数据包,而是整个连贯,通过规定表和连贯状态表,综合判断是否容许数据包通过。
- 齐全内容检测(Compelete Content Inspection):工作在 2~7 层,不仅剖析数据包头信息、状态信息,而且对应用层协定进行还原和内容分析,无效防备混合型平安威逼。
六、Netfilter 与 iptables
Netfilter 是由 Rusty Russell 提出的 Linux 2.4 内核防火墙框架,该框架既简洁又灵便,可实现安全策略利用中的许多性能,如数据包过滤、数据包解决、地址假装、通明代理、动静网络地址转换 (Network Address Translation,NAT),以及基于用户及媒体访问控制(Media Access Control,MAC) 地址的过滤和基于状态的过滤、包速率限度等。Iptables/Netfilter 的这些规定能够通过灵便组合,造成十分多的性能、涵盖各个方面,这所有都得益于它的优良设计思维。Netfilter/Iptables 数据包过滤零碎能够当成一个整体,netfilter 是内核的模块实现,iptables 是对下层操作工具。
如果不严格的辨别则在 Linux 中 netfilter 和 iptables 都能够认为是指 Linux 防火墙。
理论 Iptables 是一个治理内核包过滤的工具,能够用来配置外围包过滤表格中的规定。运行于用户空间。
区别在于:netfilter 是 Linux 的 2.4 版内核引入了一种全新的包过滤引擎,称为 Netfilter。指的是 Linux 内核中实现包过滤防火墙的内部结构,不以程序或文件的模式存在,属于“内核态”的防火墙性能体系。iptables 指的是用来治理 Linux 防火墙的命令程序,通常位于 /sbin/iptables,属于“用户态”的防火墙管理体系。iptables 是管制 Netfilter 的工具,是 Linux 2.2 版内核中比拟老的命令 ipchains 的兄弟。
Netfilter 所设置的规定是寄存在内核内存中的,而 iptables 是一个应用层的应用程序,它通过 Netfilter 放出的接口来对寄存在内核内存中的 XXtables(Netfilter 的配置表)进行批改。这个 XXtables 由表 tables、链 chains、规定 rules 组成,iptables 在应用层负责批改这个规定文件。相似的应用程序还有 firewalld。
iptables 和 netfilter 的分割?很多人一提到防火墙立马就想到了是 iptables,其实 iptables 并不是防火墙,他只是一个软件或者说是一个工具,这个软件能够编写某些规定,将写好的规定保留到 netfilter 的规定数据库中。因而,真正起到 ” 防火 ” 的性能是 netfilter,并不是 iptables。netfilter 是内核中的一个框架,这个框架外面蕴含了 4 个表和 5 个链,这些链又蕴含了很多的规定。而数据包要比对的规定就是这个链中所定义的规定。
在下述的内容中咱们就以 iptables 来称说 Linux 防火墙了。
七、防火墙的性能
吞吐量:该指标间接影响网络的性能,吞吐量 时延:入口处输出帧最初 1 个比特达到至出口处输入帧的第 1 个比特输入所用的工夫距离 丢包率:在稳态负载下,应由网络设备传输,但 因为资源不足而被抛弃的帧的百分比 背靠背:从闲暇状态开始,以达到传输介质最小非法距离极限的传输速率发送相当数量的固定长度的帧,当呈现第一个帧失落时,发送的帧数 并发连结数:并发连接数是指穿梭防火墙的主机之间或 主机与防火墙之间能同时建设的最大连接数
八、防火墙的局限性
防火墙尽管是爱护网络安全的基础性设施,然而它还存在着一些不易防备的平安威逼:首先防火墙不能防备未通过防火墙或绕过防火墙的攻打。例如,如果容许从受爱护的网络外部向外拨号,一些用户就可能造成与 Internet 的间接连贯。防火墙基于数据包包头信息的检测阻断形式,次要对主机提供或申请的服务进行访问控制,无奈阻断通过凋谢端口流入的无害流量,并不是对蠕虫或者黑客攻击的解决方案。另外,防火墙很难防备来自于网络外部的攻打或滥用。
关注公众号:网络技术平台 ,回复“ 材料”获取视频、培训教程、试验手册、电子书。