防火墙技术是计算机网络中的一个概念,我们使用防火墙来保护我们的计算机的安全,帮助计算机网络在内网和外网中构建一道相对隔绝的保护屏障,是一种信息安全技术。
防火墙可由硬件或者软件实现。
软件防火墙也称为个人防火墙,它是最常用的防火墙,通常作为计算机系统上的程序运行。
它是可定制的,允许用户控制其功能。
软件防火墙单独使用软件系统来完成防火墙功能,将软件部署在系统主机上,其安全性较硬
件防火墙差,同时占用系统资源,在一定程度上影响系统性能。与基于硬件的防火墙不同,软件防火墙只能保护安装它的系统。
我们的 pc 就会自带防火墙,我们可以选择打开或者关闭或者启动防火墙策略来保护我们的计算机的安全。
基于硬件的防火墙专门保护你的本地网络。它是一种可以购买的独立产品,通常用于宽带路由器。它通常比软件防火墙提供给用户更好的安全性,但是它的价格更高。
至于价格高,原因在于,软件防火墙只有包过滤的功能,硬件防火墙中可能还有除软件防火墙以外的其他功能,例如 CF(内容过滤)IDS(入侵侦测)IPS(入侵防护)以及 VPN 等等的功能。
硬件防火墙由各个不同的防火墙厂商开发生产,其中比较著名的防火墙厂商有:cisco,juniper,checkpoint 等,现在国内也涌现大量的优秀防火墙厂商如:huawei,h3c, hillstone 等。
防火墙的目的就是允许或者阻止特定的网络包到达目的地。而为了实现这一目的,人们也设计了许多的方法:例如包过滤,应用层网关,电路层网关等,现在最为普及的就是包过滤方式。
一个网络包分为头部和数据包。防火墙会基于网络包的头部来对通信进行控制。如果是懂网络的同学会很容易理解这句话,我们看看网络包中的头部携带者哪些信息。
根据上面的图,大概可以知道防火墙可以根据 源地址,目的地址,端口,以及协议来进行允许或者阻止的操作
下图是防火墙工作的一个例子
第一条 只写了接收方 IP 地址和端口以及动作是允许,代表着这条防火墙策略允许互联网的任意 ip 和端口来访问 192.0.2.0/24
第二条 阻止 192.0.2.0/24 的 80 端口向任意 ip 发送请求 TCP 控制位的 SYN=1 和 ACK=0 代表着主动发起 TCP 连接,因为如果互联网的 ip 来访问 192.0.2.0/24 的 80 端口是需要建立 tcp 连接,192.0.2.0/24 是需要进行回包的
第三条就是允许 192.0.2.0/24 的 80 端口向任意 ip 返回请求
第四条 防火墙策略是最后匹配到的,如果上面 3 条防火墙策略都没有匹配到,那么就拒绝请求
上面简单的介绍了包过滤的规则,下面来来了解下数据包的传递过程。整个数据包在防火墙的传递会经过这么几个阶段
一个简单的例子
这里就是防火墙的核心功能,匹配 ACL 也就是防火墙策略
防火墙的品牌是非常多的,而各个防火墙厂商开发的防火墙,cli 命令差异极大,所以需要获取官方文档进行学习。
我也会继续在博客和 GitHub 上发布各类防火墙的使用方法和命令参考。